/* self-hosted fonts (latin) */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorantgaramond-500i.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(fonts/cormorantgaramond-600i.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorantgaramond-500.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/cormorantgaramond-600.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dmsans-400.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/dmsans-500.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/dmsans-700.woff2) format('woff2')}

  :root{
    --paper:#FFFCF5;
    --paper-2:#FFFAED;
    --ink:#1F4A46;
    --ink-soft:#55736F;
    --gold:#B08A45;
    --gold-deep:#8F6E32;
    --gold-pale:#E3CC90;
    --blush:#E5A79A;
    --line:rgba(31,74,70,.14);
    --line-dark:rgba(255,252,245,.2);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:"DM Sans",system-ui,sans-serif;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  .wrap{max-width:1120px;margin:0 auto;padding:0 28px}
  a{color:inherit;text-decoration:none}
  ::selection{background:var(--gold-pale);color:var(--ink)}

  /* nav */
  nav{position:sticky;top:0;z-index:50;background:rgba(255,252,245,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
  nav .wrap{display:flex;align-items:center;justify-content:space-between;height:78px;max-width:none;padding:0 clamp(20px,3.6vw,46px)}
  .brand{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.32rem;letter-spacing:.01em;white-space:nowrap}
  .brand em{font-style:italic;font-weight:500;color:var(--gold)}
  .brand img{display:block;height:52px;width:auto}
  @media(max-width:520px){.brand img{height:40px}}
  .navlinks{display:flex;gap:clamp(14px,1.9vw,34px);align-items:center}
  .navlinks > a:not(.btn){font-size:.76rem;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft);transition:color .25s;white-space:nowrap}
  .navlinks > a:not(.btn):hover{color:var(--gold-deep)}
  .btn{
    display:inline-block;background:var(--ink);color:var(--paper);
    font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;
    padding:15px 30px;border-radius:999px;border:none;cursor:pointer;white-space:nowrap;
    transition:background .25s,transform .25s,box-shadow .25s;
  }
  .btn:hover{background:var(--gold-deep);transform:translateY(-1px);box-shadow:0 14px 30px rgba(143,110,50,.28)}
  .btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
  .btn-ghost:hover{background:transparent;color:var(--gold-deep);border-color:var(--gold);box-shadow:none}
  @media(max-width:1080px){.navlinks > a:not(.btn){display:none}}


  /* MOBILE MENU (2026-08-11, rebuilt JS-free). First version used a <button>
     plus a script in site.js. It worked in every emulator and did not open on
     a real iPhone, and every remaining suspect (a cached site.js, an earlier
     IIFE throwing and halting the file before this one ran, an iOS click
     quirk) shared one root: it depended on JavaScript. This is now a native
     <details>/<summary> disclosure, so the open and close are done by the
     browser itself and no script has to run at all. The FAQ blocks on this
     site already use <details>, so nothing new was introduced. */
  .navmenu{display:none;position:static}
  .navmenu > summary.navtoggle{display:inline-flex;align-items:center;gap:9px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
  .navmenu > summary.navtoggle::-webkit-details-marker{display:none}
  .navmenu > summary.navtoggle::marker{content:""}
  .navtoggle .bars{display:block;width:16px;height:10px;position:relative;flex:none}
  .navtoggle .bars::before,.navtoggle .bars::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .3s ease}
  .navtoggle .bars::before{top:0}
  .navtoggle .bars::after{bottom:0}
  .navmenu[open] .bars::before{transform:translateY(4px) rotate(45deg)}
  .navmenu[open] .bars::after{transform:translateY(-4px) rotate(-45deg)}
  .sitemenu{position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 26px 52px rgba(31,74,70,.16);max-height:calc(100vh - 78px);overflow-y:auto}
  .sitemenu ul{list-style:none;margin:0;padding:2px clamp(20px,3.6vw,46px) 16px}
  .sitemenu li{border-top:1px solid var(--line)}
  .sitemenu li:first-child{border-top:none}
  .sitemenu a{display:block;padding:17px 2px;font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);transition:color .25s}
  .sitemenu a:hover,.sitemenu a:focus-visible{color:var(--gold-deep)}
  @media(max-width:1080px){
    .navlinks .btn:not(.navtoggle){display:none}
    .navmenu{display:block}
  }

  /* hero */
  .hero{position:relative;padding:104px 0 116px;background:radial-gradient(1100px 520px at 72% -12%,rgba(176,138,69,.12),transparent 62%)}
  .hero-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:64px;align-items:center}
  .eyebrow{
    display:flex;align-items:center;gap:16px;
    font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.32em;color:var(--gold-deep);
    margin-bottom:28px;
  }
  .eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}
  h1{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(2.5rem,5.2vw,3.9rem);line-height:1.14;letter-spacing:.05em;margin-bottom:26px;text-transform:uppercase}
  h1 em,h2 em{font-style:italic;font-weight:400;color:var(--gold-deep);margin-left:.1em}
  .lead{font-size:1.12rem;color:var(--ink-soft);max-width:37ch;margin-bottom:40px}
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center}

  /* photo strip */
  .strip{
    background:#fff;padding:13px 13px 40px;border:1px solid var(--line);
    box-shadow:0 34px 70px rgba(31,74,70,.22);transform:rotate(3deg);
    width:212px;margin:0 auto;position:relative;
  }
  .strip .strip-loc{position:absolute;bottom:13px;left:0;right:0;text-align:center;font-size:.6rem;font-weight:700;color:#8A9E9B;letter-spacing:.3em}
  .frame{height:118px;margin-bottom:10px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:8px;background:var(--paper-2)}
  .frame:last-of-type{margin-bottom:0}
  .frame span{font-size:.56rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(31,74,70,.55);padding:3px 8px;position:relative;z-index:2}
  .frame img,
  .frame video {position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  @media(max-width:880px){.hero{padding:72px 0 84px}.hero-grid{grid-template-columns:1fr;gap:56px}.strip{transform:rotate(-2deg)}}

  /* band */
  /* SCROLLING MARQUEE. Built to the site editor's band contract
     (src/site_editor_client.js bandInfoFrom): the track is ONE container of
     4+ same-tag simple text children whose text list REPEATS, which is what
     lets the editor edit the whole band through its comma-separated dialog
     instead of span by span. Do not merge the items, do not wrap them in
     extra elements, and keep the list written exactly twice: the loop is
     seamless only because translateX(-50%) is exactly HALF the track, and the
     editor's repeat test only passes on a whole number of copies.

     THE LIST IS WRITTEN 20 TIMES ON PURPOSE. One copy measures about 667px,
     so two copies ran out on any screen wider than ~1300px and the band
     visibly ended mid-row (caught on a 3456px display). Half the track must
     be WIDER THAN THE VIEWPORT or the loop shows its seam. Ten copies a
     half is ~6270px, past any display in use. The duration scales with
     the copy count to hold the speed at ~20px/s: 34s for 2 copies, 340s for
     20. Change one and you must change the other.
     The second copy carries aria-hidden so a screen reader hears the list
     once; that attribute does not affect the editor's uniformity test. */
  .band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;background:var(--paper-2);overflow:hidden}
  .band .mq{overflow:hidden}
  .band .mq-track{display:flex;align-items:center;width:max-content;white-space:nowrap;
    font-size:.72rem;font-weight:600;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.18em;
    animation:bandscroll 340s linear infinite}
  .band .mq-track > span{flex:none;padding:0}
  .band .mq-track > span::after{content:"\00b7";margin:0 18px;color:var(--gold)}
  /* Pause on hover: a target that never stops moving is miserable to click,
     in the site editor most of all. */
  .band .mq:hover .mq-track,.band .mq-track:focus-within{animation-play-state:paused}
  @keyframes bandscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media(prefers-reduced-motion:reduce){
    .band .mq-track{animation:none;width:100%;justify-content:center;flex-wrap:wrap;gap:10px 0}
    .band .mq-track > span[aria-hidden]{display:none}
  }

  /* sections */
  section{padding:104px 0}
  .alt{background:var(--paper-2)}
  .sec-eyebrow{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.32em;color:var(--gold-deep);margin-bottom:18px}
  h2{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(1.9rem,3.6vw,2.6rem);letter-spacing:.06em;line-height:1.18;margin-bottom:18px;text-transform:uppercase}
  .sec-lead{color:var(--ink-soft);max-width:58ch;font-size:1.04rem}

  /* Reconciled list: the card count is the client's package count, not the
   demo's. Flex-wrap + justify-content:center keeps a trailing row of 1 or 2
   centred instead of stranded; a full row renders identically to the grid. */
.booths{display:flex;flex-wrap:wrap;justify-content:center;gap:22px;margin-top:54px}
  .booths > .booth{flex:0 1 calc((100% - 22px) / 2 - 0.5px);min-width:260px;}
  .booth{display:block;background:#fff;border:1px solid var(--line);padding:38px 36px;transition:border-color .3s,transform .3s,box-shadow .3s}
  .booth:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 22px 44px rgba(31,74,70,.1)}
  .booth .num{font-size:.68rem;font-weight:700;letter-spacing:.28em;color:var(--gold)}
  .booth h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.7rem;margin:16px 0 10px}
  .booth p{color:var(--ink-soft);font-size:.97rem}
  .booth img,
  .booth video {display:block;width:calc(100% + 72px);height:210px;object-fit:cover;object-position:50% 30%;margin:-38px -36px 26px}
  @media(max-width:680px){.booths > .booth{flex:1 1 100%}}

  /* tags */
  .tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:38px}
  .tag{border:1px solid var(--line);border-radius:999px;padding:11px 24px;font-size:.92rem;color:var(--ink-soft);background:transparent;transition:border-color .25s,color .25s}
  .tag:hover{border-color:var(--gold);color:var(--gold-deep)}

  /* gallery */
  .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:48px}
  .gallery-grid figure{overflow:hidden;border:1px solid var(--line)}
  .gallery-grid img,
  .gallery-grid video {display:block;width:100%;height:320px;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1)}
  .gallery-grid figure:hover img,
  .gallery-grid figure:hover video {transform:scale(1.045)}
  @media(max-width:680px){.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid img,
.gallery-grid video {height:210px}}

  /* gallery belt (homepage) */
  .gbelt{margin-top:56px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
  .gbelt-track{display:flex;width:max-content;padding:24px 0 46px;animation:gdrift 46s linear infinite}
  .gbelt:hover .gbelt-track{animation-play-state:paused}
  @keyframes gdrift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  .gbelt-item{position:relative;width:250px;flex:none;margin-right:34px}
  .gbelt-item:nth-child(even){transform:translateY(22px)}
  .gbelt-item::after{content:"";position:absolute;inset:-11px;border:1px solid var(--gold-pale);pointer-events:none;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
  .gbelt-ph{position:relative;height:330px;overflow:hidden;transition:transform .6s cubic-bezier(.2,.6,.2,1)}
  .gbelt-ph img,
  .gbelt-ph video {display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.6,.2,1)}
  .gbelt-item:hover .gbelt-ph{transform:translateY(-8px)}
  .gbelt-item:hover .gbelt-ph img,
  .gbelt-item:hover .gbelt-ph video {transform:scale(1.07)}
  .gbelt-item:hover::after{transform:translate(7px,9px)}
  @media(max-width:680px){.gbelt-item{width:200px;margin-right:26px}.gbelt-ph{height:266px}}
  @media(prefers-reduced-motion:reduce){.gbelt-track{animation:none}.gbelt{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}

  /* steps */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:56px}
  .step .n{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-style:italic;font-weight:500;font-size:2.7rem;color:var(--gold);line-height:1}
  .step h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.45rem;margin:18px 0 8px}
  .step p{color:var(--ink-soft);font-size:.96rem}
  @media(max-width:680px){.steps{grid-template-columns:1fr;gap:36px}}

  /* faq */
  .faq{max-width:760px;margin:44px auto 0}
  .faq details{border-bottom:1px solid var(--line);padding:24px 0}
  .faq details:first-of-type{border-top:1px solid var(--line)}
  .faq summary{
    font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.32rem;cursor:pointer;
    list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
  }
  .faq summary::-webkit-details-marker{display:none}
  .faq summary::after{content:"+";font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-size:1.5rem;color:var(--gold);flex-shrink:0;transition:transform .3s}
  .faq details[open] summary::after{transform:rotate(45deg)}
  .faq details p{color:var(--ink-soft);font-size:.98rem;padding-top:14px;max-width:62ch}

  /* booking */
  .final{background:var(--ink);color:var(--paper);text-align:center;position:relative}
  .final::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 420px at 50% 0%,rgba(176,138,69,.16),transparent 65%);pointer-events:none}
  .final .wrap{position:relative}
  .final .sec-eyebrow{color:var(--gold-pale)}
  .final h2{font-size:clamp(2.4rem,5vw,3.6rem)}
  .final h2 em{color:var(--gold-pale)}
  .final>.wrap>p{color:rgba(255,252,245,.72);max-width:48ch;margin:0 auto 40px}
  .areas{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,252,245,.55);margin-top:52px}
  .areas b{color:var(--gold-pale)}

  /* form */
  .form{max-width:580px;margin:0 auto;text-align:left;display:grid;gap:18px}
  .form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .form .row>div{min-width:0}
  .form label{display:block;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.22em;color:var(--gold-pale);margin-bottom:8px}
  .form input,.form select,.form textarea{
    width:100%;background:rgba(255,252,245,.05);border:1px solid var(--line-dark);border-radius:4px;
    padding:14px 15px;color:var(--paper);font-family:"DM Sans",sans-serif;font-size:1rem;transition:border-color .25s;
  }
  .form select option{color:var(--ink)}
  .form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--gold)}
  .form .flash{border-color:var(--gold);box-shadow:0 0 0 3px rgba(176,138,69,.3)}
  .form textarea{min-height:98px;resize:vertical}
  /* iOS Safari sizes input[type=date] from its own date text plus the picker
     indicator and will not shrink it below that, so on a phone the field runs
     out past the rest of the form. Desktop WebKit does not do this, which is
     why it never showed up in the headless sweep. Drop the native appearance
     and let the field take its track's width like every other control. */
  .form input[type="date"]{
    -webkit-appearance:none;appearance:none;
    min-width:0;max-width:100%;text-align:left;
    min-height:51px; /* appearance:none can collapse an empty date field on iOS;
                        this is the height the other controls already render at,
                        so it is inert everywhere it is not needed */
  }
  .form input[type="date"]::-webkit-date-and-time-value{text-align:left;margin:0;min-width:0}
  .form input[type="date"]::-webkit-calendar-picker-indicator{margin-left:auto}

  /* OPTIONAL package select + add-on checkbox group (present only when the
     client's onboarding asked; RECONCILED from client_packages on every portal
     save — src/site_prices.js). Dark-toned to sit inside the booking form. */
  .addon-picks{border:1px solid var(--line-dark);border-radius:4px;padding:14px 15px 17px}
  .addon-picks legend{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,252,245,.75);padding:0 6px;background:var(--ink)}
  .addon-picks label{display:flex;align-items:flex-start;gap:9px;font-size:.95rem;line-height:1.5;color:var(--paper);margin-top:9px;cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:400;margin-bottom:0}
  .addon-picks input[type="checkbox"]{width:16px;height:16px;flex:0 0 auto;margin-top:2px;accent-color:var(--gold)}
  @media(min-width:620px){.addon-picks{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.addon-picks legend{grid-column:1/-1}}

  .form .btn{width:100%;margin-top:6px;padding:17px;background:var(--gold);color:var(--ink)}
  .form .btn:hover{background:var(--gold-pale);box-shadow:0 14px 34px rgba(0,0,0,.35)}
  .form-alt{margin-top:18px;font-size:.9rem;color:rgba(255,252,245,.6);text-align:center}
  .form-alt a{color:var(--gold-pale);border-bottom:1px solid rgba(227,204,144,.4)}
  .hp{position:absolute;left:-9999px}
  @media(max-width:560px){.form .row{grid-template-columns:1fr}}

  footer{border-top:1px solid var(--line);padding:44px 0;color:var(--ink-soft);font-size:.86rem}
  footer .footrow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
  footer em{font-style:normal;color:var(--gold-deep)}

  /* reveal */
  .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
  .reveal.in{opacity:1;transform:none}

  @media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}html{scroll-behavior:auto}}

  /* internal links */
  .textlink{color:var(--gold-deep);border-bottom:1px solid var(--gold-pale);transition:color .2s}
  .textlink:hover{color:var(--gold)}
  .footlinks{display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:center;margin-bottom:28px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.18em}
  .footlinks a{color:var(--ink-soft);transition:color .2s}
  .footlinks a:hover{color:var(--gold-deep)}

  /* pricing cards */
  .price{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:2.3rem;color:var(--gold-deep);line-height:1;margin:12px 0 2px}
  .price small{font-size:.9rem;font-family:"DM Sans",sans-serif;color:var(--ink-soft);font-weight:400}
  .booth ul{list-style:none;margin-top:16px}
  .booth li{padding:7px 0;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.93rem}
  .booth li b{color:var(--ink);font-weight:600}

  /* venue guide */
  .venue{border-top:1px solid var(--line);padding:30px 0}
  .venue:last-of-type{border-bottom:1px solid var(--line)}
  .venue h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:1.5rem;margin-bottom:8px}
  .venue p{color:var(--ink-soft);max-width:64ch}
  .venue .bn{margin-top:10px;font-style:italic;color:var(--gold-deep);font-size:.95rem}

  /* editorial hero (homepage) */
  .ed{padding:0 0 96px;color:#fff;background-color:#000;background-image:linear-gradient(rgba(0,0,0,.8),rgba(0,0,0,.8)),url(images/hero-bride-booth.webp);background-size:auto,cover;background-position:center;background-attachment:fixed,fixed}
  @media(hover:none){
    .ed,.fixbg{background-image:none;clip-path:inset(0)}
    .ed::before,.fixbg::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-color:#000;background-image:linear-gradient(rgba(0,0,0,.8),rgba(0,0,0,.8)),url(images/hero-bride-booth.webp);background-size:auto,cover;background-position:center}
    .ed-grid,.fixbg .wrap{position:relative;z-index:1}
  }
  .ed-grid{display:grid;grid-template-columns:44% 1fr;align-items:center;padding-top:56px}
  .ed-photo{position:relative;margin-left:3vw;z-index:1}
  .ed-photo img,
  .ed-photo video {display:block;width:100%;height:min(66vh,620px);object-fit:cover;box-shadow:0 40px 80px rgba(31,74,70,.25)}
  .ed-photo::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--gold-pale);z-index:-1}
  .ed-copy{padding:0 13vw 0 4.5vw}
  .ed-copy .eyebrow{margin-bottom:26px;color:var(--gold-pale)}
  .ed-copy .eyebrow::before{background:var(--gold-pale)}
  .ed h1{font-weight:500;font-size:clamp(2.4rem,4.3vw,4rem);line-height:1.06;letter-spacing:.04em;margin-bottom:0}
  .ed h1 em{display:block;text-transform:none;font-weight:500;font-size:clamp(1.9rem,3vw,2.7rem);letter-spacing:.02em;margin:16px 0 0;color:var(--gold-pale)}
  .ed .lead{margin:26px 0 0;max-width:44ch;color:rgba(255,255,255,.82)}
  .ed .hero-cta{margin-top:46px}
  .btn-ed{position:relative;display:inline-block;background:var(--gold);color:var(--ink);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.22em;padding:20px 46px;transition:background .3s}
  .btn-ed::after{content:"";position:absolute;inset:7px -7px -7px 7px;border:1px solid var(--gold-pale);pointer-events:none;transition:transform .35s cubic-bezier(.2,.6,.2,1)}
  .btn-ed:hover{background:var(--gold-pale)}
  .btn-ed:hover::after{transform:translate(-7px,-7px)}
  .btn-ed:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
  .ed-float{position:absolute;z-index:2}
  .ed-float img,
  .ed-float video {display:block;width:100%;object-fit:cover}
  .ed-f1{top:8%;right:3.5%;width:158px}
  .ed-f1 img,
  .ed-f1 video {height:206px;box-shadow:0 24px 48px rgba(31,74,70,.2)}
  .ed-f2{top:58%;right:-64px;width:210px;filter:grayscale(1);opacity:.92}
  .ed-f2 img,
  .ed-f2 video {height:280px}
  @media(max-width:1280px){.ed-float{display:none}.ed-copy{padding-right:6vw}}
  @media(max-width:880px){.ed{padding-bottom:72px}.ed-grid{grid-template-columns:1fr;gap:44px;padding-top:40px}.ed-photo{margin:0 8vw}.ed-photo img,
.ed-photo video {height:52vh}.ed-copy{padding:0 28px}}
  @media(prefers-reduced-motion:no-preference){
    .ed-photo{animation:edrise 1s cubic-bezier(.2,.6,.2,1) both .05s}
    .ed-copy{animation:edfade 1s ease both .3s}
    .ed-float{animation:edfade 1s ease both .55s}
  }
  @keyframes edrise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
  @keyframes edfade{from{opacity:0}to{opacity:1}}

  /* fixed-image dark section */
  .fixbg{color:#fff;background-color:#000;background-image:linear-gradient(rgba(0,0,0,.8),rgba(0,0,0,.8)),url(images/hero-bride-booth.webp);background-size:auto,cover;background-position:center;background-attachment:fixed,fixed}
  .fixbg .sec-eyebrow{color:var(--gold-pale)}
  .fixbg h2 em{color:var(--gold-pale)}
  .fixbg .tag{border-color:rgba(255,252,245,.35);color:rgba(255,252,245,.85);transition:background .25s,border-color .25s,color .25s}
  .fixbg .tag:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}

  /* venue pin map (homepage) */
  .v1-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
  .v1-note{margin-top:26px;font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-style:italic;font-size:1.2rem;color:var(--gold-deep)}
  .v1-map{position:relative;height:580px;background:var(--paper-2);border:1px solid var(--line);overflow:hidden}
  .v1-map canvas{position:absolute;inset:0;width:100%;height:100%}
  .v1-star{position:absolute;z-index:3;transform:translate(-50%,-50%);text-align:center}
  .v1-star .s{display:block;width:16px;height:16px;margin:0 auto;background:var(--gold);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
  .v1-star .t{display:block;font-size:.66rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin-top:6px}
  .v1-pin{position:absolute;z-index:2;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px}
  .v1-pin:hover{z-index:6}
  .v1-pin .d{width:8px;height:8px;border-radius:50%;background:var(--gold-deep);box-shadow:0 0 0 4px rgba(176,138,69,.18);transition:transform .3s,box-shadow .3s;flex:none}
  .v1-pin .l{font-size:.74rem;font-weight:600;letter-spacing:.06em;color:var(--ink-soft);background:rgba(255,252,245,.85);padding:3px 9px;border:1px solid var(--line);white-space:nowrap;transition:color .3s,border-color .3s}
  .v1-pin:hover .d{transform:scale(1.5);box-shadow:0 0 0 7px rgba(176,138,69,.22)}
  .v1-pin:hover .l{color:var(--gold-deep);border-color:var(--gold)}
  .v1-pin .pol{position:absolute;bottom:calc(100% + 12px);left:50%;width:118px;background:#fff;padding:6px 6px 20px;box-shadow:0 18px 36px rgba(31,74,70,.28);transform:translateX(-50%) rotate(-5deg) scale(.85);opacity:0;transition:opacity .3s,transform .3s cubic-bezier(.2,.6,.2,1);pointer-events:none;z-index:5}
  .v1-pin .pol img,
  .v1-pin .pol video {display:block;width:100%;height:96px;object-fit:cover}
  .v1-pin:hover .pol{opacity:1;transform:translateX(-50%) rotate(-3deg) scale(1)}
  .v1-pin.flip .pol{bottom:auto;top:calc(100% + 12px)}
  .v1-scale{position:absolute;left:18px;bottom:14px;z-index:3;font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep);display:flex;align-items:center;gap:10px}
  .v1-scale .bar{width:64px;height:1px;background:var(--gold-deep);position:relative}
  .v1-scale .bar::before,.v1-scale .bar::after{content:"";position:absolute;top:-3px;width:1px;height:7px;background:var(--gold-deep)}
  .v1-scale .bar::after{right:0}
  .v1-hint{position:absolute;left:18px;top:14px;z-index:3;font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
  @media(hover:none){.v1-hint{display:none}}
  .v1-north{position:absolute;right:16px;top:12px;z-index:3;font-size:.7rem;font-weight:700;color:var(--gold-deep);letter-spacing:.1em;text-align:center}
  .v1-north::after{content:"";display:block;width:1px;height:22px;background:var(--gold-deep);margin:4px auto 0}
  @media(max-width:900px){.v1-grid{grid-template-columns:1fr;gap:44px}.v1-map{height:460px}.v1-pin .l{font-size:.62rem;padding:2px 6px}}

  /* how-it-works scroll sequence (homepage) */
  .seq-nums,.seq-figs,.seq-cue,.seq-bar{display:none}
  .seq-txts .seq-t{max-width:560px;margin-bottom:40px}
  .seq-t .k{font-size:.66rem;font-weight:700;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
  .seq-t h3{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:.07em;text-transform:uppercase;margin:12px 0 14px}
  .seq-t p{color:var(--ink-soft);max-width:42ch;font-size:1.02rem}
  .seq-head{margin-bottom:44px}
  .seq-live{padding:0;height:320vh}
  .seq-live .seq-pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
  .seq-live .seq-head{position:absolute;top:110px;left:0;right:0;margin:0 auto}
  .seq-live .seq-body{display:grid;grid-template-columns:.72fr 1.05fr 340px;gap:52px;align-items:center;width:100%}
  .seq-live .seq-nums{display:block;position:relative;height:320px}
  .seq-nums span{position:absolute;inset:0;display:flex;align-items:center;font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-style:italic;font-weight:500;font-size:clamp(10rem,16vw,16rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--gold);opacity:0;transform:translateY(44px);transition:opacity .55s ease,transform .55s ease}
  .seq-nums span.on{opacity:1;transform:none}
  .seq-live .seq-txts{position:relative;min-height:240px}
  .seq-live .seq-t{position:absolute;inset:0;margin:0;opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease}
  .seq-live .seq-t.on{opacity:1;transform:none}
  .seq-live .seq-figs{display:block;position:relative;height:400px;margin-right:14px}
  .seq-f{position:absolute;inset:0;opacity:0;transform:translateY(26px);transition:opacity .55s ease,transform .55s ease}
  .seq-f.on{opacity:1;transform:none}
  .seq-f .m{position:relative;display:block;height:100%}
  .seq-f img,
  .seq-f video {width:100%;height:100%;object-fit:cover;display:block;box-shadow:0 30px 60px rgba(31,74,70,.18)}
  .seq-f .m::after{content:"";position:absolute;inset:12px -12px -12px 12px;border:1px solid var(--gold-pale);z-index:-1}
  .seq-live .seq-cue{display:flex;position:absolute;bottom:100px;left:50%;transform:translateX(-50%);flex-direction:column;align-items:center;gap:9px;font-size:.62rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);transition:opacity .4s}
  .seq-cue .chev{width:10px;height:10px;border-right:1.5px solid var(--gold-deep);border-bottom:1.5px solid var(--gold-deep);transform:rotate(45deg);animation:seqbob 1.6s ease-in-out infinite}
  @keyframes seqbob{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.45}50%{transform:rotate(45deg) translate(5px,5px);opacity:1}}
  .seq-cue.hide{opacity:0}
  .seq-live .seq-bar{display:block;position:absolute;left:0;right:0;bottom:44px}
  .seq-bar .rail{max-width:1064px;margin:0 auto;height:1px;background:var(--line);position:relative}
  .seq-bar .fill{position:absolute;left:0;top:-0.5px;height:2px;width:0;background:var(--gold)}
  .seq-bar .lab{max-width:1064px;margin:10px auto 0;display:flex;justify-content:space-between;font-size:.6rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-soft);padding:0 2px}
  @media(max-width:860px){
    .seq-live .seq-head{top:86px}
    .seq-live .seq-head h2{font-size:1.35rem;letter-spacing:.05em}
    .seq-live .seq-pin{justify-content:flex-start;padding-top:200px}
    .seq-live .seq-body{display:flex;flex-direction:column;gap:22px}
    .seq-live .seq-nums{display:none}
    .seq-live .seq-figs{order:-1;height:25vh;width:100%;margin-right:0}
    .seq-f .m::after{inset:9px -9px -9px 9px}
    .seq-live .seq-txts{min-height:185px;width:100%}
    .seq-live .seq-cue{bottom:66px}
    .seq-live .seq-bar{bottom:30px}
  }

  /* ---- Event time combo menu (2026-08-13; enhancement lives in site.js).
     The wrap stays a plain block so it takes the input's cell in .form .row. */
  .tc-wrap{position:relative;display:block}
  .tc-menu{
    position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:100%;
    max-height:236px;overflow:auto;background:var(--paper);border:1px solid var(--line);
    border-radius:10px;padding:6px;box-shadow:0 12px 34px rgba(31,74,70,.26);
  }
  .tc-opt{
    display:flex;justify-content:space-between;align-items:baseline;gap:14px;
    width:100%;text-align:left;font:inherit;font-size:.9rem;color:var(--ink);
    padding:7px 10px;border:0;background:none;border-radius:7px;cursor:pointer;
    white-space:nowrap;
  }
  .tc-opt .dur{color:var(--ink-soft);font-size:.8rem}
  .tc-opt:hover{background:var(--paper-2)}
  .tc-opt.hl{background:var(--gold-pale);color:var(--ink);font-weight:600}
  .tc-opt.hl .dur{color:var(--ink)}
