:root{
  --display:"Iowan Old Style","Baskerville","Palatino Linotype",Georgia,serif;
  --body:"Segoe UI","Noto Sans",Arial,sans-serif;
  --ink:#2f2929;
  --ink-soft:rgba(47,41,41,.68);
  --teal:#8e3b45;
  --teal-dark:#6e2c34;
  --cream:#fbf8f6;
  --paper:#fff;
  --sand:#f3d4ce;
  --coral:#c9796e;
  --mustard:#d9a05d;
  --line:rgba(142,59,69,.17);
  --shadow-soft:0 18px 46px rgba(74,39,40,.08);
}

html{scroll-padding-top:88px}
body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6}
.shell{width:min(1240px,calc(100% - 64px))}

.site-header{border-bottom:1px solid rgba(142,59,69,.14);background:rgba(255,255,255,.9);box-shadow:0 8px 28px rgba(74,39,40,.04)}
.site-header.is-scrolled{box-shadow:0 12px 32px rgba(74,39,40,.1)}
.header-inner{height:86px;gap:28px}
.brand{gap:12px}
.brand-mark{width:46px;height:46px;border-radius:8px;background:var(--teal);color:var(--sand);font-family:var(--body);font-size:14px}
.brand strong{font-family:var(--display);font-size:19px;letter-spacing:0}
.brand small{font-size:10px;letter-spacing:.1em}
.language-control select{border-radius:8px;background:#fff;color:var(--teal);padding:11px 30px 11px 12px}
.menu-toggle{width:44px;height:44px;border-radius:8px;background:var(--cream)}
.menu-lines{gap:5px}
.menu-lines i{height:1.5px}

.button{min-height:48px;border-radius:8px;padding:13px 17px;letter-spacing:.01em}
.button-primary{box-shadow:0 10px 24px rgba(142,59,69,.2)}
.button-secondary{background:#fff;border-color:rgba(142,59,69,.28)}
.button-dark{background:#fff;color:var(--teal)}
.button:hover{transform:translateY(-2px);box-shadow:0 13px 28px rgba(74,39,40,.14)}

.hero{padding:164px 0 102px;background:var(--paper);border-bottom:1px solid rgba(142,59,69,.12)}
.hero:after{height:3px;background:repeating-linear-gradient(90deg,var(--coral) 0 8px,transparent 8px 18px);opacity:.6}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(420px,.86fr);gap:92px}
.hero-location,.section-kicker{margin-bottom:16px;font-size:10px;letter-spacing:.16em}
.hero-location:before{content:"";display:inline-block;width:28px;height:1px;margin:0 10px 3px 0;background:var(--coral)}
.hero h1{color:var(--teal);font-family:var(--display);font-size:76px;letter-spacing:0;line-height:.98}
.hero h1 span{margin-top:12px;font-size:38px;letter-spacing:.02em}
.hero-lede{max-width:520px;margin-top:26px;color:var(--ink-soft);font-size:20px;line-height:1.55}
.hero-actions{margin-top:34px}
.hero-trust{max-width:530px;margin-top:29px;color:var(--ink-soft);font-size:12px}
.hero-details{gap:24px;margin-top:30px}
.hero-details div{padding-top:11px;border-top:1px solid var(--line)}
.hero-details strong{font-family:var(--display);font-size:16px;font-weight:700}
.hero-details span{font-size:11px}
.hero-media{padding:10px 0 0 10px}
.hero-media:before{content:"";position:absolute;inset:0 0 42px 28px;border:1px solid var(--sand);z-index:0;pointer-events:none}
.photo-placeholder{border-radius:8px;box-shadow:var(--shadow-soft)}
.photo-hero{position:relative;z-index:1;min-height:500px;aspect-ratio:1.08/1;overflow:hidden;background:#eee8e5}
.photo-hero:before,.photo-hero:after{inset:18px;border-radius:5px}
.hero-caption{position:relative;z-index:1;margin:18px 0 0 28px;font-size:11px}
.hero-stitch{opacity:.46}

.section{padding:112px 0}
.section-heading h2,.traditional-copy h2,.quote-intro h2,.about-copy h2,.contact-copy h2,.home-offer-heading h2{font-family:var(--display);font-size:54px;letter-spacing:0;line-height:1.06}
.section-heading.wide{max-width:820px;text-align:left;margin-inline:0}
.section-heading.wide>p:last-child{max-width:650px;margin:18px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.7}
.section-kicker{color:var(--coral)}
.intro-section{background:#fff}
.intro-grid{grid-template-columns:minmax(0,.84fr) minmax(0,1fr);gap:120px}
.intro-copy{font-size:16px;line-height:1.8}
.text-link{margin-top:14px;padding-bottom:3px;border-bottom:1px solid var(--coral)}

.home-offer{padding:104px 0 112px;background:var(--cream);border-top:1px solid rgba(142,59,69,.1);border-bottom:1px solid rgba(142,59,69,.1)}
.home-offer-heading{max-width:820px;margin:0 0 40px;text-align:left}
.home-offer-heading>p:last-child{max-width:650px;margin:18px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.7}
.offer-grid{grid-template-columns:1.15fr 1fr 1fr;gap:12px}
.offer-card{min-height:330px;padding:30px;border:1px solid rgba(142,59,69,.2);border-top:4px solid var(--coral);border-radius:8px;background:#fff;box-shadow:none}
.offer-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.offer-tailoring{border-color:var(--teal);background:var(--teal)}
.offer-drywash{border-top-color:var(--mustard);background:#fff}
.offer-index{font-size:11px;letter-spacing:.16em}
.offer-card h3{margin:64px 0 12px;font-family:var(--display);font-size:35px;letter-spacing:0;line-height:1.05}
.offer-card p{max-width:270px;font-size:13px;line-height:1.7}
.offer-link{padding-top:26px;border-top:1px solid rgba(142,59,69,.16);font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.offer-tailoring .offer-link{border-color:rgba(255,255,255,.2)}

.section-tinted{background:#f6f4f2}
.filter-bar{justify-content:flex-start;margin:38px 0 28px;gap:8px}
.filter-button{border-radius:8px;padding:10px 13px;background:#fff;color:var(--ink-soft)}
.filter-button:hover,.filter-button.is-active{background:var(--teal);border-color:var(--teal);color:#fff}
.service-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.service-card{min-height:264px;padding:17px;border-radius:8px;background:#fff;box-shadow:none}
.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}
.service-card .mini-placeholder{min-height:54px;margin:0 -1px 18px;border-radius:5px;background:#faf1ef}
.service-card h3{font-family:var(--display);font-size:22px;letter-spacing:0}
.service-card p{font-size:12px;line-height:1.65}
.service-meta span{border-radius:4px}
.service-card button{margin-top:16px;border-bottom:1px solid transparent}
.service-card button:hover{border-color:var(--coral)}

.price-section{background:#fff}
.price-tools{max-width:100%;margin:42px 0 28px}
.price-tools input,.price-tools select,.quote-card input,.quote-card select,.quote-card textarea{border-radius:8px;padding:14px;border-color:rgba(142,59,69,.2)}
.price-tools select{border-radius:8px}
.price-list{max-width:100%}
.price-group{border-top:1px solid var(--line)}
.price-group summary{padding:18px 4px;font-family:var(--display);font-size:24px;letter-spacing:0}
.price-group summary span{font-family:var(--body);font-size:11px;color:var(--coral)}
.price-items{gap:8px;padding-bottom:22px}
.price-item{padding:14px 16px;border-radius:6px;border:1px solid rgba(142,59,69,.1);background:#fbf8f6}
.price-item strong{font-size:13px}
.price-item span{font-size:13px}
.disclaimer{padding-top:18px;border-top:1px solid var(--line);font-size:11px}

.traditional-section{background:var(--teal-dark)}
.traditional-grid{grid-template-columns:minmax(360px,.82fr) minmax(0,1fr);gap:100px}
.traditional-media{position:relative;padding:10px 10px 0 0}
.traditional-media:after{content:"";position:absolute;inset:28px 0 0 24px;border:1px solid rgba(243,212,206,.45);pointer-events:none}
.photo-tall{position:relative;z-index:1;min-height:520px;border-radius:8px}
.traditional-copy h2{font-size:56px}
.traditional-copy>p:not(.section-kicker):not(.small-note){font-size:15px}
.traditional-list{gap:0;margin:28px 0}
.traditional-item{padding:13px 0}

.quote-section{background:var(--cream);border-top:1px solid rgba(142,59,69,.1);border-bottom:1px solid rgba(142,59,69,.1)}
.quote-layout{grid-template-columns:minmax(0,.75fr) minmax(500px,1.05fr);gap:96px}
.quote-intro{top:112px}
.quote-intro>p:not(.section-kicker){font-size:15px;line-height:1.75}
.quote-note{border-left-width:2px;background:#fff}
.quote-card{padding:30px;border-radius:8px;box-shadow:var(--shadow-soft)}
.form-progress{margin-bottom:32px}
.progress-step b{border-radius:7px}
.quote-step legend{font-family:var(--display);font-size:28px;letter-spacing:0}
.step-number{border-radius:7px}
.quote-step label{font-size:11px;letter-spacing:.02em}
.quote-review{border-radius:6px;background:#fbf8f6}

.steps-section{background:#fff}
.steps-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:50px}
.step-card{min-height:190px;padding:22px 20px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:transparent}
.step-card:last-child{border-right:0}
.step-card h3{margin:30px 0 8px;font-family:var(--display);font-size:23px}
.gallery-section{background:var(--cream)}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery-card{min-height:270px;border-radius:8px;box-shadow:none;background:#eee8e5}
.gallery-card.large{min-height:552px}
.gallery-card .photo-placeholder{border-radius:0;box-shadow:none}
.gallery-caption{left:14px;right:14px;bottom:14px;border-radius:5px;padding:12px 13px;background:rgba(255,255,255,.94)}
.gallery-caption strong{font-family:var(--display);font-size:18px}

.about-band{background:#fff}
.about-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:120px}
.value-item{padding:18px 0}
.value-item b{border-radius:7px}
.value-item h3{font-family:var(--display);font-size:21px}
.faq-section{background:var(--cream)}
.faq-layout{grid-template-columns:minmax(0,.76fr) minmax(0,1.1fr);gap:100px}
.faq-list{gap:0}
.faq-list details{padding:18px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}
.faq-list summary{font-family:var(--display);font-size:20px}

.contact-section{background:var(--teal-dark)}
.contact-grid{grid-template-columns:minmax(0,1.05fr) minmax(330px,.75fr);gap:100px}
.contact-copy h2{font-size:56px}
.contact-details{gap:22px}
.contact-actions .button-secondary{border-radius:8px}
.map-placeholder{border-radius:8px;background:#8e3b45}
.site-footer{background:#2f2929}
.footer-inner{padding:48px 0}
.floating-contact{right:24px;bottom:24px;border-radius:8px;box-shadow:0 14px 32px rgba(110,44,52,.3)}

.hero-image,.section-image,.gallery-image{display:block;width:100%;height:100%;object-fit:cover}
.hero-image{position:absolute;inset:0}
.photo-hero .placeholder-seal,.photo-hero .placeholder-ruler,.photo-hero .placeholder-label{display:none}
.photo-tall .placeholder-seal,.photo-tall .placeholder-label{display:none}
.photo-hero:before,.photo-hero:after,.photo-tall:before,.photo-tall:after{z-index:2;pointer-events:none}
.gallery-card .photo-placeholder.has-image:before,.gallery-card .photo-placeholder.has-image:after{display:none}
.gallery-card .photo-placeholder.has-image .placeholder-label{display:none}
.gallery-image{position:absolute;inset:0;object-fit:cover;transition:transform .45s ease}
.gallery-card:hover .gallery-image{transform:scale(1.035)}

@media (max-width:1100px){
  .hero-grid{gap:56px}
  .hero h1{font-size:68px}
  .service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .traditional-grid{gap:60px}
  .quote-layout,.faq-layout{gap:56px}
}
@media (max-width:820px){
  .shell{width:min(100% - 40px,640px)}
  .header-inner{height:74px}
  .hero{padding:132px 0 76px}
  .hero-grid,.intro-grid,.traditional-grid,.quote-layout,.about-grid,.faq-layout,.contact-grid{grid-template-columns:1fr;gap:48px}
  .hero h1{font-size:64px}
  .hero h1 span{font-size:34px}
  .hero-media{max-width:620px;margin-inline:auto}
  .photo-hero{min-height:390px}
  .section{padding:84px 0}
  .section-heading h2,.traditional-copy h2,.quote-intro h2,.about-copy h2,.contact-copy h2,.home-offer-heading h2{font-size:46px}
  .home-offer{padding:84px 0}
  .offer-grid{grid-template-columns:1fr}
  .offer-card{min-height:250px}
  .offer-card h3{margin-top:42px}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .traditional-media{max-width:560px;margin-inline:auto}
  .photo-tall{min-height:430px}
  .quote-intro{position:static}
  .quote-card{padding:24px}
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .step-card:nth-child(2){border-right:0}
  .step-card:nth-child(n+3){border-top:0}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-card.large{min-height:270px}
}
@media (max-width:560px){
  .shell{width:calc(100% - 28px)}
  .hero{padding-top:116px}
  .hero h1{font-size:52px}
  .hero h1 span{font-size:28px}
  .hero-lede{font-size:17px}
  .hero-actions .button{flex:1}
  .hero-media{padding-left:6px}
  .hero-media:before{left:16px}
  .photo-hero{min-height:300px}
  .hero-caption{margin-left:16px}
  .section-heading h2,.traditional-copy h2,.quote-intro h2,.about-copy h2,.contact-copy h2,.home-offer-heading h2{font-size:40px}
  .home-offer{padding:72px 0 78px}
  .offer-card{padding:24px}
  .offer-card h3{font-size:31px}
  .service-grid,.price-items,.gallery-grid{grid-template-columns:1fr}
  .filter-bar{justify-content:flex-start}
  .price-tools{display:grid}
  .price-tools select{width:100%}
  .traditional-media{padding-right:6px}
  .photo-tall{min-height:350px}
  .quote-card{padding:19px}
  .steps-grid{grid-template-columns:1fr}
  .step-card{border-right:0;border-bottom:1px solid var(--line)}
  .step-card:nth-child(n+3){border-top:0}
  .contact-details{grid-template-columns:1fr}
  .contact-actions .button{flex:1}
  .floating-contact{right:14px;bottom:14px}
}
@media (prefers-reduced-motion:reduce){.gallery-card:hover .gallery-image{transform:none}}
