.bespoke-page { background: var(--cream); }
.desktop-nav [aria-current="page"] { color: var(--pink); }

.bespoke-hero { position: relative; min-height: 100svh; padding: 120px var(--gutter) 58px; display: flex; flex-direction: column; overflow: hidden; color: var(--cream); background: var(--wine); }
.bespoke-hero::before { content:''; position:absolute; right:-9vw; top:5vh; width:52vw; height:52vw; border:1px solid rgba(223,255,32,.3); border-radius:50%; box-shadow:0 0 0 5vw rgba(223,255,32,.03),0 0 0 10vw rgba(255,61,110,.035); }
.bespoke-hero::after { content:':'; position:absolute; right:3vw; top:-9vw; color:rgba(255,61,110,.22); font:900 55vw/.7 var(--display); pointer-events:none; }
.bespoke-hero__grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(243,239,232,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(243,239,232,.25) 1px,transparent 1px); background-size:9vw 9vw; mask-image:linear-gradient(#000,transparent 88%); }
.bespoke-hero > *:not(.bespoke-hero__grid) { position:relative; z-index:2; }
.bespoke-hero__meta { display:flex; justify-content:space-between; max-width:620px; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.bespoke-hero h1 { width:min(1200px,94%); margin:auto 0 9vh; display:flex; flex-direction:column; align-items:flex-start; font:900 clamp(88px,12vw,184px)/.69 var(--display); letter-spacing:-.045em; text-transform:uppercase; }
.bespoke-hero h1 span,.bespoke-hero h1 strong { padding:.02em .08em .09em; color:var(--black); background:var(--cream); box-shadow:.07em .08em 0 #2d1823; }
.bespoke-hero h1 span:nth-child(2) { margin-left:7%; background:var(--acid); transform:rotate(-.7deg); }
.bespoke-hero h1 strong { margin-left:2%; color:var(--cream); background:var(--pink); transform:rotate(.5deg); }
.bespoke-hero__foot { display:grid; grid-template-columns:minmax(0,600px) auto; justify-content:space-between; gap:40px; align-items:end; }
.bespoke-hero__foot p { margin:0; color:#d8cbd1; font-size:clamp(16px,1.4vw,21px); line-height:1.55; }
.bespoke-hero__foot .button { margin-right:92px; }

.bespoke-menu { background:var(--cream); }
.bespoke-menu__head { display:grid; grid-template-columns:.38fr 1fr; column-gap:6vw; margin-bottom:clamp(65px,9vw,130px); }
.bespoke-menu__head > .label { grid-row:span 2; }
.bespoke-menu__head h2 { margin:0; font-size:clamp(72px,8.5vw,132px); line-height:.77; letter-spacing:-.05em; }
.bespoke-menu__head h2 strong { color:var(--pink); }
.bespoke-menu__head p { max-width:680px; margin:38px 0 0 22%; color:#554a4e; font-size:clamp(16px,1.4vw,21px); line-height:1.58; }
.bespoke-service-grid { display:grid; grid-template-columns:1fr 1fr; border:2px solid var(--black); }
.bespoke-service { min-height:570px; padding:clamp(32px,4.5vw,68px); display:flex; flex-direction:column; border-right:2px solid var(--black); border-bottom:2px solid var(--black); }
.bespoke-service:nth-child(2n) { border-right:0; }
.bespoke-service:nth-last-child(-n+2) { border-bottom:0; }
.bespoke-service--acid { background:var(--acid); }
.bespoke-service--pink { background:var(--pink); }
.bespoke-service > span { font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.bespoke-service h3 { margin:80px 0 24px; font-size:clamp(52px,5.2vw,82px); line-height:.8; letter-spacing:-.04em; }
.bespoke-service p { max-width:570px; margin:0; font-size:16px; line-height:1.55; }
.bespoke-service ul { margin:auto 0 0; padding:35px 0 0; list-style:none; }
.bespoke-service li { padding:10px 0; border-top:1px solid; font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.bespoke-service small { display:block; margin-top:20px; font-size:9px; line-height:1.5; }
.bespoke-service small strong { text-transform:uppercase; }

.bespoke-process { padding:var(--section) var(--gutter); display:grid; grid-template-columns:.44fr .56fr; gap:8vw; color:var(--cream); background:var(--black); }
.bespoke-process__head { position:sticky; top:130px; align-self:start; }
.bespoke-process h2 { margin:48px 0 0; font-size:clamp(74px,8vw,126px); line-height:.75; letter-spacing:-.05em; }
.bespoke-process h2 strong { color:var(--acid); }
.bespoke-process ol { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.bespoke-process li { min-height:280px; padding:34px 0; display:grid; grid-template-columns:72px 1fr; gap:30px; align-items:center; border-bottom:1px solid var(--line); }
.bespoke-process li > b { width:48px; height:48px; display:grid; place-items:center; color:var(--black); background:var(--pink); font-size:11px; }
.bespoke-process h3 { margin:0 0 18px; font-size:clamp(43px,4.5vw,69px); line-height:.82; }
.bespoke-process p { max-width:540px; margin:0; color:#bfb4b8; line-height:1.55; }

.quote-section { padding:var(--section) var(--gutter); display:grid; grid-template-columns:.45fr .55fr; gap:8vw; color:var(--cream); background:var(--wine); }
.quote-copy { position:sticky; top:130px; align-self:start; }
.quote-copy h2 { margin:48px 0 35px; font-size:clamp(78px,8.5vw,136px); line-height:.72; letter-spacing:-.05em; }
.quote-copy h2 strong { color:var(--pink); }
.quote-copy > p { max-width:540px; color:#d0c3c8; font-size:17px; line-height:1.6; }
.quote-principles { margin-top:50px; border-top:1px solid rgba(243,239,232,.35); }
.quote-principles span { padding:14px 0; display:block; border-bottom:1px solid rgba(243,239,232,.35); color:var(--acid); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.quote-form-wrap { min-width:0; padding:clamp(28px,4.5vw,68px); color:var(--black); background:var(--acid); box-shadow:16px 18px 0 var(--pink); }
.quote-fields { display:grid; gap:28px; }
.quote-fields--two { grid-template-columns:1fr 1fr; }
.quote-form-wrap label { display:block; margin:0 0 28px; }
.quote-form-wrap label > span,.quote-services legend { display:block; margin-bottom:8px; font-size:9px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.quote-form-wrap input,.quote-form-wrap textarea,.quote-form-wrap select { width:100%; padding:13px 0; border:0; border-bottom:2px solid var(--black); border-radius:0; outline:0; color:var(--black); background:transparent; font:500 15px var(--body); }
.quote-form-wrap input::placeholder,.quote-form-wrap textarea::placeholder { color:#58600d; }
.quote-form-wrap input:focus,.quote-form-wrap textarea:focus,.quote-form-wrap select:focus { border-color:var(--pink); }
.quote-form-wrap select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--black) 50%),linear-gradient(135deg,var(--black) 50%,transparent 50%); background-position:calc(100% - 14px) 52%,calc(100% - 8px) 52%; background-size:6px 6px; background-repeat:no-repeat; }
.quote-form-wrap textarea { resize:vertical; }
.quote-services { margin:14px 0 34px; padding:0; border:0; }
.quote-services legend { margin-bottom:14px; }
.quote-services label { min-height:50px; margin:0; padding:12px 0; display:flex; gap:13px; align-items:center; border-top:1px solid rgba(9,9,9,.35); cursor:pointer; }
.quote-services label:last-child { border-bottom:1px solid rgba(9,9,9,.35); }
.quote-services input { appearance:none; width:20px; height:20px; flex:0 0 20px; padding:0; border:2px solid var(--black); }
.quote-services input:checked { background:var(--pink); box-shadow:inset 0 0 0 3px var(--acid); }
.quote-services label > span { margin:0; font-size:11px; }
.quote-submit { width:100%; min-height:60px; padding:18px; display:flex; justify-content:space-between; border:2px solid var(--black); color:var(--cream); background:var(--black); font-size:10px; font-weight:900; letter-spacing:.07em; text-transform:uppercase; cursor:pointer; box-shadow:9px 10px 0 var(--pink); transition:transform .16s,box-shadow .16s; }
.quote-submit:hover { transform:translate(-3px,-3px); box-shadow:13px 14px 0 var(--pink); }
.quote-submit:disabled { opacity:.55; cursor:wait; }
.quote-note { margin:25px 0 0; font-size:10px; line-height:1.5; }
.quote-note a { border-bottom:1px solid; font-weight:900; }
.quote-error { margin:0 0 24px; padding:14px; color:var(--cream); background:var(--wine); font-size:12px; }
.quote-error[hidden] { display:none; }
.quote-trap { position:absolute!important; left:-10000px!important; }
.quote-success { display:none; min-height:620px; flex-direction:column; justify-content:center; }
.quote-success.is-visible { display:flex; }
.quote-success h3 { margin:50px 0 28px; font-size:clamp(72px,7vw,110px); line-height:.7; letter-spacing:-.05em; }
.quote-success h3 span { color:var(--pink); }
.quote-success p { font-size:17px; line-height:1.55; }
.quote-success a { width:max-content; margin-top:30px; padding-bottom:6px; border-bottom:2px solid var(--pink); font-size:10px; font-weight:900; text-transform:uppercase; }

@media(max-width:1050px){.bespoke-process,.quote-section{grid-template-columns:1fr}.bespoke-process__head,.quote-copy{position:static}.bespoke-process ol{margin-left:20%}}
@media(max-width:760px){.bespoke-hero{padding-top:96px}.bespoke-hero h1{margin:18vh 0 12vh;font-size:clamp(63px,22vw,95px)}.bespoke-hero h1 span:nth-child(2),.bespoke-hero h1 strong{margin-left:0}.bespoke-hero__foot{grid-template-columns:1fr}.bespoke-hero__foot .button{margin-right:0}.bespoke-menu__head{grid-template-columns:1fr}.bespoke-menu__head>.label{grid-row:auto;margin-bottom:36px}.bespoke-menu__head h2{font-size:65px}.bespoke-menu__head p{margin-left:0}.bespoke-service-grid{grid-template-columns:1fr}.bespoke-service{min-height:520px;border-right:0!important;border-bottom:2px solid var(--black)!important}.bespoke-service:last-child{border-bottom:0!important}.bespoke-process ol{margin-left:0}.bespoke-process h2,.quote-copy h2{font-size:70px}.bespoke-process li{min-height:230px;grid-template-columns:52px 1fr;gap:18px}.quote-form-wrap{box-shadow:8px 10px 0 var(--pink)}.quote-fields--two{grid-template-columns:1fr}.quote-success{min-height:500px}}
@media(max-width:390px){.bespoke-hero h1{font-size:61px}.bespoke-menu__head h2,.bespoke-process h2,.quote-copy h2{font-size:58px}.bespoke-service h3{font-size:50px}}
