/* ---------- Nav ---------- */
html{
    scroll-behavior:auto;
}

body{
    overflow-x:hidden;
}
body.no-scroll{
    overflow:hidden !important;
}

/* Avoid single-word last lines (widows) in text across the site */
p, h1, h2, h3, h4, h5, h6, li, blockquote {
    text-wrap: pretty;
}

/* Visually hidden but read by search engines and screen readers */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.nav{
    position:fixed;top:0;left:0;right:0;
    z-index:1000;
    display:flex;align-items:center;justify-content:center;
    padding:26px var(--pad);
    transition:padding .4s ease, background .4s ease, border-color .4s ease;
    border-bottom:1px solid transparent;
  }
  .nav.scrolled{
    padding-top:16px;padding-bottom:16px;
    background:rgba(11,10,8,0.92);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
  }
  .nav__links{display:flex;gap:36px;align-items:center;list-style:none;}
  .nav__links a{
    font-family:var(--display);font-size:12px;letter-spacing:.12em; font-weight: 700;
    text-transform:uppercase;color:var(--ash);
    position:relative;padding-bottom:4px;
    transition:color .3s ease;
  }
  .nav__links a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--blood);
    transition:width .3s ease;
  }
  .nav__links a:hover, .nav__links a.active{color:var(--paper);}
  .nav__links a:hover::after, .nav__links a.active::after{width:100%;}

  .nav__mobile-logo-li,
  .nav__mobile-cta-li{display:none;}
  .nav__desktop-cta{display:inline-flex;position:absolute;right:var(--pad);padding:7px 16px;font-size:11px;}
  /* Book Now: red with white text (desktop and mobile) */
  .nav .book-now-trigger,
  .nav .nav__links .book-now-trigger{background:var(--blood) !important;border-color:var(--blood) !important;color:#ffffff !important;}
  .nav .book-now-trigger:hover,
  .nav .nav__links .book-now-trigger:hover{background:var(--blood-deep) !important;border-color:var(--blood-deep) !important;}

  .nav__toggle{
    display:none;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:6px;
    width:38px;
    height:38px;
    background:none;
    border:none;
    cursor:pointer;
    z-index:1002;
    padding:0;
  }
  .nav__toggle span{
    display:block;
    width:24px;
    height:2px;
    background:var(--paper);
    border-radius:2px;
    transition:transform .35s ease, opacity .35s ease, background-color .35s ease;
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;height:100vh;min-height:640px;
    display:flex;flex-direction:column;
    background:var(--ink);
    overflow:hidden;
  }
    .hero__upper{
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:26px;position:relative;z-index:2;
    padding-top:70px;
  }
  .hero__mark{width:min(190px, 30vw);}
  .hero__upper img {
    width: 190px;
    height: 190px;
    display: block;
    margin: 0 auto;
    object-fit: contain;
}
  @media (min-width:1025px){
    .hero__upper img{
      width: 280px;
      height: 280px;
    }
  }
  @media (max-width:768px){
    .hero__upper img{
      width: 260px;
      height: 260px;
    }
  }
  .hero__tagline{
    font-family:var(--display);font-style:italic;font-weight:400;
    font-size:clamp(14px,1.6vw,18px);
    color:var(--ash-light);letter-spacing:.03em;
  }
  .hero__scroller{
    position:relative;z-index:2;
    border-top:0px solid var(--line);border-bottom:1px solid var(--line);
    padding:2px 0;
    overflow:hidden;white-space:nowrap;
  }
  .hero__scroller-track{
    display:inline-flex;gap:0;
    animation:ticker 26s linear infinite;
  }
  .hero__scroller-track span{
    font-family:var(--display);font-style:normal; font-weight: 700;
    font-size:clamp(20px,3.4vw,40px);
    color:var(--paper);opacity:.9;
  }
  .hero__scroller-track span em{color:var(--blood);font-style:normal;padding:0 .4em;font-family:var(--mono);font-size:.5em;vertical-align:middle;}
  @keyframes ticker{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

  .hero__lower {
    flex: 1;
    position: relative;
}

.hero__lower .art {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center; /* Centers the image horizontally */
    align-items: center;     /* Centers the image vertically */
    overflow: hidden;
}

.hero__lower .art img {
    width: 100%;
    height: 100%;
    object-fit: cover;   /* Fills the area while keeping the image centered */
    object-position: center;
}
  

  .scroll-cue{
    position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
    z-index:3;display:flex;flex-direction:column;align-items:center;gap:10px;
    color:var(--ash-light);
  }
  .scroll-cue span{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;}
  .scroll-cue .line{width:2px;height:38px;background:#444;position:relative;overflow:hidden;}
  .scroll-cue .line::after{
    content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;
    background:var(--blood);animation:cueDrop 2.2s ease-in-out infinite;
  }
  @keyframes cueDrop{ 0%{top:-100%;} 60%{top:100%;} 100%{top:100%;} }

  /* ---------- About Wrapper & Pinned Manifesto ---------- */
  .about-wrapper{
    position:relative;
    background:var(--paper);
  }

  .about1-plain{
    background:var(--paper);
    color:var(--ink);
  } 
  .about1-mobile-art{
    display:none !important;
  } 

 /* ---------- About 2 — plain manifesto section ---------- */
.about2-plain{
    background: var(--paper);
    color: var(--ink);
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (min-width: 1025px) {
  .about-wrapper {
    width: 100%;
    min-height: 280vh;
    background-image: url('../images/About.png');
    background-position: center 80px;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-color: var(--paper);
  }
  .about1-plain {
    background-image: none;
    min-height: 0;
    padding: 0;
  }
  .about2-plain {
    position: sticky;
    top: 0;
    min-height: 100vh;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--paper);
    margin-top: 0;
    padding: var(--pad);
  }
  /* white text with difference blend: light over the dark photos, dark over the white gaps */
  .about2-plain .about2plain__inner h2,
  .about2-plain .about2plain__inner p{
    color: var(--paper);
    mix-blend-mode: difference;
  }
}

.about2plain__inner{
    max-width: 1130px;
    margin: 0 auto;          /* Centers the container */
    text-align: center;      /* Centers all text */
}

.about2plain__inner .eyebrow{
    display: block;
    margin-bottom: 16px;
    color: var(--blood);
}

.about2plain__inner h2{
    font-family: var(--body);
    font-weight: 700;
    font-size: clamp(50px,4.2vw,50px);
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 22px;
    text-align: left;
    mix-blend-mode: multiply;
}

.about2plain__inner p{
    font-family: var(--body);
    font-weight: 700;
    font-size: clamp(28px, 2.6vw, 38px);
    color: var(--ink);
    line-height: 1.35;
    margin: 0 auto;          /* Centers the paragraph block */
    text-align: left;
    mix-blend-mode: multiply;

}
@media (max-width:768px){

    .about2plain__inner p{
        font-size: 18px;
        font-weight: 400;
        line-height: 1.6;
    }

}

  /* ---------- Section shell ---------- */
  section{position:relative;}
  .section-pad{padding:clamp(10px,8vw,70px) var(--pad);}

  /* ---------- Artist ---------- */
  .artist{background:var(--ink);}
  .split{
    display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(30px,5vw,80px);align-items:center;
  }
  .artist .art{aspect-ratio:1/1;}
  .artist__copy .eyebrow{margin-bottom:18px;display:block;}
  .artist__copy h2{
    font-family:var(--display);font-weight:400;font-size:clamp(30px,3.6vw,50px);line-height:1.1;
  }
  .artist__copy h2 em{font-style:normal;color:var(--paper);white-space:nowrap;}
  .artist__copy .sub{
    font-family:var(--display);font-style:italic;color:var(--ash-light);
    font-size:clamp(15px,1.4vw,19px);margin:14px 0 22px;
  }
  .artist__copy p.body-text{color:var(--ash-light);max-width:44ch;margin-bottom:30px;font-size:15px;}

  /* ---------- Piercing (light) ---------- */
.piercing{background:var(--paper);color:var(--ink);}
.piercing .split{grid-template-columns:.85fr 1.15fr;}
.piercing .eyebrow{color:var(--blood);}
.piercing h2{
  font-family:var(--display);font-weight:400;font-size:clamp(30px,4.2vw,58px);line-height:1.1;
  overflow-wrap:break-word;
}
.piercing .sub{
  font-family:var(--display);font-style:italic;font-size:clamp(14px,1.4vw,19px);
  color:#5a5546;margin:16px 0 22px;
}
.piercing p.body-text{
  color:#5a5546;max-width:min(42ch, 100%);margin-bottom:30px;
  font-size:clamp(13.5px,1.4vw,15px);overflow-wrap:break-word;
}
/* two distinct images: mobile/tablet uses .art-mobile, desktop/laptop uses .art-desktop */
.piercing .art-mobile{aspect-ratio:16/14;}
.piercing .art-desktop{display:none;}

/* ---------- Piercing — full-bleed background image (desktop/laptop only) ---------- */
@media (min-width:1025px){
  .piercing.section-pad{padding:0;}
  .piercing{
    position:relative;overflow:hidden;
    min-height:760px;display:flex;align-items:center;
  }
  .piercing::before{
    content:'';position:absolute;inset:0;z-index:1;  }
  /* .split stays non-positioned so .art-desktop binds to .piercing (full section), not just this box */
  .piercing .split{
    display:block;width:100%;
    padding:clamp(60px,8vw,120px) var(--pad);box-sizing:border-box;
  }
  .piercing .art-mobile{display:none;}
  .piercing .art-desktop{
    display:block;position:absolute;inset:0;z-index:0;
    width:100%;height:100%;aspect-ratio:auto;border:none;
  }
  /* text wrapper needs its own explicit stacking order above the image + scrim */
  .piercing .split > div:first-child{
    position:relative;z-index:3;max-width:560px;
  }
  .piercing .eyebrow{color:var(--gold);}
  .piercing h2{color:var(--ink);}
  .piercing .sub{color:var(--ink);}
  .piercing p.body-text{color:var(--ink);}
  .piercing .btn--dark{color:var(--ink);border-color:var(--ink);}
  .piercing .btn--dark:hover{background:var(--ink);color:var(--paper);}
}
  /* ---------- Shop / jewellery ---------- */
  .shop{
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    overflow: hidden;
    background: #000;
}

.shop__video{
    position: absolute;
    inset: 0;
    z-index: 0;
}

.shop__video video{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop__overlay{
    position: absolute;
    inset: 0;
    z-index: 1;
}

.shop__content{
    position: relative;
    z-index: 2;
    padding: 0 var(--pad);
}

.shop__content .eyebrow{
    color: var(--gold);
}

.shop__content h2{
    font-family: var(--display);
    font-weight: 400;
    font-size: clamp(28px,4.4vw,52px);
    line-height: 1.15;
    margin: 16px 0 12px;
}

.shop__content p{
    font-family: var(--display);
    font-style: italic;
    color: var(--ash-light);
    font-size: clamp(14px,1.6vw,19px);
    margin-bottom: 30px;
}

@media (max-width:768px){
    .shop{
        min-height: 45vh;
    }
}

  /* ---------- Philosophy ---------- */
  .philosophy{background:var(--paper);color:var(--ink);text-align:center;}
  .philosophy .eyebrow{color:var(--blood);display:block;margin-bottom:18px;font-size:16px;}
  .philosophy blockquote{
    font-family:var(--display);font-style:italic;font-weight:600;
    font-size:clamp(24px,4vw,44px);line-height:1.3;max-width:26ch;margin:0 auto 20px;
  }
  .philosophy .divider{width:60px;height:1px;background:var(--ash);margin:34px auto;}
  .philosophy .subhead{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ash);margin-bottom:46px;}

  .reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;text-align:left;margin-bottom:50px;}
  .review{
    background:var(--paper-dim);border:1px solid var(--line-dark);border-radius:6px;
    padding:28px 26px;
  }
  .review .stars{color:var(--ink);letter-spacing:2px;margin-bottom:14px;font-size:18px;}
  .review p{font-size:14px;color:#030303;line-height:1.65;margin-bottom:16px;}
  .review cite{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ash);font-style:normal;}

  .ratings{display:flex;justify-content:center;gap:44px;flex-wrap:wrap;}
  .rating{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;line-height: 1.2; text-align: left;}
  .rating b{font-family:var(--display);font-size:30px;}
  .rating .svg{width:26px;height: 26px;display:flex;align-items:center;justify-content:center;font-size:11px;}

/* ---------- CTA ---------- */
.cta{
    background: url('../images/rebg.webp') center / cover no-repeat var(--blood);
    color: var(--paper);
    position: relative;
    overflow: hidden;
}
.cta.section-pad{
    padding-top:clamp(48px,6vw,80px);
    padding-bottom:0;
}

.cta .split{
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    gap: 50px;
}

.cta__copy .eyebrow{
    color: rgba(243,238,227,.65);
}

.cta__copy{align-self:center;}

.cta__copy h2{
    font-family: var(--display);
    font-weight: 400;
    font-size: clamp(34px,4.6vw,56px);
    line-height: 1.08;
    margin: 14px 0 6px;
}

.cta__copy .sub{
    font-family: var(--display);
    font-style: italic;
    font-size: clamp(15px,1.6vw,20px);
    margin-bottom: 28px;
    opacity: .85;
}

.cta .art{
    align-self: end;
    margin-bottom:0;
}

.cta .art img{
    display: block;
    width: 100%;
    height: auto;
    max-width: 700px;
    margin-left: auto;
    aspect-ratio: 1718 / 1688;
    object-fit: cover;
    object-position: top;
}

/* ---------- Responsive ---------- */
@media (max-width:1024px){

    .cta.section-pad{
        padding-bottom: 0;
    }

    .cta .split{
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .cta__copy{
        text-align: center;
    }

    .cta .art{
        margin-bottom: 0;
        justify-self: center;
        width: 100%;
    }

    .cta .art img{
        width: min(520px,100%);
        margin: 0 auto;
    }
}

  /* ---------- Footer ---------- */
 
footer{
    background:var(--ink);
    color:var(--paper);
    border-top: 4px solid var(--ink);
    margin-top: -1px;
}

/* Mobile & tablet: Contact shows only the footer, filling the screen */
@media (max-width: 1024px) {
    body.footer-only > :not(nav):not(#footer):not(.booking-modal) {
        display: none !important;
    }
    body.footer-only #footer {
        min-height: 100vh;
        min-height: 100dvh;
        display: flex;
        flex-direction: column;
    }
    body.footer-only .footer-bottom {
        margin-top: auto;
    }
}

/* Social icons: shown on mobile & tablet only (desktop has the text links) */
.footer-social {
    display: none;
}
@media (max-width: 1024px) {
    .footer-social {
        display: flex;
        justify-content: center;
        gap: 22px;
        margin-top: 28px;
    }
    .footer-social a {
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid currentColor;
        border-radius: 50%;
        color: var(--paper);
        transition: background .3s ease, color .3s ease;
    }
    .footer-social a:hover {
        background: var(--paper);
        color: var(--ink);
    }
    .footer-social svg {
        width: 18px;
        height: 18px;
    }
}

.footer-wrap{
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 90px;
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    padding: 70px clamp(24px, 5vw, 100px) 50px;
}

.footer-left{
    justify-self: start;
}

.footer-right{
    justify-self: end;
}

.footer-left{
    display:flex;
    flex-direction:column;
}

.footer-logo{
    width:160px;
    height:160px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:35px;
}

.footer-info h4{
    font-size:14px;
    font-weight:700;
    text-transform:uppercase;
    margin-bottom:12px;
}

.footer-info p{
    color:var(--ash-light);
    line-height:1.45;
    margin-bottom:28px;
}

.footer-info .address{
    font-size:32px;
    line-height:1.15;
    color:var(--paper);
}

.mt{
    margin-top:45px;
}

.footer-right{
    display:flex;
    flex-direction:column;
}

.brand-top{
    text-align:left;
    margin-bottom:60px;
}

.brand-top .eyebrow{
    display:block;
    margin-bottom:22px;
    font-size:18px;
}

.brand-icons{
    display:flex;
    gap:90px;
}

.brand-chip{
    width:100px;
    height:100px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:none;
    outline:none;
}

.footer-links{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    row-gap:45px;
    column-gap:60px;
}

.footer-links h4{
    margin-bottom:14px;
    font-size:14px;
    text-transform:uppercase;
}

.footer-links li{
    margin-bottom:2px;
}

.footer-links a{
    color:var(--ash-light);
}

.footer-links a:hover{
    color:var(--paper);
}

.footer-bottom{
    text-align:center;
    padding:25px;
    color:var(--ash);
    border-top:1px solid var(--line);
}

/* ---------- Footer Responsive ---------- */
@media (max-width:1024px){

    .footer-wrap{
        grid-template-columns:1fr;
        gap:0;
    }

    .footer-right{
        display:none;
    }

    .footer-left{
        max-width:420px;
        margin:0 auto;
        text-align:center;
    }

    .footer-logo{
        margin:0 auto 32px;
    }

    .footer-info h4{
        text-align:center;
    }

    .footer-info .address{
        font-size:clamp(28px,6vw,36px);
    }

    .footer-bottom{
        padding-top:40px;
    }
    .footer-bottom{
        padding: 20px 24px;
        font-size: 12px;
        line-height: 1.6;
    }

}

@media (max-width:768px){

    .footer-bottom{
        padding: 18px 20px;
        font-size: 14px;
    }

}

@media (max-width:480px){

    .footer-bottom{
        padding: 16px;
        font-size: 12px;
        line-height: 1.7;
    }   


}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease, transform .9s ease;}
  .reveal.in{opacity:1;transform:none;}
      /* ---------- max1400 ---------- */


  /* ---------- Max-width cap at 1440px (desktop & above) ---------- */
  @media (min-width: 1400px) {
    :root {
      /* Auto-pad so content never exceeds 1440px wide */
      --pad: max(40px, calc((100vw - 1440px) / 2));
    }
    /* Footer is self-contained with max-width:1440px — use fixed padding */
    .footer-wrap {
      padding-left: 80px;
      padding-right: 80px;
    }
  }
    /* ---------- max1400 ---------- */

  /* ---------- Responsive ---------- */
  @media (max-width:1024px){
    .split{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .reviews{grid-template-columns:1fr;}
    .piercing .split{grid-template-columns:1fr;}
    .artist .art{order:-1;}
    .about-wrapper{min-height:auto;background-image:none;}
    .about1-plain{background-image:none;min-height:auto;padding:var(--pad);}
    .about1-mobile-art{display:flex !important;justify-content:center;width:100%;max-width:100%;margin:0 auto;}
    .about1-mobile-art picture,
    .about1-mobile-art img{width:100%;height:auto;display:block;}
    .about2-plain{position:relative;top:auto;height:auto;min-height:auto;background:var(--paper);margin-top:0;padding:var(--pad);}
    .about2plain__inner{width:100%;max-width:800px;margin:0 auto;text-align:center;}
    .about2plain__inner h2{text-align:center;margin-left:auto;margin-right:auto;}
    .about2plain__inner p{text-align:center;margin-left:auto;margin-right:auto;}

    /* Navigation for Tablet & Mobile */
    .nav,
    .nav.scrolled{
      justify-content:flex-end;
      backdrop-filter:none;
      -webkit-backdrop-filter:none;
    }
    .nav__desktop-cta{
      display:none !important;
    }
    .nav__toggle{
      display:flex;
      margin-left:auto;
    }
    /* Hamburger to X animation */
    .nav.nav--open .nav__toggle span:nth-child(1){
      transform:translateY(8px) rotate(45deg);
      background:var(--blood);
    }
    .nav.nav--open .nav__toggle span:nth-child(2){
      opacity:0;
      transform:scaleX(0);
    }
    .nav.nav--open .nav__toggle span:nth-child(3){
      transform:translateY(-8px) rotate(-45deg);
      background:var(--blood);
    }

    .nav__mobile-logo-li{
      display:block;
      margin-bottom:24px;
    }
    .nav__mobile-logo{
      width:100px;
      height:auto;
      max-height:100px;
      display:block;
      margin:0 auto;
      object-fit:contain;
    }
    .nav__mobile-logo-li a::after{
      display:none !important;
    }

    .nav__mobile-cta-li{
      display:block;
      margin-top:24px;
    }
    .nav__links{
      position:fixed;
      inset:0;
      width:100vw;
      height:100vh;
      height:100dvh;
      background:rgba(11, 10, 8, 0.86);
      backdrop-filter:blur(10px);
      -webkit-backdrop-filter:blur(10px);
      flex-direction:column;
      justify-content:center;
      align-items:center;
      gap:18px;
      padding:80px 24px;
      overflow-y:auto;
      z-index:1001;
      opacity:0;
      visibility:hidden;
      pointer-events:none;
      transform:translateY(-20px);
      transition:opacity .35s ease, visibility .35s ease, transform .35s ease;
    }

    .nav.nav--open .nav__links{
      opacity:1;
      visibility:visible;
      pointer-events:auto;
      transform:translateY(0);
    }

    .nav__links a{
      font-size:18px;
      letter-spacing:.16em;
    }

    .nav__mobile-cta,
    .nav__links a.nav__mobile-cta{
      display:inline-flex !important;
      align-items:center !important;
      justify-content:center !important;
      padding:8px 22px !important;
      font-size:11px !important;
      letter-spacing:.12em !important;
      text-transform:uppercase !important;
      color:#ffffff !important;
      border:1px solid #ffffff !important;
      background:transparent !important;
      border-radius:999px !important;
      text-decoration:none !important;
      transition:background .3s ease, color .3s ease, border-color .3s ease !important;
    }
    .nav__mobile-cta::after,
    .nav__links a.nav__mobile-cta::after{
      display:none !important;
    }
    .nav__mobile-cta:hover,
    .nav__mobile-cta:focus,
    .nav__links a.nav__mobile-cta:hover,
    .nav__links a.nav__mobile-cta:focus{
      background:#ffffff !important;
      color:#000000 !important;
    }
  }
  @media (min-width:641px) and (max-width:1024px){
    .artist__copy,
    .piercing__copy{position:relative;padding-right:160px;}
    .artist__copy > .btn,
    .piercing__copy > .btn{position:absolute;top:50%;right:0;transform:translateY(-50%);}
  }
  @media (max-width:640px){
    .about2plain__inner h2{font-size:clamp(26px,7vw,40px);}
    .footer-grid{grid-template-columns:1fr 1fr;}
    .footer-brand{flex-direction:column;align-items:center;text-align:center;}
    .collage__top-outer{width:85%;}
    .collage__bottom-outer{width:100%;margin-top:-4%;}
  }

/* ==========================================================================
   Booking Modal Styles
   ========================================================================== */
.booking-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  padding: 20px;
  box-sizing: border-box;
}

.booking-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.booking-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.booking-modal__content {
  position: relative;
  z-index: 2;
  background: #ffffff;
  color: #1a1a1a;
  width: 100%;
  max-width: 900px;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 4px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
  padding: 50px 45px;
  box-sizing: border-box;
}

.booking-modal__close {
  position: absolute;
  top: 20px;
  right: 25px;
  background: transparent;
  border: none;
  font-size: 32px;
  line-height: 1;
  color: #333333;
  cursor: pointer;
  padding: 5px;
  transition: color 0.2s ease;
}

.booking-modal__close:hover {
  color: var(--blood, #dc3545);
}

.booking-modal__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: start;
}

/* Left Column Info */
.booking-modal__info {
  display: flex;
  flex-direction: column;
}

.booking-modal__title {
  font-family: var(--font-head, sans-serif);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 700;
  line-height: 1.25;
  color: #1a1a1a;
  margin: 0 0 20px 0;
  text-transform: none;
  letter-spacing: -0.01em;
}

.booking-modal__subtitle {
  font-size: 15px;
  line-height: 1.6;
  color: #555555;
  margin: 0 0 25px 0;
}

.booking-modal__email {
  margin-bottom: 30px;
}

.booking-modal__email a {
  font-size: 15px;
  color: #1a1a1a;
  text-decoration: underline;
  word-break: break-all;
  font-weight: 500;
  transition: color 0.2s ease;
}

.booking-modal__email a:hover {
  color: var(--blood, #dc3545);
}

.booking-modal__contact-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 22px;
}

.booking-modal__phone {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #1a1a1a;
}

.booking-modal__whatsapp-btn {
  display: inline-block;
  padding: 6px 14px;
  background: #f0f0f0;
  color: #333333;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-decoration: none;
  border-radius: 3px;
  transition: background 0.2s ease, color 0.2s ease;
}

.booking-modal__whatsapp-btn:hover {
  background: #25d366;
  color: #ffffff;
}

/* Right Column Form */
.booking-modal__form-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
}

.booking-modal__form {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.booking-modal__field input,
.booking-modal__field textarea {
  width: 100%;
  padding: 14px 16px;
  background: #f8f8f8;
  border: 1px solid #e0e0e0;
  border-radius: 3px;
  font-family: inherit;
  font-size: 14px;
  color: #1a1a1a;
  box-sizing: border-box;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
}

.booking-modal__field input::placeholder,
.booking-modal__field textarea::placeholder {
  color: #888888;
}

.booking-modal__field input:focus,
.booking-modal__field textarea:focus {
  background: #ffffff;
  border-color: #1a1a1a;
}

.booking-modal__field textarea {
  resize: vertical;
  min-height: 110px;
}

.booking-modal__submit-btn {
  width: 100%;
  padding: 16px;
  background: #111111;
  color: #ffffff;
  border: none;
  border-radius: 3px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
  margin-top: 5px;
}

.booking-modal__submit-btn:hover {
  background: var(--blood, #dc3545);
}

.booking-modal__thankyou {
  display: none;
  margin-top: 20px;
  padding: 15px;
  background: #e6f4ea;
  color: #137333;
  border-radius: 3px;
  font-weight: 600;
  text-align: center;
  font-size: 16px;
}

/* Modal Responsive */
@media (max-width: 768px) {
  .booking-modal__content {
    padding: 40px 25px 30px 25px;
  }

  .booking-modal__grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .booking-modal__title br,
  .booking-modal__subtitle br {
    display: none;
  }
}

