/* v0.3: responsive customer journey. Keep mobile navigation inside the header bounds. */
:root { --km-menu-room: calc(100dvh - 160px); }
html { scroll-padding-top: 120px; }
body { overflow-wrap: break-word; }
h1,h2,h3,h4 { letter-spacing: 0; line-height: 1.4; }
.site-container > *, .km-actions > *, .site-header__inner > *, .footer-grid > * { min-width: 0; }
.site-header { background: #fffaf4; backdrop-filter: none; }
.brand-mark__text strong { line-height: 1.4; }
.brand-mark__text small { letter-spacing: .12em; }
.button,button { min-height: 44px; cursor: pointer; }
button:disabled { opacity: .4; cursor: default; }
.button { white-space: normal; text-align: center; }
iframe { max-width:100%; border:0; }
figure { margin:0; }
.section { padding-block:80px; }
.km-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.km-actions a:not(.button) { padding-block:10px; font-weight:700; }
.km-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:32px; }
.km-section-heading h2 { margin-bottom:0; font-size:clamp(1.7rem,3vw,2.8rem); }
.km-section-heading > a { flex-shrink:0; font-weight:700; padding-block:8px; }
.km-section-heading p:last-child { margin-bottom:0; }
.km-muted { color:var(--muted); font-size:.85rem; margin-top:18px; }
.km-hero { color:#fff; background:linear-gradient(115deg,#510b12,#91131b); padding:64px 0 56px; }
.km-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; }
.km-hero-copy { min-width:0; }
.km-hero h1 { font-size:clamp(2.1rem,3.7vw,3.8rem); line-height:1.35; margin:16px 0; text-wrap:initial; }
.km-hero h1 span { color:#edcc83; font-size:.75em; }
.km-business-name { font-weight:700; font-size:1.08rem; }
.km-hero-copy > p:not(.eyebrow) { color:#f8e7df; max-width:38em; }
.km-hero .km-actions { margin-top:26px; }
.km-hero-links { display:flex; flex-wrap:wrap; gap:24px; margin-top:20px; font-size:.85rem; }
.km-hero-links a { padding-block:8px; }
.km-hero-visual { position:relative; border-radius:28px; overflow:hidden; border:1px solid #d4ad6477; background:#400910; }
.km-hero-visual img { width:100%; height:420px; object-fit:cover; object-position:65% center; }
.km-hero-visual figcaption { padding:16px 20px; font-size:.85rem; background:#31080d; color:#f7e0ba; }
.km-hero-visual small { display:block; color:#ddc3b8; font-size:.68rem; margin-top:4px; }
.km-location-strip { background:#f0ddba; color:#4b3021; font-size:.84rem; }
.km-location-strip > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-block:16px; }
.km-location-strip a { font-weight:700; }
.km-price-layout { display:grid; grid-template-columns:.75fr 1.25fr; border:1px solid var(--line); border-radius:22px; overflow:hidden; background:#fff; }
.km-price-summary { background:#fff3dd; padding:30px; }
.km-price-summary h3 { font-size:1.6rem; color:var(--red-dark); }
.km-price-notice { padding:14px; border-left:3px solid var(--gold); background:#ffffff99; font-size:.9rem; }
.km-price-table-wrap { min-width:0; }
.km-price-table { border-collapse:collapse; width:100%; font-size:.93rem; table-layout:fixed; }
.km-price-table caption { text-align:left; padding:20px 22px; font-weight:700; }
.km-price-table th,.km-price-table td { padding:13px 20px; border-bottom:1px solid #eee6dc; text-align:left; overflow-wrap:anywhere; }
.km-price-table thead { background:#f8f3ec; }
.km-price-table td:nth-child(2) { color:var(--red-dark); font-weight:800; font-variant-numeric:tabular-nums; }
.km-price-table th:first-child { width:42%; }
.km-price-table td:last-child { font-size:.78rem; color:var(--muted); }
.km-chart-panel { margin-top:42px; padding:28px; border:1px solid var(--line); border-radius:22px; background:#fff; }
.km-chart-panel .km-section-heading { align-items:flex-start; }
.km-chart-panel h3 { font-size:1.3rem; margin-bottom:8px; }
.km-chart-panel p { font-size:.84rem; }
.km-chart { height:450px; background:#f8f4ee; border-radius:12px; overflow:hidden; }
.km-chart-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; height:100%; padding:24px; }
.km-chart-placeholder[hidden] { display:none; }
.km-chart-placeholder small { max-width:38em; color:var(--muted); font-size:.77rem; }
.km-market-label { font-size:clamp(2rem,5vw,4rem); font-weight:800; color:var(--red-dark); letter-spacing:.07em; }
.km-chart .tradingview-widget-container { width:100%; height:100%; }
.km-chart .tradingview-widget-container__widget { height:calc(100% - 32px); width:100%; }
.km-chart-attribution { display:block; height:32px; text-align:center; font-size:12px; padding:4px; }
.km-chart-status { min-height:1.6em; margin:12px 0 0; }
.km-story { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.km-story img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:24px; }
.km-story figcaption { font-size:.7rem; color:var(--muted); padding-top:8px; }
.km-story h2 { font-size:clamp(2rem,3.4vw,3.2rem); }
.km-gold-text { color:#8c6419; }
.km-facts { margin-top:48px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-block:1px solid #d5bd9277; }
.km-facts > div { padding:28px; display:flex; flex-direction:column; gap:6px; text-align:center; }
.km-facts > div + div { border-left:1px solid #d5bd9277; }
.km-facts strong { font-size:clamp(1.25rem,2vw,2rem); color:var(--red-dark); }
.km-facts span,.km-facts a { font-size:.85rem; }
.km-service-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.km-service-grid.km-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.km-service-grid article { padding:28px; border:1px solid var(--line); border-radius:20px; background:#fff; display:flex; flex-direction:column; align-items:flex-start; }
.km-service-grid article h3 { font-size:1.2rem; margin:22px 0 12px; }
.km-service-grid article p { color:var(--muted); font-size:.9rem; }
.km-service-grid article a { margin-top:auto; font-size:.85rem; font-weight:700; padding:10px 0; color:var(--red-dark); }
.km-card-index { font-size:.85rem; border-bottom:2px solid var(--gold); padding-bottom:8px; color:#855c14; font-weight:800; }
.km-callout { padding-block:48px; background:linear-gradient(110deg,#610c13,#971920); color:#fff; }
.km-callout > div { display:flex; justify-content:space-between; align-items:center; gap:32px; }
.km-callout h2 { font-size:clamp(1.6rem,2.8vw,2.5rem); margin:8px 0 12px; }
.km-callout p { margin-bottom:0; color:#f1ddd2; }
.km-callout > div > .button { flex-shrink:0; }
.km-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.km-product { border:1px solid var(--line); padding:34px; border-radius:20px; display:flex; flex-direction:column; background:#faf5e7; }
.km-product--silver { background:#f0f2f3; }
.km-product--nak { background:#f9ebe6; }
.km-product-label { font-size:.78rem; letter-spacing:.18em; font-weight:700; color:#70501c; }
.km-product h3 { font-size:2.3rem; margin:26px 0 12px; }
.km-product small { color:var(--muted); display:block; margin-bottom:24px; }
.km-product a { margin-top:auto; padding-top:18px; border-top:1px solid var(--line); color:var(--red-dark); font-weight:700; }
.km-reviews { background:#f8efdf; }
.km-review-empty { background:#fff; padding:36px; border-radius:20px; border-left:4px solid var(--gold); }
.km-review-empty p { max-width:50em; }
.km-review-track { display:flex; overflow-x:auto; gap:20px; scroll-snap-type:x mandatory; scroll-padding-inline:2px; padding:6px 2px 20px; }
.km-review { flex:0 0 calc(50% - 10px); scroll-snap-align:start; padding:30px; border-radius:20px; background:#fff; }
.km-review blockquote { margin:0 0 22px; }
.km-review figcaption { color:var(--muted); font-size:.85rem; }
.km-review-controls { display:flex; justify-content:flex-end; gap:10px; }
.km-review-controls button { width:48px; border:1px solid var(--line); border-radius:50%; color:var(--red-dark); background:white; }
.km-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-bottom:24px; }
.km-gallery img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; }
.km-location-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:22px; }
.km-location-card { border:1px solid var(--line); padding:34px; background:#fff; border-radius:22px; }
.km-location-card address { font-style:normal; margin:18px 0; }
.km-location-card--red { background:var(--red-dark); color:#fff; }
.km-location-card--red [data-copy-status] { font-size:.83rem; margin:12px 0 0; }
.km-other-branches { margin-top:32px; }
.km-faq { background:#fff; }
.faq-list summary { min-height:56px; gap:18px; line-height:1.65; }
.faq-list summary > span { flex-shrink:0; }
.contact-methods__id [data-copy-status] { display:block; font-size:.8rem; margin-top:8px; }
.km-back-top { position:fixed; right:18px; bottom:18px; width:44px; height:44px; display:grid; place-items:center; z-index:500; border-radius:50%; background:#fff; border:1px solid var(--line); color:var(--red-dark); box-shadow:0 4px 20px #31080d22; text-decoration:none; }
.km-mobile-contact { display:none; }
.entry-content { max-width:760px; margin-inline:auto; }
.entry-content table { display:block; overflow-x:auto; max-width:100%; }
.entry-content pre { overflow-x:auto; max-width:100%; }
.entry-content img { height:auto; }
[id] { scroll-margin-top:110px; }

@media(max-width:1080px) {
  .site-header__inner { flex-wrap:wrap; gap:16px; padding-block:10px; min-height:82px; }
  .site-branding { flex:1; }
  .brand-mark__text { max-width:450px; }
  .menu-toggle { display:none; }
  .km-js .menu-toggle { display:grid; flex:0 0 48px; width:48px; height:48px; }
  .site-navigation, .admin-bar .site-navigation { position:static; transform:none; transition:none; visibility:visible; display:flex; flex-basis:100%; flex-direction:column; align-items:stretch; padding:16px; gap:14px; background:#fffaf4; overflow-y:auto; }
  .km-js .site-navigation { display:none; position:absolute; top:100%; right:0; left:0; bottom:auto; max-height:var(--km-menu-room); overscroll-behavior:contain; box-shadow:0 14px 24px #31080d18; border-top:1px solid var(--line); padding:12px 22px 22px; }
  .km-js .site-navigation.is-open { display:flex; }
  .site-navigation .primary-menu { flex-direction:column; gap:0; align-items:stretch; }
  .primary-menu a { display:block; padding:12px 6px; min-height:48px; font-size:1rem; }
  .primary-menu li { border-bottom:1px solid var(--line); }
  .site-navigation .header-cta { width:100%; }
  .primary-menu a::after { display:none; }
  .km-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .km-hero-grid { gap:30px; }
  .km-hero h1 { font-size:2.4rem; }
  .km-hero-visual img { height:380px; }
}
@media(max-width:900px) {
  .km-hero-grid,.km-story,.km-price-layout,.km-location-grid { grid-template-columns:minmax(0,1fr); }
  .km-hero { padding-block:40px; }
  .km-hero-grid { gap:32px; }
  .km-hero-copy { max-width:660px; }
  .km-hero-visual img { height:auto; aspect-ratio:16/10; }
  .km-story { gap:30px; }
  .km-section-heading { align-items:flex-start; flex-direction:column; gap:14px; }
  .km-service-grid.km-three,.km-products { grid-template-columns:minmax(0,1fr); }
  .km-product { padding:28px; }
  .km-product h3 { margin-top:14px; }
  .km-callout > div { flex-direction:column; align-items:flex-start; }
  .km-location-strip > div { justify-content:flex-start; }
}
@media(max-width:620px) {
  body { padding-bottom:calc(68px + env(safe-area-inset-bottom)); }
  .site-container { width:calc(100% - 36px); }
  .section { padding-block:48px; }
  .site-header__inner { min-height:78px; gap:12px; }
  .brand-mark { gap:10px; }
  .brand-mark__seal { width:38px; height:38px; }
  .brand-mark__text strong { font-size:.84rem; line-height:1.45; text-wrap:initial; }
  .brand-mark__text small { font-size:.54rem; letter-spacing:.08em; }
  .brand-mark__text { max-width:260px; }
  .km-js .menu-toggle { flex-basis:44px; width:44px; height:44px; }
  .admin-bar .site-header { top:0; }
  .km-hero { padding:30px 0 26px; }
  .km-hero h1 { font-size:clamp(1.75rem,7.2vw,2.5rem); }
  .km-hero-copy > p:not(.eyebrow) { font-size:.92rem; }
  .km-business-name { line-height:1.65; }
  .km-hero .eyebrow { font-size:.65rem; letter-spacing:.08em; }
  .km-actions { gap:10px; }
  .km-hero .km-actions > .button { width:100%; }
  .km-hero-links { justify-content:space-between; gap:12px; }
  .km-hero-visual { border-radius:18px; }
  .km-hero-visual img { aspect-ratio:4/3; }
  .km-hero-visual figcaption { padding:12px 14px; font-size:.76rem; }
  .km-location-strip > div { display:grid; gap:6px; font-size:.76rem; }
  .km-section-heading h2,h2 { font-size:1.65rem; line-height:1.45; }
  .km-section-heading > a { font-size:.85rem; flex-shrink:1; }
  .km-price-summary { padding:22px; }
  .km-price-table { font-size:.78rem; }
  .km-price-table caption { padding:16px 12px; }
  .km-price-table th,.km-price-table td { padding:12px 9px; }
  .km-price-table td:last-child { font-size:.7rem; }
  .km-chart-panel { padding:18px; }
  .km-chart { height:420px; }
  .km-chart-placeholder { padding:16px; }
  .km-facts { grid-template-columns:minmax(0,1fr); margin-top:30px; }
  .km-facts > div { padding:20px; }
  .km-facts > div + div { border-left:0; border-top:1px solid #d5bd9277; }
  .km-service-grid { grid-template-columns:minmax(0,1fr); }
  .km-service-grid article { padding:24px; }
  .km-callout { padding-block:36px; }
  .km-callout .km-actions { width:100%; }
  .km-callout .button { width:100%; }
  .km-review-empty,.km-review { padding:24px; }
  .km-review { flex-basis:90%; }
  .km-gallery { grid-template-columns:minmax(0,1fr); }
  .km-location-card { padding:24px; }
  .km-location-card .button { width:100%; }
  .km-back-top { bottom:calc(80px + env(safe-area-inset-bottom)); right:12px; }
  .km-mobile-contact { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; position:fixed; inset:auto 0 0; z-index:1100; border-top:1px solid #e4d3b4; background:#fffaf4; padding:8px 10px calc(8px + env(safe-area-inset-bottom)); gap:8px; }
  .km-mobile-contact a { display:grid; place-items:center; min-height:44px; padding:8px; border-radius:10px; background:var(--red-dark); color:#fff; font-size:.82rem; font-weight:700; text-decoration:none; }
  .km-mobile-contact a:nth-child(2) { background:#206343; }
  .km-mobile-contact a:nth-child(3) { background:#f0e1c5; color:#49331c; }
  .content-shell,.inner-hero { padding-block:40px; }
  .content-shell h1,.inner-hero h1 { font-size:2rem; line-height:1.4; }
  .inner-hero__lead { font-size:1rem; }
  .inner-hero::after { display:none; }
  .timeline li { grid-template-columns:40px minmax(0,1fr); gap:14px; }
  .faq-list summary { font-size:.95rem; }
  .contact-card__details { min-width:0; }
}
