/*
Theme Name: JennAir Houston
Template: bosch-houston-theme
Description: JennAir Houston child theme of the Houston line. "Graphite Knurl" skin: graphite and slate surfaces, cool polished chrome, diamond knurl texture, tall column panels with bar handles, wide-tracked geometric capitals, square edges. Loaded after the parent stylesheet.
Version: 1.0.0
Text Domain: jennair-houston
*/

/* ---------- 1. Tokens ---------- */
:root{
  --paper:#F2F3F2;
  --paper-2:#E6E9E8;
  --white:#FFFFFF;
  --ink:#1B1F1F;
  --ink-2:#3C4343;
  --muted:#6A7272;
  --line:#D3D8D7;
  --line-dark:#3A4242;
  --on-dark:#EEF0EF;
  --on-dark-2:#C9CFCE;
  --on-dark-3:#93A09F;
  --amber:#4D5656;
  --ja-slate:#4D5656;
  --ja-slate-2:#5E6969;
  --ja-slate-light:#B9C4C3;
  --ja-graphite:#1B1F1F;
  --ja-graphite-2:#252A2A;
  --ja-graphite-3:#2F3535;
  --ja-chrome:linear-gradient(180deg,#FFFFFF 0%,#DDE2E3 22%,#AEB8BA 48%,#8D989A 53%,#CBD2D4 80%,#F2F4F5 100%);
  --ja-chrome-v:linear-gradient(90deg,#8B9698 0%,#E8ECED 22%,#FFFFFF 38%,#B7C0C2 60%,#E4E8E9 82%,#97A2A4 100%);
  --ja-chrome-dark:linear-gradient(180deg,#6C7777 0%,#3A4242 48%,#262B2B 52%,#454E4E 100%);
  --ja-knurl:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 1px,transparent 1px 7px),repeating-linear-gradient(-45deg,rgba(0,0,0,.35) 0 1px,transparent 1px 7px);
  --display:"Jost","Futura",system-ui,sans-serif;
  --body:"Figtree",system-ui,sans-serif;
  --mono:"Azeret Mono",ui-monospace,monospace;
  --r:2px;
}

/* ---------- 2. Base ---------- */
body{background:var(--paper);font-family:var(--body)}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:.06em;line-height:1.08;text-transform:uppercase}
h1{font-size:clamp(38px,5vw,74px);font-weight:300;letter-spacing:.08em}
h2{font-size:clamp(28px,3.4vw,48px);font-weight:300}
h3{font-weight:500;letter-spacing:.1em}
h2.lede{font-family:var(--body);font-weight:400;font-size:clamp(17px,1.5vw,20px);line-height:1.6;letter-spacing:0;text-transform:none}
h1 em,h2 em{font-style:normal;font-weight:500;background:var(--ja-chrome);-webkit-background-clip:text;background-clip:text;color:transparent}
.kicker,.sec-num,.ticket-head span,.zip label,.lrow em{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase}
.kicker::before{width:22px;height:2px;border-radius:0;background:var(--ja-slate);box-shadow:none}
.dot{background:var(--ja-slate-light);box-shadow:0 0 0 3px rgba(77,86,86,.28)}
.hx-head{background:var(--ja-graphite);color:var(--on-dark);border-bottom:0;box-shadow:0 1px 0 #5C6767}
.hx-head a{color:inherit}
.nav-toggle{border-color:#6F7B7B;color:var(--on-dark)}
@media (max-width:1060px){.hx-head .main-nav{background:var(--ja-graphite);border-bottom-color:#5C6767}.hx-head .main-nav a{border-bottom-color:var(--line-dark)}}
.btn{border-radius:var(--r);clip-path:none;font-family:var(--display);font-weight:500;letter-spacing:.16em;text-transform:uppercase;font-size:14.5px}
.btn-signal,.btn-primary{background:var(--ja-slate);--bg:var(--ja-slate);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25)}
.btn-signal:hover,.btn-primary:hover{background:var(--ja-slate-2)}
.chips a{border-radius:var(--r)}
.sec-num{border-top:0;display:flex;align-items:center;gap:14px}
.sec-num span:first-child{font-family:var(--display);font-weight:300;font-size:30px;letter-spacing:.04em;color:var(--ja-slate);padding-right:14px;border-right:1px solid currentColor}
.is-dark .sec-num span:first-child{color:var(--ja-slate-light)}
.is-dark{background:var(--ja-graphite)}
.county-hero{background:var(--ja-graphite)}
.county-hero h1 .hx-red{color:var(--ja-slate-light)}
.hx-lead{border-left:2px solid var(--ja-slate);padding-left:18px}
.ticket{border-radius:var(--r);border:0;box-shadow:none;overflow:hidden;background:#fff}
.ticket::before,.ticket::after{display:none}
.ticket-head{background:var(--ja-graphite-2);border-bottom:1px solid var(--line-dark)}
.ticket-head b{color:var(--on-dark);font-family:var(--display);font-weight:400;letter-spacing:.12em;text-transform:uppercase;font-size:18px}
.ticket-head span{color:var(--on-dark-3)}
#schedule-appointment input,#schedule-appointment select,#schedule-appointment textarea{border-radius:var(--r)}
#schedule-appointment button,#schedule-appointment input[type="submit"]{background:var(--ja-slate);border-radius:var(--r);text-transform:uppercase;letter-spacing:.14em}
.rail-box{border-radius:var(--r);border:1px solid var(--line)}
.row:hover,.row.on{background:rgba(77,86,86,.07)}
.contact-fab-toggle{background:var(--ja-slate);box-shadow:0 0 0 1px #fff,0 0 0 4px rgba(77,86,86,.3)}

/* ---------- 3. Hero: graphite, column panel with a bar handle, knurl band ---------- */
.ja-hero{position:relative;color:#fff;background:var(--ja-graphite) center/cover no-repeat}
.ja-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:64px;padding-top:84px;padding-bottom:92px;align-items:center}
.ja-hero .wrap>*{min-width:0}
.ja-rule{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-3)}
.ja-rule::before{content:"";width:48px;height:1px;background:var(--ja-chrome-v)}
.ja-rule span+span::before{content:"/";margin-right:22px;color:var(--ja-slate-2)}
.ja-hero h1{color:var(--on-dark);margin:26px 0 22px}
.ja-hero .lede{color:var(--on-dark-2);font-size:18px;line-height:1.65;max-width:600px}
.ja-zip{background:transparent;border:1px solid #5C6767;border-radius:var(--r);max-width:520px}
.ja-zip label{color:var(--on-dark-3);border-right-color:#5C6767}
.ja-zip input{color:#fff}
.ja-zip button{background:var(--ja-chrome);color:var(--ink);font-family:var(--display);font-weight:500;letter-spacing:.14em;text-transform:uppercase}
.ja-hero .zip-note{color:var(--on-dark-3)}
.ja-hero .btn-row{margin-top:28px}
.ja-hero .btn-ghost{--fg:#fff;box-shadow:inset 0 0 0 1px #6F7B7B}
.ja-panel{position:relative;padding:14px 14px 14px 46px;background:var(--ja-graphite-3);box-shadow:inset 0 0 0 1px #46504F,0 40px 80px rgba(0,0,0,.45)}
.ja-handle{position:absolute;left:16px;top:18%;bottom:18%;width:10px;border-radius:5px;background:var(--ja-chrome-v);box-shadow:3px 0 6px rgba(0,0,0,.5)}
.ja-handle::before,.ja-handle::after{content:"";position:absolute;left:10px;width:8px;height:6px;background:#9AA5A7}
.ja-handle::before{top:10%}.ja-handle::after{bottom:10%}
.ja-knurl{height:14px;background-color:#3A4242;background-image:var(--ja-knurl);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.4)}

/* ---------- 4. NEW: the column wall ---------- */
.ja-walls{display:grid;grid-template-columns:4fr 9fr 2fr;gap:22px;align-items:end}
.ja-wall{min-width:0}
.ja-wall-name{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--ink)}
.ja-wall-name b{font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:.24em;text-transform:uppercase}
.ja-wall-name span{font-family:var(--mono);font-size:12px;color:var(--muted)}
.ja-columns{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
.ja-col{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:400px;padding:16px 10px 14px;background:linear-gradient(180deg,#F9FAFA 0%,#E4E8E8 100%);box-shadow:inset 0 0 0 1px #C3CACA,inset 0 -3px 0 #B1BABA;text-decoration:none;color:var(--ink);overflow:hidden;isolation:isolate;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.ja-col-pic{position:absolute;inset:0 0 auto 0;height:96px;display:grid;place-items:center;z-index:-1}
.ja-col-pic img:not(.hx-fill){width:46px;height:46px;opacity:.85}
.ja-col.has-photo .ja-col-pic{inset:0;height:auto}
.ja-col.has-photo .ja-col-pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(27,31,31,0) 35%,rgba(27,31,31,.88) 100%)}
.ja-col.has-photo{color:#fff}
.ja-col.has-photo .ja-col-meta{color:var(--on-dark-2)}
.ja-col-handle{position:absolute;top:22px;right:12px;width:6px;height:84px;border-radius:3px;background:var(--ja-chrome-v);box-shadow:2px 0 4px rgba(0,0,0,.28);transition:height .35s}
.ja-col-name{font-family:var(--display);font-weight:500;font-size:14px;max-height:220px;letter-spacing:.12em;text-transform:uppercase;line-height:1.25;writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;margin-bottom:12px}
.ja-col-meta{display:grid;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:var(--muted);line-height:1.2}
.ja-col-meta span{display:grid}
.ja-col-meta b{font-family:var(--display);font-weight:400;font-size:17px;letter-spacing:.02em;color:var(--ink)}
.ja-col.has-photo .ja-col-meta b{color:#fff}
.ja-col:hover,.ja-col:focus-visible{transform:translateY(-12px);box-shadow:inset 0 0 0 1px var(--ja-slate),0 22px 30px rgba(27,31,31,.22)}
.ja-col:hover .ja-col-handle{height:120px}
.ja-col:focus-visible{outline:2px solid var(--ja-slate);outline-offset:3px}

/* ---------- 5. NEW: design-line identifier ---------- */
.ja-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ja-line{background:#fff;padding:0 26px 26px;box-shadow:inset 0 0 0 1px var(--line)}
.ja-line h3{font-size:28px;font-weight:400;letter-spacing:.16em;margin:6px 0 14px}
.ja-line-sub{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ja-line ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.ja-line li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.ja-line li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:1px;background:var(--ja-slate)}
.ja-swatch{position:relative;height:150px;margin:0 -26px 22px;display:grid;place-items:center;overflow:hidden}
/* RISE: knurled chrome knob */
.ja-line-rise .ja-swatch{background:#E4E8E8}
.ja-line-rise .ja-swatch i:first-child{width:96px;height:96px;border-radius:50%;background-color:#B9C2C4;background-image:var(--ja-knurl),radial-gradient(circle at 35% 30%,#FFFFFF 0%,#C9D0D2 40%,#7F8B8D 100%);box-shadow:0 10px 18px rgba(0,0,0,.25),inset 0 0 0 3px rgba(255,255,255,.5)}
.ja-line-rise .ja-swatch i:last-child{position:absolute;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#FFFFFF,#AEB8BA);box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
/* NOIR: flush dark panel and slim handle */
.ja-line-noir .ja-swatch{background:linear-gradient(160deg,#2A2F2F,#121515)}
.ja-line-noir .ja-swatch i:first-child{width:70%;height:8px;background:linear-gradient(180deg,#3D4545,#151818);box-shadow:0 1px 0 rgba(255,255,255,.12)}
.ja-line-noir .ja-swatch i:last-child{position:absolute;left:15%;right:15%;bottom:28px;height:1px;background:rgba(201,207,206,.35)}
/* Earlier lines: downdraft vent slot in a cooking surface */
.ja-line-earlier .ja-swatch{background:#2B2F2F}
.ja-line-earlier .ja-swatch i:first-child{width:76%;height:26px;border-radius:3px;background:repeating-linear-gradient(90deg,#111414 0 6px,#5A6363 6px 8px);box-shadow:0 0 0 4px #C9D0D2}
.ja-line-earlier .ja-swatch i:last-child{position:absolute;left:12%;right:12%;top:24px;bottom:24px;border:1px solid rgba(201,207,206,.25);border-radius:4px}
.ja-lines-note{margin:20px 0 0;color:var(--ink-2);font-size:15.5px}

/* ---------- 6. NEW: model prefix reader ---------- */
.ja-reader{display:grid;grid-template-columns:1.1fr .9fr;grid-template-areas:"form out" "code out";gap:16px 26px}
.ja-reader-form{grid-area:form}
.ja-code-form{grid-area:code}
.ja-readout{grid-area:out}
.ja-reader label{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-3);margin-bottom:10px}
.ja-reader-row{display:grid;grid-template-columns:1fr auto;box-shadow:inset 0 0 0 1px #556060}
.ja-reader-row input{min-width:0;border:0;background:transparent;padding:18px 20px;font-family:var(--mono);font-size:22px;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.ja-reader-row input::placeholder{color:#677373}
.ja-reader-row input:focus{outline:1px solid var(--ja-slate-light);outline-offset:-1px}
.ja-reader-row button{border:0;padding:0 22px;background:var(--ja-chrome);color:var(--ink);font-family:var(--display);font-weight:500;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.ja-reader-row button:hover{filter:brightness(1.06)}
.ja-code-form .ja-reader-row input{font-size:18px;padding:14px 20px}
.ja-readout{position:relative;display:grid;align-content:center;gap:10px;padding:30px 30px 30px 40px;background:var(--ja-graphite-2);box-shadow:inset 0 0 0 1px #3F4848}
.ja-readout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background-color:#3A4242;background-image:var(--ja-knurl)}
.ja-readout-k{font-family:var(--mono);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-3)}
.ja-readout b{font-family:var(--display);font-weight:300;font-size:clamp(26px,2.6vw,38px);letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark-2);line-height:1.1}
.ja-readout small{color:var(--on-dark-3);font-size:14.5px;line-height:1.5}
.ja-readout.is-hit b{color:#fff}
.ja-readout.is-hit::before{background-color:var(--ja-slate-light)}
.ja-readout .arrow-link{color:#fff}

/* ---------- 7. Visit steps: hairline columns ---------- */
.ja-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.ja-steps li{padding:24px 24px 6px 0;border-right:1px solid var(--line)}
.ja-steps li+li{padding-left:24px}
.ja-steps li:last-child{border-right:0}
.ja-step-n{font-family:var(--display);font-weight:300;font-size:56px;line-height:1;letter-spacing:.02em;background:var(--ja-chrome-dark);-webkit-background-clip:text;background-clip:text;color:transparent}
.ja-steps h3{font-size:17px;margin:18px 0 10px}
.ja-steps p{font-size:15.5px;color:var(--ink-2)}

/* ---------- 8. Service map (real county outlines) ---------- */
.ja-map{aspect-ratio:600/552;max-width:620px;overflow:hidden;background:var(--ja-graphite);box-shadow:inset 0 0 0 1px #3F4848}
.ja-map .ja-water{fill:#141818}
.ja-map .ja-sea{font-family:var(--mono);font-size:10px;letter-spacing:.14em;fill:#5E6B6B;pointer-events:none}
.ja-map .ja-county path{stroke:#6E7A7A;stroke-width:.9;stroke-linejoin:round;transition:fill .25s}
.ja-map .ja-t0 path{fill:#353C3C}
.ja-map .ja-t1 path{fill:#2D3333}
.ja-map .ja-t2 path{fill:#262B2B}
.ja-map .ja-county:hover path,.ja-map .ja-county.is-on path{fill:#5A6767}
.ja-map .ja-cname{font-family:var(--display);font-weight:500;font-size:11px;letter-spacing:.24em;fill:#7D8989;pointer-events:none}
.ja-map .ja-cname.is-on{fill:#fff}
.ja-map .lbl{font-family:var(--body);font-weight:500;font-size:9.5px;fill:var(--on-dark-2);paint-order:stroke;stroke:rgba(27,31,31,.9);stroke-width:3px;stroke-linejoin:round}
.ja-map .pin{fill:var(--ja-slate-light);stroke:var(--ja-graphite);stroke-width:1.5}
.ja-map .ja-pin:hover .pin{fill:#fff}
.ja-map .ja-pin:hover .lbl{fill:#fff}
.ja-map .is-center .pin{fill:#fff;stroke:var(--ja-slate);stroke-width:2}
.ja-map .is-center .lbl{font-weight:700;fill:#fff}
.ja-map .ja-pulse{fill:none;stroke:var(--ja-slate-light);stroke-width:1.2;transform-box:fill-box;transform-origin:center;animation:ja-pulse 2.6s ease-out infinite}
@keyframes ja-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.6);opacity:0}}
.county.is-on summary b{color:var(--ja-slate)}

/* ---------- 9. Reused parent blocks, re-skinned ---------- */
.support-desk h2{font-weight:300}
.channel{border-radius:var(--r)}
.models{border:0;background:transparent;gap:18px}
.model{border:0;border-radius:var(--r);background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.model h3{font-family:var(--mono);letter-spacing:.06em}
.voice{border:0;border-radius:var(--r);background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.lrow b{font-family:var(--display);font-weight:500;font-size:17px;letter-spacing:.1em;text-transform:uppercase}
.county{border-radius:var(--r)}
.area-brief-2x2>*{border-radius:var(--r)}
.hx-faq details{border-radius:var(--r)}
.hx-cover{border-radius:var(--r)}
.hx-cover-1{background:var(--ja-slate);color:#fff}
.hx-cover-2{background-color:var(--ja-graphite);background-image:var(--ja-knurl);color:#fff}
.hx-cover-3{background:var(--ja-chrome);color:var(--ink);box-shadow:none}
.hx-cover-3::before{background:var(--ja-slate)}
.hx-cover .hx-cover-title{font-family:var(--display);font-weight:400;letter-spacing:.08em;text-transform:uppercase;font-size:clamp(20px,1.8vw,26px)}

/* ---------- 10. Responsive ---------- */
@media (max-width:1060px){
  .ja-hero .wrap{grid-template-columns:1fr}
  .ja-walls{grid-template-columns:1fr 1fr}
  .ja-wall-heat{grid-column:1/-1;order:-1}
  .ja-lines{grid-template-columns:1fr}
  .ja-reader{grid-template-columns:1fr;grid-template-areas:"form" "out" "code"}
  .ja-steps{grid-template-columns:1fr 1fr}
  .ja-steps li:nth-child(2){border-right:0}
  .ja-steps li:nth-child(3){padding-left:0}
}
@media (max-width:640px){
  .ja-hero .wrap{padding-top:44px;padding-bottom:52px;gap:34px}
  .ja-rule::before{display:none}
  .ja-rule span+span::before{margin-right:10px}
  .ja-panel{padding-left:38px}
  .ja-walls{grid-template-columns:1fr}
  .ja-columns{grid-auto-columns:minmax(92px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 0 8px}
  .ja-col{min-height:300px;scroll-snap-align:start}
  .ja-steps{grid-template-columns:1fr}
  .ja-steps li,.ja-steps li+li{padding:20px 0;border-right:0;border-bottom:1px solid var(--line)}
}
@media (prefers-reduced-motion:reduce){.ja-map .ja-pulse{animation:none;opacity:0}.ja-col{transition:none}}
