:root{--green:#173f36;--green2:#28584b;--cream:#f5f1e8;--paper:#fbfaf6;--ink:#24332d;--muted:#777c70;--line:#dedbd1;--gold:#b59a69}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7}.site-header{height:86px;padding:0 6.5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,63,54,.1)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--green);font-family:'Cormorant Garamond',serif;font-size:27px;font-weight:600;line-height:.9}.brand small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:2px;text-transform:uppercase;margin-top:7px;color:#7b806f}.brand-mark{width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-size:25px;font-style:italic}.desktop-nav{display:flex;gap:30px}.desktop-nav a,.header-cta,.language-toggle{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;text-decoration:none;color:var(--green)}.desktop-nav a:hover,.text-link:hover{color:var(--gold)}.header-actions{display:flex;align-items:center;gap:20px}.language-toggle{border:0;background:none;cursor:pointer;font-weight:700}.header-cta{border:1px solid var(--green);padding:11px 16px}.header-cta:hover{background:var(--green);color:white}.hero{height:min(760px,calc(100vh - 86px));min-height:580px;position:relative;display:flex;align-items:center;color:white;overflow:hidden;background:var(--green)}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-image{object-position:center 48%}.hero-shade{background:linear-gradient(90deg,rgba(8,28,23,.76),rgba(8,28,23,.34) 55%,rgba(8,28,23,.05))}.hero-content{position:relative;z-index:1;max-width:760px;padding:50px 0 50px 12%}.eyebrow,.section-kicker,.hero-note,.contact-label{font-size:10px;letter-spacing:2.3px;font-weight:600}.eyebrow{color:#e2d4b7;margin-bottom:24px}.hero h1{font:500 clamp(48px,6.5vw,88px)/.98 'Cormorant Garamond',serif;max-width:730px;margin:0 0 25px;letter-spacing:-1.5px}.hero-intro{font-size:14px;line-height:1.9;max-width:440px;color:#f1eee5;margin:0 0 32px}.button{display:inline-flex;align-items:center;gap:28px;text-decoration:none;padding:15px 22px;font-size:10px;letter-spacing:1.7px;text-transform:uppercase;font-weight:700;transition:.2s}.button span{font-size:16px}.button-light{background:var(--cream);color:var(--green)}.button-light:hover{background:white;transform:translateY(-2px)}.hero-note{position:absolute;right:6%;bottom:32px;color:#e5dfd1;font-size:9px}.section{padding:115px 12%}.section-kicker{color:var(--gold);margin-bottom:28px}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:10%;align-items:start}.intro h2,.experience h2,.gallery h2,.location h2,.contact h2{font:500 clamp(38px,4.2vw,58px)/1.04 'Cormorant Garamond',serif;color:var(--green);margin:0;letter-spacing:-.5px}.intro-copy p,.experience-copy>p,.location p,.contact-top>p{color:#646b60;font-size:14px;line-height:2;margin:0 0 18px}.signature{font:italic 22px 'Cormorant Garamond',serif;color:var(--green)!important;margin-top:28px!important}.experience{background:var(--cream);padding-top:105px;padding-bottom:105px;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.experience-photo{height:680px;max-height:75vh}.experience-photo img,.location-image img{width:100%;height:100%;object-fit:cover}.experience-copy h2{margin-bottom:24px}.feature-list{list-style:none;padding:0;margin:32px 0 20px}.feature-list li{display:flex;gap:22px;padding:17px 0;border-top:1px solid #d9d4c8}.feature-list li>span{font:italic 20px 'Cormorant Garamond',serif;color:var(--gold)}.feature-list strong{display:block;font:600 18px 'Cormorant Garamond',serif;color:var(--green)}.feature-list small{display:block;color:#73786d;font-size:12px;line-height:1.7;margin-top:4px}.small-note{font-size:11px!important;font-style:italic}.quote-band{padding:80px 15%;background:var(--green);color:var(--cream);text-align:center}.quote-band p{font:italic 36px/1.2 'Cormorant Garamond',serif;margin:0 auto 20px;max-width:700px}.quote-band span{font-size:9px;letter-spacing:3px;color:#c7b58d}.gallery{padding-top:110px;padding-bottom:120px}.gallery-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:42px;gap:30px}.gallery-heading h2{max-width:520px}.gallery-heading>p{max-width:250px;color:var(--muted);font-size:12px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:13px}.gallery-grid figure{margin:0;overflow:hidden;background:#e6e0d3}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-grid figure:hover img{transform:scale(1.045)}.gallery-grid .gallery-large{grid-column:span 2;grid-row:span 2}.location{background:#eeece3;display:grid;grid-template-columns:1fr .9fr;gap:10%;align-items:center;padding-top:100px;padding-bottom:100px}.location h2{margin-bottom:22px}.location-image{height:500px}.text-link{display:inline-block;color:var(--green);font-size:11px;font-weight:700;letter-spacing:1px;text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:6px;margin-top:15px}.contact{background:var(--cream);padding-top:110px;padding-bottom:100px}.contact-top{max-width:650px}.contact h2{margin-bottom:20px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin:55px 0 40px;padding-top:25px;border-top:1px solid #d8d3c7}.contact-details>a{position:relative;text-decoration:none;color:var(--green)}.contact-label{display:block;color:#8b876f;font-size:9px;margin-bottom:9px}.contact-details strong{font:500 clamp(20px,2.5vw,30px) 'Cormorant Garamond',serif}.arrow{position:absolute;right:0;top:18px;font-size:20px}.button-green{background:var(--green);color:white}.button-green:hover{background:var(--green2);transform:translateY(-2px)}.site-footer{padding:48px 6.5%;background:#122f29;color:#e9e4d8;display:grid;grid-template-columns:1fr 1fr auto auto;align-items:center;gap:30px}.footer-brand{color:#f4f0e6}.footer-brand small{color:#b5b4a5}.site-footer>p{font:italic 19px 'Cormorant Garamond',serif;color:#d5cfbf}.social-links{display:flex;gap:12px}.social-links a{width:34px;height:34px;border:1px solid #8d9a8d;border-radius:50%;display:grid;place-items:center;color:#eee;text-decoration:none}.social-links svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7}.social-links a:nth-child(2) svg{fill:currentColor;stroke:none}.social-links a:hover{background:#e8e0d0;color:var(--green)}.copyright{grid-column:1/-1;color:#9ba69a;font-size:9px;letter-spacing:1px}
@media(max-width:900px){.site-header{padding:0 4%;height:76px}.desktop-nav{gap:15px}.desktop-nav a{font-size:9px}.header-cta{padding:9px 11px;font-size:9px}.section{padding-left:8%;padding-right:8%}.experience{gap:6%}.experience-photo{height:600px}.site-footer{grid-template-columns:1fr 1fr}.social-links{justify-self:end}.copyright{grid-column:1/-1}}
@media(max-width:650px){html{scroll-padding-top:70px}.site-header{height:70px;padding:0 5%}.brand{font-size:23px}.brand-mark{width:34px;height:34px}.desktop-nav{display:none}.header-actions{gap:12px}.header-cta{padding:9px 10px;font-size:8px;letter-spacing:.8px}.hero{min-height:670px;height:calc(100svh - 70px);max-height:800px;align-items:end}.hero-image{object-position:56% center}.hero-shade{background:linear-gradient(0deg,rgba(7,27,22,.83),rgba(7,27,22,.23) 85%)}.hero-content{padding:0 7% 100px}.hero h1{font-size:57px}.hero-intro{font-size:13px;max-width:360px}.hero-note{right:7%;bottom:25px;font-size:7px}.section{padding:75px 7%}.intro-grid,.experience,.location{grid-template-columns:1fr;gap:30px}.intro h2,.experience h2,.gallery h2,.location h2,.contact h2{font-size:44px}.intro-copy p,.experience-copy>p,.location p,.contact-top>p{font-size:13px}.experience{padding-top:65px;padding-bottom:75px}.experience-photo{height:390px;max-height:none;order:2}.experience-copy{order:1}.quote-band{padding:60px 8%}.quote-band p{font-size:29px}.gallery{padding-top:75px;padding-bottom:80px}.gallery-heading{display:block}.gallery-heading>p{margin-top:18px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px;gap:9px}.gallery-grid .gallery-large{grid-column:span 2;grid-row:span 2}.location{padding-top:70px;padding-bottom:70px}.location-image{height:360px}.contact{padding-top:75px;padding-bottom:75px}.contact-details{grid-template-columns:1fr;gap:25px;margin:35px 0;padding-top:25px}.contact-details strong{font-size:25px}.site-footer{padding:40px 7%;grid-template-columns:1fr auto;gap:18px}.site-footer>p{grid-column:1/-1;grid-row:2;margin:0}.social-links{grid-column:2;grid-row:1}.copyright{grid-column:1/-1}}

/* Francisco Peças — Elvis & anos 60 */
.francisco{display:grid;grid-template-columns:.9fr 1.1fr;gap:9%;align-items:center;background:var(--paper);padding-top:105px;padding-bottom:105px}
.francisco-photo{height:560px;overflow:hidden;background:var(--cream)}
.francisco-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.francisco-copy h2{font:500 clamp(38px,4.2vw,58px)/1.04 'Cormorant Garamond',serif;color:var(--green);margin:0 0 22px;letter-spacing:-.5px}
.francisco-copy>p:not(.francisco-overline){color:#646b60;font-size:14px;line-height:2;margin:0 0 18px}
.francisco-overline{font:italic 21px 'Cormorant Garamond',serif;color:var(--gold);margin:0 0 12px}
.contact-icon-link{display:block;min-height:125px}
.contact-icon{width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:4px 0 9px;color:var(--green)}
.contact-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.contact-icon-link small{font-size:12px;color:#73786d}
/* Uniform gallery tiles: every photograph uses the same frame proportions. */
.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto}
.gallery-grid figure,.gallery-grid .gallery-large{grid-column:auto;grid-row:auto;aspect-ratio:4/3;min-width:0}
.gallery-grid img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:900px){.francisco{gap:6%}.francisco-photo{height:480px}}
@media(max-width:650px){.francisco{grid-template-columns:1fr;gap:28px;padding-top:70px;padding-bottom:75px}.francisco-photo{height:360px;order:2}.francisco-copy{order:1}.francisco-copy h2{font-size:44px}.francisco-copy>p:not(.francisco-overline){font-size:13px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.gallery-grid figure,.gallery-grid .gallery-large{aspect-ratio:4/3}}

/* Hero: photo fully visible, title below so it never covers the van */
.hero{height:auto;min-height:0;max-height:none;display:block;color:var(--cream);background:var(--green)}
.hero-media{height:min(760px,calc(100vh - 86px));min-height:420px}
.hero-image{position:static;display:block;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero-content{max-width:none;padding:60px 12% 70px;display:grid;grid-template-columns:1.2fr .8fr;gap:7%;align-items:end}
.hero-content .eyebrow{grid-column:1/-1;margin-bottom:0}
.hero h1{font-size:clamp(42px,5vw,72px);margin:0}
.hero-intro{margin-bottom:26px}

/* Francisco placeholder (shown until images/francisco-pecas.jpg exists) */
.francisco-photo{position:relative}
.francisco-placeholder{display:none}
.francisco-photo.is-empty .francisco-placeholder{display:flex;position:absolute;inset:0;flex-direction:column;align-items:center;justify-content:center;background:var(--green);color:var(--cream);font:italic 44px 'Cormorant Garamond',serif;text-align:center}
.francisco-placeholder small{font:600 10px 'DM Sans',sans-serif;letter-spacing:2.3px;text-transform:uppercase;color:var(--gold);margin-top:10px}
.francisco-photo img{object-position:center 25%}

/* Gallery: larger, equal-size frames in the photos' own 3:2 proportion (no faces cut) */
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.gallery-grid figure,.gallery-grid .gallery-large{aspect-ratio:3/2}

/* Contact: form + smaller phone */
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px;margin:50px 0 40px;padding-top:30px;border-top:1px solid #d8d3c7;max-width:900px}
.field{display:flex;flex-direction:column;gap:8px}
.field>span{font-size:10px;letter-spacing:2px;font-weight:600;text-transform:uppercase;color:#8b876f}
.field-wide,.contact-form label:nth-of-type(3){grid-column:1/-1}
.field input,.field select,.field textarea{font:inherit;font-size:15px;color:var(--ink);background:var(--paper);border:1px solid #cfc9bb;border-radius:0;padding:13px 14px;width:100%}
.field textarea{resize:vertical;min-height:140px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.contact-form .button{justify-self:start;border:0;cursor:pointer;font-family:inherit}
.hidden-field{position:absolute;left:-9999px}
.contact-phone .contact-label{margin-bottom:4px}
.contact-phone a{color:var(--green);text-decoration:none;font-size:16px;font-weight:500}
.contact-phone a:hover{color:var(--gold)}

@media(max-width:650px){
  .hero-media{height:62svh;min-height:340px}
  .hero-image{object-position:center 60%}
  .hero-content{grid-template-columns:1fr;gap:20px;padding:40px 7% 55px}
  .hero h1{font-size:42px}
  .gallery-grid{grid-template-columns:1fr;gap:14px}
  .contact-form{grid-template-columns:1fr;margin:35px 0 30px}
  .contact-form label{grid-column:1/-1}
  .contact-phone a{font-size:15px}
}

/* 04 — Momentos: carrossel com transição em fade */
.moments-carousel{max-width:1180px;margin:0 auto}
.moments-stage{position:relative;background:#142f29;overflow:hidden;aspect-ratio:16/9;box-shadow:0 22px 60px rgba(20,47,41,.12)}
.moments-slides{position:absolute;inset:0}
.moment-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1.25s ease,visibility 1.25s ease}
.moment-slide.is-active{opacity:1;visibility:visible;z-index:1}
.moment-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.015);transition:transform 6s ease}
.moment-slide.is-active img{transform:scale(1.04)}
.moments-stage:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(8,28,23,.48));pointer-events:none;z-index:2}
.moments-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:46px;height:46px;border:1px solid rgba(255,255,255,.55);background:rgba(20,47,41,.38);backdrop-filter:blur(5px);color:white;font:36px/38px 'Cormorant Garamond',serif;cursor:pointer;display:grid;place-items:center;transition:.2s}
.moments-arrow:hover{background:rgba(20,47,41,.75);border-color:white}
.moments-prev{left:18px}.moments-next{right:18px}
.moments-controls{display:flex;align-items:center;gap:18px;margin-top:18px}
.moments-play,.music-toggle{border:1px solid var(--green);background:transparent;color:var(--green);padding:9px 14px;font:600 10px 'DM Sans',sans-serif;letter-spacing:1.2px;text-transform:uppercase;cursor:pointer}
.moments-play:hover,.music-toggle:hover{background:var(--green);color:white}
.moments-dots{display:flex;gap:7px;align-items:center;flex:1;justify-content:center}
.moment-dot{width:7px;height:7px;border:1px solid var(--green);border-radius:50%;padding:0;background:transparent;cursor:pointer;opacity:.55}
.moment-dot.is-active{background:var(--green);opacity:1}
.moments-counter{font-size:10px;letter-spacing:1.2px;color:var(--muted);min-width:48px;text-align:right}
.moments-music{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}
.music-copy{display:flex;flex-direction:column}
.music-kicker{font-size:9px;letter-spacing:2px;color:var(--gold);font-weight:700;margin-bottom:3px}
.music-copy strong{font:500 24px 'Cormorant Garamond',serif;color:var(--green)}
.music-copy small{font-size:10px;color:var(--muted);margin-top:2px}
.music-video{width:1px;height:1px;overflow:hidden;position:absolute;right:0;bottom:0;opacity:.01;pointer-events:none}
.music-video iframe{width:320px;height:180px;border:0}
@media(max-width:650px){
  .moments-stage{aspect-ratio:4/3}
  .moments-arrow{width:38px;height:38px;font-size:30px}
  .moments-prev{left:10px}.moments-next{right:10px}
  .moments-controls{gap:10px}
  .moments-dots{gap:5px}
  .moments-music{grid-template-columns:1fr;gap:12px}
  .music-toggle{justify-self:start}
  .music-copy strong{font-size:22px}
}

/* A noiva mantém a testa visível durante o zoom, ancorando a imagem no topo. */
.moment-slide.noiva-slide img{object-position:center top;transform-origin:center top}
.moment-slide.bride-interior-slide img{object-position:center top;transform-origin:center top}
