

/* ---------- Header ---------- */
.mode-bar{font-size:12px;padding:8px 20px;text-align:center;background:var(--carbon);color:var(--line)}
.site-header{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:20px 40px;gap:20px}
.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px;letter-spacing:-.01em}
.brand-logo{display:block;width:240px;height:auto}
.brand small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.18em;font-weight:700}
.brand div{line-height:1.3}
.nav{display:flex;align-items:center;gap:26px;font-size:15px}
.nav a{text-decoration:none;color:var(--muted);font-weight:500}
.nav a:hover,.nav a[aria-current=page]{color:var(--blue)}
.nav a.button{color:var(--blue-dark);font-weight:700}
.nav .button{min-height:42px;padding:8px 16px;font-size:14px}

/* ---------- Hero ---------- */
.hero{max-width:1180px;margin:8px auto 0;padding:0 40px}
.hero-inner{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;background:var(--ink);color:#fff;border-radius:var(--radius);padding:52px 56px 88px}
.hero-inner::after{content:"";position:absolute;left:56px;right:56px;bottom:46px;height:2px;background:linear-gradient(90deg,transparent,var(--cyan) 20%,var(--cyan) 80%,transparent);opacity:.8}
.hero-mascot{width:clamp(160px,16vw,220px);height:auto;margin:-24px 0 -60px}
.hero .eyebrow{margin-bottom:14px;color:var(--cyan)}
.hero h1{font-size:clamp(32px,3.1vw,44px);line-height:1.12;font-weight:700;letter-spacing:-.02em;margin:0 0 18px;max-width:720px;color:#fff}
.hero h1 em{font-style:normal;color:var(--cyan)}
.hero p{max-width:600px;font-size:18px;line-height:1.55;color:var(--line);margin:0}
.trust{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px}
.trust li{display:flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid rgba(217,225,229,.35);border-radius:999px;background:rgba(255,255,255,.04);font-size:14px;color:#fff}
.trust li::before{content:'✓';color:var(--cyan);font-weight:700}
.trust strong{font-weight:700}

/* ---------- Experience layout ---------- */
.experience{position:relative;display:grid;grid-template-columns:minmax(0,880px);justify-content:center;gap:28px;max-width:1180px;padding:0 40px 40px;margin:-52px auto 0;align-items:start}

/* ---------- Conversation card: the main call to action ---------- */
.conversation{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 28px 60px -30px rgba(11,20,26,.45)}
.conversation-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);background:#fff;font-size:14px}
.assistant-label{display:flex;align-items:center;gap:10px;font-weight:600}
.assistant-avatar{width:34px;height:34px;border-radius:9px;display:block}
.assistant-label strong{display:block;font-size:15px;line-height:1.2}
.assistant-label small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.assistant-eyebrow{display:flex;align-items:center;gap:8px}
.assistant-eyebrow img{border-radius:5px}
.mode-pill{font-size:12px;color:var(--muted);background:var(--blue-soft);border-radius:999px;padding:4px 10px}

.start{padding:30px 30px 6px}
.start-badge{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 12px;margin-bottom:16px}
.start-badge::after{content:'↓';font-size:14px}
.start h2{font-size:clamp(26px,2.6vw,34px);line-height:1.15;font-weight:700;letter-spacing:-.025em;margin:0 0 8px}
.start p{font-size:16px;color:var(--muted);margin:0}

.messages{display:none;padding:24px 26px 8px;background:#fff;border-bottom:1px solid var(--line)}
.conversation:not(.is-empty) .messages{display:block}
.conversation:not(.is-empty) .start{display:none}

.composer{padding:18px 30px 16px}
.composer label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px}
.composer-box{display:flex;gap:10px;align-items:flex-end;background:#fff;border:2px solid var(--blue);border-radius:16px;padding:10px 10px 10px 16px;transition:box-shadow .15s}
.composer-box:focus-within{box-shadow:0 0 0 5px rgba(0,107,122,.18)}
.composer textarea{flex:1;resize:none;min-height:56px;max-height:200px;border:0;outline:0;padding:6px 0;background:transparent;color:var(--ink);font:17px/1.5 var(--sans)}
.composer textarea::placeholder{color:var(--muted);opacity:1}
.composer .button{min-height:52px;padding:10px 22px;font-size:16px;white-space:nowrap}
.composer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px}
.composer-bottom .fine{font-size:12px;margin:0}
.conversation:not(.is-empty) .composer{background:#fff;padding-top:14px}
.conversation:not(.is-empty) .composer textarea{min-height:44px}


/* ---------- Messages ---------- */
.message{margin:0 0 20px;scroll-margin-top:16px}
.message.user{background:var(--ink);color:#fff;padding:12px 16px;border-radius:16px 16px 4px 16px;margin:0 0 18px auto;max-width:85%;width:fit-content;font-size:16px;overflow-wrap:anywhere}
.message.assistant{padding:4px 0 6px}
.message.assistant>p{font-size:16px;line-height:1.65}
.message .eyebrow{margin-bottom:10px}
.message .reply{font-size:17px;line-height:1.6;color:var(--ink)}
.message .question{color:var(--ink);background:var(--blue-soft);border-left:4px solid var(--blue);border-radius:0 12px 12px 0;padding:12px 16px;margin-top:16px;font-weight:500}
.message .sources-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.message .source-answer{font-size:15px;color:var(--muted);margin:0 0 10px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.source-answer strong{display:block;color:var(--ink);font-size:15px;margin-bottom:6px}
.cause{background:var(--panel);border:1px solid var(--line);padding:14px 16px;border-radius:14px;display:block;width:100%;text-align:left;color:var(--ink);margin:10px 0;transition:background .15s,box-shadow .15s}
.cause .cause-heading{display:flex;gap:12px;align-items:center;font-size:16px;font-weight:600}
.cause .cause-number{font:600 12px var(--mono);color:var(--cyan);background:var(--ink);border-radius:8px;padding:3px 7px}
.cause p{font-size:14px;color:var(--muted);margin:8px 0 0;line-height:1.6}

.typing{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:16px 16px 16px 4px;background:var(--panel-2);color:var(--muted);font-size:14px}
.typing img{border-radius:5px}
.typing .dots{display:inline-flex;gap:4px;align-items:center}
.typing .dots i{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:typing-dot 1.2s ease-in-out infinite}
.typing .dots i:nth-child(2){animation-delay:.15s}
.typing .dots i:nth-child(3){animation-delay:.3s}
@keyframes typing-dot{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.top-actions{display:flex;align-items:center;gap:6px}
.sound-toggle{color:var(--muted);text-decoration:none;font-weight:500}
.sound-toggle[aria-pressed=false]{opacity:.7}
.conversation.is-empty .sound-toggle{display:none}
@media(prefers-reduced-motion:reduce){.typing .dots i{animation:none;opacity:.6}}
@keyframes pulse{50%{opacity:.25;transform:scale(.7)}}
.error{border:1.5px solid var(--error-line);background:var(--error-bg);color:var(--error-ink);padding:14px 16px;font-size:15px;border-radius:12px;margin:12px 0}
.safety{padding:14px 16px;border:1.5px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-ink);font-size:15px;border-radius:12px;margin:16px 0}

/* ---------- Symptom paths: tap a choice, then see likely causes with prices ---------- */
.flow-question{font-size:17px;font-weight:600;color:var(--ink);margin:6px 0 12px}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.choice{display:flex;flex-direction:column;gap:4px;text-align:left;min-height:64px;padding:16px 18px;border:1.5px solid var(--blue);border-radius:14px;background:var(--panel);color:var(--ink);transition:background .15s,box-shadow .15s,transform .15s}
.choice strong{font-size:16px;line-height:1.35}
.choice span{font-size:14px;color:var(--muted);line-height:1.45}
.choice:hover:not(:disabled){background:var(--panel-2);box-shadow:var(--shadow);transform:translateY(-1px)}
.choice:disabled{cursor:default;opacity:.45}
.choice.chosen{opacity:1;background:var(--blue);border-color:var(--blue)}
.choice.chosen strong,.choice.chosen span{color:#fff}
.unsure{margin-top:6px;padding-left:0}
.flow-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px}
.problems{display:grid;gap:10px}
.problem{border:1px solid var(--line);border-radius:14px;background:var(--panel);overflow:hidden;transition:border-color .15s}
details.problem:hover{border-color:var(--blue)}
.problem[open]{box-shadow:var(--shadow)}
.problem summary{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}
.problem summary::-webkit-details-marker{display:none}
.problem summary:hover{background:var(--panel-2)}
.problem .cause-number{font:600 12px var(--mono);color:var(--cyan);background:var(--ink);border-radius:8px;padding:3px 7px;align-self:start;margin-top:2px}
.problem-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.problem-text strong{font-size:16px;line-height:1.35}
.problem-text span{font-size:14px;color:var(--muted);line-height:1.45}
.problem-price{text-align:right;font-weight:700;font-size:17px;color:var(--blue-dark);white-space:nowrap}
.problem-price small{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.problem-body{padding:0 16px 14px 56px}
.problem-body>p{font-size:14px;color:var(--muted);margin:10px 0 0}
.mini-options{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.mini-options li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.mini-options strong{white-space:nowrap}
.flow-promise{font-size:14px;font-weight:600;color:var(--blue-dark);margin:14px 0 4px}

/* ---------- Diagram ---------- */

/* ---------- Estimates ---------- */
.estimate-section{max-width:1180px;margin:auto;padding:24px 40px 56px}
.section-title{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding-bottom:22px;border-bottom:1px solid var(--line);margin-bottom:24px}
.section-title h2{font-size:32px;font-weight:700;letter-spacing:-.025em;margin:6px 0 0}
.section-title p{max-width:640px;font-size:15px;color:var(--muted);margin:0}
.option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.option-card{border:1px solid var(--line);border-radius:18px;padding:26px;background:var(--panel);display:flex;flex-direction:column;box-shadow:var(--shadow)}
.option-card .eyebrow{margin-bottom:10px}
.option-card h3{font-weight:700;font-size:21px;line-height:1.25;letter-spacing:-.015em;margin:0 0 12px}
.option-price{font-size:38px;font-weight:700;color:var(--blue-dark);letter-spacing:-.03em;line-height:1.15}
.option-price small{font:500 13px var(--sans);letter-spacing:0;color:var(--muted);display:block;margin:6px 0 16px}
.option-card p,.option-card li{font-size:15px;color:var(--muted)}
.option-card ul{padding-left:20px;margin:12px 0 18px}
.option-card li{padding:3px 0}
.option-card details{border-top:1px solid var(--line);padding:12px 0}
.option-card summary{font-size:15px;font-weight:600;color:var(--blue-dark);cursor:pointer}
.option-card .option-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:18px}
.estimate-empty{border:1.5px dashed var(--line);border-radius:18px;padding:30px;display:flex;align-items:center;gap:22px;color:var(--muted);font-size:15px;background:var(--panel)}
.estimate-empty .empty-symbol{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:14px;background:var(--ink);color:var(--cyan);font-size:24px;font-weight:700}
.estimate-empty strong{display:block;color:var(--ink);font-size:18px;font-weight:700;margin-bottom:4px}
.estimate-note{font-size:14px;color:var(--muted);margin:16px auto;max-width:760px;text-align:center}

/* ---------- Footer ---------- */
.footer{display:flex;justify-content:space-between;gap:20px;margin-top:24px;padding:28px max(40px,calc((100% - 1100px)/2)) 36px;font-size:14px;color:var(--line);background:var(--ink)}
.footer a{color:#fff}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.footer .footer-phone{color:#fff;font-weight:700}

/* ---------- Content pages (pricing, services, promise) ---------- */
.content-page{max-width:860px;margin:48px auto;padding:0 30px 60px}
.content-page h1{font-size:clamp(38px,5vw,58px);font-weight:700;letter-spacing:-.035em;line-height:1.1}
.content-page h2{font-size:28px;font-weight:700;letter-spacing:-.02em}
.content-page h3{font-size:23px;line-height:1.3;font-weight:700;margin-top:40px}
.content-page p{color:var(--muted);line-height:1.8;font-size:17px}
.content-page strong{color:var(--ink)}
.content-page hr{border:0;border-top:1px solid var(--line);margin:36px 0}
.content-page .service-item{padding:22px 24px;margin:14px 0;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.content-page .service-item h2{font-size:22px;margin-top:0}
.content-page .notice{margin:24px 0}
.request-summary{font-size:15px;color:var(--muted);white-space:pre-wrap}
.money-note{font-size:13px;color:var(--muted)}

/* ---------- Responsive ---------- */
@media(max-width:1050px){
 .hero,.experience,.estimate-section{padding-left:24px;padding-right:24px}
 .site-header{padding:18px 24px}
 .footer{padding-left:24px;padding-right:24px}
 .hero-inner{padding:40px 36px 84px}
  .nav{gap:16px}
 .option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:780px){
 .site-header{flex-wrap:wrap}
 .nav{width:100%;justify-content:space-between;gap:10px;font-size:14px}
 .hero{padding-top:0}
 .hero-inner{grid-template-columns:1fr;text-align:center;gap:10px;padding:28px 24px 80px}
 .hero-inner::after{left:24px;right:24px;bottom:42px}
 .hero-mascot{grid-row:1;justify-self:center;width:120px;margin:0}
 .hero-inner p{margin:0 auto}
 .trust{justify-content:center}
 .hero p{font-size:16px}
 .option-grid{grid-template-columns:1fr}
 .section-title{align-items:flex-start;flex-direction:column;gap:12px}
 .footer{flex-wrap:wrap}
}
@media(max-width:520px){
 .mode-bar{font-size:11px;padding:6px 12px}
 .site-header{padding:12px 14px;gap:10px}
 .nav{flex-wrap:nowrap;overflow-x:auto;gap:16px;font-size:14px;white-space:nowrap;scrollbar-width:none;padding-bottom:2px}
 .nav::-webkit-scrollbar{display:none}
 .nav a[href="/"]{display:none}
 .hero{padding-top:0;padding-bottom:0}
 .hero-inner{padding:22px 16px 72px;border-radius:18px}
 .hero-mascot{width:96px}
 .hero .eyebrow{margin-bottom:8px;font-size:10px;letter-spacing:.12em}
 .hero h1{font-size:29px;margin-bottom:6px}
 .hero p{display:none}
 .conversation-top .text-button{white-space:nowrap;padding:8px 4px}
 .trust{margin-top:12px;gap:6px}
 .trust li{font-size:12px;padding:5px 10px}
 .trust li:not(:first-child){display:none}
 .conversation-top{flex-wrap:nowrap;gap:10px}
 .assistant-label span:last-child{white-space:nowrap}
 .mode-pill{white-space:nowrap;font-size:11px}
 .start h2{font-size:24px}
 .start p{font-size:15px}
 .start-badge{margin-bottom:10px}
 .brand{font-size:17px}
 .nav .button{padding:8px 12px;font-size:13px}
 .hero,.experience,.estimate-section{padding-left:14px;padding-right:14px}
 .hero h1{font-size:32px}
 .trust li{font-size:13px;padding:7px 12px}
 .start{padding:22px 18px 4px}
 .composer{padding:14px 18px}
 .composer-box{flex-direction:column;align-items:stretch;padding:10px}
 .composer .button{width:100%}
 .problem summary{grid-template-columns:auto 1fr;padding:14px}
 .problem-price{grid-column:2;text-align:left;font-size:16px}
 .problem-price small{display:inline;margin-right:6px}
 .problem-body{padding:0 14px 14px}
 .messages{padding:18px 16px 6px}
 .conversation-top{padding:12px 16px}
 .option-card{padding:20px}
 .estimate-empty{flex-direction:column;align-items:flex-start}
 .content-page{padding:0 18px 40px;margin-top:30px}
}

/* What a price covers: only complete services read as a repair price */
.option-type{display:inline-block;font-size:12px;font-weight:600;color:var(--blue-dark);background:var(--blue-soft);border-radius:8px;padding:3px 8px;margin:4px 0 2px}
.option-card.type-part .option-type,.option-card.type-addon .option-type,.option-card.type-unclassified .option-type{color:var(--warn-ink);background:var(--warn-bg)}
.review-note{font-size:13px;color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:10px;padding:8px 12px}
.mini-label{font-size:12px;font-weight:600;color:var(--warn-ink);margin:12px 0 4px}
.mini-options li span small{display:block;font-size:11px;color:var(--muted);font-weight:600}

/* General guidance from the AI, clearly set apart from reviewed records */
.general-label{display:inline-block;font-size:12px;font-weight:600;color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:8px;padding:4px 10px;margin:8px 0 10px}
.problem.possibility{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:14px 16px}
.problem.service summary{grid-template-columns:1fr auto}
.safe-checks{margin:0;padding:12px 16px 12px 34px;background:var(--blue-soft);border-radius:12px;font-size:15px;line-height:1.55}
.safe-checks li+li{margin-top:8px}
@media(max-width:520px){.problem.service summary{grid-template-columns:1fr}.problem.service .problem-price{grid-column:1}}

.choice-extras{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:6px}
.choice-extras .unsure{margin-top:0}

/* Why prices are shown: transparency, with the free inspection and estimate stated plainly */
.transparency{margin:14px 0 6px;padding:12px 14px;border:1.5px solid var(--blue);border-radius:12px;background:var(--blue-soft);color:var(--ink);font-size:14px;line-height:1.55}
.transparency strong{display:block;color:var(--blue-dark);font-size:15px;margin-bottom:2px}

/* The owner’s exact policy wording, one tap away from the AI’s own answer */
.exact-wording{margin:12px 0 4px}
.exact-wording summary{cursor:pointer;color:var(--blue);font-size:14px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.exact-wording .source-answer{margin-top:10px}

.problem.service .service-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:14px 16px}
@media(max-width:520px){.problem.service .service-row{grid-template-columns:1fr}.problem.service .service-row .problem-price{text-align:left}}
.conversation.is-empty .composer{padding-bottom:30px}


@media(max-width:520px){.mode-pill{display:none}.conversation-top{gap:8px}.top-actions{gap:2px}}

/* Start state: the question and the text box, nothing else */
.conversation.is-empty .conversation-top{border-bottom:0;padding:24px 30px 0}
.conversation.is-empty .mode-pill,.conversation.is-empty #new-chat{display:none}
.conversation.is-empty .start{padding:14px 30px 0}
.conversation.is-empty .start h2{margin:0}
.conversation.is-empty #symptom-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.conversation.is-empty .composer{padding-top:16px;padding-bottom:22px}
@media(max-width:520px){.conversation.is-empty .conversation-top{padding:18px 18px 0}.conversation.is-empty .start{padding:12px 18px 0}}
@media(max-width:380px){.conversation-top{flex-wrap:wrap;row-gap:4px}.top-actions{width:100%;justify-content:flex-end}}
.message .starting-point{font-size:13px;line-height:1.5;color:var(--muted);margin:10px 2px 4px}

/* "How we can help": each likely cause opens up to the service, its price and everything included */
.helps{grid-column:2;display:grid;gap:8px;margin-top:4px}
.helps.solo{margin:10px 0 0}
.help{border:1px solid var(--line);border-radius:12px;background:var(--panel-2);overflow:hidden}
.help[open]{background:var(--panel);border-color:var(--blue)}
.help>summary{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.help>summary::-webkit-details-marker{display:none}
.help>summary:hover{background:var(--blue-soft)}
.help>summary:focus-visible,.problem>summary:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.help-text{display:flex;flex-direction:column;gap:1px;min-width:0}
.help-text small{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}
.help-text strong{font-size:15px;line-height:1.35;color:var(--ink)}
.help-text span{font-size:13px;color:var(--muted);line-height:1.45}
.help .problem-price{font-size:16px}
.chevron{width:9px;height:9px;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg) translate(-2px,-2px);transition:transform .15s}
details[open]>summary>.chevron{transform:rotate(225deg) translate(-2px,-2px)}
.help-body{padding:2px 14px 14px;display:grid;gap:10px}
.help-more{font-size:14px;color:var(--muted);margin:0}
.help-option{border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--panel)}
.problem-body .help-option{margin-top:10px}
.help-option-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.help-option h4{margin:2px 0 0;font-size:16px;line-height:1.3}
.help-option-price{text-align:right;font-weight:700;font-size:22px;color:var(--blue-dark);white-space:nowrap;line-height:1.15}
.help-option-price small{display:block;font:500 12px var(--sans);color:var(--muted);margin-top:3px;white-space:normal}
.help-option p,.help-option li{font-size:14px;color:var(--muted);line-height:1.5}
.help-option>p{margin:10px 0 0}
.help-option ul{margin:8px 0 4px;padding-left:20px}
.help-option .more{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}
.help-option .more summary{font-size:14px;font-weight:600;color:var(--blue-dark);cursor:pointer}
.help-option .ask-option{margin-top:10px;font-size:14px}
.help-option.type-part .option-type,.help-option.type-addon .option-type,.help-option.type-unclassified .option-type{color:var(--warn-ink);background:var(--warn-bg)}
.help-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin:14px 0 0}
.message.assistant>p.fine{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 2px 0}
.message .fine.reference{font-size:12px}
@media(max-width:620px){
 .helps{grid-column:1/-1}
 .help>summary{grid-template-columns:minmax(0,1fr) auto}
 .help .problem-price{grid-column:1;grid-row:2;text-align:left;white-space:normal}
 .help .problem-price small{display:inline;margin-right:6px}
 .help .chevron{grid-column:2;grid-row:1}
 .help-option-head{flex-direction:column;gap:4px}
 .help-option-price{text-align:left}
}

/* Warranty: the length and main coverage at a glance, full terms one tap deeper */
.help-option .warranty{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.help-option .warranty-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;color:var(--ink);font-size:14px}
.warranty-badge{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-dark);background:var(--blue-soft);border-radius:6px;padding:2px 7px}
.help-option .warranty-summary{margin:6px 0 0}
.help-option .warranty .more{border-top:0;margin-top:4px;padding-top:0}
.terms-label{font-size:12px;font-weight:700;color:var(--ink);margin:12px 0 2px}
.help-option ul.terms{margin:2px 0 0;padding-left:18px}
.help-option ul.terms li{font-size:13px;padding:2px 0}

/* Hero, founder's reference layout: a full-width dark band, headline and intro on the left, StraightShot on the right */
.hero{max-width:none;margin:8px 0 0;padding:0;background:var(--ink)}
.hero-inner{max-width:1180px;margin:0 auto;border-radius:0;overflow:visible;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:40px;padding:64px 40px 104px}
.hero-inner::after{display:none}
.hero .eyebrow{margin-bottom:18px;font-size:12px;font-weight:700;letter-spacing:.16em;color:var(--cyan)}
.hero h1{font-size:clamp(40px,4.6vw,66px);line-height:1.05;font-weight:700;letter-spacing:-.03em;margin:0;max-width:760px}
.hero p{display:block;max-width:540px;margin:26px 0 0;font-size:17px;line-height:1.6;color:var(--line)}
.trust{margin:28px 0 0;gap:10px 26px}
.trust li{padding:0;border:0;border-radius:0;background:none;font-size:14px;color:#fff}
.trust li:not(:first-child){display:flex}
.hero-figure{margin:0;justify-self:center;text-align:center}
.hero-mascot{display:block;width:clamp(200px,19vw,260px);margin:0 auto}
.hero-figure figcaption{margin-top:14px;font-size:14px;color:var(--line)}
.hero-figure strong{color:#fff}
@media(max-width:780px){
 .hero-inner{grid-template-columns:1fr;text-align:left;gap:20px;padding:36px 24px 92px}
 .hero-figure{grid-row:1;justify-self:start;display:flex;align-items:center;gap:14px;text-align:left}
 .hero-mascot{width:76px;margin:0}
 .hero-figure figcaption{margin:0;max-width:220px}
 .hero-inner p{margin:20px 0 0}
 .trust{justify-content:flex-start}
}
@media(max-width:520px){
 .hero{margin-top:4px}
 .hero-inner{padding:24px 18px 84px}
 .hero .eyebrow{margin-bottom:12px;font-size:10px;letter-spacing:.12em}
 .hero h1{font-size:36px}
 .hero p{display:block;font-size:15px;margin-top:16px}
 .trust{margin-top:16px;gap:6px 16px}
 .trust li{font-size:13px;padding:0}
 .hero-mascot{width:64px}
 .hero-figure figcaption{font-size:13px}
}

/* "Our Promise to You" band at the foot of the home page, flowing into the footer */
.promise-band{background:var(--ink);color:var(--line);margin-top:56px;padding:56px max(40px,calc((100% - 1100px)/2)) 0}
.promise-band-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;padding-bottom:44px;border-bottom:1px solid rgba(217,225,229,.18)}
.promise-band .eyebrow{color:var(--cyan);font-weight:700;margin-bottom:18px}
.promise-band h2{margin:0;color:#fff;font-size:clamp(26px,2.4vw,32px);line-height:1.2;font-weight:700;letter-spacing:-.02em}
.promise-band-points p{margin:0 0 16px;font-size:15px;line-height:1.65;color:var(--line)}
.promise-band-points p:last-child{margin-bottom:0}
.promise-band-points strong{color:#fff}
main:has(.promise-band)+.footer{margin-top:0}
@media(max-width:780px){
 .promise-band{padding:40px 24px 0;margin-top:40px}
 .promise-band-inner{grid-template-columns:1fr;gap:22px;padding-bottom:32px}
}
@media(max-width:520px){.promise-band{padding-top:32px}}

/* Booking: pick a window, add details, review, done. The scheduler confirms every request. */
.nav a.button.primary{color:#fff}
.booking-dialog{width:min(620px,calc(100% - 24px));padding:0}
.booking-body{padding:30px 32px 28px}
.booking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.booking-head h2{font-size:24px;margin:6px 0 0;outline:none}
.booking-dialog .close{position:static;flex:none}
.booking-message{padding:10px 14px;border-radius:12px;background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink)!important;font-size:14px!important}
.booking-message a{color:var(--warn-ink);font-weight:700}
.booking-days,.booking-windows{border:0;padding:0;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:8px}
.booking-days legend,.booking-windows legend,.contact-pref legend{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:8px;padding:0}
.booking-days .day,.booking-windows .window{min-height:44px;padding:8px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:600 14px var(--sans);cursor:pointer}
.booking-windows .window{flex:1 1 160px}
.booking-days .day:hover:not(:disabled),.booking-windows .window:hover:not(:disabled){border-color:var(--blue)}
.booking-days .chosen,.booking-windows .chosen{background:var(--blue);border-color:var(--blue);color:#fff}
.booking-days button:disabled,.booking-windows button:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.booking-actions{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:18px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700;color:var(--ink);min-width:0}
.field input,.field textarea{font:400 16px var(--sans);color:var(--ink);padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
.field input:focus,.field textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.field [aria-invalid=true]{border-color:#B42318}
.field-error{margin:0;color:#B42318!important;font-size:13px!important;font-weight:600}
.field-fullName,.field-serviceAddress,.field-issue{grid-column:1/-1}
.contact-pref{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 16px;align-content:start}
.contact-pref legend{width:100%}
.contact-pref label{display:flex;align-items:center;gap:8px;font-weight:500;font-size:15px;white-space:nowrap}
.contact-pref input[type=radio]{width:18px;height:18px;padding:0;margin:0;flex:none;accent-color:var(--blue)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.booking-review{border:1px solid var(--line);border-radius:14px;padding:4px 16px}
.review-row{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.review-row:last-child{border-bottom:0}
.review-row span{color:var(--muted)}
.review-row strong{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.booking-terms{margin-top:14px}
.booking-done p{margin:0 0 10px}
.booking-ref{font-size:16px!important;color:var(--ink)!important}
.booking-ref strong{font:700 18px var(--mono);color:var(--blue-dark);letter-spacing:.04em}
.booking-done .button{margin-top:8px}
.book-cta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px}
.book-cta span{font-size:14px;color:var(--muted)}
.book-cta a{color:var(--blue);font-weight:700}
.promise-book{margin-top:24px}
@media(max-width:620px){
 .booking-body{padding:22px 18px 20px}
 .field-grid{grid-template-columns:1fr}
 .field-state,.field-zipCode{grid-column:auto}
 .review-row{grid-template-columns:1fr;gap:2px}
 .booking-actions{justify-content:space-between}
}
@media(max-width:520px){.nav{flex-wrap:wrap;overflow:visible;row-gap:10px}.nav .button{flex:1 1 40%;justify-content:center}}

/* Book and call, right in the chat card's header */
.chat-cta{display:flex;align-items:center;gap:10px}
.chat-cta .button{min-height:40px;padding:8px 16px;font-size:14px;white-space:nowrap}
.chat-cta .button[hidden]{display:none}
.conversation:not(.is-empty) .chat-cta{margin-right:6px}
@media(max-width:780px){.conversation:not(.is-empty) .chat-cta{display:none}}
@media(max-width:520px){
 .conversation.is-empty .conversation-top{flex-wrap:wrap;row-gap:14px}
 .conversation.is-empty .top-actions{width:100%}
 .conversation.is-empty .chat-cta{width:100%}
 .conversation.is-empty .chat-cta .button{flex:1;justify-content:center}
}

/* Sticky header on every page and device. The bar spans the full width; its content keeps the same 1100px column. */
html{scroll-padding-top:96px}
.site-header{position:sticky;top:0;z-index:40;max-width:none;margin:0;padding:14px max(40px,calc((100% - 1100px)/2));background:color-mix(in srgb,var(--paper,#f7f8f6) 96%,transparent);-webkit-backdrop-filter:saturate(1.3) blur(12px);backdrop-filter:saturate(1.3) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.site-header.is-scrolled{border-bottom-color:#18242b14;box-shadow:0 6px 18px -14px #18242b40}
/* "Ask StraightShot": the portrait with a chat badge in place of a text link. */
.nav a.nav-assistant{display:inline-flex;align-items:center;gap:10px;color:var(--blue-dark)}
.nav-assistant-icon{position:relative;display:block;width:40px;height:40px;flex:none;transition:transform .15s}
.nav-assistant-icon img{display:block;width:40px;height:40px}
.nav-assistant:hover .nav-assistant-icon,.nav-assistant:focus-visible .nav-assistant-icon{transform:translateY(-1px)}
.nav-assistant-chat{position:absolute;right:-3px;bottom:-2px;display:grid;place-items:center;width:18px;height:18px;border:2px solid #fff;border-radius:50%;background:#006b7a;color:#fff}
.nav-assistant-chat svg{width:10px;height:10px}
.nav-assistant-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:600px){
 .site-header .nav a.nav-assistant{gap:12px}
 .site-header .nav .nav-assistant-label{position:static;width:auto;height:auto;overflow:visible;clip:auto;font-weight:600;color:#006b7a}
}
@media(prefers-reduced-motion:reduce){.site-header,.nav-assistant-icon{transition:none}}
/* Height of the sticky header, so other sticky elements (story side card, promise intro) stop just below it. */
:root{--sticky-header:88px}
@media(max-width:600px){:root{--sticky-header:76px}}
