/* Shared Contact & quote section: full form on the homepage and contact page. */
.contact-quote{position:relative;max-width:1500px;margin:auto;padding:76px 5% 86px;border-top:1px solid #303030;background:#090909;color:#f3f1ed;scroll-margin-top:0;isolation:isolate}
.contact-quote:before{content:"";position:absolute;top:-1px;left:5%;width:72px;height:2px;background:var(--red);transform-origin:left}
.quote-section-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px;min-height:38px}
.quote-section-top>p{font-size:11px;letter-spacing:2px;color:#ee6268}
.quote-replay{display:flex;align-items:center;gap:11px;min-height:44px;padding:0;border:0;background:none;color:#999;font-size:11px;transition:color .25s}
.quote-replay span{display:inline-block;font-size:20px;transition:transform .5s}
.quote-replay:hover{color:#f3f1ed}.quote-replay:hover span{transform:rotate(180deg)}
.quote-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:10%;align-items:start}
.quote-layout>div{min-width:0}
.contact-quote .quote-heading{font-family:'Barlow Condensed','Arial Narrow',Impact,sans-serif;font-size:clamp(38px,4.25vw,62px);font-weight:800;line-height:1.04;letter-spacing:-.02em;margin:0 0 26px}
.quote-copy>p{color:#b8b8b8;font-size:16px;line-height:1.85;margin:24px 0}
.quote-copy .quote-location{margin:30px 0 28px}
.quote-location strong{font-weight:700}
.quote-contact-link{display:block;border-bottom:1px solid #363636;padding:21px 0 25px;margin-bottom:15px;overflow-wrap:anywhere}
.quote-contact-link small{display:block;font-size:10px;letter-spacing:2px;color:#999;margin-bottom:14px}
.quote-contact-link>span{display:inline;font-size:clamp(18px,2.15vw,29px);font-weight:500;line-height:1.5;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;transition:color .25s}
.quote-contact-link b{display:inline-block;font-weight:400;transition:transform .35s,color .25s}
.quote-contact-link:hover>span{color:#ff717a}.quote-contact-link:hover b{transform:translate(4px,-4px)}
.quote-guide{display:inline-flex;align-items:center;gap:7px;min-height:44px;color:#ddd;font-size:15px;line-height:1.7;text-decoration:underline;text-underline-offset:5px}
.quote-guide span{display:inline-block;transition:transform .3s}.quote-guide:hover{color:#ff717a}.quote-guide:hover span{transform:translate(3px,-3px)}
.contact-quote .quote-intro{color:#aaa;font-size:13px;line-height:1.8;margin:18px 0 24px}
.contact-quote label{display:block;font-size:12px;font-weight:600;line-height:1.6;color:#ccc;margin:20px 0}
.contact-quote input:not([type=hidden]),.contact-quote select,.contact-quote textarea{display:block;width:100%;min-height:50px;margin-top:9px;padding:13px 15px;border:1px solid #505050;border-radius:0;background:#141414;color:#eee;font:16px/1.5 'DM Sans',sans-serif;transition:border-color .25s,background-color .25s,box-shadow .25s}
.contact-quote input::placeholder,.contact-quote textarea::placeholder{color:#a78d8f;opacity:1}
.contact-quote select{cursor:pointer}.contact-quote select option{background:#141414}
.contact-quote textarea{resize:vertical;min-height:160px}
.contact-quote :is(input,select,textarea):hover{border-color:#777}
.contact-quote :is(input,select,textarea):focus{border-color:#f05a64;background:#191415;box-shadow:0 0 0 3px #f0222d13}
.contact-quote :focus-visible{outline:2px solid #ff777d;outline-offset:4px}
.quote-field-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quote-field-row label{min-width:0;margin-top:0}
.quote-submit{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;min-height:58px;padding:17px 24px;border:0;background:#d71926;color:#fff;font-size:14px;font-weight:600;isolation:isolate}
.quote-submit:before{content:"";position:absolute;inset:0;z-index:-1;background:#b4101c;transform:translateX(-102%);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.quote-submit:hover:before{transform:translateX(0)}
.quote-submit>span{display:inline-block;font-size:24px;transition:transform .3s}.quote-submit:hover>span{transform:translate(4px,-4px)}
.quote-note{font-size:12px;line-height:1.8;color:#999;margin:15px 0 0}
.quote-selection{padding:13px 16px;border:1px solid #78363c;background:#251114;font-size:12px;line-height:1.7;color:#ff939a;margin:0 0 20px}
.quote-review{border-top:1px solid #444;margin-top:34px;padding-top:30px;scroll-margin-top:115px;animation:quote-review-in .5s ease both}
.quote-review .quote-heading{font-size:42px}.quote-review textarea{font-size:14px;min-height:220px}
.quote-email{display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid #555;min-height:54px;padding:15px 24px;margin-top:12px;font-size:14px;transition:border-color .3s,color .3s}.quote-email:hover{border-color:#f05a64;color:#ff939a}
.contact-quote [hidden]{display:none!important}
/* Visible by default, including when JavaScript or the observer is unavailable. */
.quote-motion-ready [data-quote-reveal]{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .8s cubic-bezier(.16,1,.3,1);transition-delay:var(--quote-delay,0ms)}
.quote-motion-ready [data-quote-reveal].is-visible{opacity:1;transform:translateY(0)}
.quote-motion-ready [data-quote-reveal]:focus-within{opacity:1;transform:none;transition-delay:0ms}
.paused .contact-quote [data-quote-reveal]{opacity:1;transform:none;transition:none}
.contact-page .contact-quote{scroll-margin-top:0}.contact-page .kylie-consultation{display:none}
body:has(.contact-quote.is-in-view) .kylie-consultation{visibility:hidden;pointer-events:none}
@keyframes quote-review-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1000px){.quote-copy{position:sticky;top:122px}}
@media(max-width:1000px){.quote-layout{grid-template-columns:.85fr 1.15fr;gap:6%}.contact-quote .quote-heading{font-size:40px}.quote-copy>p{font-size:14px}.quote-guide{font-size:13px}}
@media(max-width:750px){.contact-quote{padding:42px 6% 54px}.quote-section-top{margin-bottom:24px}.quote-section-top>p{font-size:10px}.quote-replay{font-size:10px}.quote-layout{grid-template-columns:1fr;gap:44px}.contact-quote .quote-heading{font-size:42px}.quote-copy .quote-location{margin-top:22px}.quote-copy>p{font-size:15px}.quote-contact-link>span{font-size:24px}.quote-contact-link{padding:17px 0 22px}.quote-guide{font-size:14px}.quote-form-column{border-top:1px solid #333;padding-top:33px}.quote-field-row{gap:15px}.contact-quote input:not([type=hidden]),.contact-quote select,.contact-quote textarea{font-size:16px}.quote-note{font-size:11px}}
@media(max-width:380px){.quote-field-row{grid-template-columns:1fr;gap:0}.quote-contact-link>span{font-size:21px}.contact-quote .quote-heading{font-size:38px}}
@media(prefers-reduced-motion:reduce){.contact-quote *,.contact-quote *:before{animation:none!important;transition:none!important}.quote-motion-ready [data-quote-reveal]{opacity:1;transform:none}.quote-replay{display:none!important}}

html:has(.contact-quote){scroll-padding-top:94px}
body:has(.contact-quote.is-in-view) .header{background:#090909}
@media(max-width:700px){html:has(.contact-quote){scroll-padding-top:78px}}

/* Signature motion: a garment pattern drawn by a moving red thread. */
.quote-motion-controls{display:flex;align-items:center;gap:22px}
.quote-motion-toggle{display:flex;align-items:center;gap:10px;min-height:44px;border:0;padding:0;background:none;color:#999;font-size:11px;transition:color .25s}
.quote-motion-toggle:hover{color:#fff}.quote-motion-toggle span{font-size:14px}
.quote-thread-art{position:relative;width:100%;margin:0 0 28px;padding:12px 16px 13px;border:1px solid #2b2728;background:radial-gradient(ellipse at 50% 55%,#37121655,transparent 72%),#0c0b0b;perspective:700px;overflow:hidden}
.quote-thread-art:before{content:"";position:absolute;top:0;left:0;width:56px;height:1px;background:#f45b64}
.quote-art-topline,.quote-art-bottomline{display:flex;align-items:center;justify-content:space-between;gap:10px;font:8px/1.6 'DM Sans',sans-serif;letter-spacing:1.3px;color:#a29a95}
.quote-art-cross{color:#f45b64;font-size:15px}
.quote-art-bottomline{font-size:7px;letter-spacing:1px}.quote-art-bottomline>span:last-child{display:flex;align-items:center;gap:7px;white-space:nowrap}.quote-art-bottomline i{height:1px;width:25px;background:#9a3c43}
.quote-garment{display:block;width:100%;height:180px;margin:0 auto 5px;overflow:visible;transform:rotateX(var(--quote-tilt-x,0deg)) rotateY(var(--quote-tilt-y,0deg));transition:transform .65s cubic-bezier(.16,1,.3,1);transform-style:preserve-3d}
.quote-pattern-grid{stroke:#2c2426;stroke-width:.7;stroke-dasharray:3 7}
.quote-pattern-marks{stroke:#8a585d;stroke-width:.9}
.quote-garment-ghost{stroke:#4c393c;stroke-width:1}
.quote-garment-fill{fill:#dc39400b;stroke:none}
.quote-garment-ink{stroke:#f08c92;stroke-width:1.3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0}
.quote-garment-seams{stroke:#a98185;stroke-width:.8;stroke-dasharray:2 2;opacity:.65}
.quote-garment-trace{stroke:#ff5967;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:9 91;filter:drop-shadow(0 0 4px #ff3448);opacity:0}
.quote-art-thread{stroke:#df4655;stroke-width:1;stroke-dasharray:3 4;opacity:.6}
.quote-needle{fill:#ff7884;stroke:#ff7884;stroke-width:.7;opacity:0;filter:drop-shadow(0 0 4px #f0394d)}
.quote-needle .quote-needle-halo{fill:#fa324119;stroke:#ef5a6455}
.quote-copy{position:relative;top:auto}
.quote-copy .quote-location{margin-top:26px}
.quote-form-column{overflow:visible}
#quote-brief{position:relative}
.quote-thread-track{position:absolute;left:-32px;top:0;width:calc(100% + 48px);height:100%;overflow:visible;pointer-events:none}
.quote-track-base{stroke:#673239;stroke-width:1;stroke-dasharray:2 5;opacity:.65}
.quote-track-draw{stroke:#b93e4a;stroke-width:1;stroke-dasharray:100;stroke-dashoffset:0;opacity:.65}
.quote-track-runner{stroke:#ff6672;stroke-width:2;stroke-dasharray:5 95;filter:drop-shadow(0 0 3px #e82e43);opacity:0}
.quote-track-needle{fill:#ffb0b7;filter:drop-shadow(0 0 4px #ff394b);opacity:0}
.contact-quote label{position:relative}
.contact-quote label:before{content:"";position:absolute;left:-21px;top:46px;width:5px;height:5px;border:1px solid #694047;background:#160c0f;border-radius:50%;transition:border-color .35s,background .35s,box-shadow .35s;pointer-events:none}
.contact-quote label.is-filled:before{background:#b84d58;border-color:#ed838e}
.contact-quote label:focus-within:before{background:#ffa4ad;border-color:#ffd5da;box-shadow:0 0 0 5px #ef32431c,0 0 15px #f13f52}
.quote-field-row label+label:before{display:none}
.quote-control-shell{position:relative;margin-top:9px}
.contact-quote .quote-control-shell>input,.contact-quote .quote-control-shell>select,.contact-quote .quote-control-shell>textarea{margin-top:0}
.quote-field-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;color:#ff6774;opacity:0;transition:opacity .35s}
.quote-field-outline rect{stroke:currentColor;stroke-width:1.3;fill:none;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100}
.quote-control-shell:focus-within .quote-field-outline{opacity:1}
.quote-control-shell:focus-within .quote-field-outline rect{animation:quote-sew-field 1.1s cubic-bezier(.4,0,.2,1) both}
.quote-heading .quote-word{display:inline-block;white-space:nowrap}
.quote-heading .quote-letter{display:inline-block;transform-origin:50% 100%;will-change:auto}
.quote-copy .quote-heading .quote-word:last-child{color:#f08890}
.quote-submit:after{content:"";position:absolute;inset:5px;border:1px dashed #ffb6bd70;pointer-events:none;clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.16,1,.3,1)}
.quote-submit:hover:after,.quote-submit:focus-visible:after{clip-path:inset(0)}
.contact-quote.quote-motion-paused *,.contact-quote.quote-motion-paused *:before,.contact-quote.quote-motion-paused *:after{animation-play-state:paused!important}
.contact-quote.quote-motion-paused [data-quote-reveal]{opacity:1;transform:none;transition:none}
.quote-motion-paused .quote-control-shell:focus-within .quote-field-outline rect{animation:none;stroke-dashoffset:0}
.quote-motion-paused .quote-garment{transform:none}
@keyframes quote-sew-field{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@media(max-width:1000px){.quote-thread-art{padding:10px 12px}.quote-garment{height:155px}.quote-art-topline{font-size:7px;letter-spacing:.7px}.quote-art-bottomline{font-size:6px;letter-spacing:.6px}.quote-art-bottomline i{width:14px}}
@media(max-width:750px){.quote-motion-controls{gap:14px}.quote-section-top{gap:10px;flex-wrap:wrap}.quote-motion-toggle{font-size:10px}.quote-garment{height:185px}.quote-thread-art{padding:12px 14px;max-width:470px}.quote-art-topline{font-size:8px}.quote-art-bottomline{font-size:7px}.quote-thread-track{left:-18px;width:calc(100% + 28px)}.contact-quote label:before{left:-12px;width:4px;height:4px}.quote-motion-controls .quote-replay{font-size:10px}}
@media(max-width:380px){.quote-motion-controls{gap:10px}.quote-section-top>p{font-size:9px;letter-spacing:1px}.quote-motion-toggle{font-size:9px;gap:5px}.quote-thread-art{padding:10px}.quote-art-topline{font-size:7px}.quote-art-bottomline{font-size:6px}.quote-garment{height:165px}}
@media(prefers-reduced-motion:reduce){.quote-garment{transform:none!important}.quote-needle,.quote-track-needle,.quote-garment-trace,.quote-track-runner{display:none!important}.quote-garment-ink,.quote-track-draw{stroke-dashoffset:0!important}.quote-field-outline rect{stroke-dashoffset:0}.quote-motion-controls{display:none!important}.quote-heading .quote-letter{transform:none!important;opacity:1!important}}
