:root{
    --ink:#100b06;
    --charcoal:#1b140c;
    --charcoal-2:#251b10;
    --gold-deep:#6b3d07;
    --gold:#b8894f;
    --gold-light:#e8cda0;
    --blush:#c47763;
    --ivory:#fdfaf3;
    --muted:#bba98a;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--ivory);
    font-family:'Jost',sans-serif;
    font-weight:300;
    line-height:1.7;
    overflow-x:hidden;
  }
  h1,h2,h3,h4,.display-font{
    font-family:'Cormorant Garamond',serif;
    font-weight:500;
    letter-spacing:.5px;
  }
  .cs-countdown {
    display: none;
}.cs-countdown {
    display: none;
}
  a{text-decoration:none;}
  ::selection{background:var(--gold);color:var(--ink);}

  /* focus visibility */
  a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
    outline:2px solid var(--gold); outline-offset:3px;
  }

  .section-pad{padding:7rem 0;}
  @media(max-width:767px){.section-pad{padding:4.5rem 0;}}

  .rule{
    width:56px;height:1px;background:var(--gold);
    margin:0 auto;
  }
  .rule.start{margin:0;}

  .btn-gold{
    background:linear-gradient(135deg,var(--gold-light),var(--gold) 55%,var(--gold-deep));
    color:var(--ink);
    border:none;
    padding:.85rem 2.1rem;
    font-family:'Jost',sans-serif;
    font-size:.9rem;
    letter-spacing:1px;
    border-radius:2px;
    transition:transform .35s ease, box-shadow .35s ease;
  }
  .btn-gold:hover{
    color:var(--ink);
    transform:translateY(-2px);
    box-shadow:0 12px 28px rgba(184,137,79,.25);
  }
  .btn-outline-gold{
    border:1px solid var(--gold);
    color:var(--ivory);
    padding:.8rem 2.1rem;
    font-family:'Jost',sans-serif;
    font-size:.9rem;
    letter-spacing:1px;
    border-radius:2px;
    background:transparent;
    transition:background .35s ease,color .35s ease;
  }
  .btn-outline-gold:hover{
    background:var(--gold);
    color:var(--ink);
  }

  /* NAVBAR */
  .navbar{
    padding:1.1rem 0;
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
    background:transparent;
  }
  .navbar.scrolled{
    background:rgba(11,10,9,.92);
    backdrop-filter:blur(10px);
    padding:.65rem 0;
    box-shadow:0 6px 24px rgba(0,0,0,.35);
  }
  .navbar-brand img{height:46px;width:46px;object-fit:cover;border-radius:50%;}
  .navbar-brand span{
    font-family:'Cormorant Garamond',serif;
    font-size:1.35rem;
    color:var(--ivory);
    margin-left:.6rem;
  }
  .navbar-brand span em{color:var(--gold);font-style:normal;}
  .nav-link{
    color:var(--muted)!important;
    font-size:.88rem;
    letter-spacing:.4px;
    margin:0 .7rem;
    position:relative;
    padding:.4rem 0!important;
  }
  .nav-link::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);
    transition:width .3s ease;
  }
  .nav-link:hover, .nav-link.active{color:var(--ivory)!important;}
  .nav-link:hover::after, .nav-link.active::after{width:100%;}
  .navbar-toggler{border:none;color:var(--gold);}

  /* HERO */
  .hero{
    min-height:100vh;
    display:flex;
    align-items:center;
    position:relative;
    background:
      radial-gradient(ellipse at 75% 20%, rgba(184,137,79,.16), transparent 55%),
      radial-gradient(ellipse at 15% 85%, rgba(231,203,180,.10), transparent 50%),
      var(--ink);
  }
  .hero::before{
    content:"";
    position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(184,137,79,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(184,137,79,.05) 1px, transparent 1px);
    background-size:60px 60px;
    -webkit-mask-image:radial-gradient(ellipse at center, black 0%, transparent 70%);
    mask-image:radial-gradient(ellipse at center, black 0%, transparent 70%);
    pointer-events:none;
  }
  .hero-eyebrow{
    color:var(--gold);
    font-size:.82rem;
    letter-spacing:2px;
  }
  .hero h1{
    font-size:clamp(2.6rem,5.5vw,4.4rem);
    line-height:1.12;
    max-width:15ch;
  }
  .hero h1 .accent{color:var(--blush);font-style:italic;}
  .hero p.lead-text{
    color:var(--muted);
    font-size:1.08rem;
    max-width:46ch;
  }
  .hero-portrait{
    position:relative;
    margin:0;
    padding:.9rem;
    border:1px solid rgba(184,137,79,.35);
    border-radius:4px;
  }
  .hero-portrait img{
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
    border-radius:2px;
    box-shadow:0 30px 80px rgba(0,0,0,.55);
  }
  .hero-portrait figcaption{
    position:absolute;left:1.6rem;bottom:-.9rem;
    background:var(--ink);
    border-left:2px solid var(--gold);
    padding:.3rem .8rem;
    font-size:.74rem;
    color:var(--muted);
    letter-spacing:.5px;
  }
  .scroll-cue{
    position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);
    color:var(--muted);font-size:.75rem;letter-spacing:2px;
    display:flex;flex-direction:column;align-items:center;gap:.5rem;
  }
  .scroll-cue .line{width:1px;height:34px;background:linear-gradient(var(--gold),transparent);}

  /* SECTION TITLES */
  .section-tag{color:var(--gold);font-size:.82rem;letter-spacing:2px;}
  .section-title{font-size:clamp(2rem,3.4vw,2.9rem);}
  .section-intro{color:var(--muted);max-width:60ch;}

  /* ABOUT */
  #about{background:var(--charcoal);}
  .about-frame{
    position:relative;
    border:1px solid rgba(184,137,79,.35);
    padding:1.3rem;
    border-radius:4px;
  }
  .about-frame img{border-radius:2px;width:100%;aspect-ratio:4/5;object-fit:cover;}
  .about-badge{
    position:absolute;bottom:-1.6rem;right:-1rem;
    background:var(--ink);
    border:1px solid var(--gold);
    padding:1rem 1.3rem;
    border-radius:3px;
    text-align:center;
  }
  .about-badge .num{font-family:'Cormorant Garamond',serif;font-size:1.9rem;color:var(--gold);display:block;line-height:1;}
  .about-badge .cap{font-size:.7rem;letter-spacing:1px;color:var(--muted);}
  .about-list{list-style:none;padding:0;margin:1.6rem 0 0;}
  .about-list li{
    padding:.55rem 0;
    border-bottom:1px solid rgba(184,137,79,.15);
    color:var(--ivory);
    font-size:.98rem;
  }
  .about-list li i{color:var(--gold);margin-right:.7rem;width:16px;}

  /* SERVICES */
  .service-card{
    background:var(--charcoal-2);
    border:1px solid rgba(184,137,79,.16);
    padding:2.4rem 1.9rem;
    border-radius:4px;
    height:100%;
    overflow:hidden;
    transition:border-color .35s ease, transform .35s ease;
  }
  .service-card:hover{border-color:rgba(184,137,79,.55); transform:translateY(-6px);}
  .service-icon{
    width:56px;height:56px;border-radius:50%;
    border:1px solid var(--gold);
    display:flex;align-items:center;justify-content:center;
    color:var(--gold);font-size:1.3rem;
    margin-bottom:1.4rem;
  }
  .service-card h3{font-size:1.5rem;}
  .service-card p{color:var(--muted);font-size:.94rem;margin-bottom:0;}

  /* GALLERY */
  #gallery{background:var(--charcoal);}
  .gallery-tile{
    position:relative;
    aspect-ratio:3/4;
    border-radius:4px;
    overflow:hidden;
    border:1px solid rgba(184,137,79,.18);
    display:flex;align-items:flex-end;
    padding:1.4rem;
  }
  .gallery-tile .tile-cap{
    color:var(--ivory);
    font-family:'Cormorant Garamond',serif;
    font-size:1.35rem;
    position:relative;z-index:2;
  }
  .gallery-tile .tile-sub{color:var(--gold);font-size:.72rem;letter-spacing:1.5px;position:relative;z-index:2;display:block;margin-top:.15rem;}
  .gallery-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%, rgba(0,0,0,.75) 100%);z-index:1;}
  .gallery-tile img{
    position:absolute;inset:0;
    width:100%;height:100%;
    object-fit:cover;
    z-index:0;
    transition:transform .6s ease;
  }
  .gallery-tile:hover img{transform:scale(1.06);}

  /* PRICING CARDS */
  .price-card{
    position:relative;
    height:100%;
    display:flex;flex-direction:column;justify-content:space-between;gap:1.4rem;
    background:var(--charcoal-2);
    border:1px solid rgba(184,137,79,.18);
    border-radius:4px;
    padding:1.7rem 1.6rem 1.5rem;
    overflow:hidden;
    transition:border-color .35s ease, transform .35s ease;
  }
  .price-card::before{
    content:"";position:absolute;left:0;top:0;right:0;height:2px;
    background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-light));
    opacity:.55;transition:opacity .35s ease;
  }
  .price-card:hover{border-color:rgba(184,137,79,.55);transform:translateY(-4px);}
  .price-card:hover::before{opacity:1;}
  .price-card h4{font-size:1.3rem;line-height:1.25;margin:0 0 .35rem;color:var(--ivory);}
  .price-card .price-sub{color:var(--muted);font-size:.86rem;line-height:1.5;margin:0;}
  .price-tag{display:flex;align-items:baseline;gap:.45rem;}
  .price-from{color:var(--muted);font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;}
  .price-amt{
    font-family:'Cormorant Garamond',serif;font-weight:500;
    font-size:2.4rem;line-height:1;color:var(--gold);white-space:nowrap;
  }
  .price-amt.enquire{font-size:1.7rem;}
  .price-flag{
    align-self:flex-start;
    background:var(--gold);color:var(--ink);
    font-size:.68rem;letter-spacing:1.5px;font-weight:500;
    padding:.25rem .75rem;border-radius:2px;
    margin-bottom:-.4rem;
  }

  /* featured (Complete Bridal Experience) */
  .price-card.featured{
    border-color:var(--gold);
    background:
      radial-gradient(ellipse at 90% 0%, rgba(184,137,79,.20), transparent 60%),
      var(--charcoal-2);
    padding:2.2rem 2rem 2rem;
    gap:1.6rem;
    justify-content:center;
  }
  .price-card.featured::before{opacity:1;height:3px;}
  .price-card.featured h4{font-size:clamp(1.7rem,2.6vw,2.2rem);}
  .price-card.featured .price-sub{font-size:.95rem;}
  .price-card.featured .price-amt{font-size:clamp(3.2rem,5vw,4.2rem);}
  .price-card.featured .price-cta{align-self:flex-start;}

  /* stacked rows (bridal side list): text left, price right */
  .price-stack{display:flex;flex-direction:column;gap:1rem;height:100%;}
  .price-stack .price-card{
    flex:1;flex-direction:row;align-items:center;justify-content:space-between;gap:1.2rem;
    padding:1.3rem 1.5rem;
  }
  .price-stack .price-tag{flex-direction:column;align-items:flex-end;gap:.15rem;flex:0 0 auto;}
  .price-stack .price-amt{font-size:2rem;}
  .price-stack .price-amt.enquire{font-size:1.5rem;}

  /* phones: every card becomes a compact row */
  @media(max-width:575px){
    .price-card{
      flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;
      padding:1.2rem 1.15rem;
    }
    .price-card h4{font-size:1.12rem;}
    .price-card .price-sub{font-size:.8rem;}
    .price-tag{flex-direction:column;align-items:flex-end;gap:.15rem;flex:0 0 auto;}
    .price-amt{font-size:1.8rem;}
    .price-amt.enquire{font-size:1.35rem;}
    .price-card.featured{flex-direction:column;align-items:flex-start;padding:1.7rem 1.35rem 1.5rem;gap:1.1rem;}
    .price-card.featured .price-tag{flex-direction:row;align-items:baseline;gap:.45rem;}
    .price-card.featured .price-amt{font-size:3rem;}
    .price-card.featured .price-cta{width:100%;text-align:center;}
    .price-flag{margin-bottom:0;}
    .price-stack{gap:.6rem;}
    .price-stack .price-card{padding:1.2rem 1.15rem;gap:1rem;}
    .price-stack .price-amt{font-size:1.8rem;}
    .price-stack .price-amt.enquire{font-size:1.35rem;}
  }
  /* tablets: featured card gets its own full row above the stack */
  @media(min-width:576px) and (max-width:991px){
    .price-card.featured{flex-direction:column;}
  }

  /* REELS */
  #reels{background:var(--ink);}
  .reel-tile{
    position:relative;border-radius:4px;overflow:hidden;
    border:1px solid rgba(184,137,79,.18);
    aspect-ratio:9/16;background:#000;
  }
  .reel-tile video{width:100%;height:100%;object-fit:cover;display:block;}
  .reel-tile .reel-tag{
    position:absolute;top:.9rem;left:.9rem;z-index:2;
    color:var(--gold);font-size:.68rem;letter-spacing:1.5px;
    background:rgba(16,11,6,.55);padding:.3rem .6rem;border-radius:20px;
  }

  /* CONTACT: location toggle */
  .location-toggle{display:flex;flex-direction:column;gap:.7rem;margin-bottom:.3rem;}
  .location-option{
    display:flex;align-items:flex-start;gap:.7rem;
    border:1px solid rgba(184,137,79,.3);
    border-radius:4px;padding:.85rem 1rem;cursor:pointer;
    transition:border-color .25s ease,background .25s ease;
  }
  .location-option:hover{border-color:var(--gold);}
  .location-option input{margin-top:.3rem;accent-color:var(--gold);}
  .location-option .loc-label{color:var(--ivory);font-size:.92rem;display:block;}
  .location-option .loc-sub{color:var(--muted);font-size:.78rem;display:block;margin-top:.15rem;}
  .location-option.checked{border-color:var(--gold);background:rgba(184,137,79,.08);}
  #faddress-wrap{display:none;}
  #faddress-wrap.show{display:block;}

  /* TESTIMONIALS */
  .quote-card{
    background:var(--charcoal-2);
    border:1px solid rgba(184,137,79,.16);
    padding:2.2rem;
    border-radius:4px;
    height:100%;
  }
  .quote-card i.fa-quote-left{color:var(--blush);font-size:1.3rem;opacity:.7;}
  .quote-card p.qtext{font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-style:italic;color:var(--ivory);}
  .quote-name{color:var(--gold);font-size:.85rem;letter-spacing:.5px;}
  .quote-role{color:var(--muted);font-size:.78rem;}

  /* CONTACT */
  #contact{background:var(--charcoal);}
  .contact-form .form-control{
    background:transparent;
    border:none;
    border-bottom:1px solid rgba(184,137,79,.35);
    color:var(--ivory);
    border-radius:0;
    padding:.7rem .2rem;
    font-family:'Jost',sans-serif;
    font-weight:300;
  }
  .contact-form .form-control:focus{
    box-shadow:none;
    border-bottom-color:var(--gold);
    background:transparent;
    color:var(--ivory);
  }
  .contact-form label{color:var(--muted);font-size:.8rem;letter-spacing:.5px;}
  .contact-form ::placeholder{color:#5c554a;}
  .contact-info-item{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.7rem;}
  .contact-info-item i{color:var(--gold);font-size:1.1rem;margin-top:.2rem;width:22px;}
  .contact-info-item h4{font-size:1.05rem;color:var(--ivory);margin-bottom:.2rem;font-family:'Jost',sans-serif;font-weight:500;}
  .contact-info-item p{color:var(--muted);font-size:.9rem;margin:0;}
  .social-circle{
    width:42px;height:42px;border-radius:50%;
    border:1px solid var(--gold);
    display:inline-flex;align-items:center;justify-content:center;
    color:var(--gold);margin-right:.6rem;
    transition:background .3s ease,color .3s ease;
  }
  .social-circle:hover{background:var(--gold);color:var(--ink);}

  /* FOOTER */
  footer{
    background:var(--ink);
    border-top:1px solid rgba(184,137,79,.16);
    padding:2.6rem 0;
  }
  footer img{height:40px;width:40px;border-radius:50%;object-fit:cover;}
  footer .fname{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--ivory);}
  footer p.small-note{color:var(--muted);font-size:.82rem;margin:0;}

  @media (prefers-reduced-motion: reduce){
    *{animation:none!important; transition:none!important;}
  }

  /* ============================================================
     NEW SECTIONS
     ============================================================ */

  /* Shared media frame */
  .media-frame{
    position:relative;
    border:1px solid rgba(184,137,79,.35);
    padding:1.1rem;
    border-radius:4px;
  }
  .media-frame img{width:100%;border-radius:2px;display:block;}

  /* SERVICE CARD IMAGES */
  .service-thumb{
    position:relative;
    margin:-2.4rem -1.9rem 1.6rem;
    border-radius:4px 4px 0 0;
    overflow:hidden;
    aspect-ratio:4/3;
  }
  .service-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
  .service-card:hover .service-thumb img{transform:scale(1.05);}
  .service-thumb::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(11,10,9,.15),rgba(11,10,9,.85));
  }

  /* PROCESS */
  #process{background:var(--charcoal-2);}
  .process-step{
    display:flex;gap:1.2rem;align-items:flex-start;
    padding:1.3rem 0;
    border-bottom:1px solid rgba(184,137,79,.15);
  }
  .process-step:last-child{border-bottom:none;}
  .process-num{
    flex:0 0 52px;height:52px;width:52px;border-radius:50%;
    border:1px solid var(--gold);
    display:flex;align-items:center;justify-content:center;
    font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--gold);
  }
  .process-step h3{font-size:1.3rem;margin-bottom:.25rem;}
  .process-step p{color:var(--muted);font-size:.93rem;margin:0;}

  /* PACKAGES */
  .package-card{
    background:var(--charcoal-2);
    border:1px solid rgba(184,137,79,.16);
    border-radius:4px;
    overflow:hidden;
    height:100%;
    display:flex;flex-direction:column;
    transition:border-color .35s ease, transform .35s ease;
  }
  .package-card:hover{border-color:rgba(184,137,79,.55);transform:translateY(-6px);}
  .package-card.featured{border-color:var(--gold);}
  .package-media{position:relative;aspect-ratio:3/2;overflow:hidden;}
  .package-media img{width:100%;height:100%;object-fit:cover;display:block;}
  .package-media::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(11,10,9,.1),rgba(11,10,9,.8));
  }
  .package-flag{
    position:absolute;top:1rem;right:1rem;z-index:2;
    background:var(--gold);color:var(--ink);
    font-size:.68rem;letter-spacing:1.5px;
    padding:.25rem .7rem;border-radius:2px;
  }
  .package-body{padding:1.9rem;display:flex;flex-direction:column;flex:1;}
  .package-body h3{font-size:1.6rem;margin-bottom:.2rem;}
  .package-price{
    font-family:'Cormorant Garamond',serif;
    color:var(--gold);font-size:1.6rem;line-height:1;margin-bottom:1.1rem;
  }
  .package-price small{font-family:'Jost',sans-serif;font-size:.72rem;color:var(--muted);letter-spacing:1px;}
  .package-list{list-style:none;padding:0;margin:0 0 1.6rem;}
  .package-list li{
    color:var(--muted);font-size:.9rem;padding:.4rem 0;
    border-bottom:1px solid rgba(184,137,79,.12);
  }
  .package-list li i{color:var(--gold);margin-right:.6rem;width:14px;}
  .package-body .btn{margin-top:auto;align-self:flex-start;}
  .price-note{color:var(--muted);font-size:.8rem;}

  /* FAQ */
  #faq{background:var(--charcoal);}
  .faq-accordion .accordion-item{
    background:transparent;
    border:none;
    border-bottom:1px solid rgba(184,137,79,.18);
  }
  .faq-accordion .accordion-button{
    background:transparent;
    color:var(--ivory);
    font-family:'Cormorant Garamond',serif;
    font-size:1.22rem;
    padding:1.15rem 0;
    box-shadow:none;
  }
  .faq-accordion .accordion-button:not(.collapsed){color:var(--gold);}
  .faq-accordion .accordion-button::after{
    filter:invert(65%) sepia(38%) saturate(650%) hue-rotate(342deg) brightness(88%);
  }
  .faq-accordion .accordion-body{
    color:var(--muted);font-size:.94rem;padding:0 0 1.3rem;
  }

  /* CTA BANNER */
  .cta-banner{
    position:relative;
    border-radius:4px;
    overflow:hidden;
    border:1px solid rgba(184,137,79,.25);
  }
  .cta-banner img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
  .cta-banner .cta-inner{
    position:relative;z-index:2;
    padding:5rem 1.5rem;
    text-align:center;
    background:linear-gradient(180deg,rgba(11,10,9,.72),rgba(11,10,9,.88));
  }
  .cta-banner h2{font-size:clamp(1.9rem,3.2vw,2.7rem);}
  .cta-banner p{color:var(--muted);max-width:52ch;margin:0 auto 1.8rem;}

  /* INSTAGRAM */
  #instagram{background:var(--charcoal-2);}
  .insta-tile{
    position:relative;display:block;
    aspect-ratio:1/1;border-radius:3px;overflow:hidden;
    border:1px solid rgba(184,137,79,.16);
  }
  .insta-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
  .insta-tile::after{
    content:"\f16d";
    font-family:"Font Awesome 6 Brands";font-weight:400;
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    background:rgba(11,10,9,.62);
    color:var(--gold);font-size:1.6rem;
    opacity:0;transition:opacity .35s ease;
  }
  .insta-tile:hover::after{opacity:1;}
  .insta-tile:hover img{transform:scale(1.07);}

  /* tighter nav spacing now that there are more links */
  @media (min-width:992px) and (max-width:1300px){
    .nav-link{margin:0 .42rem;font-size:.82rem;}
    .navbar-brand span{font-size:1.18rem;}
  }

  /* ============================================================
     RESPONSIVE POLISH (mobile / small tablets)
     ============================================================ */
  @media (max-width:991px){
    .navbar-collapse{
      background:rgba(16,11,6,.97);
      margin-top:1rem;
      padding:1.2rem 1.4rem;
      border-radius:6px;
      border:1px solid rgba(184,137,79,.2);
    }
    .nav-link{margin:.3rem 0;}
    .navbar-nav .btn-gold{margin-top:.6rem;width:100%;text-align:center;}
  }
  @media (max-width:575px){
    .navbar-brand img{height:38px;width:38px;}
    .navbar-brand span{font-size:1.05rem;margin-left:.45rem;}
    .hero{min-height:auto;padding:7.5rem 0 4rem;}
    .hero h1{font-size:clamp(2.1rem,8vw,2.7rem);}
    .hero-portrait{margin-top:1rem;}
    .about-badge{right:.4rem;bottom:-1.3rem;padding:.75rem 1rem;}
    .about-badge .num{font-size:1.5rem;}
    .cta-banner .cta-inner{padding:3.2rem 1.2rem;}
    .package-flag{top:.7rem;right:.7rem;font-size:.6rem;}
    footer .container{text-align:center;justify-content:center!important;}
  }

  /* ============================================================
     EXTRA RESPONSIVE POLISH (tablets + small phones, full page)
     ============================================================ */

  /* General safety: nothing should ever force horizontal scroll */
  img,video{max-width:100%;height:auto;}
  .container{width:100%;}
  .table-responsive-wrap{overflow-x:auto;}

  /* TABLET (768px - 991px): tighten spacing, keep 2-up grids comfortable */
  @media (max-width:991px){
    .section-title{font-size:clamp(1.8rem,4.6vw,2.5rem);}
    .hero-portrait{max-width:420px;margin-left:auto;margin-right:auto;}
    .about-frame{max-width:420px;margin-left:auto;margin-right:auto;}
    .service-card{padding:2rem 1.5rem;}
    .service-thumb{margin:-2rem -1.5rem 1.4rem;}
    .group-head h3{font-size:1.5rem;}
    .package-body{padding:1.5rem;}
    .cta-banner .cta-inner{padding:3.8rem 1.5rem;}
  }

  /* SMALL PHONES (max 575px): everything below is full page, not just hero */
  @media (max-width:575px){
    .container{padding-left:1.1rem;padding-right:1.1rem;}
    .section-title{font-size:clamp(1.6rem,7vw,2.1rem);}
    .section-intro{font-size:.92rem;}

    /* nav */
    .navbar .container{padding-left:1.1rem;padding-right:1.1rem;}

    /* hero buttons stack full-width for easy tapping */
    .hero .d-flex.flex-wrap.gap-3{flex-direction:column;}
    .hero .d-flex.flex-wrap.gap-3 .btn-gold,
    .hero .d-flex.flex-wrap.gap-3 .btn-outline-gold{width:100%;text-align:center;}

    /* service cards */
    .service-card{padding:1.8rem 1.3rem;}
    .service-thumb{margin:-1.8rem -1.3rem 1.3rem;}
    .service-card h3{font-size:1.3rem;}

    /* process */
    .process-step{gap:.9rem;}
    .process-num{flex:0 0 42px;height:42px;width:42px;font-size:1.05rem;}
    .process-step h3{font-size:1.12rem;}
    .process-step p{font-size:.88rem;}

    /* gallery + reels: keep 2-up grid but shrink padding/text so nothing crowds */
    .gallery-tile{padding:.9rem;}
    .gallery-tile .tile-cap{font-size:1.05rem;}
    .gallery-tile .tile-sub{font-size:.62rem;}
    .reel-cap{padding:.5rem .1rem 0;}
    .reel-cap .reel-title{font-size:1rem;}
    .reel-cap .reel-sub{font-size:.62rem;}
    .reel-tile .reel-tag{top:.6rem;left:.6rem;font-size:.6rem;padding:.22rem .5rem;}
    .group-head{padding-left:.8rem;}
    .group-head h3{font-size:1.3rem;}
    .group-head p{font-size:.85rem;}
    .media-group{margin-top:2.8rem;}
    .row.g-3{--bs-gutter-x:0.6rem;--bs-gutter-y:0.6rem;}

    /* packages */
    .package-body{padding:1.4rem;}
    .package-body h3{font-size:1.35rem;}
    .price-row{padding:1.05rem 1.2rem;}

    /* faq accordion */
    .faq-accordion .accordion-button{font-size:1.05rem;padding:1rem 0;}
    .faq-accordion .accordion-body{font-size:.88rem;}

    /* instagram grid: 3-up stays comfortable */
    .insta-tile::after{font-size:1.2rem;}

    /* contact */
    .location-option{padding:.7rem .85rem;}
    .location-option .loc-label{font-size:.86rem;}
    .location-option .loc-sub{font-size:.72rem;}
    .contact-info-item{margin-bottom:1.3rem;}
    .social-circle{width:38px;height:38px;}
  }

  /* VERY SMALL PHONES (max 380px) */
  @media (max-width:380px){
    .hero h1{font-size:1.9rem;}
    .gallery-tile .tile-cap{font-size:.95rem;}
    .reel-cap .reel-title{font-size:.92rem;}
    .row.g-3 > [class*="col-6"]{padding-left:calc(var(--bs-gutter-x)*.5);padding-right:calc(var(--bs-gutter-x)*.5);}
  }


  /* MEDIA GROUPS (portfolio + reels sub-sections) */
  .media-group{margin-top:4rem;}
  .media-group.first{margin-top:0;}
  .group-head{margin-bottom:1.4rem;padding-left:1rem;border-left:2px solid var(--gold);}
  .group-head h3{font-size:1.7rem;margin:0 0 .3rem;color:var(--ivory);}
  .group-head p{color:var(--muted);font-size:.95rem;margin:0;max-width:62ch;}
  .reel-cap{padding:.7rem .2rem 0;}
  .reel-cap .reel-title{display:block;font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--ivory);line-height:1.2;}
  .reel-cap .reel-sub{display:block;color:var(--gold);font-size:.7rem;letter-spacing:1.5px;margin-top:.15rem;}


  /* ============================================================
     LAYOUT FIXES (desktop + mobile)
     ============================================================ */

  /* anchor links no longer hide the heading under the fixed navbar */
  section[id]{scroll-margin-top:70px;}

  /* hero: breathing room for fixed navbar + scroll cue on desktop / tablet */
  @media(min-width:576px){
    .hero{padding:7.5rem 0 5.5rem;}
  }

  /* long mobile menu can scroll on short phones instead of being cut off */
  @media(max-width:991px){
    .navbar-collapse{max-height:calc(100vh - 100px);overflow-y:auto;}
  }

  /* tablets: hero/about/process/faq stack neatly, images centred and capped */
  @media(max-width:991px){
    .media-frame{max-width:460px;margin-left:auto;margin-right:auto;}
    .hero h1{max-width:18ch;}
    .hero .lead-text{max-width:52ch;}
  }

  /* process + faq photos: same 4:5 crop on desktop so columns line up */
  .media-frame img{aspect-ratio:4/5;object-fit:cover;}

  /* contact form: select arrow + date picker visible on dark background */
  .contact-form{color-scheme:dark;}
  .contact-form select.form-select{
    background-color:transparent;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23b8894f' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right .3rem center;
    background-size:14px 10px;
    padding-right:1.8rem;
  }
  .contact-form select option{background:var(--charcoal-2);color:var(--ivory);}
  .contact-form input[type="date"]{min-height:calc(1.5em + 1.4rem);}

  /* small phones: form + buttons comfortable to tap */
  @media(max-width:575px){
    .contact-form .btn-gold{width:100%;}
    .cta-banner .btn{width:100%;}
    .price-note{padding:0 .3rem;}
  }
