/* =========================================================
   SEASONISM — public site
   Calm, discreet, dignified. Night pine + dawn gold,
   with the four seasons as a quiet recurring motif.
   ========================================================= */
:root {
    --ss-night: #12211D;
    --ss-pine: #1F3A33;
    --ss-moss: #5B7B6B;
    --ss-ink: #1A221F;
    --ss-muted: #5F6965;
    --ss-paper: #FBF8F2;
    --ss-ivory: #F4EEE2;
    --ss-sand: #E7DECD;
    --ss-line: #E2D9C8;
    --ss-gold: #C08A3A;
    --ss-gold-soft: #E9C98F;
    --ss-winter: #7D96AB;
    --ss-spring: #89A97F;
    --ss-summer: #D3A246;
    --ss-autumn: #B4613C;
    --ss-danger: #A3412E;
    --ss-radius: 18px;
    --ss-serif: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
    --ss-sans: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
    --bs-body-font-family: var(--ss-sans);
    --bs-body-color: var(--ss-ink);
    --bs-link-color: var(--ss-pine);
    --bs-link-color-rgb: 31, 58, 51;
    --bs-link-hover-color: var(--ss-gold);
    --bs-link-hover-color-rgb: 192, 138, 58;
    --bs-primary: #1F3A33;
    --bs-primary-rgb: 31, 58, 51;
}

body { background: var(--ss-paper); color: var(--ss-ink); font-family: var(--ss-sans); font-size: 1.02rem; line-height: 1.7; -webkit-font-smoothing: antialiased; }
h1, h2, h3, .serif { font-family: var(--ss-serif); font-weight: 600; letter-spacing: -.005em; line-height: 1.12; }
h4, h5, h6 { font-weight: 600; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
::selection { background: var(--ss-gold-soft); color: var(--ss-night); }
:focus-visible { outline: 3px solid var(--ss-gold); outline-offset: 3px; }
.text-muted { color: var(--ss-muted) !important; }
.text-gold { color: var(--ss-gold) !important; }

/* ---------- buttons ---------- */
.btn { border-radius: 999px; font-weight: 600; padding: .7rem 1.5rem; letter-spacing: .01em; }
.btn-sm { padding: .4rem 1rem; }
.btn-lg { padding: .9rem 1.9rem; }
.btn-primary { --bs-btn-bg: var(--ss-pine); --bs-btn-border-color: var(--ss-pine); --bs-btn-hover-bg: var(--ss-night); --bs-btn-hover-border-color: var(--ss-night); --bs-btn-active-bg: var(--ss-night); --bs-btn-active-border-color: var(--ss-night); --bs-btn-disabled-bg: var(--ss-moss); --bs-btn-disabled-border-color: var(--ss-moss); }
.btn-gold { background: var(--ss-gold); border-color: var(--ss-gold); color: #fff; }
.btn-gold:hover, .btn-gold:focus { background: #A7762E; border-color: #A7762E; color: #fff; }
.btn-outline-primary { --bs-btn-color: var(--ss-pine); --bs-btn-border-color: var(--ss-pine); --bs-btn-hover-bg: var(--ss-pine); --bs-btn-hover-border-color: var(--ss-pine); --bs-btn-active-bg: var(--ss-pine); }
.btn-ghost-light { border: 1px solid rgba(255,255,255,.45); color: #fff; }
.btn-ghost-light:hover { background: rgba(255,255,255,.1); color: #fff; border-color: #fff; }
.btn-whatsapp { background: #25D366; border-color: #25D366; color: #fff; }
.btn-whatsapp:hover { background: #1ebe5b; border-color: #1ebe5b; color: #fff; }

/* ---------- crisis bar (every page) ---------- */
.crisis-bar { background: var(--ss-night); color: rgba(255,255,255,.82); font-size: .82rem; padding: .45rem 0; }
.crisis-bar a { color: var(--ss-gold-soft); font-weight: 600; }
.crisis-bar a:hover { color: #fff; }
.crisis-bar .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ss-autumn); display: inline-block; margin-right: .5rem; box-shadow: 0 0 0 3px rgba(180,97,60,.25); }

/* ---------- header ---------- */
.site-header { background: rgba(251,248,242,.94); backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid var(--ss-line); position: sticky; top: 0; z-index: 1030; }
.site-header .navbar { padding: .8rem 0; }
.brand { display: inline-flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--ss-ink); }
.brand svg.ss-mark { width: 40px; height: 40px; flex: none; }
.brand .word { font-family: var(--ss-serif); font-weight: 600; font-size: 1.55rem; letter-spacing: .2em; line-height: 1; }
.brand .word small { display: block; font-family: var(--ss-sans); font-size: .58rem; letter-spacing: .28em; color: var(--ss-muted); font-weight: 500; margin-top: .3rem; }
.navbar-nav .nav-link { color: var(--ss-ink); font-weight: 500; padding: .5rem .9rem !important; font-size: .95rem; }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link.active { color: var(--ss-gold); }
.icon-btn { position: relative; width: 42px; height: 42px; border-radius: 50%; display: inline-grid; place-items: center; color: var(--ss-ink); text-decoration: none; border: 1px solid var(--ss-line); background: #fff; font-size: 1.05rem; }
.icon-btn:hover { border-color: var(--ss-gold); color: var(--ss-gold); }
.icon-btn .badge-dot { position: absolute; top: -3px; right: -3px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--ss-autumn); color: #fff; font-size: .68rem; font-weight: 700; display: grid; place-items: center; border: 2px solid var(--ss-paper); }
.dropdown-menu { border: 1px solid var(--ss-line); border-radius: 14px; box-shadow: 0 18px 40px rgba(18,33,29,.12); padding: .5rem; }
.dropdown-item { border-radius: 9px; padding: .5rem .8rem; font-size: .92rem; }
.dropdown-item:active { background: var(--ss-pine); }

/* ---------- season motif ---------- */
.seasons { display: inline-flex; gap: 5px; vertical-align: middle; }
.seasons i { width: 16px; height: 3px; border-radius: 2px; display: block; }
.seasons i:nth-child(1) { background: var(--ss-winter); }
.seasons i:nth-child(2) { background: var(--ss-spring); }
.seasons i:nth-child(3) { background: var(--ss-summer); }
.seasons i:nth-child(4) { background: var(--ss-autumn); }
.eyebrow { display: flex; align-items: center; gap: .8rem; font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--ss-gold); margin-bottom: 1rem; }
.eyebrow.center { justify-content: center; }
.section { padding: 6rem 0; }
.section-sm { padding: 4rem 0; }
.section-ivory { background: var(--ss-ivory); }
.section-night { background: var(--ss-night); color: rgba(255,255,255,.86); }
.section-night h2, .section-night h3 { color: #fff; }
.display-serif { font-size: clamp(2.4rem, 5vw, 4.3rem); }
.title { font-size: clamp(2rem, 3.6vw, 3rem); margin-bottom: 1.2rem; }
.lead-text { font-size: 1.18rem; color: var(--ss-muted); line-height: 1.75; }
.prose { max-width: 720px; }
.prose p { margin-bottom: 1.2rem; }
.quote { font-family: var(--ss-serif); font-size: clamp(1.6rem, 2.8vw, 2.3rem); line-height: 1.3; font-weight: 500; font-style: italic; color: var(--ss-pine); }
.section-night .quote { color: var(--ss-gold-soft); }

/* ---------- hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--ss-night); color: #fff; }
.hero::before { /* dawn rising at the horizon */
    content: ""; position: absolute; inset: 0;
    background: radial-gradient(ellipse 70% 55% at 45% 108%, rgba(233,201,143,.34) 0%, rgba(192,138,58,.14) 40%, transparent 75%);
    pointer-events: none;
}
.hero::after { content: ""; position: absolute; inset: 0; background: radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.5), transparent), radial-gradient(1px 1px at 70% 20%, rgba(255,255,255,.4), transparent), radial-gradient(1px 1px at 85% 45%, rgba(255,255,255,.3), transparent), radial-gradient(1px 1px at 35% 12%, rgba(255,255,255,.35), transparent), radial-gradient(1px 1px at 55% 38%, rgba(255,255,255,.25), transparent); pointer-events: none; }
.hero .container { position: relative; z-index: 1; }
.hero-inner { min-height: 640px; display: flex; align-items: center; padding: 6rem 0 7rem; }
.hero h1 { font-size: clamp(2.6rem, 5.4vw, 4.6rem); line-height: 1.04; color: #fff; }
.hero h1 em { color: var(--ss-gold-soft); font-style: italic; font-weight: 500; }
.hero .lead { color: rgba(255,255,255,.78); font-size: 1.15rem; max-width: 620px; margin-top: 1.5rem; }
.hero-ring { position: absolute; right: -140px; top: 50%; transform: translateY(-50%); width: 620px; height: 620px; opacity: .55; pointer-events: none; }
.hero-horizon { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(233,201,143,.6), transparent); }
@media (max-width: 991.98px) { .hero-ring { width: 420px; height: 420px; right: -200px; opacity: .3; } .hero-inner { min-height: 0; padding: 4.5rem 0 5rem; } }

.page-head { background: var(--ss-night); color: #fff; padding: 4.5rem 0 4rem; position: relative; overflow: hidden; }
.page-head::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 70% at 40% 120%, rgba(233,201,143,.26), transparent 70%); }
.page-head .container { position: relative; }
.page-head h1 { font-size: clamp(2.3rem, 4.5vw, 3.6rem); color: #fff; margin: 0; }
.page-head p { color: rgba(255,255,255,.75); max-width: 680px; margin: 1rem 0 0; font-size: 1.1rem; }

/* ---------- cards ---------- */
.card-ss { background: #fff; border: 1px solid var(--ss-line); border-radius: var(--ss-radius); padding: 2rem; height: 100%; }
.card-ss.soft { background: var(--ss-ivory); border-color: transparent; }
.principle { position: relative; padding-top: 2.4rem; }
.principle::before { content: ""; position: absolute; top: 0; left: 2rem; width: 46px; height: 4px; border-radius: 0 0 4px 4px; }
.principle.s1::before { background: var(--ss-winter); }
.principle.s2::before { background: var(--ss-spring); }
.principle.s3::before { background: var(--ss-summer); }
.principle.s4::before { background: var(--ss-autumn); }
.principle h3 { font-size: 1.6rem; margin-bottom: .6rem; }
.principle p { color: var(--ss-muted); margin: 0; }
.commit { display: grid; grid-template-columns: 64px 1fr; gap: 1.4rem; padding: 1.8rem 0; border-top: 1px solid var(--ss-line); }
.commit .n { font-family: var(--ss-serif); font-size: 2.6rem; line-height: 1; color: var(--ss-gold); }
.commit h3 { font-size: 1.55rem; margin-bottom: .4rem; }
.commit p { color: var(--ss-muted); margin: 0; }
.feature h3 { font-size: 1.45rem; margin: .9rem 0 .5rem; }
.feature .ic { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--ss-ivory); color: var(--ss-pine); font-size: 1.35rem; }
.not-list li { display: grid; grid-template-columns: 34px 1fr; gap: .6rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.not-list li::before { content: "\F62A"; font-family: "bootstrap-icons"; color: var(--ss-gold-soft); font-size: 1.1rem; }
.not-list strong { color: #fff; }
.allowed p { font-family: var(--ss-serif); font-size: clamp(1.6rem, 3vw, 2.3rem); margin: .2rem 0; color: #fff; }
.allowed p span { color: var(--ss-gold-soft); }

/* pricing */
.tier { display: flex; flex-direction: column; }
.tier .price { font-family: var(--ss-serif); font-size: 3rem; line-height: 1; color: var(--ss-pine); margin: .8rem 0 .2rem; }
.tier .meta { color: var(--ss-muted); font-size: .9rem; }
.tier ul { padding-left: 1.1rem; margin: 1.2rem 0 1.6rem; color: var(--ss-ink); }
.tier ul li { margin-bottom: .4rem; }
.tier.featured { background: var(--ss-night); color: rgba(255,255,255,.85); border-color: var(--ss-night); }
.tier.featured h3, .tier.featured .price { color: #fff; }
.tier.featured .meta { color: rgba(255,255,255,.6); }
.tier.featured ul { color: rgba(255,255,255,.85); }
.notice { border-left: 3px solid var(--ss-gold); background: var(--ss-ivory); padding: 1.2rem 1.4rem; border-radius: 0 12px 12px 0; }
.notice.danger { border-color: var(--ss-danger); background: #F7ECE6; }

/* ---------- booking ---------- */
.booking-steps { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 2rem; font-size: .9rem; }
.booking-steps span { display: flex; align-items: center; gap: .5rem; color: var(--ss-muted); font-weight: 500; }
.booking-steps b { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--ss-line); background: #fff; font-size: .8rem; }
.booking-steps span.on { color: var(--ss-ink); }
.booking-steps span.on b { background: var(--ss-pine); color: #fff; border-color: var(--ss-pine); }
.booking-steps .sep { width: 26px; height: 1px; background: var(--ss-line); align-self: center; }
.cal { background: #fff; border: 1px solid var(--ss-line); border-radius: var(--ss-radius); padding: 1.4rem; }
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.cal-head h3 { font-size: 1.6rem; margin: 0; }
.cal-head button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--ss-line); background: #fff; color: var(--ss-ink); }
.cal-head button:hover:not(:disabled) { border-color: var(--ss-pine); }
.cal-head button:disabled { opacity: .35; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.cal-dow { text-align: center; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ss-muted); padding-bottom: .3rem; }
.cal-day { aspect-ratio: 1 / .92; border-radius: 12px; border: 1px solid transparent; background: transparent; display: flex; flex-direction: column; align-items: center; justify-content: center; font-weight: 600; font-size: .95rem; position: relative; padding: 0; color: var(--ss-ink); }
.cal-day small { font-size: .62rem; font-weight: 500; letter-spacing: .02em; margin-top: 2px; }
.cal-day.available { background: #EEF3EC; border-color: #D4E2CF; cursor: pointer; }
.cal-day.available small { color: #4C7146; }
.cal-day.available:hover { border-color: var(--ss-pine); }
.cal-day.full { background: #F6E9E2; color: #9B6A55; cursor: not-allowed; }
.cal-day.full small { color: var(--ss-autumn); }
.cal-day.closed { color: #B9B3A7; cursor: default; }
.cal-day.today::after { content: ""; position: absolute; bottom: 6px; width: 4px; height: 4px; border-radius: 50%; background: var(--ss-gold); }
.cal-day.selected { background: var(--ss-pine); border-color: var(--ss-pine); color: #fff; }
.cal-day.selected small { color: rgba(255,255,255,.8); }
.cal-legend { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .8rem; color: var(--ss-muted); margin-top: 1rem; }
.cal-legend span::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 4px; margin-right: .4rem; vertical-align: -1px; }
.cal-legend .l-av::before { background: #EEF3EC; border: 1px solid #D4E2CF; }
.cal-legend .l-full::before { background: #F6E9E2; }
.cal-legend .l-closed::before { background: #fff; border: 1px solid var(--ss-line); }
.slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: .6rem; }
.slot { border: 1px solid var(--ss-line); background: #fff; border-radius: 12px; padding: .7rem .5rem; text-align: center; font-weight: 600; line-height: 1.2; }
.slot small { display: block; font-weight: 400; color: var(--ss-muted); font-size: .7rem; margin-top: .2rem; }
.slot:hover:not(:disabled) { border-color: var(--ss-pine); }
.slot:disabled { background: #F4F1EA; color: #B3AC9F; text-decoration: line-through; cursor: not-allowed; }
.slot.selected { background: var(--ss-pine); color: #fff; border-color: var(--ss-pine); }
.slot.selected small { color: rgba(255,255,255,.75); }
.summary { background: var(--ss-ivory); border-radius: var(--ss-radius); padding: 1.6rem; position: sticky; top: 110px; }
.summary dt { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ss-muted); font-weight: 600; }
.summary dd { font-weight: 500; margin-bottom: .9rem; }
.summary .total { font-family: var(--ss-serif); font-size: 2.2rem; color: var(--ss-pine); line-height: 1; }
.form-control, .form-select { border-radius: 12px; border-color: var(--ss-line); padding: .7rem .95rem; background-color: #fff; }
.form-control:focus, .form-select:focus { border-color: var(--ss-gold); box-shadow: 0 0 0 .25rem rgba(192,138,58,.15); }
.form-label { font-weight: 600; font-size: .9rem; }
.form-check-input:checked { background-color: var(--ss-pine); border-color: var(--ss-pine); }
.secure { display: flex; align-items: center; gap: .5rem; font-size: .82rem; color: var(--ss-muted); }
.success-mark { width: 84px; height: 84px; border-radius: 50%; background: #EEF3EC; color: var(--ss-pine); font-size: 2.4rem; display: grid; place-items: center; margin: 0 auto 1.2rem; }

/* ---------- account ---------- */
.acc-nav { display: flex; flex-direction: column; gap: 4px; }
.acc-nav a { display: flex; align-items: center; gap: .7rem; padding: .7rem 1rem; border-radius: 12px; color: var(--ss-ink); text-decoration: none; font-weight: 500; }
.acc-nav a:hover { background: var(--ss-ivory); }
.acc-nav a.active { background: var(--ss-pine); color: #fff; }
.acc-nav .badge { margin-left: auto; }
.appt { display: grid; grid-template-columns: 86px 1fr auto; gap: 1.2rem; align-items: center; padding: 1.2rem; border: 1px solid var(--ss-line); border-radius: 16px; background: #fff; text-decoration: none; color: var(--ss-ink); }
.appt:hover { border-color: var(--ss-gold); color: var(--ss-ink); }
.appt .date { text-align: center; background: var(--ss-ivory); border-radius: 12px; padding: .5rem; }
.appt .date b { display: block; font-family: var(--ss-serif); font-size: 2rem; line-height: 1; }
.appt .date span { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ss-muted); }
@media (max-width: 575.98px) { .appt { grid-template-columns: 70px 1fr; } .appt > :last-child { grid-column: 1 / -1; } }
.notif { display: flex; gap: .9rem; padding: 1rem 1.1rem; border-radius: 14px; text-decoration: none; color: var(--ss-ink); border: 1px solid transparent; }
.notif:hover { background: var(--ss-ivory); color: var(--ss-ink); }
.notif.unread { background: #FFF8EC; border-color: #F0DDB8; }
.notif i { width: 38px; height: 38px; border-radius: 50%; background: var(--ss-ivory); display: grid; place-items: center; color: var(--ss-pine); flex: none; }
.notif small { color: var(--ss-muted); }
.join-box { background: var(--ss-night); color: #fff; border-radius: var(--ss-radius); padding: 1.6rem; }
.join-box a.link { color: var(--ss-gold-soft); word-break: break-all; }

/* ---------- auth ---------- */
.auth-wrap { min-height: calc(100vh - 220px); display: grid; place-items: center; padding: 4rem 0; }
.auth-card { width: 100%; max-width: 460px; background: #fff; border: 1px solid var(--ss-line); border-radius: 22px; padding: 2.4rem; }

/* ---------- footer ---------- */
.site-footer { background: var(--ss-night); color: rgba(255,255,255,.66); padding: 4.5rem 0 0; font-size: .92rem; }
.site-footer h4 { color: #fff; font-family: var(--ss-sans); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 1.1rem; }
.site-footer a { color: rgba(255,255,255,.72); text-decoration: none; }
.site-footer a:hover { color: var(--ss-gold-soft); }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: .55rem; }
.site-footer .brand { color: #fff; }
.site-footer .brand .word small { color: rgba(255,255,255,.5); }
.footer-crisis { border: 1px solid rgba(255,255,255,.14); border-radius: 16px; padding: 1.2rem 1.4rem; }
.footer-crisis strong { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 3.5rem; padding: 1.3rem 0; font-size: .8rem; }
.footer-legal { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.footer-legal button { background: none; border: 0; padding: 0; color: rgba(255,255,255,.72); text-decoration: underline; font-size: inherit; }

/* ---------- legal ---------- */
.legal-nav { display: flex; flex-direction: column; gap: 4px; position: sticky; top: 110px; }
.legal-nav a, .legal-nav button { display: flex; align-items: center; gap: .6rem; padding: .7rem 1rem; border-radius: 12px; color: var(--ss-ink); font-weight: 500; text-decoration: none; background: none; border: 0; text-align: left; }
.legal-nav a:hover, .legal-nav button:hover { background: var(--ss-ivory); }
.legal-nav a.active { background: var(--ss-pine); color: #fff; }
.legal-toc { margin-top: 1.4rem; padding: 1rem 1.2rem; background: var(--ss-ivory); border-radius: 14px; font-size: .86rem; }
.legal-toc p { font-weight: 600; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ss-muted); margin-bottom: .4rem; }
.legal-toc ol { padding-left: 1.1rem; margin: 0; }
.legal-toc a { color: var(--ss-muted); text-decoration: none; }
.legal-toc a:hover { color: var(--ss-pine); }
.legal-content { max-width: 800px; }
.legal-content h2 { font-size: 1.9rem; margin: 2.6rem 0 .8rem; scroll-margin-top: 120px; }
.legal-content h3 { font-family: var(--ss-sans); font-size: 1.05rem; margin: 1.4rem 0 .5rem; }
.legal-intro { font-size: 1.12rem; color: var(--ss-pine); border-left: 3px solid var(--ss-gold); padding-left: 1.1rem; }
.legal-card { list-style: none; background: var(--ss-ivory); border-radius: 14px; padding: 1.1rem 1.4rem !important; }
.legal-table th { background: var(--ss-ivory) !important; font-size: .85rem; }
.legal-table code { color: var(--ss-pine); white-space: nowrap; }
mark.to-fill { background: #FCEFD2; color: #8A5A12; padding: 0 .3rem; border-radius: 4px; font-style: italic; }
.cookie-choice-box { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.3rem; background: var(--ss-ivory); border-radius: 14px; margin: 1.5rem 0; }

/* ---------- cookie banner ---------- */
.cookie-banner { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1080; max-width: 980px; margin: 0 auto; background: var(--ss-night); color: rgba(255,255,255,.85); border-radius: 18px; box-shadow: 0 20px 50px rgba(0,0,0,.3); padding: 1.2rem 1.4rem; font-size: .9rem; animation: cookieUp .35s ease-out; }
.cookie-banner[hidden] { display: none; }
.cookie-banner a { color: var(--ss-gold-soft); }
.cookie-banner-inner { display: flex; align-items: center; gap: 1.4rem; }
.cookie-banner-title { font-weight: 600; color: #fff; margin-bottom: .2rem; }
.cookie-banner-text { flex: 1; }
.cookie-banner-actions { display: flex; gap: .5rem; flex: none; }
.cookie-banner .btn { white-space: nowrap; padding: .55rem 1.1rem; }
.cookie-banner .container { padding: 0; max-width: none; }
body.has-cookie-banner { padding-bottom: 150px; }
@media (max-width: 991.98px) {
    .cookie-banner-inner { flex-direction: column; align-items: stretch; gap: .9rem; }
    .cookie-banner-actions { flex-wrap: wrap; }
    .cookie-banner-actions .btn { flex: 1 1 auto; }
    body.has-cookie-banner { padding-bottom: 280px; }
}
@keyframes cookieUp { from { transform: translateY(120%); } to { transform: none; } }
.cookie-cat { padding: .9rem 0; border-top: 1px solid var(--ss-line); }
.cookie-cat .form-switch .form-check-input { width: 2.6em; height: 1.4em; }
.modal-content { border-radius: 18px; }

.pagination { --bs-pagination-color: var(--ss-pine); --bs-pagination-active-bg: var(--ss-pine); --bs-pagination-active-border-color: var(--ss-pine); gap: .3rem; }
.pagination .page-link { border-radius: 10px !important; }
@media (max-width: 991.98px) { .row.g-5, .row.gx-5 { --bs-gutter-x: 1.5rem; } .section { padding: 4.5rem 0; } }
.cal-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
@media (max-width: 575.98px) {
    .cal { padding: 1rem .7rem; }
    .cal-grid { gap: 3px; }
    .cal-day { font-size: .85rem; border-radius: 9px; }
    .cal-day small { font-size: .55rem; }
}
