/* Identidade visual oficial Luiz + Flavia — baseada no PDF fornecido.
   Cores: #677345 #EDDDD4 #7E8C54 #BD8161 #CFA48C.
   A assinatura e o monograma são vetores originais extraídos do PDF;
   a fonte para textos permanece Cormorant. */
:root {
  --olive: #677345;
  --olive-dark: #4e5b35;
  --olive-soft: #7e8c54;
  --cream: #f9f7f3;
  --ivory: #edddd4;
  --white: #fffdf9;
  --ink: #39432f;
  --muted: #626a58;
  --line: #dfd5cb;
  --blush: #edddd4;
  --clay: #bd8161;
  --peach: #cfa48c;
  --radius: 3px;
}
html { scroll-padding-top: 80px; }
body { background:var(--cream); color:var(--ink); font-size:19px; }
main, .section { min-width:0; }
.shell { max-width:1180px; }
.section { padding-block:112px; }
a, button { -webkit-tap-highlight-color: transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {outline:3px solid var(--clay);outline-offset:3px}
.eyebrow { color:var(--ivory); font-size:15px; font-weight:500; letter-spacing:.20em; line-height:1.5; }
.eyebrow.olive { color:#53623a; }
.section h2 { font-size:clamp(41px,4.2vw,61px); line-height:1.11; letter-spacing:-.025em; }
.section h2 em, .countdown h2 em { color:var(--olive-soft); }
.section-heading p:last-child {font-size:20px;line-height:1.55;color:var(--muted)}

/* Header: marca original, sem fontes substitutas */
.site-header { height:84px;background:var(--olive);color:var(--ivory);border-bottom:1px solid #edddd42b; }
.nav { gap:28px; }
.brand { min-width:95px; }
.brand img { width:91px;height:66px;object-fit:contain; }
.nav-links {gap:39px}
.nav-links a,.nav-cta {font-size:16px;font-weight:500;color:var(--ivory);letter-spacing:.015em;}
.nav-links a:hover {color:#fffdf6}
.nav-cta {text-transform:none;letter-spacing:.02em;border-color:#edddd48f}

/* Capa: composição da página 1 e dos convites de página 6 */
.hero {min-height:770px;height:auto;min-height:max(800px,calc(100svh - 84px));background:var(--olive);color:var(--ivory);overflow:hidden;}
.hero::before {content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 57%,#9eaa7a21,transparent 53%);pointer-events:none;z-index:-1}
.hero::after {background:repeating-linear-gradient(90deg,#fff0 0 4px,#fff2 4.5px 5px);opacity:.10}
.hero-frame {inset:34px;border-color:#edddd452}
.hero-content { width:100%;max-width:1050px;padding-block:130px 135px;display:flex;align-items:center;flex-direction:column; }
.hero-rose {width:420px;height:595px;left:calc(50% - 210px);top:calc(50% - 315px);opacity:.20;object-fit:contain;filter:brightness(.65);}
.hero-glimmers span {color:var(--ivory);opacity:.18}
.hero-eyebrow {max-width:650px;margin-bottom:11px; font-size:15px;letter-spacing:.25em;}
.hero-pretitle {font-family:var(--serif);font-style:normal;font-weight:400;font-size:16px;letter-spacing:.28em;margin:0 0 25px;color:var(--ivory);}
.hero h1 {width:100%;max-width:1000px;margin:0 auto 7px;display:block;}
.hero h1 img {width:min(100%,1000px);max-height:310px;display:block;object-fit:contain;margin:auto;}
.hero-divider {margin:1px auto 23px;color:#f7e7db}
.hero-divider > span:not(.diamond) {background:#edddd48c;width:90px}
.hero-divider .diamond{font-size:24px}
.hero-description {font-size:clamp(19px,2vw,26px);line-height:1.45;margin-bottom:21px;letter-spacing:.01em;color:#f8eee7;max-width:650px}
.hero-date {display:flex;justify-content:center;align-items:baseline;gap:22px;margin:0 0 8px;color:#f4e7dd;}
.hero-date-short {font:400 clamp(44px,6vw,77px)/1 var(--serif);letter-spacing:.045em;vertical-align:baseline}
.hero-date-separator {font-size:23px;transform:translateY(-8px);opacity:.55}
.hero-date-year {font:400 clamp(35px,4.5vw,61px)/1 var(--serif);letter-spacing:.055em;}
.hero-time {font-family:var(--serif);font-size:19px;letter-spacing:.13em;line-height:1.3;margin:4px 0 35px;color:#f4e7dd;}
.hero-time span {padding-inline:9px;opacity:.6}
.hero-buttons {gap:16px}
.btn {border-radius:0;letter-spacing:.025em;min-height:56px;font-weight:600;font-size:17px;}
.btn-light {background:var(--blush);color:#53613a;}
.btn-light:hover{background:#fff9f3}
.btn-ghost {background:transparent;border-color:#edddd487;color:var(--ivory)}
.btn-dark{background:var(--olive);color:white}
.btn-dark:hover{background:var(--olive-dark)}
.btn-outline{background:transparent;border-color:var(--olive);color:var(--olive)}
.hero-scroll {bottom:43px;font-size:13px;letter-spacing:.16em;color:#f1dfd4}

/* Apresentação: composição de papel e monograma da identidade */
.intro {grid-template-columns:minmax(0,43%) minmax(0,57%);gap:50px;}
.intro-art {height:485px;border:1px solid #e0cfc4;background:var(--blush);position:relative;isolation:isolate;}
.intro-art::before {width:340px;height:340px;transform:translate(-100px,-105px);opacity:.22;border-color:#b69179}
.intro-art::after {width:370px;height:370px;transform:translate(175px,175px);opacity:.18;border-color:#b69179}
.intro-symbol {position:relative;z-index:3}
.intro-symbol img {width:244px;max-height:190px;filter:none;}
.intro-botanical {position:absolute;bottom:-60px;left:12%;height:390px;max-width:60%;opacity:.24;z-index:1;pointer-events:none;transform:rotate(-20deg)}
.small-rule {background:var(--olive-soft);opacity:.45;margin:14px 0 18px;z-index:3}
.intro-date {color:var(--olive);font-size:17px;letter-spacing:.18em;z-index:3}
.intro-text {padding:35px 22px;}
.intro-text h2 {margin-bottom:23px;}
.intro-text p:not(.eyebrow):not(.handwritten) {font-size:21px;line-height:1.68;color:#65695d;}
.handwritten {font-size:30px;line-height:1.3;color:var(--olive);font-style:italic}

/* Relógio */
.countdown-wrap {background:#f4eae4;border-top:1px solid #e6d9d1;border-bottom:1px solid #e6d9d1;}
.countdown-inner {min-height:200px;}
.countdown-inner h2 {font-size:clamp(33px,3vw,43px);line-height:1.18;margin-bottom:0}
.countdown {gap:12px}
.countdown>div {min-width:78px}
.countdown strong {font-size:clamp(39px,3.6vw,51px);color:var(--olive)}
.countdown span {color:#647051;font-size:12px;letter-spacing:.13em}
.countdown b {color:#8d9875;}

/* Cerimônia e recepção */
.details {position:relative}
.details .section-heading {margin-bottom:53px}
.event-grid {gap:28px;}
.event-card {background:#fffefa;border:1px solid #e8d9cf;min-height:445px;padding:47px 35px 42px;box-shadow:0 15px 48px #51482d09}
.event-card::after {border-color:#d7c4b159}
.event-icon {color:var(--olive-soft);height:76px}
.event-number {font-size:14px;letter-spacing:.15em;color:var(--olive)}
.event-card h3 {font-size:clamp(29px,3vw,37px);line-height:1.18;min-height:95px;color:#394631;margin-bottom:16px}
.event-time {font-size:18px;font-weight:600;color:#626b4a}
.event-address {font-size:17px;line-height:1.5;color:#66665e}
.text-link {font-size:16px;font-weight:600;border-color:#a7b18c;}

/* RSVP: verde oficial e arte botânica original */
.rsvp-section{background:var(--olive);color:var(--ivory);overflow:hidden}
.rsvp-section::before {background-image:url('/assets/flor-delicada.svg');background-size:550px;background-position:5% 75%;opacity:.23;}
.rsvp-grid {grid-template-columns:minmax(0,42%) minmax(0,58%);gap:6%;}
.rsvp-intro {padding:60px 0 0;}
.rsvp-intro h2 {font-size:clamp(41px,4.3vw,61px);line-height:1.16;color:var(--ivory);}
.rsvp-intro h2 em {color:#f6eddf}
.rsvp-intro>p:not(.eyebrow) {font-size:22px;line-height:1.6;color:#f8ede4}
.rsvp-ornament {opacity:.9;margin-top:35px}
.rsvp-ornament img {width:168px;max-height:118px;object-fit:contain}
.form-card {padding:44px;background:#fffdfa;border:1px solid #eadad0;color:#3c4934;box-shadow:0 24px 85px #222c1d26}
.card-kicker{font-size:14px;letter-spacing:.16em;color:#6c7952}
.form-card h3 {font-size:34px;line-height:1.2;margin-bottom:34px}
.form-card .field label,.form-card .field legend {font-size:18px;font-weight:600;line-height:1.4;margin-bottom:9px;color:#394631;}
.field label small {font-size:15px;color:#62665b}
.form-card .field > input:not([type=checkbox]), .form-card .field select,.form-card .field textarea {font-size:18px;min-height:50px;background:#fdfbf8;border-color:#ddd3c7;color:var(--ink);}
.form-card .field input::placeholder,.form-card .field textarea::placeholder{color:#7a8172}
.form-card .helper {font-size:15px;line-height:1.55;color:#5e6855}
.form-card .radio-grid {gap:12px}
.form-card .radio-option {background:#fdfbf8;border-color:#d9d3c6;min-height:95px;padding:16px 14px;gap:12px;}
.form-card .radio-option:has(input:checked) {background:#edf1e7;border-color:var(--olive-soft)}
.form-card .radio-option strong {font-size:18px;font-weight:600;line-height:1.23}
.form-card .radio-option small {font-size:15px;line-height:1.35;color:#5d6654}
.form-card .edit-toggle,.form-card .privacy-check {font-size:17px;line-height:1.45;color:#505e47}
.form-card .edit-toggle input[type=checkbox], .form-card .privacy-check input[type=checkbox] {width:20px;height:20px;min-width:20px;accent-color:var(--olive)}
.form-note {font-size:14px;color:#707568}
.form-card .btn {font-size:18px}

/* Presentes: fundo claro, painel Pix bem legível */
.gifts {gap:9%;}
.gifts-left h2 {font-size:clamp(42px,4.1vw,59px)}
.gifts-left>p:not(.eyebrow) {font-size:21px;line-height:1.62;color:#62685d}
.gift-note {border-color:#d5c6bb;padding-top:25px}
.gift-note>span {color:var(--clay)}
.gift-note p{font:italic 27px/1.2 var(--serif);color:var(--olive)}
.pix-card {background:#fffefa;border:1px solid #ddc9bc;box-shadow:0 24px 70px #453b280b;padding:36px 35px;}
.pix-card-header{border-color:#eadfd8}
.pix-card-header .pix-mark{color:var(--clay)}
.pix-card-header p {font-size:13px;color:var(--olive)}
.pix-card-header h3 {font-size:26px}
.qr-image{width:235px;height:235px}
.qr-hint {font-size:15px;color:#676e60}
.pix-label{font-size:14px;color:var(--olive)}
.pix-key-box input{font-size:16px}
.pix-key-box button{font-size:15px}
.pix-disclaimer{font-size:14px;line-height:1.5;color:#64695e}
.copy-feedback{font-size:15px}

/* Cartão final: tom blush principal da marca */
.invite-strip {background:var(--blush);border-color:#e2cfc2}
.invite-strip-inner {padding-block:63px}
.invite-strip h2 {font-size:clamp(33px,3.4vw,45px)}
.invite-strip p:last-child {font-size:19px;color:#616b53}
.footer {background:var(--olive);color:var(--ivory);padding:56px 25px 43px;}
.footer-monogram img {width:136px;max-height:110px;object-fit:contain}
.footer>p:not(.footer-monogram) {font-size:15px;line-height:1.55;color:#f3e9df;letter-spacing:.09em}
.footer-top{font-size:15px;border-color:#edddd47f}

@media(max-width:1000px) {
  .hero {min-height:765px}
  .hero-content {padding-block:132px 137px}
  .intro {gap:20px}
  .rsvp-grid {gap:4%}
  .form-card {padding:32px}
  .gifts {gap:5%}
}
@media(max-width:800px) {
  .nav-links{gap:19px}
  .rsvp-grid {grid-template-columns:minmax(0,1fr)}
  .rsvp-intro {padding:0;max-width:600px}
  .rsvp-intro h2 {max-width:600px}
  .rsvp-ornament {display:none}
  .form-card{max-width:690px;width:100%;margin:0 auto}
  .intro {grid-template-columns:minmax(0,43%) minmax(0,57%);gap:20px}
  .intro-text{padding:12px}
  .intro-art{height:405px}
  .intro-symbol img{width:195px}
}
@media(max-width:670px) {
  html {scroll-padding-top:60px}
  .site-header{height:70px}
  .brand{min-width:55px}
  .brand img{width:70px;height:51px}
  .nav{gap:12px}
  .nav-links{gap:16px}
  .nav-links a{font-size:14px}
  .section {padding-block:72px}
  .hero {min-height:710px;height:auto;padding:0;}
  .hero-frame{inset:15px}
  .hero-content{padding:109px 13px 117px}
  .hero-eyebrow{font-size:12px;letter-spacing:.13em;line-height:1.7;max-width:315px;margin-bottom:13px}
  .hero-pretitle {font-size:12px;letter-spacing:.16em;margin-bottom:29px}
  .hero h1 img{width:100%;max-height:none}
  .hero-rose{width:320px;height:450px;left:calc(50% - 160px);top:calc(50% - 250px);opacity:.2}
  .hero-description {font-size:20px;line-height:1.35;margin-top:4px;margin-bottom:20px;max-width:335px}
  .hero-divider{margin:5px auto 18px}
  .hero-date{gap:12px;margin-bottom:6px}
  .hero-date-short{font-size:50px}
  .hero-date-year{font-size:41px}
  .hero-date-separator{font-size:18px}
  .hero-time {font-size:14px;letter-spacing:.05em;margin-bottom:28px}
  .hero-time span{padding-inline:4px}
  .hero-buttons {width:100%;max-width:330px;gap:11px}
  .hero-buttons .btn{font-size:16px}
  .hero-scroll{bottom:34px;font-size:11px}
  .intro {grid-template-columns:minmax(0,1fr);gap:28px}
  .intro-art {height:335px;}
  .intro-text{padding:5px 5px}
  .intro-text h2 {font-size:40px}
  .intro-text p:not(.eyebrow):not(.handwritten){font-size:20px;line-height:1.55}
  .intro-botanical{height:300px;bottom:-48px}
  .countdown-inner {padding-block:38px;gap:23px}
  .countdown-inner h2 {font-size:33px}
  .countdown>div {min-width:56px}
  .countdown strong {font-size:37px}
  .countdown span{font-size:11px}
  .event-grid {grid-template-columns:minmax(0,1fr)}
  .event-card {min-height:390px;padding:39px 24px 33px}
  .event-card h3 {font-size:30px;min-height:0}
  .event-time{font-size:17px}
  .event-address{font-size:17px}
  .rsvp-intro h2 {font-size:44px}
  .rsvp-intro>p:not(.eyebrow) {font-size:20px}
  .form-card{padding:28px 21px}
  .form-card h3{font-size:30px}
  .form-card .field label,.form-card .field legend{font-size:17px}
  .form-card .radio-option{min-height:90px;padding:14px 10px}
  .form-card .radio-option strong{font-size:17px}
  .form-card .radio-option small{font-size:14px}
  .form-card .helper{font-size:14px}
  .form-card .edit-toggle,.form-card .privacy-check{font-size:16px}
  .gifts {grid-template-columns:minmax(0,1fr);gap:34px}
  .gifts-left h2{font-size:42px}
  .gifts-left>p:not(.eyebrow){font-size:20px}
  .pix-card {padding:28px 21px}
  .pix-card-header h3{font-size:24px}
  .invite-strip-inner {padding-block:51px}
  .footer>p:not(.footer-monogram){font-size:14px}
}
@media(max-width:400px) {
 .nav-links{gap:12px}
 .nav-links a{font-size:12px}
 .hero{min-height:670px}
 .hero-content{padding:102px 8px 122px}
 .hero-date-short{font-size:45px}
 .hero-date-year{font-size:35px}
 .hero-time{font-size:13px}
 .countdown {gap:4px}
 .countdown>div{min-width:45px}
 .countdown strong{font-size:32px}
 .countdown span{font-size:9px}
 .form-card .radio-grid {grid-template-columns:minmax(0,1fr)}
 .form-card .radio-option {min-height:80px;padding:12px 15px}
 .pix-card{padding:25px 17px}
}
/* Neutraliza o seletor legado `.hero-date span`, que usava escala .49em. */
.hero-date .hero-date-short{font-size:clamp(44px,6vw,77px);vertical-align:baseline}
.hero-date .hero-date-year{font-size:clamp(35px,4.5vw,61px);vertical-align:baseline}
.hero-date .hero-date-separator{font-size:23px;vertical-align:baseline}
@media(max-width:670px){
 .hero-date .hero-date-short{font-size:50px}
 .hero-date .hero-date-year{font-size:41px}
 .hero-date .hero-date-separator{font-size:18px}
}
@media(max-width:400px){
 .hero-date .hero-date-short{font-size:45px}
 .hero-date .hero-date-year{font-size:35px}
}
