/* Analisse Lettieri Weddings & Events — alweddingsandevents.com */
:root{
  --ink:#0d0d0d;
  --cream:#f0eae0;
  --paper:#fbfbfa;
  --body:#4a4a48;
  --muted:#8a8a86;
  --line:#e4e2dd;
  --serif:"Marcellus",Georgia,"Times New Roman",serif;
  --sans:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --pad:clamp(20px,5vw,56px);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;display:block;}
::selection{background:var(--ink);color:#fff;}
:focus-visible{outline:1.5px solid var(--ink);outline-offset:3px;}
.section--ink :focus-visible,.hero :focus-visible{outline-color:#fff;}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;line-height:1.14;letter-spacing:.005em;}
h1{font-size:clamp(38px,6vw,76px);}
h2{font-size:clamp(30px,4.2vw,52px);}
h3{font-size:clamp(23px,2.4vw,30px);}
p{margin:0;text-wrap:pretty;}
a{color:inherit;text-decoration:none;transition:opacity .2s ease,color .2s ease;}
a:hover{opacity:.62;}
.wrap{padding-left:var(--pad);padding-right:var(--pad);}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);}
.lede{font-size:clamp(16px,1.5vw,18px);line-height:1.85;color:var(--body);}
.stack{display:flex;flex-direction:column;}
.skip{position:absolute;left:-9999px;}
.skip:focus{left:16px;top:16px;z-index:99;background:#fff;color:#000;padding:10px 16px;}

/* buttons */
.btn{display:inline-block;padding:16px 34px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;border:1px solid var(--ink);background:var(--ink);color:#fff;opacity:1;transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.btn:hover,.btn:focus-visible{opacity:1;background:#fff;color:var(--ink);}
.btn--ghost{background:transparent;color:var(--ink);}
.btn--ghost:hover,.btn--ghost:focus-visible{background:var(--ink);color:#fff;}
.btn--onDark{background:#fff;color:var(--ink);border-color:#fff;}
.btn--onDark:hover,.btn--onDark:focus-visible{background:transparent;color:#fff;}
.btn--outlineLight{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.btn--outlineLight:hover,.btn--outlineLight:focus-visible{background:#fff;color:var(--ink);}
.link-underline{display:inline-block;border-bottom:2px solid var(--ink);padding-bottom:6px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;}

/* header */
.site-header{background:var(--ink);color:#fff;}
.site-header--overlay{position:absolute;top:0;left:0;right:0;background:transparent;z-index:5;}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--pad);}
.logo-plate{display:inline-flex;align-items:center;}
.logo-plate img{height:62px;width:auto;filter:invert(1);}
.logo-plate:hover{opacity:.7;}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;list-style:none;margin:0;padding:0;}
.nav-links a[aria-current="page"]{padding-bottom:3px;}
.nav-cta{border:1px solid rgba(255,255,255,.55);padding:9px 20px;}
.nav-cta:hover{background:#fff;color:var(--ink);opacity:1;}

/* hero */
.hero{position:relative;min-height:min(86vh,780px);display:flex;align-items:flex-end;overflow:hidden;}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.68) 0%,rgba(0,0,0,.42) 40%,rgba(0,0,0,.86) 100%);}
.hero__body{position:relative;color:#fff;padding:180px var(--pad) 68px;display:flex;flex-direction:column;gap:24px;max-width:900px;}
.hero__body .eyebrow{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.8);}
.hero__body h1{color:#fff;text-shadow:0 2px 22px rgba(0,0,0,.5);}
.hero__sub{font-size:clamp(17px,1.7vw,19.5px);font-weight:500;line-height:1.65;max-width:620px;color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.75);}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;}
.hero--page{min-height:min(52vh,440px);}
.hero--page .hero__body{padding-top:170px;padding-bottom:56px;}

/* strips & sections */
.strip{background:var(--ink);color:#d2d2ce;display:grid;grid-template-columns:repeat(3,1fr);}
.strip div{padding:30px var(--pad);font-size:13px;letter-spacing:.14em;text-transform:uppercase;}
.strip div + div{border-left:1px solid rgba(255,255,255,.14);}
section{padding:clamp(58px,8vw,96px) var(--pad);}
.section--cream{background:var(--cream);}
.section--ink{background:var(--ink);color:#fff;}
.section--ink .lede{color:#c8c8c4;}
.split{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(32px,5vw,80px);align-items:center;}
.split--flip{grid-template-columns:1.05fr 1fr;}
.split .stack{gap:22px;}
.imgset{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.imgset img{width:100%;height:212px;object-fit:cover;}
.imgset img:first-child{height:440px;grid-row:span 2;}
.portrait{width:100%;height:auto;max-height:640px;object-fit:contain;}

.video-tile{position:relative;height:440px;grid-row:span 2;}
.video-tile video{width:100%;height:100%;object-fit:cover;display:block;}
.video-tile__mute{position:absolute;bottom:14px;right:14px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--ink);border:none;cursor:pointer;padding:0;}
.video-tile__mute svg{width:18px;height:18px;color:#fff;}
.video-tile__mute[aria-pressed="true"] svg line{display:none;}
@media(max-width:900px){.video-tile{height:300px;grid-row:auto;}}
.video-tile--solo{height:min(80vw,760px);grid-row:auto;}
@media(max-width:900px){.video-tile--solo{height:min(120vw,640px);}}

.about-feature{padding-top:clamp(64px,9vw,96px);padding-bottom:0;padding-right:0;overflow:hidden;}
.about-feature .split{grid-template-rows:640px;align-items:center;gap:clamp(32px,5vw,80px);}
.about-feature .stack{padding:0;}
.about-feature .video-tile--solo{height:calc(100% + clamp(64px,9vw,96px));align-self:start;margin-top:calc(-1 * clamp(64px,9vw,96px));}
@media(max-width:900px){
  .about-feature{padding-right:var(--pad);}
  .about-feature .split{grid-template-rows:none;}
  .about-feature .stack{padding:0 0 32px;}
  .about-feature .video-tile--solo{height:min(120vw,640px);align-self:auto;margin-top:0;}
}

/* cards */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
@media(min-width:1100px){.cards{grid-template-columns:repeat(4,1fr);}}
@media(max-width:640px){.cards{grid-template-columns:1fr;}}
.cards--2up{grid-template-columns:repeat(2,1fr);}
@media(min-width:1100px){.cards--2up{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.cards--2up{grid-template-columns:1fr;}}
.card{background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;}
.card img{width:100%;height:260px;object-fit:cover;}
.card__body{padding:34px 36px 40px;display:flex;flex-direction:column;gap:16px;}
.card ul{margin:0;padding-left:20px;color:var(--body);font-size:16px;line-height:1.9;}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px;}
.gallery img{width:100%;height:100%;object-fit:cover;}
.gallery img:first-child{grid-column:span 2;grid-row:span 2;}

/* quotes */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(32px,4vw,64px);}
blockquote{position:relative;margin:0;padding-left:clamp(28px,3.2vw,40px);display:flex;flex-direction:column;gap:20px;}
blockquote::before{content:"\201C";position:absolute;left:-6px;top:-.36em;font-family:var(--serif);font-size:clamp(72px,8vw,104px);line-height:1;color:rgba(13,13,13,.09);}
blockquote p{position:relative;font-family:var(--serif);font-size:clamp(20px,2vw,27px);line-height:1.55;}
blockquote cite{position:relative;font-style:normal;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#8a8073;}
.quote--long p{font-size:clamp(17px,1.6vw,19px);font-family:var(--sans);line-height:1.85;color:var(--body);}

.quote-feature{display:flex;align-items:center;justify-content:center;gap:clamp(24px,5vw,72px);max-width:1080px;margin:0 auto;}
.quote-feature__mark{width:clamp(160px,18vw,260px);height:auto;opacity:.07;flex:none;}
@media(max-width:900px){.quote-feature{flex-direction:column;gap:8px;}.quote-feature__mark{display:none;}}

.quote-rotator{display:grid;max-width:640px;}
.quote-rotator blockquote{grid-area:1/1;opacity:0;pointer-events:none;transition:opacity .5s ease;}
.quote-rotator blockquote.is-active{opacity:1;pointer-events:auto;}
.quote-dots{display:flex;gap:11px;margin-top:32px;padding-left:clamp(28px,3.2vw,40px);}
.quote-dots button{width:8px;height:8px;padding:0;border:1px solid var(--muted);border-radius:50%;background:transparent;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease;}
.quote-dots button.is-active{background:var(--ink);border-color:var(--ink);transform:scale(1.3);}
.quote-dots button:hover{border-color:var(--ink);}

.pair-carousel__track{display:grid;}
.pair-carousel__frame{grid-area:1/1;display:grid;grid-template-columns:1fr 1fr;gap:16px;opacity:0;pointer-events:none;transition:opacity .6s ease;}
.pair-carousel__frame.is-active{opacity:1;pointer-events:auto;}
.pair-carousel__frame img{width:100%;height:100%;object-fit:cover;aspect-ratio:2/3;}
.pair-carousel__dots{display:flex;justify-content:center;gap:11px;margin-top:20px;}
.pair-carousel__dots button{width:8px;height:8px;padding:0;border:1px solid var(--muted);border-radius:50%;background:transparent;cursor:pointer;transition:background .25s ease,border-color .25s ease,transform .25s ease;}
.pair-carousel__dots button.is-active{background:var(--ink);border-color:var(--ink);transform:scale(1.3);}
.pair-carousel__dots button:hover{border-color:var(--ink);}
@media(max-width:640px){.pair-carousel__frame{gap:10px;}}
.quote--long p + p{margin-top:16px;}

/* testimonials */
.feat{display:grid;grid-template-columns:1fr 1fr;min-height:520px;}
.feat img{width:100%;height:100%;max-height:520px;align-self:center;object-fit:cover;min-height:340px;}
.feat__text{padding:clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:center;gap:20px;}
.feat__text p.q{font-family:var(--serif);font-size:clamp(21px,2.1vw,28px);line-height:1.5;}
.feat__body{display:flex;flex-direction:column;gap:14px;font-size:16px;line-height:1.85;color:var(--body);}
.feat__who{display:flex;flex-direction:column;gap:5px;padding-top:20px;border-top:1px solid rgba(0,0,0,.14);}
.feat__who strong{font-weight:500;font-size:15px;letter-spacing:.05em;}
.feat__who span{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.feat--flip img{order:2;}
@media(max-width:820px){.feat{grid-template-columns:1fr;}.feat--flip img{order:0;}}

.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;}
.areas > div{border-top:1px solid var(--line);padding-top:22px;display:flex;flex-direction:column;gap:14px;}
.areas h3{font-size:21px;}
.areas ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:16px;color:var(--body);}

/* faq */
.faq{display:flex;flex-direction:column;}
.faq details{border-top:1px solid var(--line);padding:26px 0;}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:24px;font-family:var(--serif);font-size:clamp(18px,1.9vw,22px);}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--sans);font-size:22px;font-weight:300;flex:none;transition:transform .3s ease;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq p{color:var(--body);font-size:16px;line-height:1.85;margin-top:16px;max-width:760px;}

/* contact */
.map-frame{border:1px solid var(--line);}
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start;}
.contact-list{display:flex;flex-direction:column;gap:22px;margin:0;padding:0;}
.contact-list div{display:flex;flex-direction:column;gap:6px;}
.contact-list dt{font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}
.contact-list dd{margin:0;font-size:clamp(16px,1.6vw,19px);word-break:break-word;}

/* watermark divider */
.watermark{position:relative;text-align:center;overflow:hidden;}
.watermark__mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);height:clamp(200px,26vw,320px);width:auto;opacity:.05;pointer-events:none;}
.watermark__body{position:relative;max-width:560px;margin:0 auto;}

.watermark-bg{position:relative;overflow:hidden;}
.watermark-bg::before{content:"";position:absolute;top:50%;left:50%;width:clamp(220px,30vw,380px);height:clamp(220px,30vw,380px);background:url(../img/analisse-lettieri-weddings-events-logo.webp) center/contain no-repeat;transform:translate(-50%,-50%);opacity:.05;pointer-events:none;}
.watermark-bg > *{position:relative;}

.watermark-bg--right::before{left:auto;right:clamp(56px,9vw,140px);top:50%;transform:translateY(-50%);width:clamp(180px,18vw,260px);height:clamp(180px,18vw,260px);}
@media(max-width:1100px){.watermark-bg--right::before{display:none;}}

/* breadcrumb */
.breadcrumb{padding:18px var(--pad);font-size:12px;letter-spacing:.08em;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.breadcrumb a{color:var(--muted);}
.breadcrumb a:hover{color:var(--ink);opacity:1;}
.breadcrumb span[aria-current]{color:var(--body);}

/* footer */
.site-footer{background:var(--ink);color:#c8c8c4;padding:clamp(48px,6vw,72px) var(--pad) 40px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;font-size:15px;}
.site-footer h2{color:#fff;font-size:clamp(26px,3vw,36px);}
.site-footer a{color:#e8e8e4;}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.social-link{display:inline-flex;align-items:center;gap:9px;}
.social-link svg{flex:none;width:16px;height:16px;fill:currentColor;}
.footer-head{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#8a8a86;margin-bottom:14px;}
.footer-bar{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.16);padding-top:24px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:13px;color:#8a8a86;}

@media (max-width:900px){
  .split,.split--flip,.contact-grid{grid-template-columns:1fr;}
  .strip{grid-template-columns:1fr;}
  .strip div + div{border-left:0;border-top:1px solid rgba(255,255,255,.14);}
  .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;}
  .site-footer{grid-template-columns:1fr;}
  .imgset img:first-child{height:300px;grid-row:auto;}
  .imgset img{height:150px;}
}
@media (max-width:640px){
  .nav{flex-wrap:wrap;gap:14px;}
  .nav-links{font-size:11.5px;letter-spacing:.14em;gap:14px;flex-wrap:wrap;}
  .logo-plate img{height:48px;}
  .hero__body{padding-top:210px;}
}

/* motion */
.site-header--overlay{transition:background-color .5s ease,padding .4s ease,border-color .5s ease;border-bottom:1px solid transparent;}
.site-header--overlay.is-scrolled{background:var(--ink);border-bottom-color:rgba(255,255,255,.1);}
.site-header--overlay.is-scrolled .nav{padding-top:14px;padding-bottom:14px;}

.nav-links a{position:relative;}
.nav-links a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:right .35s cubic-bezier(.4,0,.2,1);}
.nav-links a:not(.nav-cta):hover::after{right:0;}
.nav-links a[aria-current="page"]::after{display:none;}
.nav-links a[aria-current="page"]::before{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;opacity:.45;}

.card img,.gallery img,.imgset img{transition:transform .7s cubic-bezier(.16,1,.3,1);}
.card{overflow:hidden;}
.gallery img,.imgset img{position:relative;}
.card:hover img,.gallery img:hover,.imgset img:hover{transform:scale(1.035);z-index:2;}

.hero__body .eyebrow,.hero__body h1,.hero__sub,.hero__actions,.strip{opacity:0;transform:translateY(16px);animation:reveal-up .9s cubic-bezier(.16,1,.3,1) forwards;}
.hero__body .eyebrow{animation-delay:.15s;}
.hero__body h1{animation-delay:.32s;}
.hero__sub{animation-delay:.5s;}
.hero__actions{animation-delay:.66s;}
.strip{animation-delay:.8s;}

[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0s);}
[data-reveal].is-visible{opacity:1;transform:translateY(0);}

@keyframes reveal-up{to{opacity:1;transform:translateY(0);}}

@media (prefers-reduced-motion: reduce){
  .hero__body .eyebrow,.hero__body h1,.hero__sub,.hero__actions,.strip{animation:none;opacity:1;transform:none;}
  [data-reveal]{opacity:1;transform:none;transition:none;}
  .card img,.gallery img,.imgset img{transition:none;}
  .site-header--overlay{transition:none;}
  .nav-links a:not(.nav-cta)::after{transition:none;}
}
