
.wedding-page{padding:calc(var(--header-h) + 32px) 20px 70px;background:#f5f1f7}
.wedding-form{max-width:1050px;margin:auto;background:white;padding:clamp(22px,4vw,54px);border:1px solid #e3d6ea;border-radius:8px;color:#302039}
.wedding-heading{text-align:center;margin-bottom:32px;position:relative}.wedding-heading h1{font:600 clamp(28px,4vw,43px)/1.1 "Space Grotesk",sans-serif;text-transform:uppercase;letter-spacing:-.04em;color:#5d237f;margin:10px 0 14px}.wedding-heading p{font-size:16px;line-height:1.5}.wedding-heading>p:first-of-type{text-transform:uppercase;letter-spacing:.15em;font-size:14px}.wedding-rings{width:100px;height:80px;object-fit:contain;margin:0 auto 10px}.wedding-inclusion{margin-top:14px;font-weight:600}
.wedding-columns{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:28px;align-items:start}.wedding-form fieldset{border:0;border-top:2px solid #6a3285;padding:18px 0 26px;min-width:0}.wedding-form legend{padding-right:10px;font-weight:700;color:#5d237f;text-transform:uppercase;font-size:16px;letter-spacing:.025em}.wedding-form h2{font-size:16px;text-transform:uppercase;margin:16px 0 10px;color:#5d237f}.wedding-option{display:flex;align-items:center;gap:12px;padding:14px 6px;border-bottom:1px solid #e8deed;cursor:pointer;font-size:16px}.wedding-option input,.terms-check input{width:20px;height:20px;flex:0 0 20px;accent-color:#692b89}.wedding-option>span{flex:1}.wedding-option strong{white-space:nowrap;font-size:15px;color:#5d237f}.wedding-option small{display:block;font-size:14px;line-height:1.4;margin-top:5px;font-weight:400}.wedding-option:has(input:checked){background:#f1e7f7}.wedding-option:has(input:disabled){opacity:.55;cursor:default}.collection{padding:16px 12px;background:#f8f3fa;border:1px solid #ded0e8;border-radius:5px}.wedding-summary{background:#f5eef8;padding:22px;border-top:3px solid #5d237f;position:sticky;top:calc(var(--header-h) + 18px)}.wedding-summary h2{margin:0 0 16px}.wedding-summary dl>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #ded0e8;font-size:15px}.wedding-summary dd{margin:0;text-align:right;font-weight:700;white-space:nowrap}.wedding-summary dt small{display:block}.wedding-summary .investment{color:#5d237f;font-weight:700;font-size:17px}.wedding-summary .balance{font-weight:700}.wedding-help{font-size:14px;line-height:1.5;color:#69586f;margin:12px 0}.wedding-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wedding-fields label{display:grid;gap:8px;font-size:16px}.wedding-fields .wide{grid-column:1/-1}.wedding-fields input,.wedding-fields textarea{font-size:16px;background:white;border-radius:3px}.wedding-terms ul{padding-left:22px;line-height:1.7;font-size:15px;margin-bottom:20px}.terms-check{display:flex;align-items:start;gap:12px;font-size:16px}.wedding-send{width:100%;font-size:16px;white-space:normal;text-align:center}.wedding-form #wedding-error{color:#ad1532;margin-bottom:12px}.wedding-option:focus-within{outline:2px solid #7d3faa;outline-offset:2px}
@media(max-width:760px){.wedding-columns{grid-template-columns:1fr;gap:0}.wedding-summary{position:static;margin-bottom:32px}.wedding-page{padding-left:10px;padding-right:10px}.wedding-form{padding:22px 16px}.wedding-fields{grid-template-columns:1fr}.wedding-option{gap:8px;font-size:15px}.wedding-option strong{font-size:14px}.wedding-heading h1{font-size:29px}}

/* Follow the quotation sheet: logo with gold rings, serif headings, ruled rows. */
.wedding-form{max-width:900px;border-radius:0}.wedding-heading{text-align:left}.wedding-rings{width:235px;height:auto;margin:0 0 25px}.wedding-heading h1{font-family:Georgia,serif;font-weight:400;letter-spacing:0;color:#461d4c;font-size:clamp(26px,3.7vw,38px)}.wedding-heading h1::after{content:"";display:block;width:65%;height:1px;background:#c7985d;margin:22px 0}.wedding-columns{display:block}.wedding-form fieldset{border-color:#c7985d;border-top-width:1px}.wedding-form legend,.wedding-form h2{font-family:Georgia,serif;font-weight:400;color:#461d4c;font-size:21px}.wedding-summary{position:static;margin-bottom:30px;background:#fffbf5;border:1px solid #461d4c}.wedding-summary dd{background:#eee8f0;min-width:150px;padding:5px 10px}.wedding-summary .balance{background:#461d4c;color:white;padding:12px}.wedding-summary .balance dd{background:white;color:#461d4c}.wedding-fields input,.wedding-fields textarea{background:#eee8f0}.wedding-option strong{font-family:Georgia,serif;font-size:18px;color:#461d4c}.wedding-option{padding:16px 8px}.wedding-summary dl>div{align-items:center}.wedding-summary h2{text-align:center}@media(max-width:540px){.wedding-summary dd{min-width:105px;font-size:14px}.wedding-summary{padding:16px}.wedding-summary dl>div{gap:8px}.wedding-option strong{font-size:16px}.wedding-rings{width:200px}.wedding-form legend{font-size:18px}}

/* Persistent estimate on phones/tablets; the same update function fills both summaries. */
.wedding-total-dock{display:none}
@media(max-width:900px){
body.wedding-calculator-page{padding-bottom:calc(116px + env(safe-area-inset-bottom,0px))}
.wedding-total-dock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 16px;position:fixed;left:0;right:0;bottom:0;z-index:80;padding:14px max(18px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));background:#461d4c;color:white;border-top:2px solid #c7985d;box-shadow:0 -5px 24px #22042f26}
.wedding-total-dock .dock-label{display:block;font-size:14px;line-height:1.4;color:#eee3f7}
.wedding-total-dock strong{display:block;font-size:clamp(21px,5.5vw,28px);line-height:1.3;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.wedding-total-dock .dock-booking{text-align:right}.wedding-total-dock .dock-booking strong{font-size:20px}
.wedding-total-dock p{grid-column:1/-1;font-size:12px;line-height:1.4;margin:2px 0 0;color:#eee3f7}
.wedding-form input,.wedding-form textarea,.wedding-send{scroll-margin-bottom:160px}
.wedding-fields{min-width:0}.wedding-fields input,.wedding-fields textarea{max-width:100%;min-width:0}
}
@media(max-width:360px){.wedding-summary dl>div{flex-wrap:wrap}.wedding-summary dd{margin-left:auto}.wedding-option{flex-wrap:wrap}.wedding-option>span{min-width:130px}.wedding-option strong{margin-left:auto}}

.wedding-send:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}
