/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4
 * genre: editorial · macrostructure: Split Studio · theme: Brutal
 * nav: N12 Banner + retract · footer: Ft1 Mast-headed
 * audience: local shoe owners · use: request repair assessment · tone: street
 */
:root {
  --color-paper: #f4f1e9;
  --color-ink: #201f1c;
  --color-muted: #66625b;
  --color-line: #d7d2c7;
  --color-accent: #e95c2c;
  --color-blue: #244cba;
  --color-light: #fffdf7;
  --color-lime: #d9ed8d;
  --color-photo: #e9e6df;
  --color-overlay: #201f1c80;
  --color-clear: transparent;
  --font-body: 'Anuphan', sans-serif;
  --space-section: clamp(60px, 7vw, 112px);
}
* { box-sizing: border-box; }
html, body { margin: 0; overflow-x: clip; }
body { background: var(--color-paper); color: var(--color-ink); font: 16px/1.7 var(--font-body); }
body:has(dialog[open]) { overflow-y: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
button, a, summary { -webkit-tap-highlight-color: var(--color-clear); }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--color-blue); outline-offset: 5px; }
button:disabled { opacity: .45; cursor: not-allowed; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
figure { margin: 0; min-width: 0; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-style: normal; line-height: 1.2; min-width: 0; overflow-wrap: anywhere; }
h1 { font-size: clamp(44px, 5.2vw, 78px); font-weight: 700; letter-spacing: -.045em; }
h2 { font-size: clamp(32px, 3.5vw, 48px); letter-spacing: -.035em; font-weight: 600; }
h3 { font-size: 23px; letter-spacing: -.015em; font-weight: 600; }
p { margin-bottom: 20px; }
address { font-style: normal; }
.container { width: min(1280px, calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: var(--space-section); }
.eyebrow { font-size: 13px; font-weight: 600; letter-spacing: .06em; margin-bottom: 23px; }
.small-dot { display: inline-block; width: 7px; height: 7px; background: var(--color-accent); border-radius: 50%; margin-right: 9px; }
.fine-print { font-size: 13px; line-height: 1.8; color: var(--color-muted); }
.accent-text { color: var(--color-blue); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 52px; padding: 14px 24px; border: 1px solid var(--color-ink); background: var(--color-accent); color: var(--color-ink); font-weight: 600; font-size: 15px; transition: transform .18s, background .18s; white-space: nowrap; }
.button:hover { transform: translateY(-3px); background: var(--color-lime); }
.button:active { transform: translateY(0); }
.button span { font-size: 23px; line-height: 1; }
.button.dark { background: var(--color-ink); color: var(--color-paper); }
.button.dark:hover { background: var(--color-blue); }
.button.lime { background: var(--color-lime); }
.button.lime:hover { background: var(--color-paper); }
.button.outline { background: var(--color-clear); }
.button.outline-light { background: var(--color-clear); border-color: var(--color-paper); color: var(--color-paper); }
.button.outline-light:hover { background: var(--color-paper); color: var(--color-ink); }
.text-link { display: inline-flex; align-items: center; gap: 25px; border-bottom: 1px solid currentColor; padding-block: 8px; font-size: 15px; font-weight: 500; white-space: nowrap; }
.text-link:hover { color: var(--color-blue); }
.text-button { border: 0; border-bottom: 1px solid var(--color-ink); padding: 9px 0; background: var(--color-clear); font-size: 14px; display: flex; align-items: center; justify-content: space-between; width: 100%; }
.text-button:hover { color: var(--color-blue); }
.topbar { background: var(--color-ink); color: var(--color-paper); font-size: 12px; }
.topbar .container { display: flex; justify-content: space-between; align-items: center; min-height: 34px; }
.topbar a { white-space: nowrap; }
#site-header { position: sticky; top: 0; z-index: 20; background: var(--color-paper); border-bottom: 1px solid var(--color-line); transition: opacity .25s, transform .25s; }
#site-header.faded { transform: translateY(-105%); opacity: 0; pointer-events: none; }
#site-header:focus-within { transform: none; opacity: 1; pointer-events: auto; }
.header-inner { min-height: 96px; display: flex; align-items: center; gap: 24px; }
.brand { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.brand svg { width: 43px; height: 42px; }
.brand span { font-size: 27px; letter-spacing: -.04em; font-weight: 700; line-height: 1; }
.brand small { display: block; font-size: 10px; letter-spacing: .04em; margin-top: 9px; font-weight: 400; }
.header-inner nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px,2vw,30px); margin-left: auto; }
.header-inner nav a { white-space: nowrap; font-size: 14px; padding: 12px 0; }
.header-inner nav a:hover, .header-inner nav a[aria-current] { color: var(--color-blue); }
.header-inner nav a[aria-current] { box-shadow: 0 2px var(--color-blue); }
.cart-button { display: flex; gap: 9px; align-items: center; justify-content: center; min-height: 44px; padding: 8px 0 8px 24px; border: 0; border-left: 1px solid var(--color-line); background: var(--color-clear); font-size: 13px; white-space: nowrap; }
#cart-count { background: var(--color-ink); color: var(--color-paper); display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; font-size: 11px; }
.hero { display: grid; grid-template-columns: 1fr 1.12fr; gap: 48px; padding-top: 48px; padding-bottom: 52px; align-items: center; }
.hero-copy { padding-block: 12px; }
.hero h1 { margin-bottom: 24px; }
.hero h1>span { color: var(--color-blue); }
.hero-lines { color: var(--color-muted); font-size: 14px; line-height: 1.85; }
.hero-lines span { display: block; }
.hero-actions { display: flex; gap: 24px; align-items: center; margin-top: 28px; flex-wrap: wrap; }
.hero-main { position: relative; height: 390px; }
.hero-main img { object-position: 50% 53%; }
.hero-main figcaption { position: absolute; bottom: 15px; left: 17px; padding: 6px 13px; background: var(--color-paper); font-size: 12px; }
.round-seal { position: absolute; right: -18px; top: 23px; background: var(--color-lime); border: 1px solid var(--color-ink); width: 97px; height: 97px; border-radius: 50%; display: grid; place-content: center; text-align: center; font-size: 15px; line-height: 1.5; transform: rotate(12deg); }
.hero-thumbs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 12px; }
.hero-thumbs figure { position: relative; height: 137px; }
.hero-thumbs figcaption { position: absolute; bottom: 9px; left: 10px; padding: 1px 8px; background: var(--color-paper); font-size: 11px; }
.ticker { background: var(--color-blue); color: var(--color-paper); }
.ticker .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 65px; font-size: 17px; font-weight: 500; }
.ticker b { font-size: 25px; color: var(--color-lime); font-weight: 400; }
.story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,8vw,120px); align-items: center; }
.story-image { height: 560px; position: relative; }
.story-image img { object-position: 50% 64%; }
.image-tag { position: absolute; bottom: 24px; right: -20px; background: var(--color-accent); padding: 14px 28px; transform: rotate(-7deg); font-size: 23px; font-weight: 600; }
.story-copy h2 { font-size: clamp(36px,3.8vw,53px); margin-bottom: 28px; }
.story-copy p:not(.eyebrow) { color: var(--color-muted); max-width: 470px; }
.why { background: var(--color-ink); color: var(--color-paper); }
.why-layout { display: grid; grid-template-columns: 1fr 1.25fr; gap: 80px; }
.reason-list article { border-top: 1px solid var(--color-muted); padding: 25px 0; display: flex; gap: 32px; }
.reason-list article:last-child { padding-bottom: 0; }
.reason-list article>span { font-size: 13px; color: var(--color-lime); }
.reason-list h3 { font-size: 23px; margin-bottom: 10px; }
.reason-list p { color: var(--color-line); font-size: 15px; margin: 0; }
.promo { display: grid; grid-template-columns: 1fr 1fr; background: var(--color-accent); }
.promo-copy { padding: 54px; align-self: center; }
.promo h2 { font-size: clamp(35px,4vw,55px); }
.promo-copy p:not(.eyebrow) { font-size: 14px; }
.promo-photo { position: relative; min-height: 430px; }
.promo-photo img { position: absolute; inset: 0; }
.stamp { position: absolute; top: 25px; right: 24px; transform: rotate(12deg); background: var(--color-lime); padding: 14px 24px; font-size: 21px; line-height: 1.3; text-align: center; font-weight: 600; border: 1px solid var(--color-ink); }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 50px; margin-bottom: 32px; }
.section-head h2 { margin: 0; }
.section-head>p { color: var(--color-muted); font-size: 14px; margin: 0; max-width: 420px; }
.filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 36px; }
.filter { min-height: 44px; background: var(--color-clear); border: 1px solid var(--color-line); border-radius: 0; padding: 8px 19px; font-size: 14px; white-space: nowrap; transition: background .15s; }
.filter:hover { border-color: var(--color-ink); }
.filter.active { background: var(--color-ink); color: var(--color-paper); border-color: var(--color-ink); }
.service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 45px 25px; }
.service-card[hidden] { display: none; }
.service-image { aspect-ratio: 1.12; position: relative; overflow: clip; background: var(--color-photo); }
.service-image img { transition: transform .5s; }
.service-card:hover img { transform: scale(1.04); }
.serial { position: absolute; top: 12px; left: 13px; font-size: 12px; background: var(--color-paper); padding: 2px 8px; }
.quick-add { position: absolute; right: 13px; bottom: 13px; background: var(--color-paper); border: 1px solid var(--color-ink); width: 44px; height: 44px; font-size: 28px; line-height: 1; }
.quick-add:hover { background: var(--color-lime); }
.service-info { padding-top: 18px; }
.category { font-size: 11px; color: var(--color-muted); }
.service-info h3 { margin: 7px 0 11px; font-size: 22px; }
.service-info>p { font-size: 14px; color: var(--color-muted); min-height: 48px; }
.price-row { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 9px; }
.price-row>span { font-size: 11px; color: var(--color-muted); }
.price-row strong { font-size: 20px; white-space: nowrap; font-weight: 600; }
#catalog>.fine-print { margin-top: 30px; }
.articles { border-top: 1px solid var(--color-ink); }
.articles details { border-bottom: 1px solid var(--color-line); }
.articles summary { display: grid; grid-template-columns: 180px 1fr 30px; gap: 20px; align-items: center; padding: 26px 0; }
.articles summary>span { font-size: 12px; color: var(--color-muted); }
.articles summary h3 { margin: 0; font-size: 24px; }
.articles summary b { font-size: 26px; font-weight: 400; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
.articles details>p { margin: 0 50px 30px 200px; color: var(--color-muted); }
.privacy-strip { border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); display: flex; align-items: center; justify-content: space-between; gap: 25px; padding-block: 25px; }
.privacy-strip p { margin: 0; font-size: 14px; }
.review-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.review-layout>div { border-left: 3px solid var(--color-blue); padding-left: 32px; }
.review-message { font-size: 26px; line-height: 1.5; }
.review-layout>div>p:not(.review-message) { color: var(--color-muted); }
.terms { border-top: 1px solid var(--color-line); }
.terms>h2 { margin-bottom: 35px; }
.terms details { border-bottom: 1px solid var(--color-line); padding-block: 18px; }
.terms summary { display: flex; justify-content: space-between; gap: 25px; }
.terms summary span { font-size: 22px; }
.terms details p { color: var(--color-muted); max-width: 850px; margin: 15px 0; }
.contact-band { background: var(--color-blue); color: var(--color-paper); padding-block: 80px; }
.contact-band h2 { font-size: clamp(40px,5vw,70px); }
.contact-band h2>span { color: var(--color-lime); }
.contact-actions { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 30px; }
.contact-band .container>p:last-child { font-size: 14px; margin: 0; }
footer { background: var(--color-ink); color: var(--color-paper); padding-top: 60px; }
.footer-main { display: flex; justify-content: space-between; gap: 60px; padding-bottom: 50px; }
.footer-brand { display: flex; align-items: center; justify-content: space-between; gap: 60px; font-size: clamp(38px,5vw,64px); line-height: 1.2; letter-spacing: -.04em; margin-bottom: 20px; }
.footer-brand span { color: var(--color-accent); }
.footer-main p, .footer-main address { font-size: 14px; color: var(--color-line); }
.footer-contact { align-self: center; display: flex; flex-direction: column; gap: 9px; font-size: 17px; }
.footer-contact a { white-space: nowrap; }
.footer-bottom { display: flex; justify-content: space-between; gap: 30px; padding-block: 24px; border-top: 1px solid var(--color-muted); font-size: 12px; }
.footer-bottom nav { display: flex; gap: 22px; flex-wrap: wrap; }
.footer-bottom nav a { white-space: nowrap; }
.page-intro { padding-block: 70px 30px; }
.page-intro h1 { font-size: clamp(46px,6vw,82px); }
.page-intro h1 span { color: var(--color-blue); }
.page-intro .lead { max-width: 750px; color: var(--color-muted); font-size: 18px; }
.prose-block { display: grid; grid-template-columns: 1fr 1.1fr; column-gap: 70px; border-top: 1px solid var(--color-line); }
.prose-block>.eyebrow { grid-column: 1/-1; }
.prose-block>div { color: var(--color-muted); }
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; padding-top: 35px; }
.contact-details { display: grid; margin-block: 30px; }
.contact-details a { border-top: 1px solid var(--color-line); display: flex; flex-direction: column; padding-block: 15px; }
.contact-details span { font-size: 12px; color: var(--color-muted); }
.contact-details strong { font-size: clamp(17px,2vw,23px); font-weight: 500; overflow-wrap: anywhere; }
.map-wrap iframe { width: 100%; height: 430px; border: 1px solid var(--color-line); }
.map-wrap>p { font-size: 12px; color: var(--color-muted); margin-block: 12px 0; }
.checklist { border-top: 1px solid var(--color-line); }
.checklist ol { padding-left: 24px; }
.checklist li { padding: 8px; }
.legal { max-width: 850px; padding-top: 20px; }
.legal h2 { margin-top: 40px; font-size: 28px; }
.legal>p { color: var(--color-muted); }
.skip-link { position: fixed; top: -100px; left: 20px; padding: 12px 20px; z-index: 100; background: var(--color-lime); }
.skip-link:focus { top: 10px; }
.cart-drawer { position: fixed; inset: 0 0 0 auto; height: 100dvh; max-height: none; width: min(480px,100%); max-width: 100%; margin: 0; padding: 28px; border: 0; border-left: 1px solid var(--color-line); background: var(--color-paper); color: var(--color-ink); }
.cart-drawer::backdrop { background: var(--color-overlay); }
.cart-drawer[open] { display: flex; flex-direction: column; animation: slide-in .25s ease-out; }
@keyframes slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
.cart-head { display: flex; justify-content: space-between; gap: 12px; }
.cart-head h2 { font-size: 28px; margin-bottom: 16px; }
.cart-head .eyebrow { margin-bottom: 6px; }
.icon-button { flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--color-line); background: var(--color-clear); font-size: 26px; }
.cart-note { font-size: 13px; color: var(--color-muted); }
#cart-items { overflow: auto; flex: 1; min-height: 100px; }
.cart-item { padding-block: 18px; border-top: 1px solid var(--color-line); display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 16px; }
.cart-item img { height: 88px; }
.cart-item h3 { font-size: 17px; margin-bottom: 5px; }
.cart-item p { font-size: 13px; margin-bottom: 9px; }
.cart-controls { display: flex; align-items: center; gap: 10px; }
.cart-controls button { min-width: 36px; min-height: 36px; border: 1px solid var(--color-line); background: var(--color-clear); }
.cart-controls .remove { margin-left: auto; border: 0; font-size: 12px; }
.cart-bottom { padding-top: 18px; border-top: 1px solid var(--color-ink); }
.cart-total { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 18px; font-size: 13px; }
.cart-total strong { font-size: 24px; white-space: nowrap; }
.full { display: flex; width: 100%; margin-bottom: 10px; }
.cart-bottom .text-link { font-size: 13px; margin: 2px 0 10px; }
.cart-bottom .fine-print { margin-bottom: 0; font-size: 11px; }
.empty-cart { padding-block: 40px; color: var(--color-muted); text-align: center; }
#toast { position: fixed; bottom: 25px; left: 50%; transform: translate(-50%,20px); opacity: 0; pointer-events: none; z-index: 100; max-width: calc(100% - 32px); background: var(--color-ink); color: var(--color-paper); padding: 12px 22px; font-size: 14px; transition: opacity .2s,transform .2s; text-align: center; }
#toast.visible { opacity: 1; transform: translate(-50%,0); }
@media(min-width:1600px) { .hero-main { height: 440px; } .hero-thumbs figure { height: 150px; } }
@media(max-width:1100px) {
  .container { width: calc(100% - 64px); }
  .header-inner { gap: 18px; }
  .header-inner nav { gap: 15px; }
  .header-inner nav a { font-size: 12px; }
  .cart-label { display: none; }
  .cart-button { padding-left: 15px; }
  .hero { gap: 32px; }
  .hero-main { height: 360px; }
  .hero-thumbs figure { height: 118px; }
  .story { gap: 55px; }
  .story-image { height: 500px; }
  .why-layout { gap: 40px; }
  .promo-copy { padding: 35px; }
  .service-info h3 { font-size: 20px; }
}
@media(max-width:850px) {
  .header-inner { flex-wrap: wrap; gap: 0; padding-top: 18px; min-height: 118px; justify-content: space-between; }
  .header-inner nav { order: 3; width: 100%; justify-content: space-between; margin: 10px 0 0; gap: 10px; }
  .header-inner nav a { font-size: 12px; padding: 12px 0; }
  .brand span { font-size: 24px; }
  .brand small { font-size: 9px; }
  .brand svg { width: 35px; }
  .cart-label { display: inline; }
  .hero { gap: 25px; }
  .hero h1 { font-size: 48px; }
  .hero-main { height: 350px; }
  .hero-thumbs figure { height: 100px; }
  .hero-actions { gap: 15px; }
  .hero-actions .button { padding: 12px 16px; }
  .hero-lines { font-size: 12px; }
  .round-seal { width: 75px; height: 75px; font-size: 12px; right: -8px; }
  .ticker .container { gap: 12px; font-size: 12px; }
  .story { gap: 40px; }
  .story-image { height: 440px; }
  .story-copy h2 { font-size: 37px; }
  .why-layout { grid-template-columns: 1fr; gap: 20px; }
  .why-layout h2 br { display: none; }
  .promo-copy { padding: 30px; }
  .promo-photo { min-height: 390px; }
  .section-head { flex-direction: column; align-items: start; gap: 20px; }
  .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .articles summary { grid-template-columns: 130px 1fr 25px; gap: 16px; }
  .articles summary h3 { font-size: 21px; }
  .articles details>p { margin-left: 146px; }
  .review-layout { gap: 30px; }
  .review-layout h2 { font-size: 33px; }
  .review-message { font-size: 21px; }
  .privacy-strip { flex-direction: column; align-items: start; gap: 10px; }
  .footer-main { gap: 30px; }
  .footer-bottom { flex-direction: column; gap: 15px; }
  .contact-grid { gap: 30px; }
}
@media(max-width:600px) {
  .container { width: calc(100% - 40px); }
  .topbar .container { min-height: 31px; justify-content: center; font-size: 10px; }
  .topbar a { display: none; }
  .header-inner { padding-top: 12px; min-height: 113px; }
  .brand span { font-size: 24px; }
  .brand svg { height: 35px; }
  .header-inner nav { flex-wrap: wrap; justify-content: flex-start; column-gap: 18px; row-gap: 0; margin-top: 6px; padding-bottom: 6px; }
  .header-inner nav a { font-size: 11px; min-height: 38px; padding-block: 9px; }
  .cart-button { padding-left: 12px; }
  .cart-label { display: none; }
  .hero { grid-template-columns: 1fr; gap: 32px; padding-top: 30px; padding-bottom: 32px; }
  .hero-copy { padding: 0; }
  .hero .eyebrow { font-size: 11px; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(43px,11.7vw,66px); line-height: 1.15; margin-bottom: 22px; }
  .hero-lines { font-size: 13px; line-height: 1.8; }
  .hero-actions { margin-top: 22px; gap: 16px; }
  .hero-actions .button, .hero-actions .text-link { font-size: 13px; }
  .hero-actions .button { gap: 15px; }
  .hero-main { height: 340px; }
  .hero-thumbs figure { height: 110px; }
  .hero-thumbs { gap: 8px; margin-top: 8px; }
  .hero-thumbs figcaption { font-size: 10px; left: 7px; bottom: 7px; }
  .round-seal { right: 10px; top: 15px; }
  .ticker .container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 15px; padding-block: 17px; text-align: center; }
  .ticker b { display: none; }
  .story { grid-template-columns: 1fr; gap: 40px; }
  .story-image { height: 390px; width: calc(100% - 12px); }
  .image-tag { right: -12px; bottom: 17px; font-size: 20px; }
  .story-copy h2 { font-size: 40px; }
  .story-copy p:not(.eyebrow) { font-size: 15px; }
  .reason-list article { gap: 20px; }
  .reason-list h3 { font-size: 21px; }
  .promo { grid-template-columns: 1fr; }
  .promo-copy { padding: 32px 24px; }
  .promo h2 { font-size: 43px; }
  .promo-photo { min-height: 300px; }
  .section-head { gap: 15px; }
  .section-head>p { font-size: 13px; }
  .filters { gap: 8px; margin-bottom: 25px; }
  .filter { padding: 8px 14px; font-size: 12px; }
  .service-grid { gap: 32px 15px; }
  .service-image { aspect-ratio: .85; }
  .service-info { padding-top: 12px; }
  .service-info h3 { font-size: 17px; line-height: 1.4; }
  .service-info>p { font-size: 12px; min-height: 65px; margin-bottom: 12px; }
  .price-row { display: flex; flex-direction: column; align-items: start; gap: 2px; }
  .price-row>span { font-size: 10px; }
  .price-row strong { font-size: 20px; }
  .service-info .text-button { font-size: 11px; gap: 6px; min-height: 44px; white-space: nowrap; }
  .quick-add { right: 9px; bottom: 9px; width: 38px; height: 38px; }
  .serial { left: 9px; top: 9px; font-size: 10px; }
  .articles summary { grid-template-columns: minmax(0,1fr) 25px; row-gap: 12px; padding-block: 22px; }
  .articles summary>span { grid-column: 1/-1; }
  .articles summary h3 { font-size: 21px; }
  .articles details>p { margin: 0 0 25px; font-size: 14px; }
  .review-layout { grid-template-columns: 1fr; gap: 18px; }
  .review-layout>div { padding-left: 22px; }
  .review-layout h2 { font-size: 34px; }
  .review-layout>div>p:not(.review-message) { font-size: 14px; }
  .privacy-strip .text-link { font-size: 12px; gap: 15px; }
  .privacy-strip p { font-size: 13px; }
  .terms summary { font-size: 14px; align-items: center; }
  .terms p { font-size: 14px; }
  .contact-band { padding-block: 55px; }
  .contact-band h2 { font-size: 43px; }
  .contact-actions { flex-direction: column; align-items: start; gap: 12px; }
  .contact-actions .button { font-size: 13px; }
  .footer-main { flex-direction: column; gap: 25px; }
  .footer-brand { font-size: 52px; }
  .footer-contact { align-self: start; font-size: 16px; }
  .footer-bottom nav { gap: 15px; }
  .footer-main address { font-size: 13px; }
  .page-intro { padding-top: 45px; }
  .page-intro h1 { font-size: 45px; }
  .page-intro .lead { font-size: 16px; }
  .prose-block { grid-template-columns: 1fr; }
  .prose-block h2 { font-size: 35px; }
  .contact-grid { grid-template-columns: 1fr; padding-top: 15px; }
  .map-wrap iframe { height: 340px; }
  .contact-details strong { font-size: 22px; }
  .legal h2 { font-size: 26px; }
  .cart-drawer { padding: 22px 20px; }
  .cart-head h2 { font-size: 25px; }
}
@media(max-width:360px) {
  .header-inner nav { gap: 0 16px; }
  .header-inner nav a { font-size: 10px; }
  .hero-actions { gap: 10px; }
  .hero-actions .button { padding-inline: 12px; }
  .hero h1 { font-size: 42px; }
  .hero-main { height: 300px; }
  .hero-thumbs figure { height: 90px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-image { aspect-ratio: 1.1; }
  .service-info>p { min-height: auto; }
  .service-info h3 { font-size: 22px; }
  .service-info .text-button { font-size: 14px; }
  .price-row { flex-direction: row; align-items: center; }
  .page-intro h1 { font-size: 38px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
/* ภาพต้อนรับ 4 ภาพ ขนาดใหญ่แบบตาราง 2 คอลัมน์ */
.hero-gallery { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.hero-thumbs { display: contents; }
.hero-main, .hero-thumbs figure { height: 270px; }
.hero-main figcaption { font-size: 10px; left: 10px; bottom: 10px; padding: 4px 8px; }
.round-seal { width: 75px; height: 75px; font-size: 12px; right: -10px; top: 15px; }
@media(max-width:1100px) { .hero-main, .hero-thumbs figure { height: 245px; } }
@media(max-width:850px) { .hero-main, .hero-thumbs figure { height: 235px; } .hero-gallery { gap: 8px; } }
@media(max-width:600px) { .hero-main, .hero-thumbs figure { height: 230px; } .hero-main figcaption { font-size: 9px; left: 7px; right: 7px; text-align: center; } .round-seal { width: 65px; height: 65px; right: -6px; font-size: 11px; } }
@media(max-width:360px) { .hero-main, .hero-thumbs figure { height: 200px; } }

/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4
 * redesign: Photographic · theme: Atelier dark gold · nav: N9 · footer: Ft1
 * Reference-led refinement of the existing five-page site.
 */
:root {
  --color-paper: #f7f5ef;
  --color-ink: #202521;
  --color-muted: #6c6d65;
  --color-line: #dedbd1;
  --color-accent: #bd9d61;
  --color-blue: #756039;
  --color-light: #fdfbf6;
  --color-lime: #dfcfa9;
  --color-photo: #e8e4da;
  --color-overlay: #101410b3;
  --color-charcoal: #151715;
  --color-gold-light: #dbc48d;
  --color-hero-copy: #e0e1d9;
  --color-hero-shade: #101511d9;
  --color-hero-edge: #10151126;
  --color-rule-dark: #ffffff24;
}
h1, h2, h3 { font-weight: 500; letter-spacing: -.025em; }
h2 { font-size: clamp(30px,3.1vw,45px); line-height: 1.35; }
.eyebrow { color: var(--color-blue); font-size: 12px; letter-spacing: .12em; font-weight: 500; }
.topbar { background: var(--color-charcoal); color: var(--color-gold-light); border-bottom: 1px solid var(--color-rule-dark); }
.topbar .container { min-height: 30px; font-size: 11px; }
#site-header { background: var(--color-charcoal); color: var(--color-paper); border-color: var(--color-rule-dark); }
.header-inner { min-height: 91px; }
.brand { color: var(--color-gold-light); }
.brand svg { width: 38px; stroke-width: 1; }
.brand span { font-weight: 500; letter-spacing: .01em; font-size: 29px; }
.brand small { color: var(--color-hero-copy); font-size: 9px; letter-spacing: .08em; }
.header-inner nav a { font-weight: 400; font-size: 13px; }
.header-inner nav a:hover, .header-inner nav a[aria-current] { color: var(--color-gold-light); }
.header-inner nav a[aria-current] { box-shadow: 0 1px var(--color-accent); }
.cart-button { border-color: var(--color-rule-dark); }
#cart-count { background: var(--color-accent); color: var(--color-charcoal); }
.button { border: 1px solid var(--color-accent); border-radius: 2px; padding: 13px 25px; background: var(--color-accent); color: var(--color-charcoal); font-weight: 500; box-shadow: none; }
.button:hover { background: var(--color-gold-light); transform: translateY(-2px); }
.button.outline-light { border-color: var(--color-gold-light); color: var(--color-paper); }
.button.dark { border-color: var(--color-charcoal); background: var(--color-charcoal); }
.button.dark:hover { background: var(--color-ink); }
.text-link { font-size: 14px; gap: 25px; border-color: var(--color-accent); }
.atelier-hero { position: relative; isolation: isolate; min-height: 730px; background: var(--color-charcoal); color: var(--color-light); display: grid; align-items: center; }
.atelier-backdrop { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 65% 52%; }
.atelier-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,var(--color-hero-shade) 0%,var(--color-overlay) 47%,var(--color-hero-edge) 100%); }
.atelier-hero-content { padding-block: 78px 62px; }
.atelier-hero .eyebrow { color: var(--color-gold-light); margin-bottom: 24px; }
.atelier-hero h1 { font-size: clamp(40px,4.3vw,64px); line-height: 1.3; font-weight: 500; max-width: 920px; margin-bottom: 23px; }
.atelier-hero h1 span { color: var(--color-gold-light); }
.atelier-subtitle { color: var(--color-hero-copy); font-size: 16px; line-height: 1.9; max-width: 750px; }
.atelier-hero .hero-actions { margin-top: 28px; margin-bottom: 35px; gap: 15px; }
.atelier-hero .hero-lines { border-top: 1px solid var(--color-rule-dark); padding-top: 23px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-width: 700px; gap: 4px 30px; color: var(--color-hero-copy); font-size: 12px; }
.atelier-gallery-section { padding-block: 73px 45px; }
.atelier-section-title { text-align: center; max-width: 850px; margin: 0 auto 38px; }
.atelier-section-title .eyebrow { margin-bottom: 13px; }
.atelier-section-title h2 { margin-bottom: 17px; font-size: clamp(29px,3vw,42px); }
.atelier-section-title>p:last-child { font-size: 14px; color: var(--color-muted); }
.atelier-gallery { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.atelier-gallery figure { min-width: 0; }
.atelier-gallery img { height: 310px; width: 100%; filter: saturate(.65); }
.atelier-gallery figure:first-child img { object-position: 65%; }
.atelier-gallery figcaption { padding-block: 16px; border-bottom: 1px solid var(--color-line); font-size: 17px; }
.atelier-gallery figcaption span { font-size: 10px; color: var(--color-blue); margin-right: 13px; }
.gallery-note { text-align: center; margin: 22px 0 0; font-size: 11px; }
.ticker { background: var(--color-paper); color: var(--color-blue); border-block: 1px solid var(--color-line); }
.ticker .container { min-height: 62px; font-size: 13px; letter-spacing: .04em; }
.ticker b { font-size: 16px; color: var(--color-accent); }
.story { gap: clamp(40px,8vw,115px); }
.story-image { height: 560px; }
.story-image img { filter: saturate(.65); }
.story-copy h2 { font-weight: 500; font-size: clamp(35px,3.6vw,50px); }
.story-copy .accent-text { color: var(--color-blue); }
.image-tag { background: var(--color-charcoal); color: var(--color-gold-light); padding: 14px 27px; font-size: 15px; transform: none; right: 0; bottom: 0; }
.why { background: var(--color-charcoal); }
.why .eyebrow { color: var(--color-gold-light); }
.reason-list article { border-color: var(--color-rule-dark); }
.reason-list article>span { color: var(--color-gold-light); }
.reason-list h3 { font-size: 22px; font-weight: 400; }
.reason-list p { color: var(--color-hero-copy); }
.promo { background: var(--color-charcoal); color: var(--color-paper); }
.promo .eyebrow { color: var(--color-gold-light); }
.promo h2 { font-size: clamp(34px,3.5vw,49px); font-weight: 500; }
.promo-copy p:not(.eyebrow) { color: var(--color-hero-copy); }
.promo .button.dark { background: var(--color-accent); color: var(--color-charcoal); border-color: var(--color-accent); }
.promo-photo img { filter: saturate(.6); }
.stamp { background: var(--color-charcoal); color: var(--color-gold-light); border-color: var(--color-gold-light); font-size: 16px; font-weight: 400; transform: none; top: auto; bottom: 24px; right: 24px; padding: 18px; }
.section-head { margin-bottom: 40px; }
.service-grid { gap: 50px 28px; }
.service-image { aspect-ratio: 1; }
.service-image img { filter: saturate(.7); }
.quick-add { border-color: var(--color-line); }
.serial { color: var(--color-blue); }
.service-info h3 { font-weight: 500; }
.price-row strong { color: var(--color-blue); font-weight: 500; }
.filter { border-radius: 2px; }
.filter.active { background: var(--color-charcoal); }
.review-layout>div { border-width: 1px; border-color: var(--color-accent); }
.contact-band { background: var(--color-charcoal); color: var(--color-paper); border-top: 1px solid var(--color-rule-dark); text-align: center; }
.contact-band .eyebrow { color: var(--color-gold-light); }
.contact-band h2 { font-weight: 400; }
.contact-band h2>span { color: var(--color-gold-light); }
.contact-actions { justify-content: center; }
.contact-band .container>p:last-child { color: var(--color-hero-copy); }
footer { background: var(--color-charcoal); border-top: 1px solid var(--color-rule-dark); }
.footer-brand { color: var(--color-gold-light); font-weight: 400; }
.footer-brand span { color: var(--color-accent); }
.footer-bottom { border-color: var(--color-rule-dark); }
.page-intro { padding-block: 80px 40px; border-bottom: 1px solid var(--color-line); }
.page-intro h1 { font-size: clamp(43px,5.3vw,74px); font-weight: 500; }
.page-intro h1 span { color: var(--color-blue); }
.page-intro .lead { font-size: 16px; }
@media(max-width:1100px) {
  .atelier-hero { min-height: 670px; }
  .atelier-gallery img { height: 265px; }
  .header-inner nav a { font-size: 12px; }
}
@media(max-width:850px) {
  .header-inner { padding-top: 18px; min-height: 124px; }
  .atelier-hero h1 { font-size: 45px; }
  .atelier-hero::before { background: linear-gradient(90deg,var(--color-hero-shade),var(--color-overlay)); }
  .atelier-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 20px; }
  .atelier-gallery img { height: 320px; }
  .atelier-hero .hero-lines { max-width: 650px; gap: 4px 20px; }
  .story-image { height: 500px; }
}
@media(max-width:600px) {
  .topbar .container { min-height: 29px; font-size: 10px; }
  .header-inner { min-height: 125px; padding-top: 13px; }
  .header-inner nav { padding-bottom: 8px; }
  .header-inner nav a { font-size: 11px; }
  .brand span { font-size: 27px; }
  .brand small { font-size: 9px; }
  .atelier-hero { min-height: 780px; }
  .atelier-hero-content { padding-block: 55px 43px; }
  .atelier-backdrop { object-position: 65% 50%; }
  .atelier-hero h1 { font-size: clamp(34px,8.7vw,47px); line-height: 1.4; }
  .atelier-subtitle { font-size: 14px; }
  .atelier-hero .hero-actions { flex-direction: column; align-items: flex-start; gap: 12px; margin-block: 25px; }
  .atelier-hero .hero-lines { grid-template-columns: 1fr; font-size: 12px; gap: 4px; padding-top: 20px; }
  .atelier-hero .eyebrow { font-size: 11px; }
  .atelier-hero .button { min-height: 49px; font-size: 13px; padding: 12px 20px; }
  .atelier-gallery-section { padding-block: 55px 35px; }
  .atelier-section-title { text-align: left; }
  .atelier-section-title h2 { font-size: 30px; }
  .atelier-section-title .eyebrow { font-size: 11px; }
  .atelier-gallery { gap: 20px 13px; }
  .atelier-gallery img { height: 230px; }
  .atelier-gallery figcaption { font-size: 14px; }
  .atelier-gallery figcaption span { margin-right: 6px; font-size: 9px; }
  .story-image { height: 400px; width: 100%; }
  .story-copy h2 { font-size: 38px; }
  .promo-photo { min-height: 330px; }
  .promo h2 { font-size: 38px; }
  .service-grid { gap: 36px 15px; }
  .service-info h3 { font-size: 17px; }
  .service-image { aspect-ratio: .85; }
  .contact-band { text-align: left; }
  .contact-band h2 { font-size: 40px; }
  .contact-actions { align-items: flex-start; }
  .page-intro { padding-block: 45px 25px; }
  .page-intro h1 { font-size: 41px; }
}
@media(max-width:360px) {
  .header-inner nav a { font-size: 10px; }
  .atelier-hero h1 { font-size: 34px; }
  .atelier-gallery img { height: 205px; }
  .atelier-gallery figcaption { font-size: 12px; }
  .service-image { aspect-ratio: 1.1; }
  .service-info h3 { font-size: 22px; }
  .page-intro h1 { font-size: 36px; }
}
