:root{color-scheme:light;--ink:#263c34;--muted:#59665e;--cream:#f6f5ef;--line:#dedfd7;--gold:#b79762}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;background:#fff;padding:8px}
header{display:flex;justify-content:space-between;align-items:center;padding:15px max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);background:#fff}
header a:last-child{font-size:14px}
.brand img{display:block;width:150px;max-height:68px;object-fit:contain}
main{max-width:1120px;margin:auto;padding:48px 24px 80px}
.eyebrow{color:#826740;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.15}
h1{font-size:clamp(2.5rem,6vw,4.3rem);margin:8px 0 10px}
.intro{max-width:680px;color:var(--muted);margin-bottom:32px}
.layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:24px;align-items:start}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 14px 40px #263c340a}
form{display:grid;gap:18px}
label{display:grid;gap:7px;font-size:14px;font-weight:600}
input,select,textarea{width:100%;min-width:0;padding:13px 14px;background:#fff;border:1px solid #788576;border-radius:8px;color:var(--ink);font:inherit}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.optional,.fine,.step-help{font-size:13px;font-weight:400;color:var(--muted)}
button{border:0;border-radius:8px;padding:15px 22px;background:var(--ink);color:#fff;font-size:15px;font-weight:600;cursor:pointer}
button:hover{background:#395747}
button:disabled{opacity:.55;cursor:not-allowed}
#notice{min-height:1.5em;color:#8c4028;margin:0}
.summary{position:sticky;top:24px}
.summary h2{font-size:2rem;margin:12px 0}
.summary dl{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}
.summary dl div{display:flex;justify-content:space-between;gap:15px;padding:9px 0}
.summary dt{color:var(--muted)}
.summary dd{margin:0;font-weight:700}
.summary dl .due-row{border-top:1px solid var(--line);font-size:1.12rem}
.summary dl [hidden],.discount-section[hidden],.discount-controls [hidden]{display:none}
#discount-amount{color:#3e704c}
.discount-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.discount-section label{display:block;margin-bottom:7px}
.discount-controls{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}
.discount-controls input{flex:1 1 130px;width:0;text-transform:uppercase}
.discount-controls button{padding:12px 16px}
.discount-remove{color:var(--ink);background:#f2f5ef;border:1px solid var(--line)}
.discount-remove:hover{background:#e6ede3}
#discount-status{margin:8px 0 0}
.selected-date-time{font-weight:600;margin:18px 0 6px}
footer{text-align:center;padding:22px;color:var(--muted);border-top:1px solid var(--line);font-size:13px}
.booking-step{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;padding:3px 0 24px;border-bottom:1px solid var(--line)}
.booking-step:last-of-type{border-bottom:0;padding-bottom:0}
.step-number{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--gold);border-radius:50%;color:#826740;font-size:12px;font-weight:700}
.step-content{min-width:0}
.step-content h2{font-size:1.65rem;margin:1px 0 12px}
.step-content h3{font-size:1.2rem;margin:0}
.step-help{margin:0 0 14px}
.package-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.package-option{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;min-height:128px;padding:15px;border:1px solid #cbd2c9;background:#fff;color:var(--ink);font-weight:400}
.package-option:hover,.package-option[aria-pressed="true"]{border-color:var(--ink);background:#f2f5ef}
.package-option[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--ink)}
.package-option strong{font-family:Georgia,serif;font-size:1.28rem;font-weight:400}
.package-option span,.package-option small{font-size:12px;line-height:1.3}
.package-option small{color:#75603d;font-weight:700;margin-top:auto}
.pay-full-option{margin-top:14px;padding:15px;border:1px solid #cbd2c9;border-radius:10px;background:#f8f9f5}
.pay-full-option[hidden]{display:none}
.pay-full-option label{display:flex;align-items:flex-start;gap:12px;cursor:pointer}
.pay-full-option input{flex:none;width:20px;height:20px;min-width:20px;margin:2px 0 0;accent-color:var(--ink)}
.pay-full-option span{display:grid;gap:2px}
.pay-full-option small{color:var(--muted);font-size:12px;font-weight:400;line-height:1.4}
.calendar-shell{border:1px solid var(--line);border-radius:12px;padding:17px;background:#fff}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}
.calendar-heading h3{text-align:center;font-size:1.25rem}
.month-arrow{display:grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:24px;font-weight:400}
.month-arrow:hover{background:#f2f5ef}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:5px;text-align:center;color:var(--muted);font-size:11px;font-weight:700}
.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:61px;padding:5px 2px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:400}
.calendar-day strong{font-size:15px}
.calendar-day small{font-size:10px;line-height:1.1;white-space:nowrap}
.calendar-day:not(:disabled):hover,.calendar-day[aria-pressed="true"]{border-color:var(--ink);background:#eaf1e8}
.calendar-day[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--ink)}
.calendar-day:disabled{background:#f8f8f5;color:#a7aaa4;opacity:1}
.calendar-status{color:var(--muted);font-size:12px;margin:12px 0 0}
.time-section{margin-top:20px}
.time-section h3{margin-bottom:11px}
.time-options{display:flex;flex-wrap:wrap;gap:8px}
.time-option{padding:10px 14px;border:1px solid #cbd2c9;background:#fff;color:var(--ink)}
.time-option:hover,.time-option[aria-pressed="true"]{border-color:var(--ink);background:#eaf1e8}
.time-option[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--ink)}
.time-section .step-help{margin:10px 0 0}
.checkout-button{width:100%}
@media(max-width:740px){
  header{padding:12px 18px}.brand img{width:115px}
  main{padding:34px 16px 48px}.layout{grid-template-columns:1fr}
  .card{padding:23px}.summary{position:static}
  .grid{grid-template-columns:1fr}.package-options{grid-template-columns:1fr}
  .package-option{min-height:0}.booking-step{grid-template-columns:32px minmax(0,1fr);gap:10px}
  .step-number{width:30px;height:30px}.calendar-shell{padding:12px}
  .calendar-day{min-height:48px}.calendar-day small{font-size:9px}
}

/* Clear native controls and required-field notation. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.required-mark{color:#826740}
.required-note{margin:0;font-size:12px}
select{appearance:none;min-height:50px;padding-right:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%23263c34' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;font-size:16px;line-height:1.4;cursor:pointer}
select:required:invalid{color:var(--muted)}
select option{color:var(--ink);background:#fff}
select option:disabled{color:var(--muted)}
.booking-step[hidden],form[hidden],[hidden].wedding-quote-note,[hidden]#portrait-price-summary,[hidden]#wedding-confirmation{display:none}
.wedding-coverage-card{padding:20px;border:1px solid var(--line);border-radius:12px;background:#f8f9f5;margin-bottom:20px}
.wedding-coverage-card h3{margin:0 0 8px}
.wedding-coverage-card p{margin:0;font-size:14px;color:var(--muted)}
.wedding-details{resize:vertical}
.wedding-consent{display:flex;align-items:flex-start;gap:10px;font-weight:400;margin-top:16px;line-height:1.5}
.wedding-consent input{width:18px;min-width:18px;height:18px;margin:2px 0 0;accent-color:var(--ink)}
.wedding-quote-note{padding-top:20px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
#wedding-confirmation h2{font-size:2rem;margin-top:0}

.contact-step .grid+.grid{margin-top:16px}
#wedding-timezone{margin-top:12px;margin-bottom:0}
@media(max-width:420px){.calendar-day small{display:none}}

.offer-inclusions { padding-left: 1.2rem; margin: 1rem 0 1.5rem; font-size: .9rem; line-height: 1.6; }
.offer-inclusions li + li { margin-top: .45rem; }
