/*
Theme Name: Rumba y Salsa Studio
Description: Thème sur mesure pour Rumba y Salsa Lausanne.
Author: Yohann Deprez
Author URI: https://yohanndeprez.fr
Version: 1.0.0
Requires PHP: 8.0
Text Domain: rumbaysalsa-studio
*/
:root{--ink:#231728;--paper:#fffaf3;--berry:#821846;--deep:#30142a;--orange:#ffb260;--muted:#665767;--line:#e7dbe1;--lavender:#f0e7f6;--max:1216px}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);font:17px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
[hidden]{display:none!important}
a{color:inherit} img{display:block;max-width:100%;height:auto} button,input,textarea{font:inherit}
button{cursor:pointer}
:focus { outline: none !important; }
a:focus-visible, button:focus-visible, summary:focus-visible { text-decoration: underline; text-underline-offset: .2em; }
.contact-form input:focus-visible, .contact-form textarea:focus-visible { border-color: var(--berry); }
h1,h2,h3,p{margin:0 0 1rem} h1,h2,h3{line-height:1.08;letter-spacing:-.055em}
h1{font-size:clamp(2.8rem,7vw,6.3rem);font-weight:830;max-width:16ch}
h2{font-size:clamp(2rem,4.25vw,3.85rem);font-weight:800}
h3{font-size:clamp(1.45rem,2.75vw,2.2rem);font-weight:780}
p{max-width:68ch} .wrap,.wide{width:min(var(--max),calc(100% - 88px));margin-inline:auto} .wide{width:min(1440px,calc(100% - 80px))}
.skip{position:fixed;top:8px;left:8px;z-index:99;background:white;color:var(--ink);padding:10px;transform:translateY(-150%)} .skip:focus{transform:none}
.site-header{width:100%;position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-height:86px}
.brand{display:inline-flex;align-items:center;gap:.7rem;text-decoration:none;font-weight:850;line-height:1.05;font-size:1.15rem;white-space:nowrap;letter-spacing:-.04em}
.brand small{display:block;letter-spacing:.19em;font-size:.55rem;margin-top:.38rem}
.brand-mark{display:grid;place-content:center;width:46px;height:46px;background:var(--berry);color:white;border-radius:14px;font-size:1.65rem;position:relative;transform:rotate(-7deg)}
.brand-mark span{position:absolute;right:3px;top:3px;font-size:.55rem;color:var(--orange)}
.site-nav{display:flex;gap:clamp(.7rem,1.8vw,1.7rem);align-items:center;font-size:.88rem;font-weight:720}
.site-nav>a{text-decoration:none;white-space:nowrap} .site-nav>a:not(.btn):hover,.site-nav>a[aria-current]{color:var(--berry);text-decoration:underline;text-underline-offset:5px}
.nav-toggle{display:none;border:1px solid var(--line);background:white;border-radius:8px;padding:.45rem .75rem}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.7rem;min-height:46px;padding:.69rem 1.13rem;border:1px solid transparent;border-radius:9px;text-decoration:none;line-height:1.15;font-size:.91rem;font-weight:790;transition:transform .23s,background .23s,color .23s,border .23s}
.btn:hover{transform:translateY(-3px)} .btn.primary{background:var(--berry);color:white} .btn.primary:hover{background:#611136}
.btn.outline{color:white;background:#30142a} .btn.outline:hover{background:white;color:var(--deep)}
.btn.secondary{background:white;border-color:#bd9eae;color:var(--deep)} .btn.secondary:hover{background:#f7e9f1}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.page-hero{padding:clamp(3.2rem,8vw,7.4rem) 0;background:radial-gradient(ellipse at 90% 0%,#f4cee6 0,transparent 61%),#f9eaf3;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(2.65rem,6.3vw,5.45rem)} .intro{font-size:clamp(1.03rem,1.7vw,1.28rem);color:#594657;max-width:53ch;margin-bottom:0}
.eyebrow,.tag,.hero-caption{font-size:.72rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase;color:var(--berry);line-height:1.4}
.home-hero{position:relative;isolation:isolate;color:white;min-height:clamp(545px,72vh,720px);display:grid;align-items:center;background:#331b2d url('assets/hero.webp') center 43%/cover no-repeat;padding:clamp(3.5rem,8vw,7rem) 0}
.home-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#251021 3%,#251021e8 26%,#2510218e 55%,#25102118 100%),linear-gradient(0deg,#23102160,transparent 50%)}
.home-hero h1{font-size:clamp(3.45rem,8.7vw,8.1rem);letter-spacing:-.075em;line-height:.93;margin:1.15rem 0 1.5rem}
.home-hero h1 em{font-family:Georgia,serif;font-weight:500;letter-spacing:-.072em;color:var(--orange)}
.hero-inner>p:not(.eyebrow){max-width:37ch;font-size:clamp(1.03rem,1.7vw,1.26rem);color:#fff4fa}
.hero-label{color:#ffe5f1;display:flex;align-items:center;gap:.55rem} .hero-label span{width:9px;height:9px;background:var(--orange);border-radius:50%}
.home-hero .primary,.band .primary{background:var(--orange);color:var(--deep)} .home-hero .primary:hover,.band .primary:hover{background:#ffca92}
.hero-caption{position:absolute;right:2.8rem;bottom:1rem;margin:0;color:white;background:#30142ab5;padding:.55rem .7rem;border-radius:5px;font-size:.61rem}
.ribbon{background:var(--paper);color:var(--deep)} .ribbon .wrap{display:flex;justify-content:space-between;gap:1rem;padding:.9rem 0;font-size:.91rem;font-weight:820}
.section{padding-block:clamp(2.8rem,6vw,5.3rem)} .section+.section{padding-top:0}
.section-lead{margin-bottom:1.9rem}.section-lead p:last-child,.section>p:not(.eyebrow),.split p:not(.eyebrow){color:var(--muted)}
.grid{display:grid;gap:1rem;margin-top:1.5rem}.two,.split{grid-template-columns:repeat(2,minmax(0,1fr))}.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.split{display:grid;align-items:center;gap:clamp(1.5rem,6vw,5rem)}
.card{padding:clamp(1.35rem,3.3vw,2.75rem);background:white;border:1px solid var(--line);border-radius:19px;transition:transform .24s,box-shadow .24s;min-width:0}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 35px #37172b12}
.card.alternate{background:var(--lavender)} .course-card{display:block;position:relative;text-decoration:none;padding-right:clamp(3rem,6vw,6rem)} .course-card h3{margin:.8rem 0}.card p{color:var(--muted)}
.arrow{position:absolute;right:1.1rem;top:1.1rem;border:1px solid #ae88a3;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;font-size:1.18rem;transition:transform .23s}
.course-card:hover .arrow{transform:rotate(12deg);background:var(--berry);color:white;border-color:var(--berry)}
.home .editorial-photo[src$="/victor.webp"],
body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .editorial-photo[src$="/victor.webp"]{aspect-ratio:1.85;object-position:center top}
.editorial-photo{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:20px;background:var(--lavender)}
.text-link{display:inline-block;color:var(--berry);font-weight:780;text-underline-offset:4px}
.band{background:var(--deep);color:white;padding:clamp(2.6rem,5vw,4.6rem) 0}.band-inner{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.band h2{margin:0}.band .eyebrow{color:var(--orange)}
.schedule{margin-top:1.6rem;border:1px solid var(--line);background:white;border-radius:16px;overflow:hidden}
.schedule>div{display:grid;grid-template-columns:1fr .75fr 2fr;gap:.75rem;padding:1rem 1.25rem}.schedule>div+div{border-top:1px solid var(--line)}
.schedule span{color:var(--berry);font-weight:750}.price{display:block;font-size:2.15rem;line-height:1.2;margin-bottom:.85rem;color:var(--berry)}.fine{font-size:.87rem;margin-top:1rem;color:var(--muted)}
.prose{max-width:820px}.prose h2{font-size:clamp(1.6rem,3vw,2.45rem);margin-top:1.8rem}.prose h2:first-child{margin-top:0}
.faq details{border-bottom:1px solid var(--line);padding:0 .25rem}.faq summary{font-weight:760;cursor:pointer;list-style:none;display:flex;gap:.8rem;justify-content:space-between;align-items:center;padding:1rem 0}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--berry);font-size:1.5rem}.faq details[open] summary::after{content:"−"}.faq details p{color:var(--muted);padding-bottom:.55rem}
.contact-grid{align-items:start;gap:1rem}.contact-grid a{overflow-wrap:anywhere}.contact-grid h2{font-size:clamp(1.65rem,3.4vw,2.7rem)}.contact-grid h3{font-size:1.3rem;margin-top:1.5rem}.contact-form label{display:grid;gap:.35rem;font-size:.9rem;font-weight:730;margin-top:.85rem}
.contact-form input:not([type=hidden]),.contact-form textarea{width:100%;padding:.6rem .72rem;border:1px solid #b99daf;border-radius:7px;background:white;color:var(--ink)}.contact-form textarea{resize:vertical}
.booking{border:1px solid var(--line);padding:1.4rem;border-radius:15px;background:white}.booking iframe{display:block;width:100%;min-height:720px;border:0}
.site-footer{width:100%;background:#21121f;color:#fcf4fa;padding:3.3rem 0 1.1rem}.footer-grid{display:grid;grid-template-columns:1.3fr .8fr 1fr;gap:2rem}.footer-grid p{font-size:.92rem;color:#e0cddc;margin-top:.9rem}.footer-grid h2{font-size:1rem;letter-spacing:0}.footer-grid>div>a:not(.brand){display:block;width:fit-content;margin:.35rem 0;font-size:.92rem;overflow-wrap:anywhere}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid #69465e;margin-top:1.85rem;padding-top:1rem;font-size:.78rem;color:#e0cddc}.footer-bottom>div{display:flex;flex-wrap:wrap;gap:.75rem}.footer-bottom button,.cookie-links button{background:none;border:0;color:inherit;padding:0;text-decoration:underline;font:inherit}
.site-footer a:hover{color:var(--orange)}
.cookie-dialog{position:fixed;inset:auto auto 1rem 1rem;margin:0;max-width:calc(100vw - 2rem);width:420px;max-height:calc(100dvh - 2rem);overflow:auto;z-index:30;border:1px solid var(--line);background:white;color:var(--ink);border-radius:16px;padding:1.35rem;box-shadow:0 14px 45px #2e102e48}
.cookie-dialog h2{font-size:1.65rem;margin-bottom:.5rem}.cookie-dialog p{font-size:.86rem;margin-bottom:.75rem}.cookie-dialog .eyebrow{font-size:.66rem}.cookie-close{position:absolute;right:.7rem;top:.55rem;background:none;border:0;font-size:1.5rem;color:var(--ink)}
.cookie-actions,.cookie-links{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:.8rem}.cookie-links{font-size:.76rem}.cookie-actions .btn{flex:1}.cookie-choice{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid var(--line);padding:.55rem 0;font-size:.82rem}.cookie-choice input{width:20px;height:20px;accent-color:var(--berry)}
.fallback-title{padding-top:2rem}.appear{animation:arrive .66s cubic-bezier(.16,1,.3,1) both}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(max-width:1020px){.wide,.wrap{width:calc(100% - 48px)}.header-inner{flex-wrap:wrap;min-height:72px;padding:.7rem 0}.nav-toggle{display:block}.site-nav{display:none;width:100%;align-items:stretch;flex-direction:column;padding:.4rem 0}.site-nav.open{display:flex}.site-nav>a{padding:.35rem 0}.site-nav .btn{align-self:start;padding:.7rem 1rem}}
@media(max-width:700px){.wide,.wrap{width:calc(100% - 32px)}.two,.three,.split,.footer-grid{grid-template-columns:1fr}.home-hero{min-height:590px;background-position:59% 42%;align-items:end;padding-bottom:4.3rem}.home-hero::before{background:linear-gradient(0deg,#251021 4%,#251021ec 31%,#25102175 70%,#2510211c 100%)}.home-hero h1{font-size:clamp(3.25rem,12vw,5.4rem)}.hero-caption{bottom:.85rem;right:1rem}.ribbon .wrap{justify-content:center;flex-wrap:wrap;gap:.35rem .75rem;font-size:.75rem}.band-inner{align-items:start;flex-direction:column}.schedule>div{grid-template-columns:1fr auto;padding:.75rem}.schedule b{grid-column:1/-1;font-size:.92rem}.site-footer{padding-top:2.5rem}.footer-grid{gap:1rem}.footer-bottom{gap:.65rem}.cookie-dialog{inset:auto auto .65rem .65rem;max-width:calc(100vw - 1.3rem);padding:1rem}.cookie-actions .btn{min-height:42px}.cookie-links{row-gap:.2rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.site-header>.wide,.site-footer>.wide{width:100%;max-width:none;padding-inline:clamp(16px,3vw,48px)}
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:600px){.admin-bar .site-header{top:0}}
.ribbon{overflow:hidden}
.ribbon .ticker-track{width:max-content;display:flex;flex-wrap:nowrap;gap:0;padding:0;margin:0;animation:rumba-ticker 100s linear infinite}
.ticker-group{display:flex;flex:0 0 auto;align-items:center;gap:2rem;padding:.9rem 2rem .9rem 0;white-space:nowrap}
.ticker-repeat{display:contents}
@keyframes rumba-ticker{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ribbon .ticker-track{width:100%}.ticker-group{min-width:0;width:100%;flex-wrap:wrap}.ticker-group[aria-hidden],.ticker-repeat{display:none}}

.site-footer a,.site-footer button[data-cookie-open]{text-decoration:none}
.footer-bottom a,.footer-bottom button[data-cookie-open]{display:inline-block;transition:transform .22s ease,color .22s ease}
.footer-bottom a:hover,.footer-bottom button[data-cookie-open]:hover{transform:translateY(-3px);color:var(--orange)}
@media(prefers-reduced-motion:reduce){.footer-bottom a:hover,.footer-bottom button[data-cookie-open]:hover{transform:none}}
.footer-grid>div>a:not(.brand){transition:transform .22s ease,color .22s ease}
.footer-grid>div>a:not(.brand):hover{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){.footer-grid>div>a:not(.brand):hover{transform:none}}
main .faq.wrap{max-width:none}
main .faq details{padding-inline:0}
.band {
  background: linear-gradient(90deg, #21121fef, #30142abf 60%, #30142a80),
    #30142a url('assets/group.webp') center 42% / cover no-repeat;
}
.nav-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.nav-actions .contact-button{background:#ffd55c;color:var(--deep)}
.nav-actions .contact-button:hover{background:#ffe38b}
body:has(.site-nav a[aria-current="page"]:is([href$="/cours-collectifs/"], [href$="/cours-particuliers/"], [href$="/contact/"], [href$="/qui-sommes-nous/"])) .page-hero {
  background: linear-gradient(90deg, #21121feb 0%, #30142ac7 60%, #30142a80 100%),
    #30142a var(--course-hero-image, url('assets/group.webp')) center 60% / cover no-repeat;
  color: white;
}
body:has(.site-nav a[aria-current="page"]:is([href$="/cours-collectifs/"], [href$="/cours-particuliers/"], [href$="/contact/"], [href$="/qui-sommes-nous/"])) .page-hero .eyebrow {
  color: var(--orange);
}
body:has(.site-nav a[aria-current="page"]:is([href$="/cours-collectifs/"], [href$="/cours-particuliers/"], [href$="/contact/"], [href$="/qui-sommes-nous/"])) .page-hero .intro {
  color: #fff4fa;
}

body:has(.site-nav a[aria-current="page"]:is([href$="/cours-particuliers/"], [href$="/qui-sommes-nous/"])) .page-hero {
  --course-hero-image: url('assets/hero.webp');
}
main .prose.wrap:not(.faq) {
  max-width: none;
}

main .prose.wrap:not(.faq) > ul {
  max-width: 68ch;
}

/* Full-width colour bands with content aligned to the page grid. */
.home .section:has(.course-card),
.section:has(.price) {
  --section-background: #ffd55c;
}

body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) {
  --section-background: #821846;
  color: #fff;
}

.section:has(.course-card),
.section:has(.price),
body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) {
  position: relative;
  isolation: isolate;
  padding-block: clamp(2.8rem, 6vw, 5.3rem);
}

.section:has(.course-card)::before,
.section:has(.price)::before,
body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--section-background);
  box-shadow: 0 0 0 100vmax var(--section-background);
  clip-path: inset(0 -100vmax);
}

body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) p {
  color: #fff;
}

body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) .eyebrow {
  color: #ffd55c;
}

.section:has(.course-card) .section-lead p:last-child,
.section:has(.price) > .fine {
  color: var(--deep);
}

body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) + .section {
  padding-top: clamp(2.8rem, 6vw, 5.3rem);
}

.home .section:has(.course-card) + .section {
  padding-top: clamp(2.8rem, 6vw, 5.3rem);
}

@media (prefers-reduced-motion: no-preference) {
  .page-hero .appear {
    animation: none;
  }

  .page-hero .appear > * {
    animation: rumba-hero-step .8s cubic-bezier(.22, 1, .36, 1) both;
  }

  .page-hero .appear > :nth-child(2) { animation-delay: 100ms; }
  .page-hero .appear > :nth-child(3) { animation-delay: 210ms; }
  .page-hero .appear > :nth-child(4) { animation-delay: 320ms; }

  @keyframes rumba-hero-step {
    from {
      opacity: 0;
      translate: 0 20px;
      clip-path: inset(0 0 100% 0);
    }
    to {
      opacity: 1;
      translate: 0 0;
      clip-path: inset(0);
    }
  }

  @supports (animation-timeline: view()) {
    .section-lead,
    .section.split > div:not(:has(.editorial-photo)) {
      animation: rumba-section-step linear both;
      animation-timeline: view();
      animation-range: entry 5% entry 75%;
    }

    .grid > .card {
      animation: rumba-section-step linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 70%;
    }

    .grid > .card:nth-child(even) {
      animation-range: entry 12% entry 88%;
    }

    .editorial-photo {
      animation: rumba-photo-curtain linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 75%;
    }

    @keyframes rumba-section-step {
      from { opacity: .35; translate: 0 24px; }
      to { opacity: 1; translate: 0 0; }
    }

    @keyframes rumba-photo-curtain {
      from { clip-path: inset(0 24% 0 0 round 20px); }
      to { clip-path: inset(0 round 20px); }
    }
  }
}

.site-footer > .wide { padding-inline: 44px; }
@media (max-width: 1020px) {
  .site-footer > .wide { padding-inline: 24px; }
}
@media (max-width: 700px) {
  .site-footer > .wide { padding-inline: 16px; }
}

@media (prefers-reduced-motion: no-preference) {
  .faq details[open] > p {
    animation: rumba-answer-in .26s ease-out both;
  }

  .faq details[open] > summary::after {
    animation: rumba-faq-sign .26s ease-out both;
  }

  @keyframes rumba-answer-in {
    from { opacity: 0; translate: 0 -6px; }
    to { opacity: 1; translate: 0 0; }
  }

  @keyframes rumba-faq-sign {
    from { rotate: -90deg; }
    to { rotate: 0deg; }
  }

  @supports (animation-timeline: view()) {
    .band-inner > div,
    .band-inner > .btn,
    .footer-grid > div,
    .footer-bottom > * {
      animation: rumba-section-step linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 65%;
    }

    .band-inner > .btn,
    .footer-grid > div:nth-child(2) {
      animation-range: entry 10% entry 78%;
    }

    .footer-grid > div:nth-child(3) {
      animation-range: entry 20% entry 90%;
    }

    .site-footer {
      position: relative;
    }

    .site-footer::before {
      content: "";
      position: absolute;
      inset: 0 0 auto;
      height: 3px;
      background: linear-gradient(90deg, #821846, #ffd55c);
      transform-origin: left;
      animation: rumba-footer-line linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 45%;
    }

    @keyframes rumba-footer-line {
      from { scale: 0 1; }
      to { scale: 1 1; }
    }
  }
}

@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) > :is(.eyebrow, h2, p) {
      animation: rumba-section-step linear both;
      animation-timeline: view();
      animation-range: entry 0% entry 68%;
    }

    body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) > h2:nth-child(n) {
      animation-range: entry 8% entry 76%;
    }

    body:has(.site-nav a[aria-current="page"][href$="/qui-sommes-nous/"]) .section:not(.split) > p:not(.eyebrow) {
      animation-range: entry 16% entry 88%;
    }
  }
}

/* Keep the sticky menu usable in portrait and landscape. */
@media (max-width: 1020px) {
  .header-inner { flex-wrap: nowrap; }
  .nav-toggle, .site-nav a { touch-action: manipulation; }
  .nav-toggle { min-height: 44px; flex-shrink: 0; }
  .site-nav {
    position: absolute;
    inset: 100% 0 auto;
    max-height: calc(100dvh - 120px);
    overflow-y: auto;
    overscroll-behavior: contain;
    gap: 0;
    padding: .5rem max(24px, env(safe-area-inset-right)) 1rem max(24px, env(safe-area-inset-left));
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 24px #30142a1a;
  }
  .site-nav > a {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: .5rem .25rem;
    border-bottom: 1px solid var(--line);
  }
  .nav-actions { margin-top: .8rem; }
  .nav-actions .btn { flex: 1 1 120px; }
  .contact-form input:not([type=hidden]), .contact-form textarea { font-size: 16px; min-height: 46px; }
  .footer-grid > div > a:not(.brand) { min-height: 44px; display: flex; align-items: center; margin: 0; }
  .footer-bottom a, .footer-bottom button { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (min-width: 701px) and (max-width: 1020px) {
  .three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .three > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .split { gap: 1.75rem; }
  .footer-grid { grid-template-columns: 1.1fr .85fr 1.2fr; gap: 1.25rem; }
}

@media (max-width: 700px) {
  .site-nav { padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right)); }
  .page-hero { padding-block: clamp(2.5rem, 10vw, 4rem); }
  .page-hero h1 { font-size: clamp(2rem, 8.5vw, 3.65rem); text-wrap: balance; }
  .home-hero { min-height: min(590px, 100svh); padding-top: 2.75rem; }
  .home-hero h1 { font-size: clamp(2.6rem, 11.4vw, 5.1rem); }
  .actions { margin-top: 1.25rem; }
  .actions .btn { flex: 1 1 9rem; }
  .band .btn, .contact-form .btn { width: 100%; }
  .booking { padding: .75rem; }
  .booking:has(iframe) { padding: 0; }
  .prose { overflow-wrap: anywhere; }
  .faq summary::after { flex-shrink: 0; }
  .cookie-dialog {
    inset: auto auto max(.65rem, env(safe-area-inset-bottom)) .65rem;
  }
  .cookie-actions .btn, .cookie-close { min-height: 44px; }
  .cookie-close { min-width: 44px; }
}

@media (max-width: 1020px) {
  .nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .55rem .8rem;
    border: 1px solid transparent;
    border-radius: 10px;
    background: var(--berry);
    color: white;
    font-size: .85rem;
    font-weight: 800;
    cursor: pointer;
  }

  .nav-toggle[aria-expanded="true"] {
    background: #ffd55c;
    color: var(--deep);
  }

  .nav-toggle span {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
    font-size: 0;
    line-height: 0;
  }

  .nav-toggle span::before,
  .nav-toggle span::after {
    content: "";
    position: absolute;
    left: 0;
    width: 16px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform .2s;
  }

  .nav-toggle span::before { top: 4px; }
  .nav-toggle span::after { top: 10px; }
  .nav-toggle[aria-expanded="true"] span::before { transform: translateY(3px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span::after { transform: translateY(-3px) rotate(-45deg); }

  .site-nav {
    background: var(--deep);
    color: white;
    border-bottom: 3px solid #ffd55c;
    box-shadow: 0 12px 26px #30142a40;
  }

  .site-nav > a {
    min-height: 50px;
    border-color: #ffffff30;
    font-size: .96rem;
  }

  .site-nav > a:not(.btn):hover,
  .site-nav > a[aria-current="page"] { color: #ffd55c; }

  .site-nav .primary { border-color: #ffffff50; }
}
