/* Fluid layout and typography; SVG artwork retains its authored viewBox. */
:root{--space-xs:clamp(.5rem,.35rem + .5vw,.875rem);--space-sm:clamp(.875rem,.6rem + 1vw,1.5rem);--space-md:clamp(1.25rem,.7rem + 2vw,2.75rem);--space-lg:clamp(2rem,1rem + 3vw,4rem);--space-xl:clamp(3.75rem,2rem + 5vw,6.625rem);--page-gutter:clamp(1.25rem,6vw,6.25rem)}
body{font-size:clamp(.8125rem,.7rem + .25vw,1rem)}
.announcement{min-height:clamp(2.0625rem,2.5vw,2.6rem);height:auto;padding:clamp(.45rem,.65vw,.7rem) var(--page-gutter);font-size:clamp(.6rem,.55rem + .15vw,.78rem);line-height:1.6;text-align:center}
.site-header{height:clamp(4.5rem,7.8vw,6.5rem);padding-inline:var(--page-gutter)}
.wordmark{font-size:clamp(2.1rem,3.2vw,2.8rem)}
.site-header nav{gap:clamp(1rem,2.2vw,2.5rem)}
.site-header nav a,.cart-toggle{font-size:clamp(.6875rem,.6rem + .17vw,.875rem)}
.gift-layout{padding:clamp(1.5rem,2.2vw,2.5rem) var(--page-gutter) clamp(2rem,3vw,3.25rem)}
.gift-copy h1{font-size:clamp(3.35rem,5.6vw,5.7rem)}
.gift-copy .eyebrow{font-size:clamp(.5rem,.45rem + .13vw,.67rem);margin-bottom:clamp(.6rem,1vw,1rem)}
.gift-origin-copy{font-size:clamp(.7rem,.61rem + .14vw,.83rem);line-height:1.65;margin:clamp(.875rem,1.3vw,1.25rem) 0}
.gift-origin-copy p+p{margin-top:clamp(.5rem,.7vw,.75rem)}
.gift-origin-copy .gift-origin-lead{font:500 clamp(1.2rem,1.6vw,1.6rem)/1.25 var(--serif)}
.gift-origin-ending{font-weight:500}
.gift-footnote{font-size:clamp(.55rem,.49rem + .12vw,.7rem);margin-top:clamp(.7rem,1vw,1.125rem)}
.button{min-height:clamp(3.25rem,4.2vw,3.75rem);padding:clamp(.875rem,1.2vw,1.15rem) clamp(1.25rem,2vw,2rem);gap:clamp(1rem,2vw,2rem);font-size:clamp(.7rem,.6rem + .17vw,.9rem)}
.section-space{padding:var(--space-xl) var(--page-gutter)}
h2{font-size:clamp(2.65rem,5vw,4.5rem)}
h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.section-intro>p,.occasion-heading>p,.details-copy>p{font-size:clamp(.8rem,.7rem + .22vw,1rem)}
.product-grid{gap:clamp(1.5rem,7vw,6.25rem)}
.product-heading h3{font-size:clamp(1.8rem,2.65vw,2.25rem)}
.product-heading .eyebrow{font-size:clamp(.5rem,.45rem + .12vw,.65rem)}
.product-price{font-size:clamp(1.7rem,2.4vw,2.25rem)}
.product-description,.preview-note,.field-hint,.purchase-note{font-size:clamp(.65rem,.58rem + .15vw,.82rem)}
.form-section{padding-block:clamp(1.25rem,2vw,1.8rem)}
.form-section>legend,.text-field,.check-label{font-size:clamp(.75rem,.65rem + .15vw,.875rem)}
.ear-left{left:4%;text-align:center}
.ear-right{right:5%;text-align:center}
.ear-preview>span{width:100%;text-align:center}
.white-embroidery{text-shadow:0 .025em .055em #66594d99}
.thread-options{gap:clamp(.9rem,1.6vw,1.5rem);height:clamp(2.2rem,3vw,2.7rem)}
.thread-swatch{width:clamp(1.4rem,1.8vw,1.75rem);height:clamp(1.4rem,1.8vw,1.75rem)}
.pink-thread{background:#b8587a}.white-thread{background:#fff;border:1px solid #c8bdad}.blue-thread{background:#3f637f}.yellow-thread{background:#e2bb52}
.choice-body{padding:clamp(.9rem,1.4vw,1.3rem);gap:clamp(.7rem,1vw,1rem)}
.choice-body strong{font-size:clamp(.75rem,.66rem + .15vw,.9rem)}
.choice-body small,.later-card-intro p,.later-colour-note{font-size:clamp(.65rem,.58rem + .12vw,.8rem)}
.later-panel{padding:clamp(1rem,1.6vw,1.5rem)}
.later-card-intro h4{font-size:clamp(1.6rem,2.1vw,1.95rem)}
.later-steps{margin-block:var(--space-md)}
.later-steps li{padding-block:clamp(.9rem,1.3vw,1.3rem);gap:clamp(.65rem,1vw,1rem)}
.later-steps h3{font-size:clamp(.8rem,.72rem + .13vw,.95rem)}
.later-steps p{font-size:clamp(.73rem,.65rem + .15vw,.875rem)}
.details-story{gap:clamp(2rem,7vw,7rem);padding-bottom:var(--space-xl)}
.love-story{padding:var(--space-xl) var(--page-gutter)}
.faq-list summary{padding-block:var(--space-sm);font-size:clamp(.875rem,.7rem + .35vw,1.15rem)}
.faq-list details>p{font-size:clamp(.8rem,.7rem + .2vw,.95rem)}
@media(min-width:801px) and (min-height:480px){
 .faq-heading{position:sticky;top:clamp(2rem,5vw,5rem);align-self:start}
}
.closing{padding:var(--space-xl) var(--page-gutter)}
footer{padding:var(--space-lg) var(--page-gutter);gap:var(--space-md)}
.text-field input,.text-field textarea,.text-field select{padding:clamp(.7rem,1vw,1rem);font-size:clamp(.8125rem,.7rem + .15vw,1rem)}
.cart-dialog,.checkout-dialog,.info-dialog{padding:clamp(1.25rem,3vw,2.8rem)}
.dialog-top h2{font-size:clamp(2rem,3.6vw,3rem)}
.cart-item{gap:var(--space-sm);padding-block:var(--space-sm)}
.cart-item h3{font-size:clamp(1.5rem,2vw,1.9rem)}
.cart-item p,.checkout-item p{font-size:clamp(.7rem,.6rem + .17vw,.85rem)}
.inquiry-error{padding:var(--space-sm);margin-block:var(--space-sm);border:1px solid #aa6357;color:#873f35;font-size:clamp(.75rem,.7rem + .1vw,.9rem)}
.inquiry-honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.product-facts{padding:var(--space-lg) var(--page-gutter);border-block:1px solid var(--line)}
.product-facts h2{font-size:clamp(2rem,3vw,3rem);margin-bottom:var(--space-sm)}
.product-facts>p{max-width:72ch;font-size:clamp(.8rem,.72rem + .2vw,1rem)}
.product-facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);margin:var(--space-md) 0 0}
.product-facts dt{font-size:clamp(.7rem,.6rem + .2vw,.875rem);color:var(--muted)}
.product-facts dd{margin:.4em 0 0;font:500 clamp(1.25rem,1.7vw,1.7rem)/1.3 var(--serif)}
@media(max-width:800px){
 .gift-layout{padding-top:var(--space-md);padding-bottom:0}
 .gift-copy h1{font-size:clamp(3.25rem,10.5vw,5.375rem)}
 .gift-origin-copy{font-size:clamp(.76rem,.69rem + .18vw,.9rem);line-height:1.8;text-align:left}
 .gift-origin-copy .gift-origin-lead{font-size:clamp(1.35rem,3.8vw,1.8rem);text-align:center}
 .gift-origin-ending{text-align:center}
 .gift-track{margin-top:var(--space-md)}
 .text-field input,.text-field textarea,.text-field select{font-size:1rem}
 .product-facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){.brand-loader{display:none}.later-card-intro>a:hover img{transform:none}}
.icon{width:clamp(1.125rem,1.8vw,1.4375rem);height:clamp(1.125rem,1.8vw,1.4375rem)}
.stage-top,.stage-bottom{left:clamp(1.125rem,2vw,1.75rem);right:clamp(1.125rem,2vw,1.75rem);font-size:clamp(.45rem,.4rem + .1vw,.625rem)}
.stage-top{top:clamp(1.125rem,1.8vw,1.6rem)}.stage-bottom{bottom:clamp(1.125rem,1.8vw,1.6rem)}
.color-options{gap:clamp(1.2rem,2.5vw,2.5rem)}
.color-option{font-size:clamp(.7rem,.6rem + .15vw,.875rem);gap:var(--space-xs)}
.color-option .swatch{width:clamp(2.8rem,4.4vw,4rem);height:clamp(2.8rem,4.4vw,4rem)}
.gallery-controls{gap:clamp(.875rem,1.8vw,1.75rem);min-height:clamp(3.25rem,4.2vw,4rem)}
.gallery-tab,.small-label,.field-hint,.ear-tabs button,.font-options button,.cart-item-actions .plain-button{font-size:clamp(.7rem,.6rem + .15vw,.85rem)}
.ear-tabs button{padding:clamp(.7rem,1vw,.9rem) clamp(.6rem,1vw,.9rem)}
.ear-fields,.finishing-row,.checkout-grid,.checkout-grid .two-fields{gap:clamp(.75rem,1.3vw,1.4rem)}
.finishing-row{margin-top:var(--space-sm)}
.quantity-control button,.cart-qty button{min-height:clamp(2.75rem,3.9vw,3.4rem)}
.add-row{gap:clamp(.625rem,1vw,1rem)}
.add-row>.button{font-size:clamp(.7rem,.62rem + .15vw,.9rem)}
.occasion-grid{gap:clamp(1.25rem,3vw,3rem)}
.occasion-caption h3{font-size:clamp(1.7rem,2.3vw,2.2rem)}
.occasion-caption p,.love-content>p:not(.eyebrow){font-size:clamp(.75rem,.66rem + .18vw,.95rem)}
.love-content h2{font-size:clamp(2.5rem,4.6vw,4.5rem)}
.handwritten{font-size:clamp(1.5rem,2.5vw,2.25rem)}
.footer-wordmark{font-size:clamp(2.6rem,5vw,4.5rem)}
footer>div,footer>p{font-size:clamp(.625rem,.55rem + .15vw,.8rem)}
.success-dialog{padding:clamp(2rem,4vw,4rem) clamp(1.25rem,3vw,3rem)}
.success-dialog h2{font-size:clamp(2.8rem,4.5vw,4rem)}
.success-dialog>p:not(.eyebrow),.info-dialog>p{font-size:clamp(.8rem,.7rem + .2vw,1rem)}
footer .site-credit{margin:var(--space-md) 0 0;font-size:clamp(.7rem,.63rem + .14vw,.85rem);color:var(--muted)}
.site-credit a{text-decoration:underline;text-underline-offset:.3em;text-decoration-color:var(--line)}
.site-credit a:hover{text-decoration-color:currentColor}
.cookie-banner{position:fixed;z-index:120;inset:auto var(--page-gutter) max(1rem,env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);max-width:72rem;margin-inline:auto;padding:clamp(1.1rem,2vw,1.7rem);background:var(--canvas);border:1px solid var(--line);box-shadow:0 .5rem 3rem #493d321c}
.cookie-banner h2{font:500 clamp(1.5rem,2vw,1.9rem)/1.15 var(--serif);margin:0 0 .4rem}
.cookie-banner p{font-size:clamp(.75rem,.68rem + .14vw,.875rem);line-height:1.65;margin:0;max-width:66ch;color:var(--muted)}
.cookie-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}
.cookie-actions .button{justify-content:center;min-height:2.8rem;font-size:clamp(.7rem,.62rem + .15vw,.82rem);padding:.7rem 1rem;gap:.5rem}
.cookie-secondary{background:transparent;color:var(--ink);border:1px solid var(--gold)}
.cookie-secondary:hover{background:var(--panel);color:var(--ink)}
.cookie-actions .plain-button{grid-column:1/-1;justify-self:center;font-size:.75rem;text-decoration:underline;text-underline-offset:.25em}
.cookie-dialog{width:min(42rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow-y:auto;padding:clamp(1.25rem,3vw,2.5rem);background:var(--canvas);color:var(--ink);border:1px solid var(--line)}
.cookie-dialog>p,.cookie-dialog small{font-size:clamp(.78rem,.7rem + .15vw,.925rem);line-height:1.7;color:var(--muted)}
.cookie-choice{display:flex;align-items:flex-start;gap:1rem;padding-block:var(--space-sm);border-top:1px solid var(--line);font-size:clamp(.85rem,.75rem + .2vw,1rem);cursor:pointer}
.cookie-choice input{flex:0 0 auto;width:1.1rem;height:1.1rem;margin-top:.25rem;accent-color:var(--gold)}
.cookie-choice strong,.cookie-choice small{display:block}
.cookie-dialog .button{width:100%;justify-content:center;margin-top:var(--space-sm)}
.cookie-dialog code{font-size:.85em;overflow-wrap:anywhere}
@media(max-width:1000px){.cookie-banner{grid-template-columns:1fr}.cookie-actions{grid-template-columns:1fr 1fr auto}.cookie-actions .plain-button{grid-column:auto;padding-inline:.5rem}}
@media(max-width:480px){.cookie-banner{inset-inline:1rem;gap:.8rem;padding:1rem}.cookie-actions{grid-template-columns:1fr 1fr}.cookie-actions .plain-button{grid-column:1/-1}.cookie-banner p{font-size:.75rem}.cookie-actions .button{padding:.65rem .6rem}}

.email-link{text-decoration:underline;text-underline-offset:.2em;overflow-wrap:anywhere}.email-link:hover{color:var(--gold)}
