@charset "UTF-8";

/* Shared readable type sizes for the reviewed desktop and mobile layouts. */
:root{--text:18px;--small-text:15px;--label:13px}
body{font-size:var(--text);line-height:1.7}
p{color:#53615f}
.topline{font-size:12px;letter-spacing:.08em;align-items:center}
.topline>a{font-size:15px;letter-spacing:0}
.site-header nav{font-size:17px;gap:25px}
.site-header nav a{padding:12px 0}
.header-contact{font-size:16px;padding:12px 17px;min-height:48px}
.header-contact span{margin-left:12px}
.kicker{font-size:13px;letter-spacing:.11em}
.hero{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
.hero-copy{min-width:0;padding-top:35px}
.hero-copy>p{font-size:18px;line-height:1.75}
.hero-actions{gap:14px}
.btn,.hero-actions .btn,.closing .btn,.request-box .btn{font-size:17px;padding:15px 20px;min-height:54px;line-height:1.45}
.hero-actions .btn{gap:18px}
.hero-location{font-size:15px;max-width:none;padding-top:20px;line-height:1.55}
.hero-location>span:last-child{font-size:14px}
.image-tag{font-size:11px;letter-spacing:.08em}
.hero-photo figcaption{font-size:15px;align-items:center;flex-wrap:wrap;line-height:1.4}
.hero-photo figcaption>span:last-child{font-size:13px}
.experience-seal span{font-size:10px}
.hero-word{font-size:18px}
.craft-line{font-size:14px;gap:15px;padding:23px 0;flex-wrap:wrap;text-align:center}
.section-heading{gap:28px}
.section-heading p{font-size:17px;max-width:340px;line-height:1.65}
.service-cards>a{padding:29px 25px;min-width:0}
.service-no{font-size:13px;letter-spacing:.08em}
.service-cards p{font-size:17px;line-height:1.75}
.card-bottom{font-size:15px;line-height:1.55;gap:12px;align-items:center}
.story-image>span{font-size:14px;padding:13px 18px}
.story-copy p{font-size:18px;line-height:1.75}
.story-copy .lead{font-size:20px;line-height:1.7}
.text-link{font-size:17px;line-height:1.55;padding:8px 0;gap:18px}
.price-row,.pricing-layout .price-row{font-size:18px;grid-template-columns:minmax(0,1fr) auto 44px;gap:18px;padding:19px 0;line-height:1.5}
.price-row strong,.pricing-layout .price-row strong{font-size:25px}
.add-service{width:44px;height:44px;font-size:28px}
.price-foot p{font-size:16px;line-height:1.7}
.selection-link{font-size:16px;line-height:1.6}
.work-tile em{font-size:14px}
.faq-items summary{font-size:18px;line-height:1.6;align-items:start}
.faq-items p{font-size:17px;line-height:1.75}
.faq-items details{padding:23px 0}
.closing p{font-size:18px;line-height:1.75}
footer{font-size:16px;gap:35px;line-height:1.7}
footer p{font-size:16px;line-height:1.7}
footer a{overflow-wrap:anywhere}
.footer-title{font-size:13px;letter-spacing:.1em}
.footer-fine{font-size:13px;line-height:1.65;flex-wrap:wrap;align-items:center}
.breadcrumb{font-size:14px;line-height:1.6}
.page-intro p{font-size:19px;line-height:1.75;max-width:760px}
.page-intro .kicker{font-size:13px}
.filters button{font-size:16px;min-height:46px;padding:10px 17px;line-height:1.4}
.request-box>p{font-size:16px;line-height:1.7}
.request-box label{font-size:16px}
.request-box textarea{font-size:17px;line-height:1.55;padding:13px}
.request-box>small{font-size:14px;line-height:1.7}
.clear-basket{font-size:15px;padding:7px 0;min-height:40px}
.basket-name,.basket-control{font-size:16px;line-height:1.55}
.basket-name button{min-width:32px;min-height:32px}
.basket-control button{width:42px;height:42px;font-size:20px;flex-shrink:0}
.basket-control .basket-line-price{font-size:15px;text-align:right}
.basket-total>span{font-size:15px}
.basket-total strong{font-size:20px}
.basket-empty{font-size:16px;line-height:1.7}
.note{font-size:15px;line-height:1.75}
.price-help p{font-size:17px;line-height:1.75}
.toast{font-size:16px;line-height:1.5}
.garment-story p{font-size:18px;line-height:1.75}
.three-columns article>span,.steps article>span{font-size:14px}
.three-columns p,.steps p{font-size:17px;line-height:1.75}
.service-aside>p{font-size:17px;line-height:1.7}
.contact-row{font-size:17px;flex-wrap:wrap;gap:12px 20px;align-items:center}
.contact-row>span{font-size:13px}
.address-card>p{font-size:17px;line-height:1.7}
.route-art>span{font-size:12px}
.route-art small{font-size:11px;position:static;display:block;flex-basis:100%;text-align:center;line-height:1.6}
.route-art{flex-wrap:wrap;min-height:155px;padding:25px 15px;row-gap:18px}
.portfolio-copy .kicker{font-size:12px;letter-spacing:.08em}
.portfolio-copy p{font-size:17px;line-height:1.75}
.portfolio-source{display:inline-block;font-size:15px;line-height:1.6;padding:5px 0}
.portfolio-photo>span{font-size:14px;padding:12px 14px;line-height:1.5}
.portfolio-photos>.portfolio-photo+button{width:112px;bottom:62px}
.portfolio-photos>.portfolio-photo+button>span{font-size:12px;line-height:1.35;padding:6px;gap:5px}
.portfolio-photos>.portfolio-photo+button b{font-size:16px}
.lightbox-caption{font-size:15px;line-height:1.5}

@media(max-width:1100px){
 .topline-right{display:none}
 .site-header nav{gap:20px}
 .header-contact{display:none}
 .hero-copy{padding-top:28px}
 .hero-actions .btn{padding:15px 17px;font-size:17px}
 .hero-location{flex-wrap:wrap;gap:10px}
 .service-cards>a{padding:25px 21px}
 .service-cards p{font-size:17px}
 .pricing-layout{grid-template-columns:minmax(0,1fr);gap:35px}
 .request-box{position:static;max-width:none}
}
@media(max-width:900px){
 .hero{grid-template-columns:minmax(0,1fr);gap:28px;max-width:760px}
 .hero-copy{padding-bottom:0}
 .hero h1{font-size:clamp(46px,7vw,62px)}
 .hero-actions{margin:28px 0}
 .hero-photo{height:620px}
 .hero-word{margin-top:0}
 .hero-location{max-width:600px;font-size:16px}
 .service-cards{grid-template-columns:minmax(0,1fr)}
 .service-cards>a{min-height:0;padding:29px}
 .service-cards h3{font-size:34px}
 .service-cards p{max-width:620px}
 .story{grid-template-columns:minmax(0,1fr);gap:34px}
 .story-image{height:520px;max-width:620px}
 .faq{grid-template-columns:minmax(0,1fr);gap:30px}
 .contact-layout{grid-template-columns:minmax(0,1fr);gap:35px}
 .service-body{grid-template-columns:minmax(0,1fr);gap:35px}
}
@media(max-width:760px){
 .site-header{position:relative;min-height:88px}
 .menu-toggle{display:flex;align-items:center;gap:12px;font-size:16px;padding:12px;min-height:48px;background:none;border:0;color:var(--ink)}
 .menu-toggle span{font-size:21px}
 .site-header nav{display:none;position:absolute;top:85px;left:0;right:0;padding:20px 7%;background:var(--paper);z-index:20;border-bottom:1px solid var(--line)}
 .site-header nav.open{display:flex;flex-direction:column;gap:5px}
 .site-header nav a{font-size:18px;padding:12px 0;min-height:48px}
}
@media(max-width:650px){
 :root{--text:17px;--small-text:15px}
 .topline{font-size:11px;letter-spacing:.05em;gap:12px;padding:11px 0}
 .topline>a{font-size:14px;white-space:nowrap}
 .brand,.brand img{width:180px;height:46px}
 .site-header{padding:13px 4%;min-height:85px}
 .menu-toggle{font-size:16px;gap:10px;padding:10px}
 .hero{gap:24px;padding:0 6%}
 .hero-copy{padding:24px 0 0}
 .hero h1{font-size:clamp(38px,10.2vw,58px);line-height:1.1}
 .hero-copy .kicker{font-size:12px;line-height:1.6;letter-spacing:.08em}
 .hero-copy>p{font-size:17px;line-height:1.75}
 .hero-actions{gap:12px;margin:26px 0}
 .hero-actions .btn{width:100%;font-size:17px;min-height:54px;padding:16px 20px}
 .hero-location{font-size:15px;gap:10px;align-items:center;flex-wrap:nowrap}
 .hero-location>span:last-child{font-size:14px;max-width:96px;text-align:right}
 .hero-photo{height:490px}
 .hero-photo figcaption{font-size:15px;padding:14px 15px;gap:7px}
 .hero-photo figcaption>span:last-child{font-size:13px}
 .image-tag{font-size:11px}
 .experience-seal{bottom:95px}
 .hero-word{font-size:16px;line-height:1.5;margin:0 0 25px}
 .craft-line{font-size:13px;gap:12px 15px;padding:21px 0;line-height:1.6}
 .kicker,.page-intro .kicker{font-size:12px;letter-spacing:.1em}
 .section-heading p{font-size:17px;line-height:1.65}
 .service-cards>a{padding:27px 24px}
 .service-no{font-size:13px}
 .service-cards p{font-size:17px;line-height:1.75;max-width:none}
 .card-bottom{font-size:15px}
 .story-image{height:420px}
 .story-image>span{font-size:14px;line-height:1.5}
 .story-copy p{font-size:17px;line-height:1.75}
 .story-copy .lead{font-size:19px;line-height:1.7}
 .text-link{font-size:16px;line-height:1.55}
 .price-row,.pricing-layout .price-row{font-size:17px;grid-template-columns:minmax(0,1fr) auto 44px;gap:12px;padding:19px 0}
 .price-row strong,.pricing-layout .price-row strong{font-size:23px;line-height:1.3}
 .price-foot p{font-size:15px;line-height:1.7}
 .selection-link{font-size:16px}
 .filters button{font-size:16px;padding:10px 15px;min-height:46px}
 .request-box{padding:26px 22px}
 .request-box>p{font-size:16px}
 .request-box label{font-size:16px}
 .request-box textarea{font-size:17px}
 .request-box>small{font-size:14px;line-height:1.7}
 .request-box .btn{font-size:17px}
 .basket-name,.basket-control{font-size:16px}
 .basket-name{align-items:start}
 .basket-control{flex-wrap:wrap;gap:9px}
 .basket-control .basket-line-price{font-size:15px}
 .basket-total>span{font-size:15px}
 .basket-total strong{font-size:20px}
 .note{font-size:15px;line-height:1.7}
 .price-help{padding:26px 22px}
 .price-help p{font-size:17px}
 .faq-items summary{font-size:17px;line-height:1.6}
 .faq-items p{font-size:17px;line-height:1.75}
 .faq-items summary:after{font-size:24px;flex-shrink:0}
 .closing p{font-size:17px;line-height:1.7}
 .closing .btn{font-size:17px;min-height:54px}
 footer{grid-template-columns:minmax(0,1fr);font-size:16px;padding-bottom:125px;gap:30px}
 footer p{font-size:16px;line-height:1.7}
 .footer-title{font-size:13px;margin-bottom:12px}
 .footer-fine{font-size:13px;gap:15px;line-height:1.7}
 .footer-brand{grid-column:auto}
 .mobile-bar{grid-template-columns:1fr 1.4fr;padding-bottom:env(safe-area-inset-bottom);background:var(--ink)}
 .mobile-bar a{font-size:17px;line-height:1.5;min-height:60px;padding:17px 12px;background:var(--paper)}
 .mobile-bar a:last-child{background:var(--ink)}
 .breadcrumb{font-size:14px;line-height:1.6;gap:10px}
 .page-intro p{font-size:17px;line-height:1.75}
 .garment-story p,.three-columns p,.steps p,.service-aside>p,.address-card>p{font-size:17px;line-height:1.75}
 .contact-row{font-size:16px;gap:12px 16px}
 .contact-row>span{font-size:13px}
 .route-art small{font-size:11px}
 .portfolio-copy .kicker{font-size:12px}
 .portfolio-copy p{font-size:17px;line-height:1.75}
 .portfolio-source{font-size:15px}
 .portfolio-photo>span{font-size:14px}
 .portfolio-photos>.portfolio-photo+button{width:108px;bottom:62px}
 .portfolio-photos>.portfolio-photo+button>span{font-size:12px}
 .lightbox-caption{font-size:14px;bottom:22px;padding:0 12px;max-width:95vw}
 .toast{font-size:15px;bottom:82px;max-width:88vw}
}
@media(max-width:370px){
 .topline{font-size:10px;gap:9px}
 .topline>a{font-size:13px}
 .brand,.brand img{width:165px}
 .menu-toggle{padding:10px 5px;font-size:15px}
 .price-row,.pricing-layout .price-row{grid-template-columns:minmax(0,1fr) 44px;column-gap:12px;row-gap:8px}
 .price-row>span{grid-column:1}
 .price-row strong{grid-column:1;grid-row:2}
 .price-row .add-service{grid-column:2;grid-row:1/3}
 .hero-location{flex-wrap:wrap}
 .hero-location>span:last-child{max-width:none;margin-left:0}
}
