.consultation-page { background:var(--ivory); }
.consultation-header { position:absolute; }
.consultation-hero { display:grid; align-items:end; min-height:78svh; padding:170px clamp(24px,8vw,130px) 100px; color:#fff; background:linear-gradient(90deg,rgba(5,5,4,.92),rgba(5,5,4,.42)),url("/assets/brand/hero-craft.png") center/cover; }
.consultation-hero > div { max-width:1100px; }
.consultation-hero .collection-kicker { color:rgba(255,255,255,.58); }
.consultation-hero h1 { max-width:1050px; margin:28px 0 0; font-family:var(--display); font-size:clamp(4rem,8.5vw,9.5rem); font-weight:500; letter-spacing:-.06em; line-height:.82; }
.consultation-hero h1 em { font-weight:500; }
.consultation-hero div > p:last-child { max-width:620px; margin:42px 0 0; color:rgba(255,255,255,.68); line-height:1.8; }
.appointment-planner { display:grid; grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr); gap:clamp(50px,8vw,130px); padding:clamp(90px,11vw,170px) clamp(24px,7vw,110px); }
.planner-aside { align-self:start; position:sticky; top:100px; }
.planner-aside h2,.atelier-information h2 { margin:25px 0 0; font-family:var(--display); font-size:clamp(3.2rem,5vw,5.6rem); font-weight:500; letter-spacing:-.055em; line-height:.88; }
.planner-aside > p:not(.collection-kicker) { max-width:430px; margin:28px 0 0; color:#655f55; font-size:.88rem; line-height:1.75; }
.planner-progress { margin:50px 0 0; padding:0; border-top:1px solid var(--line); list-style:none; }
.planner-progress li { display:grid; grid-template-columns:42px 1fr; padding:15px 0; color:#90877a; border-bottom:1px solid var(--line); font-size:.64rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; transition:color .2s,padding .2s; }
.planner-progress li span { color:#aaa195; }
.planner-progress li.is-current { padding-left:12px; color:var(--black); }
.planner-progress li.is-complete { color:#5d2427; }
.atelier-card { margin-top:42px; padding:24px; color:var(--ivory); background:#15140f; }
.atelier-card > span { display:block; margin-bottom:18px; color:rgba(241,237,228,.45); font-size:.57rem; letter-spacing:.15em; text-transform:uppercase; }
.atelier-card address { font-family:var(--display); font-size:1.35rem; font-style:normal; line-height:1.35; }
.atelier-card a { display:inline-block; margin-top:18px; padding-bottom:3px; color:rgba(241,237,228,.68); border-bottom:1px solid currentColor; font-size:.67rem; letter-spacing:.08em; }
.planner-form { min-width:0; }
.planner-status { padding-bottom:16px; color:#8a8175; border-bottom:1px solid var(--line); font-size:.59rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.planner-step { min-width:0; margin:0; padding:54px 0 0; border:0; }
.planner-step[hidden] { display:none; }
.planner-step legend { width:100%; padding:0; font-family:var(--display); font-size:clamp(3rem,5.2vw,5.5rem); font-weight:500; letter-spacing:-.05em; line-height:.9; }
.planner-step legend > span { display:block; margin-bottom:18px; color:#80776b; font-family:var(--body); font-size:.61rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.step-intro { max-width:590px; margin:28px 0 36px; color:#655f55; line-height:1.75; }
.choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.choice-grid label { position:relative; display:block; cursor:pointer; }
.choice-grid input { position:absolute; width:1px; height:1px; opacity:0; }
.choice-grid label > span { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:126px; padding:22px; border:1px solid var(--line); transition:color .2s,background .2s,border-color .2s,transform .2s; }
.choice-grid label > span::after { position:absolute; top:18px; right:18px; display:grid; place-items:center; width:22px; height:22px; border:1px solid #aaa195; border-radius:50%; color:transparent; content:"✓"; font-size:.65rem; }
.choice-grid label:hover > span { transform:translateY(-2px); border-color:#8d8375; }
.choice-grid input:focus-visible + span { outline:2px solid #5d2427; outline-offset:2px; }
.choice-grid input:checked + span { color:var(--ivory); background:#15140f; border-color:#15140f; }
.choice-grid input:checked + span::after { color:#15140f; background:var(--ivory); border-color:var(--ivory); }
.choice-grid strong { font-family:var(--display); font-size:1.5rem; font-weight:500; }
.choice-grid small { margin-top:8px; color:#756e64; font-size:.64rem; letter-spacing:.04em; }
.choice-grid input:checked + span small { color:rgba(241,237,228,.52); }
.format-grid label > span { min-height:112px; }
.format-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.private-location-brief { margin-top:18px; padding:clamp(24px,4vw,42px); color:var(--ivory); background:#15140f; }
.private-location-brief[hidden] { display:none; }
.private-location-heading { display:grid; grid-template-columns:.45fr 1.55fr; gap:16px 30px; padding-bottom:30px; border-bottom:1px solid rgba(241,237,228,.2); }
.private-location-heading > span { color:rgba(241,237,228,.43); font-size:.58rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.private-location-heading strong { font-family:var(--display); font-size:clamp(1.8rem,3vw,3rem); font-weight:500; letter-spacing:-.03em; line-height:1; }
.private-location-heading p { grid-column:2; max-width:590px; margin:0; color:rgba(241,237,228,.55); font-size:.75rem; font-weight:400; letter-spacing:0; line-height:1.7; text-transform:none; }
.private-location-brief .field-grid { margin-top:30px; }
.private-location-brief .field-group { color:rgba(241,237,228,.66); }
.private-location-brief .field-group input,.private-location-brief .field-group select,.private-location-brief .field-group textarea { color:var(--ivory); background:rgba(241,237,228,.04); border-color:rgba(241,237,228,.2); }
.private-location-brief .field-group input::placeholder,.private-location-brief .field-group textarea::placeholder { color:rgba(241,237,228,.32); }
.private-location-brief .field-group select option { color:#15140f; }
.private-location-note { display:flex; gap:12px; margin:28px 0 0; padding-top:22px; color:rgba(241,237,228,.55); border-top:1px solid rgba(241,237,228,.2); font-size:.68rem; font-weight:400; letter-spacing:0; line-height:1.7; text-transform:none; }
.planner-step legend b { font:inherit; }
.field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 18px; margin-top:38px; }
.field-group { display:grid; gap:10px; color:#4f4a42; font-size:.66rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.field-group-full { grid-column:1/-1; }
.field-group small { color:#958c80; font-size:.55rem; }
.field-group input,.field-group select,.field-group textarea { width:100%; min-height:54px; padding:13px 15px; color:var(--black); background:rgba(255,255,255,.28); border:1px solid var(--line); border-radius:0; font:400 .85rem/1.5 var(--body); letter-spacing:0; text-transform:none; }
.field-group textarea { min-height:135px; resize:vertical; }
.field-group input:focus,.field-group select:focus,.field-group textarea:focus { outline:1px solid #5d2427; border-color:#5d2427; }
.preferred-date { max-width:360px; margin-top:38px; }
.hours-note { margin:22px 0; padding:16px 18px; color:#5f594f; background:#e4ddd1; border-left:2px solid #9f7b4f; font-size:.75rem; line-height:1.6; }
.time-slots { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.time-slots label { cursor:pointer; }
.time-slots input { position:absolute; opacity:0; }
.time-slots span { display:grid; place-items:center; min-height:49px; padding:9px; border:1px solid var(--line); font-size:.69rem; font-weight:600; letter-spacing:.04em; transition:.2s; }
.time-slots label:hover span,.time-slots input:focus-visible + span { border-color:#5d2427; }
.time-slots input:checked + span { color:var(--ivory); background:#15140f; border-color:#15140f; }
.planner-error { min-height:22px; margin:25px 0 0; color:#7c1f25; font-size:.72rem; }
.planner-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:16px; padding-top:24px; border-top:1px solid var(--line); }
.planner-actions button,.calendar-handoff a { display:inline-flex; align-items:center; justify-content:space-between; gap:52px; min-height:52px; padding:0 19px; border:1px solid #15140f; font:600 .63rem/1 var(--body); letter-spacing:.12em; text-transform:uppercase; }
.planner-actions button[hidden] { display:none; }
.planner-next,.calendar-handoff a { color:var(--ivory); background:#15140f; }
.planner-back { color:#15140f; background:transparent; }
.planner-review dl { margin:38px 0 0; border-top:1px solid var(--line); }
.planner-review dl > div { display:grid; grid-template-columns:minmax(130px,.35fr) 1fr; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); }
.planner-review dt { color:#837a6e; font-size:.59rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.planner-review dd { margin:0; font-family:var(--display); font-size:1.25rem; }
.timeline-warning { margin-top:25px; padding:18px; color:#632327; background:#e2d2cd; font-size:.75rem; line-height:1.6; }
.timeline-warning a { border-bottom:1px solid currentColor; }
.calendar-handoff { margin-top:30px; padding:28px; color:var(--ivory); background:#15140f; }
.calendar-handoff p { max-width:570px; margin:0 0 22px; color:rgba(241,237,228,.6); font-size:.76rem; line-height:1.7; }
.calendar-handoff a { background:var(--ivory); color:#15140f; border-color:var(--ivory); }
.atelier-information { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(50px,10vw,150px); padding:clamp(90px,12vw,170px) clamp(24px,7vw,110px); color:var(--ivory); background:#15140f; }
.atelier-information .collection-kicker { color:rgba(241,237,228,.42); }
.atelier-information address { margin-top:36px; color:rgba(241,237,228,.65); font-style:normal; line-height:1.7; }
.atelier-information > div:first-child > a { display:inline-block; margin-top:20px; padding-bottom:3px; border-bottom:1px solid currentColor; }
.hours-list { align-self:end; border-top:1px solid rgba(241,237,228,.2); }
.hours-list > div { display:flex; justify-content:space-between; gap:30px; padding:18px 0; border-bottom:1px solid rgba(241,237,228,.2); }
.hours-list span { color:rgba(241,237,228,.48); }
.hours-list strong { font-family:var(--display); font-size:1.25rem; font-weight:500; }
@media(max-width:900px){.appointment-planner{grid-template-columns:1fr}.planner-aside{position:static}.planner-progress{display:grid;grid-template-columns:repeat(6,1fr)}.planner-progress li{display:block;text-align:center}.planner-progress li span{display:block;margin-bottom:5px}.planner-progress li:not(.is-current){font-size:0}.planner-progress li:not(.is-current) span{font-size:.6rem}.atelier-card{display:none}.atelier-information{grid-template-columns:1fr}.time-slots{grid-template-columns:repeat(3,1fr)}.format-grid{grid-template-columns:1fr 1fr}.private-location-heading{grid-template-columns:1fr}.private-location-heading p{grid-column:auto}}
@media(max-width:620px){.consultation-hero{min-height:700px;padding:140px 22px 80px}.consultation-hero h1{font-size:clamp(4rem,19vw,6rem)}.appointment-planner{padding:80px 20px}.choice-grid,.field-grid,.format-grid{grid-template-columns:1fr}.field-group-full{grid-column:auto}.choice-grid label>span{min-height:105px}.time-slots{grid-template-columns:repeat(2,1fr)}.planner-actions{justify-content:stretch}.planner-actions button{flex:1}.planner-review dl>div{grid-template-columns:1fr;gap:7px}.atelier-information{padding:80px 22px}.hours-list>div{align-items:flex-start;flex-direction:column;gap:6px}.private-location-brief{margin-right:-6px;margin-left:-6px}}
