:root {
  --bg:#f3f4f6;
  --panel:#ffffff;
  --brand:#12384f;
  --brand-2:#1f516b;
  --text:#111827;
  --muted:#4b5563;
  --front-brand:#12384f;
  --front-brand-2:#1f516b;
  --front-panel:#ffffff;
  --front-text:#111827;
  --back-brand:#12384f;
  --back-brand-2:#1f516b;
  --back-panel:#ffffff;
  --back-text:#111827;
  --site-bg-overlay-opacity:.90;
  --accent-gold:#c5942d;
  --accent-gold-soft:#f6ecd3;
  --accent-gold-border:#d8b36a;
  --accent-gold-text:#6b4f17;
  /* Accordion/table tone base */
  --acc-main-start:#d5dbe2;
  --acc-main-end:#d5dbe2;
  --acc-main-border:#c2cad4;
  --acc-main-text:#111827;
  --acc-main-marker:#334155;
  --acc-sub-strong-bg:#e0e6ed;
  --acc-sub-soft-bg:#ebf0f4;
  --acc-sub-text:#111827;
  --acc-sub-marker:#334155;
  --acc-table-start:#e2e7ee;
  --acc-table-end:#e2e7ee;
  --acc-table-border:#cad2dd;
  --acc-table-text:#111827;
  --res-main-start:#44515b;
  --res-main-end:#44515b;
  --res-main-border:#36414a;
  --res-main-text:#f8fafc;
  --res-main-marker:#f4d58d;
  --radius-lg:14px;
  --radius-md:10px;
  --footer-height:66px;
  --shadow-soft:0 10px 26px rgba(15,23,42,.08);
  --shadow-hover:0 12px 28px rgba(15,23,42,.12);
  --front-header-offset:84px;
  --front-font-family:Inter, Segoe UI, Arial, sans-serif;
  font-family: Inter, Segoe UI, Arial, sans-serif;
}
*{box-sizing:border-box}
body.frontoffice{--brand:var(--front-brand,#12384f);--brand-2:var(--front-brand-2,#1f516b);--panel:var(--front-panel,#ffffff);--text:var(--front-text,#111827);display:flex;flex-direction:column;min-height:100vh}
body.backoffice{--brand:var(--back-brand,#12384f);--brand-2:var(--back-brand-2,#1f516b);--panel:var(--back-panel,#ffffff);--text:var(--back-text,#111827);display:flex;flex-direction:column;min-height:100vh}
body.frontoffice.homepage,
body.frontoffice.reservations-page,
body.frontoffice.cms-page{
  font-size:17px;
  font-family:var(--front-font-family);
}
body.frontoffice.homepage :is(button,input,select,textarea),
body.frontoffice.reservations-page :is(button,input,select,textarea),
body.frontoffice.cms-page :is(button,input,select,textarea){
  font-family:inherit;
}
body[data-accordion-tone="pearl_ultra"]{
  --acc-main-start:#edf1f6;
  --acc-main-end:#f8fafd;
  --acc-main-border:#dbe2ec;
  --acc-main-text:#1f2937;
  --acc-main-marker:#526173;
  --acc-sub-strong-bg:#f0f4f9;
  --acc-sub-soft-bg:#f7f9fc;
  --acc-sub-text:#1f2937;
  --acc-sub-marker:#526173;
  --acc-table-start:#eef3f8;
  --acc-table-end:#f8fbfe;
  --acc-table-border:#dce3ec;
  --acc-table-text:#1f2937;
}
body[data-accordion-tone="pearl_light"]{
  --acc-main-start:#e3e8ef;
  --acc-main-end:#f1f4f8;
  --acc-main-border:#d1d8e3;
  --acc-main-text:#1f2937;
  --acc-main-marker:#475569;
  --acc-sub-strong-bg:#e8edf4;
  --acc-sub-soft-bg:#f3f6fa;
  --acc-sub-text:#1f2937;
  --acc-sub-marker:#475569;
  --acc-table-start:#e6ebf3;
  --acc-table-end:#f3f6fb;
  --acc-table-border:#d3dae5;
  --acc-table-text:#1f2937;
}
body[data-accordion-tone="pearl"]{
  --acc-main-start:#d7dde7;
  --acc-main-end:#e7ebf2;
  --acc-main-border:#c5ccd8;
  --acc-main-text:#1f2937;
  --acc-main-marker:#475569;
  --acc-sub-strong-bg:#dde3ec;
  --acc-sub-soft-bg:#e7ecf3;
  --acc-sub-text:#1f2937;
  --acc-sub-marker:#475569;
  --acc-table-start:#d9dfe9;
  --acc-table-end:#e9edf4;
  --acc-table-border:#c7ceda;
  --acc-table-text:#1f2937;
}
body[data-accordion-tone="gray"]{
  --acc-main-start:#4b5563;
  --acc-main-end:#6b7280;
  --acc-main-border:#4b5563;
  --acc-main-text:#f8fafc;
  --acc-main-marker:#e5e7eb;
  --acc-sub-strong-bg:#6b7280;
  --acc-sub-soft-bg:#808892;
  --acc-sub-text:#f8fafc;
  --acc-sub-marker:#e5e7eb;
  --acc-table-start:#4f5866;
  --acc-table-end:#6b7280;
  --acc-table-border:#4b5563;
  --acc-table-text:#f8fafc;
}
body[data-accordion-tone="blue"]{
  --acc-main-start:#3e5f8c;
  --acc-main-end:#4f74a6;
  --acc-main-border:#38587f;
  --acc-main-text:#f8fafc;
  --acc-main-marker:#dbeafe;
  --acc-sub-strong-bg:#4f709c;
  --acc-sub-soft-bg:#6185b4;
  --acc-sub-text:#f8fafc;
  --acc-sub-marker:#dbeafe;
  --acc-table-start:#456895;
  --acc-table-end:#5d81b0;
  --acc-table-border:#3c5f8b;
  --acc-table-text:#f8fafc;
}
body { margin: 0; min-height:100vh; color:#111827; color:var(--text); line-height:1.45; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; background-color:#f3f4f6; background-image:var(--site-bg-image,none); background-size:cover; background-position:center; background-repeat:no-repeat; background-attachment:fixed; padding-bottom:0; position:relative; }
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:var(--site-bg-overlay-color,#0f172a);
  opacity:var(--site-bg-overlay-opacity,.36);
}
header,
main,
.app-shell,
.mobile-menu-btn,
.site-footer,
.whatsapp-floating-btn{
  position:relative;
  z-index:1;
}
header { position:fixed; top:0; left:0; right:0; z-index:30; background:rgba(255,255,255,.97); color:#111827; padding:.58rem .95rem; margin:0; box-shadow:0 4px 12px rgba(15,23,42,.08); border-bottom:1px solid rgba(15,23,42,.12);}
.header-wrap{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.header-wrap .brand-link{min-width:0;flex:1 1 auto}
.brand{font-weight:700;display:flex;align-items:center;gap:.55rem;max-width:100%}
.brand-link{color:inherit;text-decoration:none}
.brand-link:hover{opacity:.95}
.brand-logo{display:block;object-fit:contain;background:transparent;border-radius:0;padding:0;width:auto;height:auto;max-height:48px;max-width:260px;max-width:min(260px,45vw)}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}
.header-user-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.logo-mark{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#60a5fa;color:#0f172a}
.sidebar .brand{justify-content:center;padding:.32rem 0 .46rem}
.sidebar .brand-logo{width:100%;height:auto;max-width:220px;max-height:72px;padding:6px;border-radius:10px}
.header-wrap .brand-logo{height:auto;max-height:56px;max-width:320px;max-width:min(320px,52vw)}
body.frontoffice .btn-panel-access{
  background:#334155;
  color:#fff;
  border:1px solid #1f2937;
  box-shadow:none;
  font-weight:700;
}
body.frontoffice .btn-logout-access{
  background:#ffffff;
  color:#1f2937;
  border:1px solid #c7d0da;
  box-shadow:none;
  font-weight:700;
}
body.frontoffice .btn-whatsapp{
  background:#25d366;
  color:#fff;
  border:1px solid #1faa52;
  box-shadow:none;
  font-weight:700;
}
body.frontoffice .btn-panel-access:hover{background:#1f2937}
body.frontoffice .btn-logout-access:hover{background:#f4f7fa}
body.frontoffice .btn-whatsapp:hover{background:#20be5b}
@media (max-width:900px){
  :root{--front-header-offset:76px}
  header{padding:.44rem .78rem}
  .header-wrap{min-height:58px}
  .header-wrap .brand-logo{height:auto;max-height:38px;max-width:210px;max-width:min(210px,58vw)}
  .header-actions .btn{padding:.5rem .68rem;font-size:.9rem}
  .header-actions .btn-reserve-cta{padding:.5rem .7rem;font-size:.9rem}
}
nav{display:flex;flex-wrap:wrap;gap:.35rem}
nav a { color:#fff; text-decoration:none; padding:.3rem .58rem; border-radius:8px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16)}
nav a:hover{background:rgba(255,255,255,.16)}
main { max-width: 1160px; margin: 1.2rem auto; padding:0 1rem 2rem; }
body.frontoffice > main{width:100%;flex:1 0 auto;padding-top:calc(var(--front-header-offset) + .35rem)}
.card { background:var(--panel); border-radius:var(--radius-lg); padding:1.05rem; margin-bottom:1rem; border:1px solid rgba(148,163,184,.24); box-shadow:var(--shadow-soft); }
h1,h2,h3{line-height:1.2;letter-spacing:.01em}
h1{margin-top:.1rem}
.card h3{margin-top:.25rem}
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.9rem; }
.front-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:1rem; align-items:start; }
@media (max-width:900px){ .front-grid { grid-template-columns:1fr; } }
label { display:block; margin:.45rem 0 .3rem; font-weight:600; }
input, select, textarea { width:100%; padding:.65rem; border:1px solid #d3daeb; border-radius:var(--radius-md); margin-bottom:.45rem; background:#fff; }
textarea{min-height:100px}
input:focus,select:focus,textarea:focus{outline:none;border-color:#56798f;box-shadow:0 0 0 3px rgba(18,56,79,.16)}
button, .btn { background:var(--brand); color:#fff; border:1px solid rgba(31,41,55,.22); padding:.62rem .95rem; border-radius:var(--radius-md); text-decoration:none; cursor:pointer; display:inline-block; transition:transform .12s ease,filter .2s ease,box-shadow .2s ease; box-shadow:none;}
body.frontoffice button,
body.frontoffice .btn{
  font-size:1rem;
  line-height:1.3;
}
button:hover,.btn:hover{filter:brightness(1.02);transform:translateY(-1px)}
button:active,.btn:active{transform:translateY(0)}
.btn-danger{background:#dc2626}
.table { width:100%; border-collapse: collapse; font-size:.93rem; border-radius:10px; overflow:hidden; }
.table-wrap{width:100%;overflow-x:auto}
.reservations-table{min-width:860px}
.reservations-wrap .table th,.reservations-wrap .table td{vertical-align:top}
.reservation-row.reservation-cancelled > td{background:#ffe7e7}
.reservation-row.reservation-no-show > td{background:#fff2df}
.reservation-row.reservation-pending-payment > td{background:#fff9d9}
.reservation-row.reservation-church-payment > td{background:#f1e8ff}

.reservation-actions-cell{min-width:178px}
.actions-wrap{display:flex;flex-wrap:wrap;gap:.28rem;align-items:flex-start}
.actions-wrap .action-cancel{order:99}
.actions-wrap .action-btn{
  min-width:84px;
  min-height:30px;
  padding:.34rem .5rem;
  border-radius:8px;
  font-size:.78rem;
  line-height:1.1;
  text-align:center;
  display:inline-flex;
  justify-content:center;
  align-items:center;
}
.actions-wrap .inline-form{margin:0}
.reservation-legend-items{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.45rem}
.reservation-legend-item{display:inline-block;padding:.28rem .6rem;border-radius:999px;border:1px solid #dbe1ef;font-size:.8rem;font-weight:600}
.reservation-legend-item.reservation-cancelled{background:#ffe7e7}
.reservation-legend-item.reservation-no-show{background:#fff2df}
.reservation-legend-item.reservation-pending-payment{background:#fff9d9}
.reservation-legend-item.reservation-church-payment{background:#f1e8ff}
.booking-mobile-search-fab,
.booking-mobile-search-panel{display:none}
.booking-mobile-search-panel{
  position:fixed;
  inset:0;
  z-index:160;
  background:rgba(15,23,42,.45);
  padding:1rem;
}
.booking-mobile-search-form{
  max-width:460px;
  margin:3rem auto 0;
  background:#fff;
  border:1px solid #d1d9e5;
  border-radius:12px;
  box-shadow:0 18px 34px rgba(15,23,42,.28);
  padding:.9rem;
}
.booking-mobile-search-actions{
  display:flex;
  gap:.45rem;
  margin-top:.2rem;
}
.booking-mobile-search-actions .btn,
.booking-mobile-search-actions button{
  flex:1 1 0;
}

.inline-form{display:inline-block}
.payment-form{display:flex;gap:.28rem;align-items:center;flex-wrap:wrap}
.payment-select{
  min-width:118px;
  max-width:142px;
  height:30px;
  margin:0;
  padding:.3rem .45rem;
  border-radius:8px;
  font-size:.78rem;
}
.actions-wrap .payment-form .action-btn{min-width:66px}
.reservation-details td{background:#f8faff}
.reservation-section summary{cursor:pointer;font-weight:700;color:#2c4b60}
.reservation-section[open] summary{margin-bottom:.55rem}
.reservation-main-section{
  border:1px solid #c6d5cf;
  box-shadow:0 10px 24px rgba(69,92,83,.12);
}
.reservation-section.reservation-main-section > summary{
  background:var(--res-main-start);
  color:var(--res-main-text);
  border:1px solid var(--res-main-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 1px 4px rgba(15,23,42,.08);
  padding:.82rem 1rem;
}
.reservation-section.reservation-main-section > summary::marker{color:var(--res-main-marker)}
.reservation-section.reservation-main-section[open] > summary{margin-bottom:.75rem}
.reservation-section > summary,
.dashboard-accordion-item > summary,
.calendar-accordion-item > summary{
  display:block;
  padding:.72rem .9rem;
  border-radius:10px;
  background:#e3e8ef;
  background:var(--acc-main-start);
  color:var(--acc-main-text);
  border:1px solid var(--acc-main-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.reservation-section > summary::marker,
.dashboard-accordion-item > summary::marker,
.calendar-accordion-item > summary::marker{
  color:var(--acc-main-marker);
}
.reservation-section[open] > summary,
.dashboard-accordion-item[open] > summary,
.calendar-accordion-item[open] > summary{
  margin-bottom:.65rem;
}
.reservation-history-month{margin:.55rem 0;border:1px solid #dbe1ef;border-radius:10px;padding:.35rem .6rem;background:#fff}
.reservation-history-month > summary{
  cursor:pointer;
  font-weight:700;
  display:block;
  padding:.55rem .7rem;
  border-radius:8px;
  background:var(--acc-sub-strong-bg);
  color:var(--acc-sub-text);
}
.reservation-history-month > summary::marker{color:var(--acc-sub-marker)}
.reservation-history-day{margin:.45rem 0 .25rem;padding:.25rem .35rem;border:1px dashed #dbe1ef;border-radius:8px}
.reservation-history-day > summary{
  cursor:pointer;
  font-weight:600;
  display:block;
  padding:.5rem .65rem;
  border-radius:8px;
  background:var(--acc-sub-soft-bg);
  color:var(--acc-sub-text);
}
.reservation-history-day > summary::marker{color:var(--acc-sub-marker)}
.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}
.table th,.table td { border-bottom:1px solid #e7eaf3; padding:.5rem; text-align:left; }
.table tbody tr:hover td{background:#f8faff}
.notice{padding:.7rem;border-radius:10px;background:#e9f2ff;margin-bottom:.8rem}
.error{padding:.7rem;border-radius:10px;background:#ffe8e8;color:#8b0000;margin-bottom:.8rem}
.small{font-size:.85rem;color:var(--muted)}

.customer-portal-card{
  border:1px solid #d6dee8;
}
.customer-portal-section{
  border:1px solid #dde4ee;
  border-radius:12px;
  padding:.55rem .7rem .7rem;
  margin:.7rem 0 0;
  background:#eef3f8;
}
.customer-portal-section-title{
  margin:.05rem 0 .55rem;
  padding:.42rem .6rem;
  border-radius:9px;
  border:1px solid #1f516b;
  background:#1f516b;
  color:#fff;
  font-weight:700;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
}
.customer-portal-section .grid > div{
  background:#fff;
  border:1px solid #dce5f0;
  border-radius:10px;
  padding:.48rem .58rem;
  color:#1f2937;
}
.customer-portal-management-grid{
  margin-bottom:.55rem;
}
.customer-portal-limits-box{
  padding:.7rem .75rem;
  border:1px solid #d7dde6;
  border-radius:10px;
  background:#f8fbff;
  margin:.1rem 0 .8rem;
}
.customer-portal-actions{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top:.7rem;
}
.customer-portal-actions-primary,
.customer-portal-actions-secondary{
  display:flex;
  align-items:flex-start;
  gap:.5rem;
}
.customer-portal-pay-form{
  display:block;
  max-width:280px;
}
.customer-portal-pay-btn{
  background:#dcfce7;
  border-color:#86efac;
  color:#14532d;
  font-weight:600;
  box-shadow:0 0 0 2px rgba(34,197,94,.16);
}
.customer-portal-pay-inline{
  min-width:190px;
}
.customer-portal-save-btn{
  background:#f3f4f6;
  border-color:#cbd5e1;
  color:#1f2937;
  font-weight:600;
}
.customer-portal-save-btn:hover{
  background:#e5e7eb;
  border-color:#94a3b8;
  color:#111827;
}
.customer-portal-pay-btn:hover{
  background:#bbf7d0;
  border-color:#4ade80;
  color:#14532d;
}
.customer-portal-cancel-btn{
  background:#f3f4f6;
  border-color:#cbd5e1;
  color:#1f2937;
  font-weight:600;
}
.customer-portal-cancel-btn:hover{
  background:#e5e7eb;
  border-color:#94a3b8;
  color:#111827;
}
@media (max-width:900px){
  .customer-portal-management-grid{
    grid-template-columns:1fr;
  }
  .customer-portal-pay-form{
    max-width:none;
    width:100%;
  }
  .customer-portal-pay-inline{
    width:100%;
    min-width:0;
  }
  .customer-portal-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .customer-portal-actions-primary,
  .customer-portal-actions-secondary{
    width:100%;
  }
  .customer-portal-actions-primary form,
  .customer-portal-actions-secondary form{
    width:100%;
  }
  .customer-portal-actions-primary .btn,
  .customer-portal-actions-secondary .btn{
    width:100%;
  }
  .customer-portal-actions-primary button,
  .customer-portal-actions-secondary button{
    width:100%;
  }
}

.calendar{border:1px solid #d5dae1;border-radius:14px;padding:1rem;background:#f9fafb}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.38rem;margin-top:.5rem}
.day-name{text-align:center;font-size:.88rem;color:#1f2937;font-weight:700;line-height:1.15}
.day-btn{border:1px solid #d5dae1;border-radius:10px;padding:.56rem .3rem;min-height:48px;background:#fff;cursor:pointer;font-size:.98rem;line-height:1.12}
.day-btn.available{background:#dbeaf4;border-color:#9eb7ca;color:#12384f;box-shadow:inset 0 0 0 1px rgba(18,56,79,.08),0 2px 0 rgba(18,56,79,.08)}
.day-btn.selected{background:#1b4c69;color:#ffffff;border-color:#12384f;box-shadow:0 0 0 2px rgba(197,148,45,.42)}
.slots{margin-top:.8rem}
.slots-event-info{
  margin:.24rem 0 .52rem;
  padding:.58rem .72rem;
  border:1px solid #d4b06d;
  border-left:4px solid #c5942d;
  border-radius:10px;
  background:#fbf4e4;
  color:#5b430f;
  font-weight:700;
  font-size:1rem;
  line-height:1.5;
}
.slot-row{margin-bottom:.45rem}
.slot-btn{margin:0 .22rem 0 0;border:1px solid #a9bac9;background:#fff;color:#163042;border-radius:12px;padding:.52rem .72rem;cursor:pointer;font-size:.96rem;line-height:1.28;font-weight:700;min-height:41px;text-align:left;width:auto}
.slot-btn.reservable{border-color:#87a2b7;background:#d5e5f1;color:#12384f;font-weight:700;box-shadow:inset 0 0 0 1px rgba(18,56,79,.08)}
.slot-btn.reservable:hover{background:#c7daea}
.slot-btn.selected{background:#1b4c69;color:#ffffff;border-color:#12384f;box-shadow:0 0 0 2px rgba(197,148,45,.42)}
.slot-btn.selected:hover{background:#173f57}
.slot-btn.requestable{
  border-color:#c59b45;
  background:#efdcaf;
  color:#5f430d;
  font-weight:700;
}
.slot-btn.requestable:hover{
  background:#e8cf93;
}
.slot-btn:disabled{
  background:#e8edf3;
  border-color:#c4cfdb;
  color:#475569;
  cursor:not-allowed;
  opacity:.95;
}
.slot-meta{display:block;font-size:.88rem;color:#334155;margin:.2rem 0 0 .1rem;line-height:1.28}
.slot-meta-reservable{color:#184760;font-weight:700}
.slot-meta-requestable{color:#7a4d10;font-weight:700}
.slot-meta-full{color:#7f1d1d;font-weight:700}
.slot-meta-advance-restricted{color:#9a3412;font-weight:700}
.slot-meta-inactive{color:#475569;font-weight:600}
.request-mode-note{
  margin:.1rem 0 .75rem;
  padding:.5rem .6rem;
  border:1px solid var(--accent-gold-border);
  border-radius:10px;
  background:var(--accent-gold-soft);
  color:var(--accent-gold-text);
}
.bank-transfer-info-wrap{
  margin:.65rem 0 .35rem;
  padding:.65rem .75rem;
  border:1px solid #d7dee8;
  border-radius:10px;
  background:#f8fbff;
}
.bank-transfer-info-wrap ul{
  margin:.35rem 0 0 1.1rem;
  padding:0;
}
.bank-transfer-info-wrap li{
  margin:.2rem 0;
  color:#334155;
}
.hidden{display:none}

.form-bg{border-radius:14px;padding:1rem;background:#f3f6fb;border:1px solid #d6dff3}
.form-overlay{background:rgba(255,255,255,.92);border-radius:12px;padding:1rem}
.links-inline a{margin-right:.8rem}

body.frontoffice.maintenance-page main{
  max-width:1120px;
  width:100%;
  margin:0 auto;
  padding:1rem;
  flex:1 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
}
.maintenance-card{
  max-width:700px;
  width:100%;
  text-align:center;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(203,213,225,.95);
  box-shadow:0 16px 34px rgba(15,23,42,.18);
}
.maintenance-card h1{
  margin:.1rem 0 .6rem;
  color:#12384f;
}
.maintenance-card p{
  margin:.3rem 0;
}


.calendar-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;margin-bottom:.45rem}
.calendar-head strong{text-align:center}
.month-next,.month-prev{padding:.4rem .72rem;font-size:.88rem;font-weight:600;min-width:128px;text-align:center}
.month-prev:disabled{background:var(--brand);color:#fff;opacity:.65;cursor:not-allowed}
.month-nav-hidden{visibility:hidden;pointer-events:none}
.day-btn{
  color:#0f172a;
  font-weight:700;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,outline-color .16s ease;
}
.day-btn.day-bookable,
.day-btn.available{
  background:#dbeaf4;
  border-color:#9eb7ca;
  color:#12384f;
  box-shadow:inset 0 0 0 1px rgba(18,56,79,.08),0 2px 0 rgba(18,56,79,.08);
}
.day-btn.day-bookable:hover,
.day-btn.available:hover{
  background:#cddfee;
}
.day-btn.day-requestable{
  background:#f2dfb2;
  border-color:#c59b45;
  color:#5f430d;
  box-shadow:inset 0 0 0 1px rgba(95,67,13,.10),0 2px 0 rgba(95,67,13,.06);
}
.day-btn.day-requestable:hover{
  background:#ecd39a;
}
.day-btn.day-unavailable,
.day-disabled{
  background:#f2f6fa;
  border-color:#d2dce7;
  color:#6a7887;
}
.day-btn.day-unavailable:hover,
.day-disabled:hover{
  background:#e8eff6;
}
.day-btn.day-bookable.day-admin-past{
  background:#c5d7e5;
  border-color:#8fa8bc;
  color:#38566d;
  box-shadow:inset 0 0 0 1px rgba(56,86,109,.10),0 2px 0 rgba(56,86,109,.06);
}
.day-btn.day-bookable.day-admin-past:hover{
  background:#b8ccdc;
}
.day-btn.day-requestable.day-admin-past{
  background:#e9d3a6;
  border-color:#b99347;
  color:#6b4d17;
  box-shadow:inset 0 0 0 1px rgba(107,77,23,.10),0 2px 0 rgba(107,77,23,.06);
}
.day-btn.day-requestable.day-admin-past:hover{
  background:#e1c791;
}
.day-btn.day-unavailable.day-admin-past{
  background:#ecf1f6;
  border-color:#c8d2de;
  color:#6d7a88;
}
.day-btn.selected{background:#1b4c69;color:#ffffff;border-color:#12384f;box-shadow:0 0 0 2px rgba(197,148,45,.42)}
.day-btn.selected:hover{background:#173f57}
.day-btn:focus-visible,
.slot-btn:focus-visible,
.month-prev:focus-visible,
.month-next:focus-visible{
  outline:3px solid #0f172a;
  outline-offset:2px;
}
.day-empty{
  background:#f5f7fa;
  color:#a0acba;
  border-color:#e3e9f0;
}
.day-past{
  background:#dbe3eb;
  color:#6b7280;
  border-color:#c4ced9;
}
.terms-row{display:flex;gap:.55rem;align-items:flex-start;margin:.65rem 0 .55rem}
.terms-row input{width:auto;margin-top:.2rem;flex:0 0 auto}
.terms-row span{line-height:1.4}
.payment-method-group{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.55rem;
  margin-bottom:.75rem;
  align-items:stretch;
}
.payment-method-option{
  margin:0;
  cursor:pointer;
  display:flex;
}
.payment-method-option.hidden{
  display:none !important;
}
.payment-method-option input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.payment-method-option-label{
  display:grid;
  grid-template-columns:minmax(170px,210px) minmax(0,1fr);
  align-items:center;
  gap:.75rem;
  width:100%;
  min-height:84px;
  padding:.65rem .78rem;
  border:1px solid #cbd5e1;
  border-radius:10px;
  background:#fff;
  color:#0f172a;
  transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.payment-method-icon{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.3rem;
  min-width:0;
}
.payment-method-copy{
  display:flex;
  flex-direction:column;
  gap:.12rem;
  min-width:0;
}
.payment-method-title{
  display:block;
  font-weight:700;
  line-height:1.2;
}
.payment-method-subtitle{
  display:block;
  font-size:.78rem;
  color:#475569;
  line-height:1.25;
}
.payment-brand{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:8px;
  border:1px solid #d5dbe8;
  background:#fff;
  height:24px;
  padding:0 .26rem;
  font-weight:800;
  letter-spacing:.02em;
  font-size:.62rem;
  line-height:1;
}
.payment-brand-visa{
  min-width:58px;
}
.payment-brand-mastercard{
  min-width:62px;
  font-weight:700;
}
.payment-brand-mastercard .mc-circles{
  position:relative;
  width:18px;
  height:12px;
  flex:0 0 auto;
}
.payment-brand-mastercard .mc-circles::before,
.payment-brand-mastercard .mc-circles::after{
  content:"";
  position:absolute;
  top:0;
  width:12px;
  height:12px;
  border-radius:50%;
}
.payment-brand-mastercard .mc-circles::before{
  left:0;
  background:#eb001b;
}
.payment-brand-mastercard .mc-circles::after{
  right:0;
  background:#f79e1b;
  opacity:.95;
}
.payment-method-icon-online{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  gap:.16rem;
  align-items:center;
  justify-content:flex-start;
}
.payment-method-icon-online.payment-method-icon-online-stripe{
  align-content:flex-start;
}
.payment-method-option-label{align-items:center}
.payment-brand-apple-pay{
  min-width:62px;
  padding:.06rem .22rem;
}
.payment-brand-google-pay{
  min-width:66px;
  padding:.06rem .22rem;
}
.payment-brand-amex{
  min-width:60px;
}
.payment-brand-revolut{
  min-width:70px;
}
.payment-brand-image{
  display:block;
  width:auto;
  max-width:100%;
  height:11px;
  object-fit:contain;
}
.payment-brand-apple-pay .payment-brand-image,
.payment-brand-google-pay .payment-brand-image{
  height:10px;
}
.payment-brand-revolut .payment-brand-image{
  height:10px;
}
.payment-method-icon-parador{
  min-width:120px;
}
.payment-brand-parador{
  min-width:0;
  width:100%;
  max-width:108px;
  justify-content:center;
  align-items:center;
  border-color:#d2dae3;
  padding:.22rem .42rem;
  height:29px;
}
.payment-icon-parador-logo{
  max-width:100%;
  max-height:22px;
  width:auto;
  height:100%;
  object-fit:contain;
  display:block;
}
.payment-method-icon-person{
  gap:.22rem;
}
.payment-method-icon-church{
  min-width:120px;
}
.payment-icon{
  width:26px;
  height:26px;
  color:#475569;
}
.payment-icon-church{
  width:28px;
  height:28px;
}
.payment-icon path{
  fill:currentColor;
}
.payment-method-option:hover .payment-method-option-label{
  background:#f3f5f7;
  border-color:#9eb0be;
}
.payment-method-option input:checked + .payment-method-option-label{
  background:#e8eef2;
  border-color:#7f96a7;
  color:#17384d;
  box-shadow:inset 0 0 0 1px #7f96a7;
}
.payment-method-option input:checked + .payment-method-option-label .payment-method-subtitle{
  color:#17384d;
}
.payment-method-option input:checked + .payment-method-option-label .payment-brand{
  border-color:#b2c1cb;
  background:#f8fafb;
}
.payment-method-option input:checked + .payment-method-option-label .payment-icon{
  color:#17384d;
}
.payment-method-option input:focus-visible + .payment-method-option-label{
  outline:2px solid #56798f;
  outline-offset:2px;
}
@media (max-width:560px){
  .payment-method-group{
    grid-template-columns:1fr;
  }
  .payment-method-option-label{
    min-height:58px;
    gap:.6rem;
    padding:.58rem .65rem;
    grid-template-columns:minmax(148px,176px) minmax(0,1fr);
  }
  .payment-method-icon{
    min-width:0;
  }
  .payment-method-icon-online{
    min-width:0;
    max-width:none;
    gap:.12rem;
  }
  .payment-brand{
    height:21px;
    font-size:.62rem;
    width:auto;
    padding:0 .2rem;
  }
  .payment-brand-mastercard{
    min-width:0;
  }
  .payment-brand-apple-pay,
  .payment-brand-google-pay,
  .payment-brand-amex,
  .payment-brand-revolut,
  .payment-brand-parador{
    min-width:0;
  }
  .payment-brand-parador{
    max-width:92px;
  }
  .payment-brand-image{
    height:9px;
  }
  .payment-method-subtitle{
    font-size:.74rem;
  }
}
@media (max-width:980px){
  .payment-method-option-label{
    grid-template-columns:1fr;
    align-items:flex-start;
    gap:.5rem;
    min-height:0;
  }
  .payment-method-copy{
    width:100%;
  }
  .payment-method-subtitle{
    font-size:.76rem;
  }
}
.recaptcha-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;margin:.5rem 0 .95rem}

.site-footer{position:relative;left:auto;right:auto;bottom:auto;z-index:2;margin-top:auto;min-height:var(--footer-height);background:#0f172a;color:#f8fafc;padding:.65rem 1rem .45rem;border-top:1px solid #020617;box-shadow:0 -8px 18px rgba(2,6,23,.25)}
body.frontoffice .site-footer{margin-top:auto}
.footer-wrap{
  max-width:1400px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.85rem 1rem;
  align-items:start;
}
.footer-col h3{
  margin:0 0 .34rem;
  color:#f8fafc;
  font-size:1rem;
  letter-spacing:.02em;
}
.footer-col-brand .footer-brand-name{
  font-size:1.08rem;
  font-weight:700;
  margin-bottom:.24rem;
}
.footer-links{
  display:flex;
  flex-direction:column;
  gap:.24rem;
}
.footer-links a,
.footer-social-links a{
  color:#f2d087;
  text-decoration:none;
  line-height:1.35;
  background:transparent;
  border:none;
  padding:0;
  box-shadow:none;
}
.footer-links a:visited,
.footer-social-links a:visited{
  color:#e7bc60;
}
.footer-links a:hover,
.footer-links a:focus-visible,
.footer-social-links a:hover,
.footer-social-links a:focus-visible{
  color:#fff4d8;
  text-decoration:underline;
}
.footer-social-links{
  display:flex;
  flex-wrap:wrap;
  gap:.42rem;
}
.footer-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(242,208,135,.42);
  background:rgba(242,208,135,.08);
}
.footer-social-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  color:#f2d087;
}
.footer-social-icon svg{
  width:21px;
  height:21px;
  display:block;
}
.footer-social-link:hover,
.footer-social-link:focus-visible{
  background:rgba(255,244,216,.16);
  border-color:rgba(255,244,216,.6);
}
.footer-info-html{
  color:#e2e8f0;
  font-size:.95rem;
  line-height:1.5;
}
.footer-info-html img{
  display:block;
  max-width:100%;
  height:auto;
  border-radius:10px;
  margin:.22rem 0;
}
.footer-info-html p{margin:.2rem 0}
.site-footer .small{color:#f1f5f9}
.footer-col-login-wrap{
  margin-top:.5rem;
}
.footer-col-login-wrap-info{
  margin-top:.62rem;
}
.footer-col-login-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.16rem .52rem;
  border-radius:999px;
  border:1px solid rgba(226,232,240,.4);
  background:rgba(148,163,184,.14);
  color:#f8fafc;
  text-decoration:none;
  font-size:.86rem;
  line-height:1.2;
}
.footer-col-login-btn:visited{
  color:#f8fafc;
}
.footer-col-login-btn:hover,
.footer-col-login-btn:focus-visible{
  background:rgba(148,163,184,.24);
  border-color:rgba(226,232,240,.62);
  text-decoration:none;
}
.footer-bottom{
  max-width:1400px;
  margin:.55rem auto 0;
  padding-top:.45rem;
  border-top:1px solid rgba(148,163,184,.22);
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.5rem;
  flex-wrap:wrap;
  text-align:left;
}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:.8rem 1rem;background:rgba(15,23,42,.95);color:#e5e7eb;box-shadow:0 -8px 24px rgba(15,23,42,.28)}
.cookie-banner.hidden{display:none}
.cookie-banner-body{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:.4rem}
.cookie-banner-body p{margin:.1rem 0 0;font-size:.9rem;line-height:1.35}
.cookie-banner-actions{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}
.cookie-banner .btn{padding:.45rem .75rem;border-radius:8px;font-size:.82rem}
@media (max-width:700px){
  :root{--footer-height:96px}
  .footer-wrap{
    grid-template-columns:1fr;
    gap:.62rem;
  }
  .footer-bottom{
    margin-top:.45rem;
    justify-content:flex-start;
    text-align:left;
  }
  .cookie-banner{padding:.72rem .85rem}
  .cookie-banner-actions{display:grid;grid-template-columns:1fr;gap:.35rem}
  .cookie-banner .btn{text-align:center}
}

.calendar-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap;margin:.5rem 0 .9rem}
.calendar-admin-table-wrap{width:100%;overflow-x:auto}
.calendar-admin-table{min-width:760px}

.calendar-admin-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.calendar-admin-dayname{text-align:center;font-size:.82rem;color:#6b7280;font-weight:700}
.calendar-admin-empty{min-height:44px}
.calendar-admin-day{border:1px solid #d1d5db;background:#fff;color:#0f172a;border-radius:10px;min-height:44px;cursor:pointer;font-weight:700}
.calendar-admin-day:hover{background:#ecf1f5}
.calendar-admin-day.selected{background:var(--brand);color:#fff;border-color:var(--brand)}
.calendar-shortcuts{display:flex;gap:.5rem;flex-wrap:wrap;margin:.9rem 0 .6rem}
.calendar-slot-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5rem;margin-top:.35rem}
.calendar-slot-checks label{display:flex;align-items:flex-start;gap:.45rem;padding:.55rem;border:1px solid #dbe1ef;border-radius:10px;background:#f8faff;font-weight:500}
.calendar-slot-checks input{width:auto;margin-top:.1rem}
.summary-day{margin:.55rem 0;border:1px solid #dbe1ef;border-radius:10px;background:#fff}
.summary-day summary{
  cursor:pointer;
  padding:.65rem .75rem;
  font-weight:700;
  color:var(--acc-sub-text);
  border-radius:8px;
  background:var(--acc-sub-strong-bg);
}
.summary-day summary::marker{color:var(--acc-sub-marker)}
.summary-day[open] summary{border-bottom:1px solid #e5e7eb}


body.backoffice .app-shell{display:flex;flex:1 1 auto;min-height:0;position:relative;z-index:6}
.sidebar{width:280px;background:rgba(255,255,255,.96);color:#1f2937;padding:.85rem 1rem 1rem;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:.8rem;border-right:1px solid #d7dde8;box-shadow:8px 0 20px rgba(15,23,42,.06);overflow-y:auto}
.side-nav{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
.side-nav a{color:#111827;text-decoration:none;padding:.45rem .55rem;border-radius:8px;width:100%;background:#d8dde4;border:1px solid #c0c7d1;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.side-nav a:hover{background:#ccd4de}
.side-nav a.active,
.side-nav a[aria-current="page"]{
  background:#2f3740;
  color:#fff;
  border-color:#242b32;
  font-weight:700;
}
.side-nav a.active:hover,
.side-nav a[aria-current="page"]:hover{
  background:#2b323a;
}
.content-area{flex:1;max-width:none;margin:0;padding:1rem 1rem 2rem}
body.backoffice.backoffice-cms .content-area{
  padding-top:1.45rem;
}
body.backoffice.backoffice-cms .content-area > .card:first-child{
  margin-top:.35rem;
}
.mobile-menu-btn{display:none;position:fixed;left:12px;top:12px;z-index:60}
.mobile-menu-close{display:none}
@media (max-width:900px){
  body.backoffice .app-shell{display:block;z-index:8}
  .sidebar{position:fixed;left:-290px;top:0;height:100vh;z-index:120;transition:left .2s ease}
  .sidebar.open{left:0}
  .content-area{padding:4rem 1rem 2rem}
  body.backoffice.backoffice-cms .content-area{
    padding-top:4.35rem;
  }
  .mobile-menu-btn{display:inline-block}
  .mobile-menu-close{
    display:inline-flex;
    align-self:flex-end;
    padding:.35rem .6rem;
    margin-bottom:.15rem;
    border-radius:8px;
    border:1px solid #cbd5e1;
    background:#f1f5f9;
    color:#1f2937;
    font-size:.8rem;
    cursor:pointer;
  }
  main{padding:0 .7rem 1.2rem}
  .card{padding:.85rem;border-radius:12px}
  button,.btn{padding:.55rem .8rem}
  nav{gap:.28rem}
  nav a{padding:.3rem .5rem;font-size:.86rem}
}

@media (min-width:901px){
  .card:hover{box-shadow:var(--shadow-hover)}
}

.grecaptcha-badge{visibility:hidden}

.day-btn:disabled{opacity:1}

@media (max-width:700px){
  .calendar-head{grid-template-columns:1fr}
  .calendar-head strong{order:1}
  .month-prev{order:2}
  .month-next{order:3}
  .month-next,.month-prev{width:100%;min-width:0}
}

@media (max-width:1200px), (hover:none) and (pointer:coarse){
  .booking-filters-card{display:none}
  .booking-mobile-search-fab{
    display:inline-flex !important;
    position:fixed;
    left:auto;
    right:12px;
    top:12px;
    bottom:auto;
    z-index:60;
    align-items:center;
    justify-content:center;
    min-height:0;
    padding:.55rem .8rem;
    border-radius:var(--radius-md);
    background:var(--brand);
    color:#fff;
    border:1px solid rgba(31,41,55,.22);
    box-shadow:none;
    font-weight:700;
    font-size:.84rem;
  }
  .booking-mobile-search-panel{display:block}
  .booking-mobile-search-panel.hidden{display:none}
  .reservations-table{min-width:0;border-collapse:separate;border-spacing:0 .6rem}
  .reservations-table thead{display:none}
  .reservations-table tbody{display:block}
  .reservations-table tr.reservation-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .8rem;border:1px solid #dbe1ef;border-radius:12px;padding:.7rem .75rem;margin-bottom:.25rem}
  .reservations-table tr.reservation-row.reservation-cancelled{background:#ffe7e7}
  .reservations-table tr.reservation-row.reservation-no-show{background:#fff2df}
  .reservations-table tr.reservation-row.reservation-pending-payment{background:#fff9d9}
  .reservations-table tr.reservation-row.reservation-church-payment{background:#f1e8ff}
  
  .reservations-table tr.reservation-row > td{border-bottom:none;padding:0;background:transparent}
  .reservations-table tr.reservation-row > td::before{content:attr(data-label);display:block;font-size:.72rem;color:var(--muted);font-weight:700;margin-bottom:.15rem}
  .reservations-table tr.reservation-row > td[data-label=""]::before{display:none;margin:0}
  .reservations-table tr.reservation-row .reservation-actions-cell{grid-column:1 / -1;margin-top:.25rem;padding-top:.55rem;border-top:1px solid #dbe1ef;min-width:0}
  .reservations-table tr.reservation-row .actions-wrap{min-width:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem}
  .reservations-table tr.reservation-row .actions-wrap .inline-form{display:block;width:100%}
  .reservations-table tr.reservation-row .actions-wrap .btn,
  .reservations-table tr.reservation-row .actions-wrap button{width:100%;min-width:0}
  .reservations-table tr.reservation-row .actions-wrap .payment-form{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;gap:.35rem}
  .reservations-table tr.reservation-row .actions-wrap .payment-select{width:100%;max-width:none;min-width:0}
  .reservations-table tr.reservation-details > td{display:block;padding:.65rem .75rem}
  .reservations-table tr.reservation-group-row,.reservations-table tr.reservation-group-empty{display:block}
  .reservations-table tr.reservation-group-row > td,.reservations-table tr.reservation-group-empty > td{display:block;border-bottom:none;padding:.45rem .15rem;background:transparent}
  .details-grid{grid-template-columns:1fr}
  .payment-form{min-width:0}
}

@media (max-width:900px){
  .calendar-admin-table{min-width:680px}
  .calendar-admin-toolbar{justify-content:center}
  .calendar-shortcuts .btn{flex:1 1 180px}
  .calendar-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
  .calendar-admin-day{
    min-height:88px;
    padding:.32rem .38rem;
  }
  .calendar-admin-day-line,
  .calendar-admin-day-event{
    font-size:.64rem;
  }
  .calendar-admin-day-guide{
    font-size:.63rem;
  }
  .calendar-month-table{
    min-width:0;
  }
  .calendar-month-table thead{
    display:none;
  }
  .calendar-month-table tbody{
    display:block;
  }
  .calendar-month-table tr{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.32rem .62rem;
    border:1px solid #dbe1ef;
    border-radius:10px;
    padding:.52rem .62rem;
    margin:.45rem 0;
    background:#fff;
  }
  .calendar-month-table td{
    border-bottom:none;
    padding:0;
  }
  .calendar-month-table td::before{
    content:attr(data-label);
    display:block;
    font-size:.72rem;
    color:var(--muted);
    font-weight:700;
    margin-bottom:.12rem;
  }
}



.guide-legend{display:flex;gap:.5rem;flex-wrap:wrap;margin:.65rem 0 .9rem}
.guide-legend-item{display:inline-flex;align-items:center;padding:.3rem .6rem;border-radius:999px;border:1px solid #dbe1ef;font-size:.82rem;font-weight:600;color:#334155;background:#f8fafc}
.guide-legend-morning{background:#e9f8ec;border-color:#b7e6bf}
.guide-legend-afternoon{background:#e7f1ff;border-color:#b9d2ff}
.guide-legend-both{background:#fff1df;border-color:#ffd7a8}
.guide-legend-unavailable{background:#fdecec;border-color:#f5b8b8}
.guide-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.guide-calendar-day{position:relative;border:1px solid #d1d5db;background:#fff;color:#0f172a;border-radius:10px;min-height:56px;cursor:pointer;font-weight:700;padding:.2rem .35rem;text-align:left}
.guide-calendar-day:hover{background:#ecf1f5}
.guide-calendar-day.selected{outline:2px solid var(--brand);outline-offset:1px}
.guide-day-head{display:flex;align-items:center;gap:.28rem}
.guide-day-weekday{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.25rem;
  padding:.05rem .28rem;
  border-radius:999px;
  background:#dbe3ea;
  color:#2d3f4e;
  font-size:.66rem;
  font-weight:800;
  line-height:1.1;
}
.guide-day-number{font-size:1rem;line-height:1}
.guide-day-flags{position:absolute;right:.35rem;bottom:.25rem;display:flex;gap:.2rem;font-size:.72rem;color:#0f172a}
.guide-day-flags span{background:rgba(255,255,255,.72);border:1px solid rgba(15,23,42,.15);border-radius:999px;padding:0 .3rem}
.guide-day-morning{background:#e9f8ec;border-color:#b7e6bf}
.guide-day-afternoon{background:#e7f1ff;border-color:#b9d2ff}
.guide-day-both{background:#fff1df;border-color:#ffd7a8}
.guide-day-unavailable{box-shadow:inset 0 0 0 2px #ef4444}
.guide-calendar-day.selected .guide-day-weekday{
  background:var(--brand-2);
  color:#eff6ff;
  border:1px solid #173f57;
}

.event-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.event-day{
  border:1px solid #d1d5db;
  background:#fff;
  border-radius:10px;
  min-height:74px;
  padding:.35rem .42rem;
  display:flex;
  flex-direction:column;
  gap:.2rem;
  cursor:pointer;
  transition:box-shadow .14s ease, transform .12s ease, border-color .12s ease;
}
.event-day:hover{box-shadow:0 8px 16px rgba(15,23,42,.12);transform:translateY(-1px)}
.event-day:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(18,56,79,.26)}
.event-day.event-day-selected{
  border-color:#12384f;
  box-shadow:0 0 0 2px rgba(18,56,79,.24), 0 8px 16px rgba(15,23,42,.12);
}
.event-day-morning{background:#e9f8ec;border-color:#b7e6bf}
.event-day-afternoon{background:#e7f1ff;border-color:#b9d2ff}
.event-day-both{background:#fff1df;border-color:#ffd7a8}
.event-day-head{display:flex;align-items:center;justify-content:space-between;gap:.3rem}
.event-day-badge{
  display:inline-flex;
  align-items:center;
  padding:.05rem .35rem;
  border-radius:999px;
  font-size:.66rem;
  font-weight:700;
  background:rgba(15,23,42,.12);
  color:#0f172a;
}
.event-day-line{
  font-size:.68rem;
  line-height:1.24;
  color:#334155;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.js-event-edit-target.is-active{
  background:#1f516b;
  color:#fff;
  border-color:#173e53;
}

/* Calendar management: informative day cards */
.calendar-admin-day{
  min-height:128px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  gap:.16rem;
  padding:.36rem .46rem;
  font-weight:600;
  overflow:hidden;
}
.calendar-admin-day.has-active{background:#e8eef3;border-color:#9cb1bf}
.calendar-admin-day.selected{background:var(--brand);color:#fff;border-color:var(--brand)}
.calendar-admin-day-head{
  display:flex;
  align-items:center;
  gap:.3rem;
}
.calendar-admin-day-weekday{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:1.35rem;
  padding:.05rem .3rem;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:.67rem;
  font-weight:800;
  line-height:1.1;
}
.calendar-admin-day-number{font-size:.95rem;font-weight:800;line-height:1.1}
.calendar-admin-day-tag{display:inline-flex;align-items:center;padding:.08rem .4rem;border-radius:999px;font-size:.7rem;font-weight:700;background:var(--brand);color:#fff}
.calendar-admin-day.selected .calendar-admin-day-tag{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.35)}
.calendar-admin-day.selected .calendar-admin-day-weekday{
  background:rgba(255,255,255,.2);
  color:#eff6ff;
  border:1px solid rgba(255,255,255,.28);
}
.calendar-admin-day-line{font-size:.72rem;line-height:1.25;color:#27485f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.calendar-admin-day-guide{font-size:.7rem;line-height:1.25;color:#334155}
.calendar-admin-day-event{font-size:.69rem;line-height:1.25;color:#7c2d12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.calendar-admin-day.selected .calendar-admin-day-line,
.calendar-admin-day.selected .calendar-admin-day-guide,
.calendar-admin-day.selected .calendar-admin-day-event{color:#eff6ff}

@media (max-width:900px){
  .calendar-admin-day{min-height:88px}
}

.settings-image-preview{
  margin:.8rem 0 1rem;
  min-height:160px;
  border-radius:12px;
  border:1px solid #d6d9e5;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
}
.settings-image-preview-label{
  width:100%;
  background:rgba(15,23,42,.65);
  color:#fff;
  padding:.45rem .65rem;
  font-size:.8rem;
  font-weight:600;
}
.front-description-box{
  border:1px solid #c7d0d8;
  background:#e6ecf1;
  border-left:1px solid #c7d0d8;
  border-radius:12px;
  padding:.85rem .95rem;
  line-height:1.45;
}
@media (max-width:700px){
  .calendar-admin-dayname,
  .calendar-admin-empty{display:none}
  .calendar-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .calendar-admin-day{min-height:96px}
  .calendar-admin-day-line,.calendar-admin-day-event{font-size:.66rem}
  .guide-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .event-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
  .event-calendar-grid .calendar-admin-dayname,
  .event-calendar-grid .calendar-admin-empty{display:none}
  .guide-calendar-grid .calendar-admin-dayname,
  .guide-calendar-grid .calendar-admin-empty{display:none}
  .guide-calendar-day{min-height:90px;padding:.28rem .34rem}
  .guide-day-flags{right:.25rem;bottom:.2rem;font-size:.66rem}
}
@media (max-width:560px){
  .calendar-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.dashboard-accordion-item summary{cursor:pointer}
.calendar-accordion-item summary{cursor:pointer}

body.frontoffice.homepage main{
  max-width:1500px;
  margin:0 auto;
  padding:calc(var(--front-header-offset) + .35rem) 1.2rem 2rem;
}
body.frontoffice.reservations-page main{
  max-width:1500px;
  margin:0 auto;
  padding:calc(var(--front-header-offset) + .45rem) 1.2rem 2rem;
}
.home-shell{
  max-width:1500px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}
.reservations-page .home-shell{
  gap:.8rem;
}
.home-hero{
  background:rgba(13,33,46,.42);
  border:1px solid rgba(255,255,255,.24);
  box-shadow:0 18px 34px rgba(15,23,42,.22);
  border-radius:18px;
  padding:1.45rem 1.25rem .95rem;
  margin-bottom:.25rem;
}
.home-hero.front-grid{
  grid-template-columns:minmax(0,1.15fr) minmax(420px,560px);
  gap:1.45rem;
  align-items:start;
}
.home-copy-wrap{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:.2rem;
  max-width:820px;
  padding:.92rem 1rem .98rem;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg, rgba(9,24,35,.42), rgba(9,24,35,.26));
  box-shadow:0 14px 30px rgba(2,6,23,.26);
  backdrop-filter:blur(1.2px);
}
.home-copy-wrap > *{
  position:relative;
  z-index:1;
}
.home-title{
  color:#f8fafc;
  text-shadow:0 8px 24px rgba(0,0,0,.74);
  display:inline-block;
  max-width:100%;
  padding:.1rem 0 .15rem;
  font-weight:800;
  line-height:1.06;
  font-size:clamp(2rem,3.3vw,var(--home-hero-title-size,3.2rem));
  margin:0 0 .62rem;
  letter-spacing:.01em;
  text-wrap:balance;
  max-width:17.5ch;
}
.hero-subtitle{
  color:#f1f5f9;
  margin:0 0 .68rem;
  font-size:clamp(1.08rem,1.65vw,1.42rem);
  line-height:1.34;
  font-weight:600;
  text-shadow:0 3px 14px rgba(0,0,0,.62);
  max-width:58ch;
  text-wrap:pretty;
}
.home-copy{
  color:#f8fafc;
  font-size:1.03rem;
  line-height:1.58;
  text-shadow:0 1px 4px rgba(0,0,0,.36);
  background:transparent;
  backdrop-filter:none;
  border:none;
  border-radius:0;
  padding:0;
}
.home-copy ul{
  padding-left:1.2rem;
}
.home-copy li{
  margin-bottom:.38rem;
}
.home-hero .front-description-box{
  background:rgba(12,28,40,.58);
  border:1px solid rgba(255,255,255,.24);
  border-left:4px solid var(--accent-gold);
  color:#f8fafc;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.09);
  max-width:760px;
  padding:1rem 1.05rem;
  font-size:1.05rem;
  line-height:1.62;
}
.home-hero .front-description-box p{
  margin:.34rem 0;
}
.home-hero .front-description-box h2,
.home-hero .front-description-box h3,
.home-hero .front-description-box h4{
  color:#f8fafc;
  margin:.24rem 0 .36rem;
}
.home-hero .front-description-box ul,
.home-hero .front-description-box ol{
  margin:.34rem 0 .42rem 1.2rem;
  padding:0;
}
.home-hero .front-description-box li{
  margin:.16rem 0;
}
.reservations-page .home-copy-wrap{
  padding:0;
  border:none;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.reservations-page .home-hero .front-description-box{
  background:rgba(10,24,34,.66);
  border:1px solid rgba(255,255,255,.2);
  border-left:4px solid var(--accent-gold);
  box-shadow:none;
}
.home-calendar{
  justify-self:end;
  width:min(100%,580px);
  background:rgba(251,252,253,.98);
  border:1px solid #aab8c6;
  border-top:4px solid var(--brand);
  box-shadow:0 18px 36px rgba(15,23,42,.24);
}
.home-calendar .calendar-head{
  margin-bottom:.6rem;
}
.home-calendar .calendar-head strong{
  color:var(--brand);
  font-size:1rem;
  font-weight:700;
}
.home-calendar .month-prev,
.home-calendar .month-next{
  background:#e4ebf2;
  color:#0f172a;
  border-color:#9fb2c5;
  font-weight:700;
}
.home-calendar .month-prev:hover,
.home-calendar .month-next:hover{
  background:#d6e1ec;
}
.home-calendar .slots > p > strong{
  font-size:1.1rem;
  color:#0f172a;
}
.home-calendar #slotButtons{
  margin-top:.2rem;
}
.parador-gate{
  width:fit-content;
  max-width:100%;
  margin:2.25rem 0 .55rem auto;
  border:1px solid #c2ccd6;
  border-left:4px solid var(--accent-gold);
  border-radius:14px;
  background:rgba(248,250,252,.97);
  box-shadow:0 12px 24px rgba(15,23,42,.12);
  padding:1rem 1.05rem;
}
.parador-gate-title{
  margin:0 0 .28rem;
  font-size:1.18rem;
  line-height:1.2;
  color:var(--brand);
}
.parador-gate-help{
  max-width:660px;
  margin-bottom:.2rem;
}
.parador-gate-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:.65rem;
}
.parador-choice-btn{
  min-width:178px;
  width:auto;
  max-width:100%;
  font-weight:700;
  padding:.64rem .9rem;
}
.parador-choice-btn-primary{
  background:var(--brand);
  border-color:#0f2d40;
}
.parador-choice-btn-primary:hover{
  background:#1a4a63;
}
.parador-choice-btn-secondary{
  background:#f9fafb;
  border-color:#c2ccd6;
  color:#1f2937;
}
.parador-choice-btn-secondary:hover{
  background:#e9eef3;
}
.parador-choice-btn:focus-visible{
  outline:2px solid #68849a;
  outline-offset:2px;
}
.parador-selection-meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.6rem;
  margin:0 0 .55rem;
  padding:.52rem .58rem;
  border:1px solid #c1cad3;
  border-left:3px solid var(--accent-gold);
  border-radius:10px;
  background:#f0f4f7;
}
.parador-selection-meta p{
  margin:0;
}
.visit-type-summary-panel{
  border:1px solid #c9d3de;
  border-left:4px solid var(--accent-gold);
  background:rgba(248,250,252,.97);
  box-shadow:0 10px 24px rgba(15,23,42,.12);
  padding:1rem 1.05rem;
}
.visit-type-summary-panel h3{
  margin:.08rem 0 .24rem;
  color:#12384f;
  font-weight:800;
}
.visit-type-summary-panel p{
  margin:.3rem 0 0;
  line-height:1.5;
  color:#1f2937;
}
.visit-type-summary-actions{
  margin-top:.72rem;
  display:flex;
  justify-content:flex-start;
}
.visit-type-summary-actions .btn.is-disabled,
.visit-type-summary-actions .btn:disabled{
  opacity:.58;
  cursor:not-allowed;
  filter:none;
  transform:none;
}
.reservation-form-card{
  border:1px solid #c3ced8;
  border-top:4px solid var(--brand);
  background:#edf2f6;
  box-shadow:0 14px 30px rgba(15,23,42,.14);
}
.reservation-form-card .form-overlay{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(197,208,219,.72);
}
.reservation-form-title{
  margin:.1rem 0 .45rem;
  color:var(--brand);
}
.reservation-form-grid{
  row-gap:.75rem;
}
.reservation-form-card .reservation-form-grid > div > label,
.reservation-form-card #paymentMethodWrap > label,
.reservation-form-card > .form-overlay > form > label:not(.terms-row){
  font-size:.99rem;
  line-height:1.2;
  color:#1f2937;
  font-weight:700;
  letter-spacing:.01em;
  margin:.3rem 0 .28rem;
}
.reservation-form-card .reservation-form-grid input:not([type="hidden"]),
.reservation-form-card .reservation-form-grid select,
.reservation-form-card .reservation-form-grid textarea,
.reservation-form-card .reservation-form-grid .form-static-value{
  min-height:44px;
  padding:.65rem .72rem;
  border:1.25px solid #c8d3de;
  border-radius:var(--radius-md);
  background:#fff;
  color:#1f2937;
  font-size:1rem;
  line-height:1.25;
}
.reservation-form-card textarea[name="notes"]{
  min-height:116px;
  padding:.68rem .72rem;
  font-size:1rem;
  line-height:1.4;
}
.reservation-form-card .terms-row{
  margin:.75rem 0 .65rem;
  padding:.58rem .68rem;
  border:1px solid #d3dbe4;
  border-radius:10px;
  background:#f8fafc;
}
.price-preview-card{
  padding:.65rem .8rem;
  margin:.5rem 0 .85rem;
  border:1px solid #c9d3de;
  border-left:4px solid var(--brand);
  background:#eef3f7;
  box-shadow:none;
}
.price-preview-card strong{
  color:#1c3f56;
}
.price-preview-empty{
  color:#475569;
  font-weight:600;
}
.gift-card-redeem-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.52rem;
  align-items:center;
}
.gift-card-redeem-btn{
  min-height:44px;
  padding:.56rem .9rem;
  white-space:nowrap;
}
.gift-card-status{
  margin:.34rem 0 0;
  font-weight:700;
}
.gift-card-status.hidden{
  display:none;
}
.gift-card-status.is-info{
  color:#334155;
}
.gift-card-status.is-success{
  color:#166534;
}
.gift-card-status.is-warning{
  color:#92400e;
}
.gift-card-status.is-error{
  color:#b91c1c;
}
.booking-summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:.5rem .7rem;
  margin-top:.45rem;
}
.booking-summary-item{
  border:1px solid #d1dae3;
  border-radius:10px;
  background:#fff;
  padding:.48rem .58rem;
}
.booking-summary-label{
  display:block;
  font-size:.8rem;
  color:#64748b;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:uppercase;
  margin-bottom:.16rem;
}
.booking-summary-value{
  display:block;
  color:#12384f;
  font-size:1rem;
  font-weight:700;
  line-height:1.28;
}
.booking-summary-total{
  border-left:4px solid var(--brand);
}
.booking-summary-total .booking-summary-value{
  color:#0f172a;
}
.booking-summary-discount .booking-summary-value{
  color:#0f766e;
}
.reservation-submit-btn{
  min-width:240px;
  min-height:52px;
  padding:.8rem 1.2rem;
  font-size:1.07rem;
  font-weight:700;
}
.form-static-value{
  display:flex;
  align-items:center;
  min-height:0;
  border:1px solid #d3daeb;
  border-radius:var(--radius-md);
  padding:.65rem;
  margin-bottom:.45rem;
  background:#fff;
  color:#1f2937;
  font-size:.99rem;
  font-weight:500;
  line-height:1.2;
}
body.frontoffice.homepage .small,
body.frontoffice.reservations-page .small{
  font-size:.92rem;
  line-height:1.45;
}
.form-static-value:focus,
.form-static-value:focus-visible{
  outline:none;
  border-color:#56798f;
  box-shadow:0 0 0 3px rgba(18,56,79,.16);
}
.btn.btn-ghost{
  background:#fff;
  color:#1f2937;
  border-color:#c5ccd5;
}
.gift-mode-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:.6rem;
  margin:.55rem 0 .75rem;
}
.gift-mode-option{
  margin:0;
  display:flex;
  align-items:flex-start;
  gap:.52rem;
  border:1px solid #c8d3de;
  border-radius:12px;
  background:#f8fafc;
  padding:.7rem .75rem;
  cursor:pointer;
}
.gift-mode-option input{
  width:auto;
  margin:.08rem 0 0;
}
.gift-mode-option span{
  display:flex;
  flex-direction:column;
  gap:.12rem;
}
.gift-mode-option strong{
  color:#12384f;
  line-height:1.2;
}
.gift-mode-option small{
  color:#475569;
  line-height:1.3;
}
.gift-mode-fields{
  margin:.15rem 0 .65rem;
}
.gift-card-payment-only{
  margin:.2rem 0 .9rem;
  padding:.65rem .75rem;
  border:1px solid #c9d3de;
  border-left:4px solid #635bff;
  border-radius:10px;
  background:#f8f9ff;
}
.gift-card-payment-only strong{
  display:block;
  margin-bottom:.28rem;
  color:#3730a3;
}
.gift-card-payment-only .small{
  margin:.28rem 0 0;
}
@media (max-width:1100px){
  body.frontoffice.homepage main{
    margin:0 auto;
    padding:calc(var(--front-header-offset) + .2rem) .85rem 1.6rem;
  }
  body.frontoffice.reservations-page main{
    margin:0 auto;
    padding:calc(var(--front-header-offset) + .25rem) .85rem 1.6rem;
  }
  .home-hero.front-grid{
    grid-template-columns:1fr;
    gap:1.05rem;
  }
  .home-hero{
    padding:1.1rem .95rem .9rem;
  }
  .home-copy-wrap{
    max-width:none;
    padding:.8rem .82rem .86rem;
  }
  .home-title{
    max-width:100%;
    font-size:clamp(1.9rem,5.8vw,var(--home-hero-title-size,2.65rem));
    margin:0 0 .56rem;
  }
  .hero-subtitle{
    max-width:100%;
    font-size:clamp(1.05rem,3.6vw,1.28rem);
    margin:0 0 .56rem;
  }
  .home-calendar{
    justify-self:stretch;
    width:100%;
  }
  .parador-gate{
    margin:1.45rem 0 .4rem;
    width:100%;
    max-width:100%;
  }
}
@media (max-width:700px){
  .home-calendar{
    padding:.84rem .72rem;
  }
  .home-calendar .calendar-grid{
    gap:.42rem;
  }
  .home-calendar .day-name{
    font-size:.84rem;
    font-weight:700;
  }
  .home-calendar .day-btn{
    min-height:50px;
    font-size:1rem;
    padding:.58rem .24rem;
  }
  .home-calendar .slot-btn{
    min-height:44px;
    font-size:.96rem;
    padding:.56rem .66rem;
    width:100%;
    margin-right:0;
  }
  .home-calendar .slot-meta{
    font-size:.86rem;
  }
  .home-shell{
    gap:.6rem;
  }
  .gift-card-redeem-row{
    grid-template-columns:1fr;
  }
  .gift-card-redeem-btn{
    width:100%;
  }
  .gift-mode-grid{
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .home-hero{
    border-radius:14px;
    padding:.92rem .78rem .75rem;
  }
  .home-title{
    margin:0 0 .46rem;
    letter-spacing:0;
    line-height:1.04;
    font-size:clamp(1.74rem,7.4vw,var(--home-hero-title-size,2.2rem));
  }
  .hero-subtitle{
    margin:0 0 .5rem;
    line-height:1.3;
    font-size:clamp(1.02rem,4.2vw,1.16rem);
  }
  .home-copy-wrap{
    padding:.72rem .68rem .74rem;
    border-radius:12px;
  }
  .home-hero .front-description-box{
    padding:.82rem .82rem;
    font-size:1rem;
    line-height:1.56;
  }
  .parador-gate-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:.5rem;
  }
  .parador-choice-btn{
    width:100%;
    min-width:0;
  }
  .parador-selection-meta{
    display:grid;
    grid-template-columns:1fr;
    gap:.4rem;
  }
  .reservation-submit-btn{
    width:100%;
    min-width:0;
    min-height:54px;
    padding:.85rem 1rem;
    font-size:1.06rem;
  }
  .booking-summary-grid{
    grid-template-columns:1fr;
    gap:.42rem;
  }
}



.template-box{margin:.85rem 0;padding:.8rem;border:1px solid #dbe3f4;border-radius:12px;background:#f8fbff}
.template-box h3{margin:.1rem 0 .5rem;color:#2c4b60}
.settings-accordion-section{
  margin:.45rem 0;
  padding:.35rem .55rem;
  border:1px solid #dbe1eb;
  border-radius:12px;
  background:#fff;
}
.settings-accordion-section > summary{
  cursor:pointer;
  display:block;
  padding:.62rem .76rem;
  border-radius:10px;
  background:var(--acc-main-start);
  color:var(--acc-main-text);
  border:1px solid var(--acc-main-border);
  font-weight:800;
}
.settings-accordion-section > summary::marker{color:var(--acc-main-marker)}
.settings-accordion-section[open] > summary{margin-bottom:.65rem}
.settings-accordion-item summary{cursor:pointer;color:#2c4b60}
.settings-accordion-item[open] summary{margin-bottom:.45rem}

.wysiwyg{border:1px solid #d3daeb;border-radius:10px;background:#fff;margin-bottom:.45rem;overflow:hidden}
.wysiwyg-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;padding:.45rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}
.wysiwyg-toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:.28rem;padding-right:.35rem;margin-right:.35rem;border-right:1px solid #dce4ee}
.wysiwyg-toolbar-group:last-child{padding-right:0;margin-right:0;border-right:none}
.wysiwyg-toolbar .wysiwyg-btn{background:#fff;color:#1f2937;border:1px solid #cbd5e1;border-radius:8px;padding:.3rem .52rem;min-height:30px;font-size:.78rem;font-weight:700;line-height:1.1;cursor:pointer}
.wysiwyg-toolbar .wysiwyg-btn:hover{background:#ecf1f5;border-color:#9cb1bf}
.wysiwyg-toolbar .wysiwyg-btn:focus-visible{outline:2px solid rgba(18,56,79,.28);outline-offset:1px}
.wysiwyg-toolbar .wysiwyg-select{background:#fff;color:#1f2937;border:1px solid #cbd5e1;border-radius:8px;padding:.31rem .45rem;min-height:30px;font-size:.78rem;min-width:110px}
.wysiwyg-editor{min-height:140px;padding:.65rem;outline:none;line-height:1.45}
.wysiwyg-editor:focus{box-shadow:inset 0 0 0 2px rgba(18,56,79,.18)}
.wysiwyg-editor.wysiwyg-invalid{box-shadow:inset 0 0 0 2px #dc2626}
.wysiwyg-editor p{margin:.3rem 0}
.wysiwyg-editor ul,.wysiwyg-editor ol{margin:.35rem 0 .35rem 1.2rem;padding:0}
.wysiwyg-editor h2,.wysiwyg-editor h3,.wysiwyg-editor h4{margin:.48rem 0 .28rem}
.wysiwyg-editor blockquote{margin:.45rem 0;padding:.2rem .72rem;border-left:3px solid #94a3b8;color:#334155}
.wysiwyg-editor pre{margin:.45rem 0;padding:.5rem .65rem;border-radius:8px;background:#f1f5f9;overflow:auto}
.wysiwyg-editor .cms-rich-table{width:100%;border-collapse:collapse;margin:.55rem 0}
.wysiwyg-editor .cms-rich-table th,.wysiwyg-editor .cms-rich-table td{border:1px solid #cbd5e1;padding:.4rem .48rem;vertical-align:top}
.wysiwyg-editor .cms-rich-table th{background:#eef2f7;font-weight:700}
.wysiwyg-source{position:absolute !important;left:-10000px !important;top:auto !important;width:1px !important;height:1px !important;opacity:0 !important;overflow:hidden !important}
.cms-rich-table{width:100%;border-collapse:collapse;margin:.55rem 0}
.cms-rich-table th,.cms-rich-table td{border:1px solid #cbd5e1;padding:.4rem .48rem;vertical-align:top}
.cms-rich-table th{background:#eef2f7;font-weight:700}
.cms-color-text-slate{color:#0f172a}
.cms-color-text-blue{color:#1d4ed8}
.cms-color-text-green{color:#047857}
.cms-color-text-red{color:#b91c1c}
.cms-color-text-amber{color:#b45309}
.cms-color-bg-blue{background:#dbeafe;border-radius:3px;padding:0 .14em}
.cms-color-bg-green{background:#dcfce7;border-radius:3px;padding:0 .14em}
.cms-color-bg-amber{background:#fef3c7;border-radius:3px;padding:0 .14em}
.cms-color-bg-rose{background:#ffe4e6;border-radius:3px;padding:0 .14em}
.cms-color-bg-slate{background:#e2e8f0;border-radius:3px;padding:0 .14em}
@media (max-width:700px){
  .wysiwyg-toolbar{padding:.36rem;gap:.26rem}
  .wysiwyg-toolbar-group{border-right:none;padding-right:0;margin-right:0}
  .wysiwyg-toolbar .wysiwyg-btn{font-size:.73rem;padding:.28rem .44rem;min-height:28px}
  .wysiwyg-toolbar .wysiwyg-select{font-size:.73rem;min-width:96px;min-height:28px}
}

.customer-name-highlight{font-weight:800;color:#0f172a}
.reservation-hour-group{margin:.45rem 0 .25rem;padding:.25rem .35rem;border:1px dashed #dbe1ef;border-radius:8px;background:#fff}
.reservation-hour-group > summary{
  cursor:pointer;
  font-weight:700;
  color:var(--acc-sub-text);
  display:block;
  padding:.52rem .65rem;
  border-radius:8px;
  background:var(--acc-sub-strong-bg);
}
.reservation-hour-group > summary::marker{color:var(--acc-sub-marker)}
.dashboard-slot-detail{margin:.45rem 0 .25rem;padding:.25rem .35rem;border:1px dashed #dbe1ef;border-radius:8px;background:#fff}
.dashboard-slot-detail > summary{
  cursor:pointer;
  font-weight:700;
  color:var(--acc-sub-text);
  display:block;
  padding:.52rem .65rem;
  border-radius:8px;
  background:var(--acc-sub-strong-bg);
}
.dashboard-slot-detail > summary::marker{color:var(--acc-sub-marker)}

/* Table headers inside Reservations and Dashboard accordions */
.reservations-wrap .reservations-table thead th,
.dashboard-accordion-item .table thead th{
  background:#e6ebf3;
  background:var(--acc-table-start);
  color:var(--acc-table-text);
  border-bottom-color:var(--acc-table-border);
  font-weight:700;
}
.reservations-wrap .reservations-table thead th:first-child,
.dashboard-accordion-item .table thead th:first-child{
  border-top-left-radius:8px;
}
.reservations-wrap .reservations-table thead th:last-child,
.dashboard-accordion-item .table thead th:last-child{
  border-top-right-radius:8px;
}

/* Front nav + CMS pages */
.front-menu-btn{
  display:none;
  background:#f3f4f6;
  color:#111827;
  border:1px solid #d1d5db;
  padding:.48rem .7rem;
  border-radius:10px;
  font-weight:700;
  min-width:auto;
}
.front-header-mobile-actions{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-left:auto;
}
.front-main-nav{
  display:flex;
  align-items:center;
  gap:.35rem;
  flex:1 1 auto;
  justify-content:center;
}
.front-main-nav a{
  color:#111827;
  text-decoration:none;
  border:1px solid transparent;
  background:transparent;
  border-radius:10px;
  font-size:.98rem;
  font-weight:700;
  line-height:1.2;
  padding:.44rem .68rem;
  transition:background .16s ease,border-color .16s ease,color .16s ease;
}
.front-main-nav a:hover{
  background:#f3f4f6;
  border-color:#d1d5db;
}
.front-main-nav a.active{
  background:#e8edf2;
  border-color:#bfcad4;
  color:#12384f;
}
.header-actions .btn-panel-access,
.header-actions .btn-logout-access{
  padding:.48rem .8rem;
  border-radius:10px;
  font-size:.96rem;
}
.front-inline-menu-btn{
  display:none;
  background:#f3f4f6;
  color:#111827;
  border:1px solid #d1d5db;
  border-radius:10px;
  padding:.46rem .72rem;
  font-weight:700;
}
.header-actions .btn-reserve-cta{
  background:var(--brand);
  color:#fff;
  border:1px solid #0f2d40;
  box-shadow:none;
  border-radius:10px;
  padding:.52rem .95rem;
  font-weight:800;
  font-size:1rem;
  letter-spacing:.01em;
  text-align:center;
}
.header-actions .btn-reserve-cta:hover{
  background:#1a4a63;
}
.header-actions .btn-reserve-cta.active{
  background:#0f2d40;
}
.front-cta-label-short{
  display:none;
}
.front-nav-user-actions{
  display:none;
}
.front-nav-user-actions form{
  margin:0;
}
@media (min-width:1025px){
  .front-header-mobile-actions{
    display:none !important;
  }
  .front-menu-btn{
    display:none !important;
  }
}

.whatsapp-floating-btn{
  position:fixed;
  right:1rem;
  bottom:1rem;
  z-index:95;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:.55rem .88rem;
  border-radius:999px;
  background:#25d366;
  color:#fff;
  border:1px solid #18944f;
  text-decoration:none;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:0 8px 16px rgba(15,23,42,.26);
}
.whatsapp-floating-btn:hover{
  background:#20be5b;
}
.whatsapp-floating-btn:focus-visible{
  outline:2px solid #9adbb7;
  outline-offset:2px;
}

body.frontoffice.cms-page main{
  max-width:1500px;
  width:100%;
  margin:0 auto;
  padding:calc(var(--front-header-offset) + 2rem) 1.2rem 2rem;
}
.cms-home-hero-shell{
  min-height:calc(100vh - 220px);
  display:grid;
  place-items:center;
}
.cms-home-hero{
  position:relative;
  width:min(980px,100%);
  text-align:center;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
  padding:1.45rem .95rem 1.9rem;
}
.cms-home-hero-framed{
  position:relative;
  width:min(860px,100%);
  margin:0 auto;
  padding:1.65rem .1rem 1.2rem;
}
.cms-home-hero-framed::before,
.cms-home-hero-framed::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  border-top:1px solid rgba(255,255,255,.82);
}
.cms-home-hero-framed::before{top:0}
.cms-home-hero-framed::after{bottom:0}
.cms-home-title{
  margin:0 0 .7rem;
  font-size:clamp(2rem,5vw,4.1rem);
  line-height:1.04;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:800;
}
.cms-home-subtitle{
  margin:0 auto;
  max-width:840px;
  font-size:clamp(1rem,1.65vw,1.4rem);
  line-height:1.6;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(248,250,252,.97);
}
.cms-home-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:0;
  border-radius:999px;
  min-width:248px;
  min-height:54px;
  font-weight:800;
  font-size:1.02rem;
  position:relative;
  z-index:2;
  padding:.92rem 1.45rem;
}
.cms-home-cta-wrap{
  padding-top:2.35rem;
}
.cms-home-content{
  width:min(980px,100%);
  margin:.5rem auto 0;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(203,213,225,.9);
}
.cms-home-content p:last-child{
  margin-bottom:0;
}
.cms-content-card{
  max-width:1040px;
  margin:0 auto;
  background:rgba(255,255,255,.95);
}
.cms-content-title{
  margin:.1rem 0 .4rem;
  color:#12384f;
}
.cms-content-subtitle{
  margin:.1rem 0 .9rem;
  color:#334155;
  font-weight:600;
}
.cms-content-body{
  line-height:1.6;
}
.cms-content-body h2,
.cms-content-body h3{
  color:#12384f;
  margin:.8rem 0 .38rem;
}
.cms-content-body p{
  margin:.3rem 0 .65rem;
}
.cms-content-body ul,
.cms-content-body ol{
  margin:.25rem 0 .75rem 1.2rem;
  padding:0;
}
.cms-blocks-layout{
  max-width:1180px;
  margin:0 auto;
  background:rgba(255,255,255,.95);
}
.cms-blocks-row{
  display:grid;
  gap:1rem;
  align-items:stretch;
  margin-bottom:var(--cms-row-gap,1rem);
}
.cms-blocks-row:last-child{
  margin-bottom:0;
}
.cms-blocks-row-full{
  grid-template-columns:1fr;
}
.cms-blocks-row-half{
  grid-template-columns:1fr 1fr;
}
.cms-blocks-row-one_third_two_thirds{
  grid-template-columns:1fr 2fr;
}
.cms-blocks-row-two_thirds_one_third{
  grid-template-columns:2fr 1fr;
}
.cms-block-card{
  border:1px solid #d1dae4;
  border-radius:12px;
  background:#fff;
  padding:.85rem .95rem;
}
.cms-block-card h1,
.cms-block-card h2{
  margin:.1rem 0 .45rem;
  color:#12384f;
}
.cms-block-card-main{
  border-left:4px solid #12384f;
}
.cms-block-media{
  margin:0;
  overflow:hidden;
  padding:0;
  background:#f1f5f9;
}
.cms-block-media img{
  width:100%;
  height:100%;
  max-height:420px;
  min-height:220px;
  object-fit:cover;
  display:block;
}
.cms-block-media figcaption{
  border-top:1px solid #e2e8f0;
  background:#fff;
  padding:.72rem .85rem;
}
.cms-block-media figcaption h2{
  margin:.1rem 0 .35rem;
}
.cms-block-media figcaption .cms-content-body > *:last-child{
  margin-bottom:0;
}

.cms-blocks-builder{
  display:grid;
  gap:.7rem;
}
.cms-block-row{
  border:1px solid #d5deea;
  border-radius:12px;
  background:#f8fafc;
  padding:.7rem;
}
.cms-block-row-head{
  display:grid;
  grid-template-columns:minmax(160px,1fr) minmax(120px,170px) auto;
  gap:.55rem;
  align-items:end;
}
.cms-block-row-actions{
  display:flex;
  gap:.35rem;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.cms-block-items{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:.7rem;
  margin-top:.6rem;
}
.cms-block-item{
  border:1px solid #d8e1eb;
  border-radius:10px;
  background:#fff;
  padding:.62rem .65rem;
}
.cms-block-item h4{
  margin:.1rem 0 .45rem;
  color:#12384f;
}
.cms-image-picker-overlay{
  position:fixed;
  inset:0;
  z-index:220;
  background:rgba(15,23,42,.58);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
}
.cms-image-picker-overlay.hidden{display:none}
.cms-image-picker-modal{
  width:min(960px,100%);
  max-height:min(88vh,860px);
  background:#fff;
  border:1px solid #d6deea;
  border-radius:14px;
  box-shadow:0 28px 44px rgba(15,23,42,.35);
  display:flex;
  flex-direction:column;
  padding:.85rem;
}
.cms-image-picker-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
  margin-bottom:.45rem;
}
.cms-image-picker-list{
  margin-top:.35rem;
  padding:.2rem;
  border:1px solid #dbe3ef;
  border-radius:12px;
  background:#f8fafc;
  overflow:auto;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:.55rem;
  min-height:220px;
}
.cms-image-picker-item{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  text-align:left;
  border:1px solid #d5dfec;
  background:#fff;
  color:#0f172a;
  border-radius:10px;
  padding:.45rem;
  min-height:88px;
}
.cms-image-picker-item:hover{
  border-color:#9db1c5;
  background:#f3f7fb;
}
.cms-image-picker-item img{
  width:74px;
  height:74px;
  object-fit:cover;
  border-radius:8px;
  flex:0 0 auto;
}
.cms-image-picker-item-label{
  display:flex;
  flex-direction:column;
  gap:.22rem;
  min-width:0;
}
.cms-image-picker-item-label strong{
  font-size:.84rem;
  line-height:1.2;
  color:#0f172a;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.cms-image-picker-item-label small{
  font-size:.72rem;
  color:#475569;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

@media (max-width:1100px){
  .header-wrap{
    gap:.7rem;
  }
  .front-main-nav{
    gap:.22rem;
  }
  .front-main-nav a{
    padding:.4rem .56rem;
    font-size:.92rem;
  }
  .cms-home-hero-shell{
    min-height:calc(100vh - 250px);
  }
  .cms-home-title{
    letter-spacing:.11em;
  }
  .cms-home-subtitle{
    letter-spacing:.14em;
  }
  .cms-block-row-head{
    grid-template-columns:1fr;
    gap:.4rem;
  }
  .cms-block-row-actions{
    justify-content:flex-start;
  }
  .cms-blocks-row{
    grid-template-columns:1fr !important;
    gap:.75rem;
  }
  .cms-block-media img{
    min-height:210px;
  }
}
@media (max-width:1024px){
  .header-wrap{
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand actions"
      "nav nav";
    align-items:center;
    row-gap:.42rem;
    column-gap:.5rem;
  }
  .header-wrap .brand-link{
    grid-area:brand;
    order:initial;
    flex:none;
    min-width:0;
    align-self:center;
  }
  .front-header-mobile-actions{
    display:inline-flex;
    grid-area:actions;
    order:initial;
    margin-left:0;
    justify-self:end;
    width:auto;
    flex:none;
  }
  .front-header-mobile-actions .btn-reserve-cta{
    min-height:38px;
    padding:.48rem .72rem;
    font-size:.88rem;
    max-width:210px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .front-menu-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    order:0;
    margin-left:0;
    position:relative;
    z-index:65;
    min-height:38px;
    padding:.46rem .72rem;
    font-size:.88rem;
  }
  .header-actions{
    order:initial;
    width:auto;
    display:none;
    padding-top:0;
  }
  .front-main-nav{
    display:none;
    grid-area:nav;
    position:static;
    left:auto;
    right:auto;
    top:auto;
    z-index:1;
    order:initial;
    width:100%;
    margin-top:.15rem;
    padding:.65rem;
    border-radius:12px;
    border:1px solid #cfd6de;
    background:#fff;
    box-shadow:0 12px 22px rgba(15,23,42,.16);
    flex-direction:column;
    align-items:stretch;
    gap:.35rem;
  }
  .front-main-nav.open{
    display:flex;
  }
  .front-main-nav a{
    font-size:.97rem;
    padding:.58rem .64rem;
    border-color:#e2e8f0;
    background:#fff;
  }
  .front-nav-user-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.4rem;
    margin-top:.15rem;
    padding-top:.45rem;
    border-top:1px solid #e2e8f0;
  }
  .front-nav-user-actions .btn{
    width:100%;
    min-height:38px;
    text-align:center;
    justify-content:center;
    display:inline-flex;
    align-items:center;
  }
  .header-user-actions{
    display:none;
  }
}
@media (max-width:700px){
  body.frontoffice.homepage,
  body.frontoffice.reservations-page,
  body.frontoffice.cms-page{
    font-size:16.5px;
  }
  :root{
    --front-header-offset:78px;
  }
  header{
    padding:.62rem .7rem;
  }
  .header-wrap{
    min-height:62px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand actions"
      "nav nav";
    row-gap:.36rem;
    column-gap:.42rem;
    align-items:center;
    align-content:center;
  }
  .header-wrap .brand-link{
    grid-area:brand;
    display:flex;
    align-items:center;
    padding-right:0;
    flex:none;
    min-width:0;
  }
  .header-wrap .brand-logo{
    max-height:42px;
    max-width:min(170px,44vw);
  }
  .front-header-mobile-actions{
    grid-area:actions;
    width:auto;
    margin-left:0;
    justify-self:end;
    display:inline-flex;
    align-items:center;
    align-self:center;
    gap:.34rem;
    flex:none;
  }
  .front-header-mobile-actions .btn-reserve-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1.18;
    width:auto;
    max-width:170px;
    min-width:108px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    text-align:center;
    min-height:38px;
    padding:.48rem .6rem;
    font-size:.84rem;
  }
  .front-menu-btn{
    min-width:64px;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    line-height:1.1;
    background:#f3f4f6;
    color:#111827;
    border:1px solid #cbd5e1;
    box-shadow:none;
    font-weight:800;
    min-height:38px;
    padding:.48rem .56rem;
    font-size:.82rem;
  }
  .front-cta-label-full{
    display:none;
  }
  .front-cta-label-short{
    display:inline;
  }
  .front-main-nav{
    margin-top:.35rem;
  }
  .front-main-nav a{
    font-size:.94rem;
    padding:.54rem .62rem;
  }
  .front-nav-user-actions{
    grid-template-columns:1fr;
  }
  body.frontoffice.cms-page main{
    padding:calc(var(--front-header-offset) + 1.4rem) .8rem 1.4rem;
  }
  .cms-home-hero{
    padding:1.05rem .45rem 1.05rem;
  }
  .cms-home-hero-framed{
    padding:1rem .05rem .82rem;
  }
  .cms-home-hero-framed::before{
    top:0;
    left:0;
    right:0;
  }
  .cms-home-hero-framed::after{
    bottom:0;
    left:0;
    right:0;
  }
  .cms-home-title{
    font-size:clamp(1.62rem,9vw,2.35rem);
    letter-spacing:.08em;
    margin:0 0 .45rem;
  }
  .cms-home-subtitle{
    letter-spacing:.08em;
    font-size:clamp(.88rem,3.8vw,1rem);
    line-height:1.5;
  }
  .cms-home-cta{
    min-width:0;
    width:100%;
  }
  .cms-home-cta-wrap{
    padding-top:1.65rem;
  }
  .cms-home-content{
    margin:.35rem auto 0;
  }
  .whatsapp-floating-btn{
    right:.65rem;
    bottom:.66rem;
    min-height:40px;
    padding:.45rem .72rem;
  }
}

.btn.btn-neutral{
  background:#f1f5f9;
  color:#0f172a;
  border-color:#cbd5e1;
}
.btn.btn-neutral:hover{
  background:#e2e8f0;
}

.cookie-consent-banner{
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:120;
  background:rgba(255,255,255,.97);
  color:#1f2937;
  border:1px solid #cfd8e3;
  border-left:4px solid var(--brand);
  border-radius:12px;
  box-shadow:0 16px 32px rgba(15,23,42,.22);
}
.cookie-consent-inner{
  max-width:980px;
  margin:0 auto;
  padding:.86rem 1rem;
}
.cookie-consent-inner h2{
  margin:.1rem 0 .28rem;
  color:var(--brand);
  font-size:1rem;
}
.cookie-consent-inner p{
  margin:.1rem 0;
  font-size:.93rem;
  line-height:1.45;
  color:#334155;
}
.cookie-consent-inner p a{
  color:var(--brand);
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid rgba(18,56,79,.35);
}
.cookie-consent-actions{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin-top:.62rem;
}
.cookie-consent-actions form{
  margin:0;
}
.cookie-consent-actions .btn,
.cookie-consent-actions button{
  min-height:36px;
  padding:.48rem .76rem;
}
.cookie-status-badge-wrap{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin-top:.75rem;
}
.cookie-status-badge{
  display:inline-flex;
  align-items:center;
  border:1px solid #cbd5e1;
  border-radius:999px;
  padding:.3rem .66rem;
  font-weight:700;
  font-size:.82rem;
}
.cookie-status-pending{
  background:#f1f5f9;
  color:#334155;
}
.cookie-status-accepted{
  background:#dcfce7;
  color:#166534;
  border-color:#86efac;
}
.cookie-status-rejected{
  background:#ffe4e6;
  color:#9f1239;
  border-color:#fda4af;
}
.cookie-preferences-card{
  border:1px solid #cbd5e1;
}
.cookie-pref-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.85rem 1rem;
}
.cookie-radio-row,
.cookie-checkbox-row{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding:.4rem .5rem;
  border:1px solid #d7deea;
  border-radius:10px;
  background:#f8fafc;
  margin:.36rem 0 0;
}
.cookie-radio-row input,
.cookie-checkbox-row input{
  width:auto;
  margin:0;
}
@media (max-width:700px){
  .cookie-consent-banner{
    left:.6rem;
    right:.6rem;
    bottom:.6rem;
  }
  .cookie-consent-inner{
    padding:.72rem .75rem;
  }
  .cookie-consent-actions{
    flex-direction:column;
  }
  .cookie-consent-actions form{
    width:100%;
  }
  .cookie-consent-actions .btn,
  .cookie-consent-actions button{
    width:100%;
  }
}
