/* Shared presentation for standalone tools. Keep aligned with app/globals.css. */
:root{--brand:#234C3E;--brand-dark:#16372D;--brand-soft:#EAF0E9;--accent:#8C6334;--accent-light:#DFC69C;--bg:#FCFAF6;--surface:#FFF;--ink:#243B33;--ink-2:#58645C;--ink-3:#687269;--line:#E4E5DA;--line-2:#C9CEC2;--good:#1E6E42;--warn:#805509;--bad:#A52A2A;--good-bg:#EBF8F0;--warn-bg:#FBF3E2;--bad-bg:#FDEDED;--font-ui:'Segoe UI',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--font-display:Georgia,'Times New Roman',serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
a{color:var(--brand);text-underline-offset:3px}
a:hover{color:var(--brand-dark)}
button{cursor:pointer}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #A77537;outline-offset:4px}
main:focus{outline:none}
.wrap{max-width:1080px;margin:0 auto;padding:20px 40px}
.skip-link{position:fixed;top:-100px;left:16px;z-index:100;background:#fff;border:2px solid var(--brand);border-radius:8px;padding:11px 16px}
.skip-link:focus{top:12px}
header.site{position:sticky;top:0;z-index:30;background:rgba(252,250,246,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
header.site .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;max-width:1280px;padding:18px 40px}
.logo{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--brand);font-family:var(--font-display);font-size:1.22rem;letter-spacing:-.6px;line-height:1.2;white-space:nowrap;font-weight:700}
.logo img{width:34px;height:40px;flex:none}
.logo .brand-word{color:var(--brand)}
.logo .brand-word>span{color:var(--accent)}
.logo small{display:block;font-family:var(--font-ui);font-size:.48rem;font-weight:600;letter-spacing:.12em;color:var(--ink-2);margin-top:6px;text-transform:uppercase}
.tool-nav{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.tool-nav a{color:var(--ink-2);padding:9px 11px;border-radius:7px;text-decoration:none;font-size:.8rem;font-weight:600;white-space:nowrap}
.tool-nav a:hover,.tool-nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand)}
.tool-nav a.nav-login{background:var(--brand);color:#fff;padding:10px 14px;margin-left:4px}
.lang-toggle{display:flex;gap:3px;background:#F2F3EB;border:1px solid var(--line-2);padding:3px;border-radius:8px}
.lang-toggle button{background:transparent;color:var(--ink-2);border:0;border-radius:5px;font-size:.75rem;padding:8px 10px;min-height:36px;font-weight:600}
.lang-toggle button.active{background:#fff;color:var(--brand);box-shadow:0 1px 4px #183B2E14}
.hero{text-align:center;padding:37px 16px 24px}
.hero .eyebrow{font-size:.67rem;letter-spacing:.17em;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:15px}
.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3.7vw,3.1rem);line-height:1.18;letter-spacing:-1px;max-width:780px;margin:0 auto 18px;color:var(--ink)}
.hero p{color:var(--ink-2);font-size:.93rem;line-height:1.85;max-width:690px;margin:0 auto}
.hero .method-note{font-size:.75rem;line-height:1.65;max-width:680px;margin:14px auto 0;color:var(--ink-2)}
.free-badge{display:inline-flex;align-items:center;font-size:.7rem;font-weight:600;border:1px solid #D8E2D2;background:var(--brand-soft);color:var(--brand);padding:5px 12px;border-radius:6px;margin-top:20px;margin-bottom:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:28px;margin:22px 0;box-shadow:0 4px 18px #19332005}
.pair,.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}
.side{min-width:0}
.side h2,.side h3{font-family:var(--font-display);color:var(--brand);font-weight:400;font-size:1.4rem;margin-bottom:16px}
.side+.side{border-left:1px solid var(--line);padding-left:30px}
label.fld,.fld{display:block;font-size:.8rem;font-weight:600;margin:14px 0 7px;color:var(--ink)}
.fld small{font-weight:400;color:var(--ink-2)}
input:not([type=range]),select{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink);font-size:.92rem}
input:focus,select:focus{border-color:var(--brand)}
input[type=range]{width:100%;accent-color:var(--brand);margin-top:12px;min-height:24px}
.budget-readout{font-size:2rem;font-weight:500;font-family:var(--font-display);color:var(--brand);margin-top:7px}
.themes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:12px}
.theme{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;border:1px solid var(--line-2);border-radius:10px;background:var(--bg);padding:18px 10px;text-align:center;color:var(--ink);transition:border-color .18s,background .18s}
.theme:hover{border-color:var(--accent)}
.theme.sel{border:2px solid var(--brand);padding:17px 9px;background:var(--brand-soft);box-shadow:0 0 0 2px #234C3E0D}
.theme .ico{font-size:1.7rem;line-height:1.5}
.theme .nm{font-size:.8rem;font-weight:600;line-height:1.55}
.theme .sub{font-size:.7rem;color:var(--ink-2);line-height:1.6}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;background:linear-gradient(135deg,#2F5D49,#234C3E);color:#fff;border:1px solid transparent;border-radius:9px;padding:13px 25px;font-size:.9rem;font-weight:700;text-decoration:none;line-height:1.5}
.cta:hover{background:var(--brand-dark);color:#fff}
.cta.ghost{background:transparent;color:var(--brand);border-color:var(--brand)}
.center{text-align:center}
#results{display:none;scroll-margin-top:115px}
.scorebox{text-align:center;padding:5px 0 14px}
.scorebox .big{font-family:var(--font-display);font-size:3.4rem;color:var(--brand);line-height:1.3}
.scorebox .of{font-family:var(--font-ui);font-size:.84rem;font-weight:400;color:var(--ink-2)}
.verdict{border-radius:9px;padding:15px 18px;display:flex;gap:10px;align-items:flex-start;font-size:.9rem;font-weight:500}
.verdict.good,.tag.good{background:var(--good-bg);color:var(--good)}
.verdict.warn,.tag.med{background:var(--warn-bg);color:var(--warn)}
.verdict.bad,.tag.bad{background:var(--bad-bg);color:var(--bad)}
.prow{display:grid;grid-template-columns:28px minmax(150px,1fr) minmax(88px,.7fr) 1.6fr;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.prow:last-child{border-bottom:0}
.prow .nm{font-weight:600;font-size:.88rem}
.prow .nm small{display:block;font-weight:400;font-size:.73rem;color:var(--ink-2);margin-top:3px}
.tag{display:inline-block;font-size:.7rem;line-height:1.6;font-weight:700;border-radius:5px;padding:4px 9px;max-width:100%;overflow-wrap:anywhere}
.why{font-size:.83rem;color:var(--ink-2)}
.note{font-size:.8rem;line-height:1.8;color:var(--ink-2);margin-top:16px}
.promo,.vendor-cta{border:1px solid #D9DFCF;background:#EFF2E8;border-radius:10px;padding:20px;margin-top:22px;font-size:.87rem;line-height:1.8;color:var(--ink-2)}
.promo b,.vendor-cta b{color:var(--brand);font-weight:600}
.promo a{font-weight:600;display:inline-block;margin-top:6px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0 0}
.stat{padding:19px 12px;border:1px solid var(--line);border-radius:9px;text-align:center;background:var(--bg)}
.stat .v{font-family:var(--font-display);font-size:1.6rem;color:var(--brand)}
.stat .l{font-size:.75rem;color:var(--ink-2);margin-top:5px}
h2.sec,.detail-heading{font-family:var(--font-display);font-size:1.5rem;font-weight:400;color:var(--brand);margin:0 0 16px;line-height:1.4}
.item{display:grid;grid-template-columns:190px minmax(0,1fr) 115px;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.item .n{font-size:.88rem}
.item .n small,.item .amt small{display:block;font-size:.72rem;color:var(--ink-2);font-weight:400;margin-top:3px}
.barwrap{background:#EAF0E4;border-radius:5px;height:12px;overflow:hidden}
.bar{height:12px;min-width:3px;background:var(--brand);border-radius:5px;transition:width .3s}
.item .amt{text-align:right;font-size:.87rem;font-weight:600}
.timeline{list-style:none}
.timeline li{display:flex;gap:24px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);font-size:.86rem}
.timeline li:last-child{border-bottom:0}
.tl-when{flex:0 0 120px;color:var(--accent);font-size:.8rem;font-weight:600}
.save-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:12px;align-items:end}
.save-form label{display:block;min-width:0}
.save-form label>span{display:block;font-size:.75rem;font-weight:600;margin-bottom:7px}
.save-form .cta{padding-left:17px;padding-right:17px}
.fineprint{font-size:.76rem;color:var(--ink-2);margin-top:13px;line-height:1.8}
footer.site-footer{background:#183B2E;color:#D0DACE;margin-top:50px;font-size:.8rem;line-height:1.8}
footer.site-footer .wrap{max-width:1280px;padding-top:30px;padding-bottom:26px}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:20px}
.footer-name{font-family:var(--font-display);font-size:1.22rem;font-weight:700;color:#fff}
.footer-name span{color:var(--accent-light)}
.footer-nav{display:flex;flex-wrap:wrap;gap:18px}
footer a{color:#E0E7DA}
footer a:hover{color:#fff}
.footer-note{font-size:.75rem;border-top:1px solid #FFFFFF24;padding-top:18px;margin-top:14px}
.footer-base{font-size:.71rem;color:#BCCDB8;margin-top:12px}
.site-footer .footer-social-links{margin-bottom:18px}
.footer-social-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;max-width:100%;padding:9px 12px;border:1px solid #DFC69C66;border-radius:6px;color:#E9D7AF;font-size:.8rem;line-height:1.5;text-decoration:none}
.footer-social-link:hover{background:#FFFFFF0D;color:#fff;border-color:#DFC69CA6}
.footer-social-link .social-mark{font-family:var(--font-ui);font-size:.95rem;font-weight:700;line-height:1;width:18px;flex:none;text-align:center}
.footer-social-link .social-new-tab{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.print-head{display:none}
.print-head .logo2{color:var(--brand);font-weight:700;font-family:var(--font-display);font-size:1.3rem}
@media(max-width:1050px){header.site .wrap{grid-template-columns:1fr auto;gap:16px}.tool-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;padding-top:10px;border-top:1px solid var(--line)}.lang-toggle{grid-column:2;grid-row:1}.themes{grid-template-columns:repeat(3,minmax(0,1fr))}.save-form{grid-template-columns:1fr 1fr}.save-form .cta{width:100%}html{scroll-padding-top:160px}#results{scroll-margin-top:160px}}
@media(max-width:640px){.wrap{padding:18px 22px}header.site .wrap{padding:14px 22px;gap:12px}.logo{font-size:1.1rem;gap:8px}.logo img{width:28px;height:35px}.logo small{font-size:.4rem;letter-spacing:.08em}.lang-toggle button{font-size:.7rem;padding:7px 8px}.tool-nav{gap:3px}.tool-nav a{font-size:.74rem;padding:8px 9px;min-height:40px}.tool-nav a.nav-login{padding:9px 11px}.hero{padding:26px 0 15px}.hero h1{font-size:2.15rem;letter-spacing:-.7px}.hero p{font-size:.86rem}.hero .eyebrow{font-size:.61rem;letter-spacing:.13em}.card{padding:21px;margin:18px 0}.pair,.grid2{grid-template-columns:1fr;gap:20px}.side+.side{padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.side h2,.side h3{font-size:1.3rem;margin-bottom:12px}.themes{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme{padding:15px 9px}.theme.sel{padding:14px 8px}.cta{max-width:100%;font-size:.86rem}.stats{grid-template-columns:1fr;gap:10px}.stat{padding:13px}.prow{grid-template-columns:23px minmax(0,1fr) minmax(0,110px);gap:9px}.prow .why{grid-column:2/-1}.tag{font-size:.64rem;padding:4px 7px}.item{grid-template-columns:minmax(0,1fr) 95px;gap:8px}.item .barwrap{grid-row:2;grid-column:1/-1;height:8px}.item .bar{height:8px}.item .amt{grid-column:2;grid-row:1}.timeline li{display:grid;gap:5px}.tl-when{flex:auto}.save-form{grid-template-columns:1fr;gap:15px}.footer-top{align-items:flex-start;flex-direction:column;gap:12px}.footer-nav{gap:13px}.footer-note{font-size:.72rem}footer.site-footer{margin-top:30px}}
@media(max-width:380px){.wrap{padding-left:16px;padding-right:16px}header.site .wrap{padding-left:16px;padding-right:16px}.logo{font-size:1rem;gap:6px}.logo img{width:25px;height:32px}.logo small{font-size:.36rem}.lang-toggle button{padding:7px 6px}.tool-nav a{padding:7px;font-size:.69rem}.card{padding:17px}.hero h1{font-size:1.95rem}.prow{grid-template-columns:20px minmax(0,1fr) minmax(0,92px)}.theme .nm{font-size:.76rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Heirloom invitation details shared with the matrimonial app. */
header.site::after{content:"";display:block;height:7px;background:url("/heritage-border.svg") repeat-x center;background-size:100px 12px;opacity:.7}
.hero::before{content:"";display:block;width:96px;height:36px;margin:0 auto 17px;background:url("/lotus-ornament.svg") no-repeat center / contain}
.hero .eyebrow{letter-spacing:.19em}
.card{border-color:#DFDDCE;box-shadow:0 5px 24px #44382105}
footer.site-footer::before{content:"";display:block;height:18px;background:url("/heritage-border.svg") repeat-x center;background-size:120px 14px}
@media(max-width:640px){.hero::before{width:78px;height:29px;margin-bottom:14px}}
@media print{header.site,.no-print,.inputs-card,.save-card,footer.site-footer,.skip-link{display:none!important}body{background:#fff}.wrap{max-width:none;padding:0}#results{display:block!important}.card{box-shadow:none;border-color:#CCC;break-inside:avoid}.print-head{display:block!important;text-align:center;margin-bottom:10px}.hero{padding-top:0}.hero .free-badge{display:none}}

/* Venue choices and cost transparency: CR-010. */
.venue-options{min-width:0;border:0;border-top:1px solid var(--line);margin:30px 0 8px;padding:22px 0 0}
.venue-options legend{font-family:var(--font-display);font-size:1.45rem;line-height:1.4;color:var(--brand);padding:0 16px 0 0;max-width:100%}
.venue-options>.note{margin-top:0;max-width:740px}
.venue-fields{gap:4px 26px;margin-top:12px}
.venue-fields>div{min-width:0}
.field-help{font-size:.73rem;line-height:1.7;color:var(--ink-2);margin-top:8px}
.venue-input-error{font-size:.8rem;margin-top:16px;color:var(--bad)}
.venue-result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.venue-result-header .eyebrow{color:var(--accent);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}
.venue-result-header h2{margin-bottom:0}
.venue-source{background:var(--brand-soft);color:var(--brand);border:1px solid var(--line-2);border-radius:6px;padding:5px 10px;font-size:.72rem}
.venue-cost-breakdown{margin-top:22px;font-size:.84rem}
.venue-cost-breakdown>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:10px 0}
.venue-cost-breakdown dt{color:var(--ink-2)}
.venue-cost-breakdown dd{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.venue-total{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:20px;margin-top:22px;background:var(--brand-soft);border:1px solid var(--line-2);border-radius:9px}
.venue-total span{display:block;font-size:.78rem;color:var(--ink-2)}
.venue-total strong{font-family:var(--font-display);font-size:1.6rem;font-weight:400;color:var(--brand)}
.venue-method{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;font-size:.83rem}
.venue-method summary{cursor:pointer;color:var(--brand);font-weight:600}
.venue-method summary:focus-visible{outline:3px solid #A77537;outline-offset:4px}
.allocation-help{margin:-5px 0 14px}
button:disabled{opacity:.6;cursor:not-allowed}
@media(max-width:640px){.venue-fields{gap:0}.venue-total{grid-template-columns:1fr;gap:14px;padding:16px}.venue-options legend{font-size:1.3rem}.venue-results .v{font-size:1.45rem}}
@media print{.venue-results{break-inside:auto}.venue-cost-breakdown>div,.venue-total{break-inside:avoid}.venue-method{display:none}.venue-source{color:#243B33}.venue-selection-summary{font-size:.8rem}}

.calculator-tool h2{overflow-wrap:anywhere}
#planValidationNotice:not([hidden]){margin-top:22px}
@media print{#results.results-invalid>.card,#results.results-invalid>.print-head{display:none!important}#results.results-invalid #planValidationNotice{display:block!important}}
#planValidationNotice[hidden]{display:none}

/* CR-011: public calculator entry to the authenticated planner. */
.advanced-planner-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--brand-soft);border-left:3px solid var(--accent)}
.advanced-planner-cta>div{min-width:0;max-width:590px}
.advanced-planner-cta h2{margin:8px 0 6px}
.advanced-planner-cta p{color:var(--ink-2);font-size:.85rem;line-height:1.8}
.advanced-login-note{font-size:.7rem;font-weight:600;letter-spacing:.04em;color:var(--brand)}
.advanced-planner-cta .cta{flex-shrink:0;text-align:center}
@media(max-width:760px){.advanced-planner-cta{align-items:flex-start;flex-direction:column;gap:18px}.advanced-planner-cta .cta{max-width:100%;flex-shrink:1}}
