/* Manual dos Padrinhos — camada visual específica, usando o sistema do site principal */
:root {
    --manual-ink: #332F34;
    --manual-paper: #FBF8F3;
    --manual-soft: #F3EEEE;
    --manual-green: #514253;
    --manual-line: rgba(142, 128, 145, 0.22);
}

html { scroll-behavior: smooth; }
body.manual-page { background: var(--manual-paper); color: var(--manual-ink); }

.manual-progress { position: fixed; z-index: 90; top: 0; left: 0; width: 100%; height: 2px; background: rgba(249,246,240,.16); pointer-events:none; }
.manual-progress span { display:block; width:0; height:100%; background: var(--accent-rose); transition: width .12s linear; }

.manual-nav { position:fixed; z-index:80; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; padding:1.2rem clamp(1.25rem,4vw,4rem); transition:background .5s, color .5s, transform .5s; color:var(--text); }
.manual-nav.scrolled { background:rgba(251,248,243,.92); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.manual-nav.on-dark { color:var(--bg); }
.manual-nav.on-dark.scrolled { color:var(--text); }
.manual-brand { display:flex; align-items:center; gap:.75rem; color:inherit; text-decoration:none; }
.manual-brand img { width:2.6rem; height:2.6rem; object-fit:contain; }
.manual-brand span,.manual-nav-label,.manual-nav-link { font-family:Lato,sans-serif; font-size:.65rem; letter-spacing:.28em; text-transform:uppercase; }
.manual-nav-right { display:flex; align-items:center; gap:2rem; }
.manual-nav-link { color:inherit; text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:.2rem; }

.manual-cover { min-height:100svh; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; text-align:center; }
.manual-cover-bg { position:absolute; inset:0; background:linear-gradient(180deg,rgba(64,53,66,.82),rgba(81,66,83,.48) 55%,rgba(64,53,66,.78)), url('../images/hero.webp') center 60%/cover; filter:saturate(.78) brightness(.72); transform:scale(1.03); }
.manual-cover-grain { position:absolute; inset:0; opacity:.14; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E"); mix-blend-mode:soft-light; pointer-events:none; }
.manual-cover-content { position:relative; z-index:2; width:min(900px,92vw); padding:7rem 1rem 6rem; }
.manual-cover-crest { width:6rem; height:6rem; margin:0 auto 2.5rem; }
.manual-cover-crest img { width:100%; height:100%; object-fit:contain; }
.manual-kicker { letter-spacing:.5em; margin-bottom:1.8rem; }
.manual-cover-title { font-family:Marcellus,serif; font-size:clamp(3.6rem,9vw,8.5rem); line-height:.88; font-weight:400; letter-spacing:-.04em; }
.manual-cover-title span { font-family:Great Vibes,cursive; font-size:1.12em; letter-spacing:0; }
.manual-cover-rule { display:flex; align-items:center; justify-content:center; gap:1rem; margin:2.8rem auto 1.8rem; color:rgba(251,248,243,.75); font-family:Lato,sans-serif; font-size:.7rem; letter-spacing:.32em; }
.manual-cover-rule span { width:4rem; height:1px; background:rgba(251,248,243,.38); }
.manual-cover-rule i { font-style:normal; white-space:nowrap; }
.manual-cover-intro { font-family:Cormorant Garamond,serif; font-size:clamp(1.15rem,2vw,1.5rem); line-height:1.5; font-weight:300; }
.manual-scroll-hint { position:absolute; z-index:3; bottom:2rem; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:.55rem; color:inherit; text-decoration:none; font-family:Lato,sans-serif; font-size:.58rem; text-transform:uppercase; letter-spacing:.3em; opacity:.75; }
.manual-scroll-hint svg { width:1.2rem; height:1.2rem; animation:manualBounce 2.2s infinite; }
@keyframes manualBounce { 0%,100%{transform:translateY(0)}50%{transform:translateY(5px)} }

.manual-section { position:relative; padding:clamp(6.5rem,11vw,11rem) clamp(1.25rem,5vw,5rem); overflow:hidden; }
.manual-soft-section { background:var(--manual-soft); }
.manual-dark-section { background:var(--green-certexa-dark); color:var(--bg); }
.manual-page-number { position:absolute; top:2.5rem; right:clamp(1.25rem,5vw,5rem); font-family:Lato,sans-serif; font-size:.58rem; letter-spacing:.26em; color:var(--muted); text-transform:uppercase; }
.manual-page-number span { opacity:.5; padding:0 .25rem; }
.manual-page-number-light { color:rgba(249,246,240,.55); }
.manual-section-head { margin-bottom:clamp(3rem,6vw,5.5rem); }
.manual-title { font-family:Marcellus,serif; font-weight:400; font-size:clamp(3rem,6vw,5.8rem); line-height:.98; letter-spacing:-.025em; }
.manual-title em { font-family:Great Vibes,cursive; color:var(--accent-rose); font-size:1.06em; font-weight:400; }
.manual-title-light { color:var(--bg); }
.manual-title-light em { color:#C8D0C2; }

.manual-letter-section { min-height:100vh; display:flex; align-items:center; }
.manual-letter-grid { width:min(1080px,100%); margin:auto; display:grid; grid-template-columns:1fr 2.5fr; gap:clamp(2rem,7vw,8rem); align-items:start; }
.manual-side-note { padding-top:1rem; display:flex; flex-direction:column; gap:2rem; }
.manual-vertical-word { writing-mode:vertical-rl; transform:rotate(180deg); font-family:Lato,sans-serif; font-size:.58rem; letter-spacing:.48em; color:var(--muted); }
.manual-letter { max-width:720px; }
.manual-overline { font-family:Playfair Display,serif; font-size:1.1rem; font-style:italic; color:var(--accent); margin-bottom:2rem; }
.manual-letter p:not(.manual-overline) { color:var(--muted); font-size:clamp(1.05rem,1.5vw,1.22rem); line-height:1.9; margin-top:1.4rem; }
.manual-emphasis { font-family:Cormorant Garamond,serif; font-size:clamp(1.7rem,3vw,2.5rem)!important; line-height:1.2!important; color:var(--text)!important; font-style:italic; margin-top:2.2rem!important; }
.manual-signature { margin-top:3.5rem; font-family:Cormorant Garamond,serif; font-size:1.15rem; color:var(--muted); line-height:1.35; }
.manual-signature span { font-family:Great Vibes,cursive; color:var(--accent); font-size:2.1rem; }

.manual-index { max-width:900px; margin:0 auto; border-top:1px solid var(--line); }
.manual-index-item { display:grid; grid-template-columns:4rem 1.2fr 1fr 2rem; gap:1rem; align-items:center; padding:1.5rem .25rem; border-bottom:1px solid var(--line); color:var(--text); text-decoration:none; transition:padding .45s, background .45s; }
.manual-index-item:hover { padding-left:1rem; padding-right:1rem; background:rgba(255,255,255,.32); }
.manual-index-item span,.manual-index-item small { font-family:Lato,sans-serif; color:var(--muted); font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; }
.manual-index-item strong { font-family:Marcellus,serif; font-size:1.35rem; font-weight:400; }
.manual-index-item b { font-family:Lato,sans-serif; font-weight:400; color:var(--accent); }

.manual-light-label { color:rgba(249,246,240,.65)!important; }
.manual-mission-copy > p { color:rgba(249,246,240,.72); font-size:1.1rem; line-height:1.85; }
.manual-big-copy { font-family:Cormorant Garamond,serif; font-size:clamp(2.4rem,4.5vw,4.2rem)!important; color:var(--bg)!important; font-style:italic; margin-bottom:1.2rem; }
.manual-pillars { margin-top:3rem; border-top:1px solid rgba(249,246,240,.16); }
.manual-pillars > div { display:grid; grid-template-columns:3rem 1fr; column-gap:1rem; padding:1.4rem 0; border-bottom:1px solid rgba(249,246,240,.16); }
.manual-pillars span { font-family:Lato,sans-serif; font-size:.62rem; letter-spacing:.2em; color:#C8D0C2; }
.manual-pillars strong { font-family:Marcellus,serif; font-size:1.25rem; font-weight:400; }
.manual-pillars p { grid-column:2; color:rgba(249,246,240,.6); font-size:.92rem; line-height:1.6; margin-top:.35rem; }

.manual-map-link { display:inline-flex; align-items:center; gap:.6rem; margin-top:2rem; font-family:Lato,sans-serif; text-transform:uppercase; letter-spacing:.2em; font-size:.62rem; color:var(--text); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:.5rem; }
.manual-map-link span { color:var(--accent); font-size:.9rem; }
.manual-date-card { background:#fffdf9; border:1px solid var(--line); padding:clamp(2rem,4vw,4rem); display:grid; grid-template-columns:1fr 1fr; box-shadow:0 25px 70px rgba(64,53,66,.07); }
.manual-date-main { text-align:center; padding-right:2rem; border-right:1px solid var(--line); }
.manual-date-main span,.manual-date-main small { display:block; font-family:Lato,sans-serif; font-size:.6rem; letter-spacing:.3em; color:var(--muted); }
.manual-date-main strong { display:block; font-family:Marcellus,serif; font-size:clamp(5rem,10vw,8rem); line-height:.9; font-weight:400; color:var(--accent); margin:.7rem 0; }
.manual-date-meta { display:flex; flex-direction:column; justify-content:center; gap:2rem; padding-left:clamp(1.5rem,4vw,3.5rem); }
.manual-date-meta div { display:flex; flex-direction:column; gap:.35rem; }
.manual-date-meta span { font-family:Lato,sans-serif; text-transform:uppercase; letter-spacing:.18em; font-size:.58rem; color:var(--muted); }
.manual-date-meta strong { font-family:Playfair Display,serif; font-size:1.7rem; font-weight:400; }
.manual-schedule { border-left:1px solid var(--line); border-right:1px solid var(--line); }
.manual-schedule > div { display:grid; grid-template-columns:6rem 1fr auto; align-items:center; gap:1rem; padding:1.2rem 1.5rem; border-bottom:1px solid var(--line); }
.manual-schedule > div:last-child { border-bottom:0; }
.manual-schedule span { font-family:Playfair Display,serif; font-size:1.3rem; color:var(--accent); }
.manual-schedule strong { font-family:Marcellus,serif; font-weight:400; font-size:1.05rem; }
.manual-schedule small { font-family:Lato,sans-serif; color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; }
.manual-location-image { margin-top:clamp(3rem,6vw,5rem); height:min(55vw,520px); overflow:hidden; }
.manual-location-image img { width:100%; height:100%; object-fit:cover; object-position:center 35%; filter:saturate(.88); transition:transform 1.2s cubic-bezier(.16,1,.3,1); }
.manual-location-image:hover img { transform:scale(1.025); }

.attire-grid { max-width:1000px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.attire-card { min-height:520px; padding:clamp(2rem,4vw,3.5rem); position:relative; overflow:hidden; border:1px solid var(--line); background:#fffdf9; }
.attire-card::before { content:''; position:absolute; inset:auto -15% -30% -15%; height:55%; background:radial-gradient(circle,rgba(169,153,173,.15),transparent 65%); pointer-events:none; }
.attire-groom::after { content:''; position:absolute; right:-15%; bottom:-30%; width:52%; height:52%; border-radius:50%; background:rgba(64,53,66,.055); }
.attire-bridesmaid { background:#f8f1f2; }
.attire-bridesmaid::after { content:''; position:absolute; width:14rem; height:20rem; right:-3rem; bottom:-6rem; border-radius:50% 50% 0 0; background:linear-gradient(135deg,rgba(178,98,102,.13),rgba(134,101,134,.08)); transform:rotate(-10deg); }
.attire-card-top { display:flex; justify-content:space-between; align-items:center; position:relative; z-index:2; }
.attire-number { font-family:Playfair Display,serif; color:var(--muted); font-size:.9rem; }
.attire-card h3 { position:relative; z-index:2; font-family:Marcellus,serif; font-size:clamp(2.4rem,4vw,4rem); line-height:.95; font-weight:400; margin-top:4rem; }
.attire-card h3 em { font-family:Great Vibes,cursive; color:var(--accent); font-weight:400; }
.attire-specs { position:relative; z-index:2; margin-top:4rem; display:flex; flex-direction:column; gap:1rem; max-width:380px; }
.attire-specs div { display:flex; justify-content:space-between; gap:1rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); }
.attire-specs span { font-family:Lato,sans-serif; color:var(--muted); text-transform:uppercase; letter-spacing:.15em; font-size:.56rem; }
.attire-specs strong { font-family:Playfair Display,serif; font-size:1rem; font-weight:400; text-align:right; }
.color-chip { position:absolute; right:2rem; bottom:2rem; width:4.5rem; height:4.5rem; border-radius:50%; z-index:2; box-shadow:0 0 0 8px rgba(255,255,255,.35); }
.color-chip.navy { background:#27384b; }
.dress-palette { position:absolute; right:2rem; bottom:2rem; display:flex; flex-direction:column; gap:.35rem; z-index:2; }
.dress-palette i { display:block; width:4.5rem; height:.65rem; border-radius:99px; }
.dress-palette i:nth-child(1){background:#c4774b}.dress-palette i:nth-child(2){background:#b65d68}.dress-palette i:nth-child(3){background:#a94461}.dress-palette i:nth-child(4){background:#8d4b68}
.manual-attire-note { max-width:800px; margin:2.5rem auto 0; text-align:center; font-family:Cormorant Garamond,serif; font-size:1.35rem; color:var(--muted); }
.manual-attire-note span { color:var(--accent); font-style:italic; }

.manual-tips { border-top:1px solid var(--line); }
.manual-tip { display:grid; grid-template-columns:3rem 1fr; gap:1.5rem; padding:1.7rem 0; border-bottom:1px solid var(--line); }
.manual-tip > span { font-family:Lato,sans-serif; font-size:.6rem; letter-spacing:.2em; color:var(--accent); padding-top:.3rem; }
.manual-tip h3 { font-family:Marcellus,serif; font-size:1.45rem; font-weight:400; }
.manual-tip p { color:var(--muted); font-size:.95rem; line-height:1.75; margin-top:.35rem; max-width:620px; }

.manual-final { min-height:92svh; position:relative; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; }
.manual-final-bg { position:absolute; inset:0; background:linear-gradient(rgba(64,53,66,.76),rgba(64,53,66,.9)),url('../images/hero.webp') center/cover; filter:saturate(.7); }
.manual-final-content { position:relative; z-index:2; width:min(800px,92vw); }
.manual-final-crest { width:5.5rem; height:5.5rem; object-fit:contain; margin:0 auto 2.5rem; }
.manual-final-title { color:var(--bg); font-family:Marcellus,serif; font-size:clamp(4rem,8vw,7.5rem); line-height:.9; font-weight:400; }
.manual-final-title em { color:#C8D0C2; font-family:Great Vibes,cursive; font-weight:400; }
.manual-final-content > p { color:rgba(249,246,240,.72); font-family:Cormorant Garamond,serif; font-size:1.35rem; line-height:1.45; margin-top:2rem; }
.manual-final-sign { font-family:Great Vibes,cursive; color:var(--bg); font-size:2.6rem; margin-top:2.5rem; }
.manual-home-link { display:inline-flex; gap:.6rem; align-items:center; margin-top:3rem; color:rgba(249,246,240,.8); border-bottom:1px solid rgba(249,246,240,.3); padding-bottom:.5rem; font-family:Lato,sans-serif; font-size:.62rem; text-transform:uppercase; letter-spacing:.22em; text-decoration:none; }

@media (max-width: 900px) {
    .manual-nav-label { display:none; }
    .manual-nav-right { gap:0; }
    .manual-letter-grid { grid-template-columns:1fr; }
    .manual-side-note { display:none; }
    .manual-date-card { grid-template-columns:1fr; gap:2rem; }
    .manual-date-main { padding:0 0 2rem; border-right:0; border-bottom:1px solid var(--line); }
    .manual-date-meta { padding-left:0; flex-direction:row; justify-content:space-between; }
    .manual-schedule > div { grid-template-columns:5rem 1fr; }
    .manual-schedule small { grid-column:2; }
}

@media (max-width: 700px) {
    .manual-nav { padding:.8rem 1rem; }
    .manual-brand img { width:2.1rem; height:2.1rem; }
    .manual-brand span,.manual-nav-link { font-size:.54rem; letter-spacing:.18em; }
    .manual-section { padding-top:5.8rem; padding-bottom:5.8rem; }
    .manual-page-number { top:1.8rem; }
    .manual-cover-content { padding-top:6rem; }
    .manual-cover-crest { width:4.5rem; height:4.5rem; margin-bottom:2rem; }
    .manual-cover-rule span { width:2rem; }
    .manual-index-item { grid-template-columns:2.5rem 1fr 1.7rem; }
    .manual-index-item small { display:none; }
    .manual-index-item strong { font-size:1.12rem; }
    .manual-pillars > div { grid-template-columns:2.3rem 1fr; }
    .manual-date-meta { gap:1rem; }
    .manual-date-meta strong { font-size:1.35rem; }
    .manual-schedule > div { padding:1.1rem 1rem; }
    .attire-grid { grid-template-columns:1fr; }
    .attire-card { min-height:470px; }
    .attire-specs { margin-top:3rem; }
    .attire-specs div { align-items:flex-start; }
    .attire-specs strong { max-width:58%; }
    .manual-final { min-height:85svh; }
}

@media (prefers-reduced-motion: reduce) {
    .manual-scroll-hint svg { animation:none; }
    .manual-location-image img,.manual-index-item { transition:none; }
}
