/* Shared layout/design for BOTH global editing landing pages.
   Edit here to change both. Page-specific deltas live in wedding-*-editing.css.
   Tokens: landing-tokens.css   Fonts: fonts.css */

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter Tight',system-ui,sans-serif;
  background:var(--ink); color:var(--ivory);
  -webkit-font-smoothing:antialiased; line-height:1.55; overflow-x:hidden;
}
body::before{
  content:""; position:fixed; inset:0; z-index:-2; pointer-events:none;
  background:
    radial-gradient(60vw 60vw at 12% -5%, rgba(230,104,86,.16), transparent 60%),
    radial-gradient(55vw 55vw at 100% 20%, rgba(242,179,126,.10), transparent 55%),
    radial-gradient(70vw 70vw at 50% 120%, rgba(217,134,134,.12), transparent 60%),
    var(--ink);
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{text-wrap:pretty}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 26px}
.script{font-style:italic;color:var(--coral2)}
.eyebrow{
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:var(--sand);
  font-weight:600;display:inline-flex;align-items:center;gap:11px;
}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;flex:none;
  background:var(--coral);box-shadow:0 0 10px rgba(230,104,86,.65)}
h1,h2,h3{font-weight:700;line-height:1.05;letter-spacing:-.02em;text-wrap:balance}
section[id]{scroll-margin-top:88px}
.btn{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;border:none;
  font-family:inherit;font-weight:600;font-size:15px;letter-spacing:.01em;
  padding:15px 26px;border-radius:999px;transition:.25s ease;
}
.btn-primary{background:var(--coral);color:#1b0f0c}
.btn-primary:hover{background:var(--coral2);transform:translateY(-2px);box-shadow:0 14px 34px rgba(230,104,86,.34)}
.btn-ghost{background:transparent;color:var(--ivory);border:1px solid var(--line2)}
.btn-ghost:hover{border-color:var(--coral);color:#fff;transform:translateY(-2px)}
:focus-visible{outline:2px solid var(--coral2);outline-offset:3px;border-radius:4px}
header{position:fixed;top:0;left:0;right:0;z-index:60;transition:.3s ease}
header .bar{display:flex;align-items:center;justify-content:space-between;padding-top:20px;padding-bottom:20px}
header.scrolled{background:rgba(16,15,14,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line),0 10px 30px rgba(0,0,0,.28)}
.logo{font-weight:800;font-size:22px;letter-spacing:-.02em;display:flex;align-items:center;gap:9px}
.logo .dot{width:9px;height:9px;border-radius:50%;background:var(--coral);box-shadow:0 0 16px var(--coral)}
.logo .logomark{width:34px;height:34px;object-fit:contain;flex:none}
nav.main{display:flex;align-items:center;gap:34px}
nav.main a{font-size:14.5px;color:var(--muted);font-weight:500;transition:.2s}
nav.main a:hover{color:var(--ivory)}
.nav-cta{padding:11px 20px;font-size:14px}
nav.main a.nav-cta{color:#1b0f0c}
.navdrop{position:relative;display:inline-flex;align-items:center}
.navdrop>.navdrop-t{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:14.5px;color:var(--muted);font-weight:500;background:none;border:none;cursor:pointer;transition:.2s}
.navdrop:hover>.navdrop-t{color:var(--ivory)}
.navdrop-t svg{transition:.25s}
.navdrop:hover .navdrop-t svg{transform:rotate(180deg)}
.navdrop-menu{position:absolute;top:calc(100% + 12px);left:0;min-width:220px;background:rgba(16,15,14,.97);backdrop-filter:blur(14px);border:1px solid var(--line2);border-radius:12px;padding:8px;display:none;flex-direction:column;box-shadow:0 14px 34px rgba(0,0,0,.45)}
.navdrop:hover .navdrop-menu,.navdrop:focus-within .navdrop-menu{display:flex}
.navdrop-menu a{padding:11px 14px;border-radius:8px;font-size:14.5px;color:var(--muted);white-space:nowrap}
.navdrop-menu a:hover{background:rgba(246,239,231,.06);color:var(--ivory)}
.burger{display:none;background:none;border:none;color:var(--ivory);cursor:pointer}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden}
.hero .wrap{position:relative;z-index:1;padding-top:120px;padding-bottom:82px;text-align:center}
.hero h1 em{font-style:normal;color:var(--coral2)}
@media(max-width:860px){.hero .lede{max-width:52ch;text-wrap:pretty}.hero .lede .lb{display:none}}
.hero .cta-row{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center}
.scrollcue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:1;width:52px;height:52px;border-radius:50%;border:1px solid rgba(246,239,231,.28);display:grid;place-items:center;color:var(--ivory);transition:border-color .25s,background .25s;animation:scrollbob 2.2s ease-in-out infinite}
.scrollcue:hover{border-color:var(--coral);background:rgba(230,104,86,.14)}
@keyframes scrollbob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}
.trust a{color:inherit;transition:.2s}
.trust a:hover{color:var(--ivory)}
.trust{background:linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,0))}
.trust .row{display:flex;flex-wrap:wrap;gap:14px 40px;justify-content:center;align-items:center;padding:24px 0;color:var(--muted);font-size:14.5px;font-weight:500}
.trust b{color:var(--ivory);font-weight:600}
.trust .sep{width:5px;height:5px;border-radius:50%;background:var(--coral);opacity:.7}
section.pad{padding:clamp(70px,10vw,130px) 0}
.sec-head{max-width:62ch}
.sec-head h2{font-size:clamp(2rem,4.4vw,3.4rem);margin:16px 0 0}
.sec-head p{margin-top:18px;color:var(--muted);font-size:1.08rem;max-width:54ch;line-height:1.72;text-wrap:balance}
.work{display:grid;grid-template-columns:1.15fr .85fr;column-gap:46px;row-gap:44px;align-items:start}
.work>.sec-head{grid-column:1;grid-row:1;align-self:center}
.work>.fvcard{grid-column:2;grid-row:1;align-self:center}
.fvcard{background:linear-gradient(180deg,var(--ink2),var(--ink));border:1px solid var(--line2);border-radius:18px;padding:26px 30px;position:relative;overflow:hidden}
.fvcard::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 130% at 100% 0,rgba(29,191,115,.16),transparent 60%);pointer-events:none}
.fvcard .fv-logo{font-size:1.8rem;font-weight:800;letter-spacing:-.03em;color:#1DBF73;margin:0 0 12px}
.fvcard .fv-row{display:flex;align-items:baseline;gap:14px}
.fv-score2{font-size:3rem;font-weight:800;line-height:1;color:var(--ivory);letter-spacing:-.03em}
.fvcard .fv-stars{color:var(--sand);font-size:1.2rem;letter-spacing:2px}
.fvcard .fv-sub{color:var(--faint);font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;margin:12px 0 18px;white-space:nowrap}
.gallery{margin-top:40px;column-count:4;column-gap:14px}
.gallery figure{break-inside:avoid;margin:0 0 14px;border-radius:12px;overflow:hidden;position:relative;cursor:zoom-in;background:var(--ink2)}
.gallery img{width:100%;transition:.5s ease;filter:saturate(1.02)}
.gallery figure:hover img{transform:scale(1.05)}
.gallery figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(230,104,86,.28));opacity:0;transition:.3s;pointer-events:none}
.gallery figure:hover::after{opacity:1}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:44px}
.card{background:linear-gradient(180deg,var(--ink2),var(--ink));border:1px solid var(--line);border-radius:18px;padding:36px 34px;transition:.3s}
.card:hover{border-color:var(--line2);transform:translateY(-4px)}
.card .k{font-style:italic;color:var(--coral2);font-size:1.1rem;font-weight:600}
.card h3{font-size:1.5rem;margin:6px 0 14px}
.card p{text-wrap:balance}
.card ul{list-style:none;margin-top:16px;display:grid;gap:11px}
.card li{padding-left:26px;position:relative;color:var(--muted);font-size:15.5px}
.card li::before{content:"";position:absolute;left:0;top:9px;width:11px;height:11px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,var(--sand),var(--coral))}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:46px}
.step{border-top:1px solid var(--line2);padding-top:22px}
.step .n{font-size:.85rem;letter-spacing:.2em;color:var(--coral);font-weight:700}
.step h3{font-size:1.22rem;margin:12px 0 8px}
.step p{color:var(--muted);font-size:15px}
.why{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}
.why .list{display:grid;gap:22px;margin-top:32px}
.why .list .it h3{font-size:1.18rem;margin-bottom:6px}
.why .list .it p{color:var(--muted);font-size:15.5px}
.why .art{border-radius:18px;overflow:hidden;border:1px solid var(--line2);position:relative}
.why .art img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.ctaband{position:relative;border-radius:24px;overflow:hidden;margin:0 auto;border:1px solid var(--line2)}
.ctaband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.ctaband .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,15,14,.55),rgba(16,15,14,.8));z-index:-1}
.ctaband .in{padding:clamp(48px,7vw,86px) 30px;text-align:center}
.ctaband h2{font-size:clamp(2rem,4.6vw,3.3rem)}
.ctaband p{margin:16px auto 30px;max-width:48ch;color:#ece2d4;font-size:1.08rem}
footer{margin-top:clamp(70px,9vw,120px);padding:56px 0 40px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.25))}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:30px}
.foot .brand p{color:var(--muted);max-width:36ch;margin-top:12px;font-size:14.5px}
.foot .col h4{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin-bottom:14px}
.foot .col a{display:block;color:var(--muted);font-size:14.5px;margin-bottom:9px;transition:.2s}
.foot .col a:hover{color:var(--coral2)}
.legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);color:var(--faint);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.reveal{opacity:0;transform:translateY(26px);transition:.8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.ovl{position:fixed;inset:0;z-index:100;background:rgba(8,7,6,.94);display:none;align-items:center;justify-content:center;padding:24px}
.ovl.on{display:flex}
.ovl .close{position:absolute;top:22px;right:26px;background:rgba(0,0,0,.4);border:1px solid var(--line2);color:#fff;width:46px;height:46px;border-radius:50%;font-size:20px;cursor:pointer;transition:.2s;z-index:2}
.ovl .close:hover{border-color:var(--coral);background:rgba(230,104,86,.2)}
.ovl .navbtn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);border:1px solid var(--line2);color:#fff;width:52px;height:52px;border-radius:50%;font-size:26px;line-height:1;cursor:pointer;transition:.2s;display:grid;place-items:center;z-index:2}
.ovl .navbtn:hover{border-color:var(--coral);background:rgba(230,104,86,.25)}
.ovl .navbtn.prev{left:24px}
.ovl .navbtn.next{right:24px}
@media(max-width:1000px){
  .gallery{column-count:3}
  .why{grid-template-columns:1fr;gap:34px}
  .steps{grid-template-columns:1fr 1fr}
}

/* Dropdown: smooth fade+slide, matching the main site's Alpine x-transition (200ms).
   Desktop only (>=761px) — at <=760px the mobile rule expands the menu inline.
   display:none can't animate, so we keep it flex and toggle opacity/visibility.
   ::before bridges the 12px gap between trigger and menu; without it the pointer
   crosses dead space on the way down and the menu snaps shut. */
@media(min-width:761px){
  .navdrop-menu{
    display:flex;
    opacity:0;
    visibility:hidden;
    transform:translateY(4px);
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease, visibility .2s;
  }
  .navdrop-menu::before{
    content:"";
    position:absolute;
    left:0; right:0; top:-14px;
    height:14px;
  }
  .navdrop:hover .navdrop-menu,
  .navdrop:focus-within .navdrop-menu{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    pointer-events:auto;
  }
}
