/* AI Audio Costs — "Tape deck" theme. Same skeleton/class names as the sister cost sites, so Web Builder can reuse the page template.
   Fonts: Archivo Expanded 800 (headings, labels) + Atkinson Hyperlegible 400/700 (body), both SIL OFL 1.1, self-hosted woff2 subsets. */
@font-face{font-family:"Archivo Expanded";src:url(/fonts/Archivo-X800.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(/fonts/Atkinson-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Atkinson Hyperlegible";src:url(/fonts/Atkinson-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --bg:#F4F1E8;        /* cassette-label cream */
  --surface:#FFFDF7;
  --fg:#10242A;        /* faceplate ink */
  --mut:#4A5A5E;       /* 6.4:1 on --bg */
  --line:#D6D0C0;      /* decorative hairlines */
  --brand:#0B6E79;     /* tape teal: buttons, card strips */
  --acc:#075059;       /* links on light, 8.1:1 on --bg */
  --tint:#E1EFEF;
  --hi:#FFC83D;        /* VU amber: on ink only (10.4:1) */
  --peak:#B4302A;      /* peak red: text on cream 5.5:1, meter tip */
  --head:#10242A; --head-fg:#F4F1E8;
  --soft:#EAE5D7; --note:#FFF6DA; --note-line:#E8C96A;
  --f-display:"Archivo Expanded","Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-body:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --f-fig:"Atkinson Hyperlegible",system-ui,sans-serif;
  --step--1:.875rem; --step-0:1.0625rem; --step-1:1.125rem; --step-2:clamp(1.15rem,1rem + .9vw,1.4rem); --step-3:clamp(1.55rem,1.05rem + 3vw,2.35rem);
  --r:10px; --pill:999px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:var(--step-0)/1.6 var(--f-body);color:var(--fg);background:var(--bg)}
img,svg,video{max-width:100%;height:auto}
a{color:var(--acc);text-underline-offset:.2em}
a:hover{text-decoration-style:wavy}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.skip{position:absolute;left:8px;top:8px;background:var(--surface);color:var(--fg);padding:8px 12px;min-height:48px;z-index:5;transform:translateY(-150%)}
.skip:focus{transform:none}
.wrap{max-width:66rem;margin:0 auto;padding:0 16px;overflow-wrap:anywhere}
h1,h2,h3{font-family:var(--f-display);font-weight:800;color:var(--fg)}
h1{font-size:var(--step-3);line-height:1.12;margin:0 0 14px;letter-spacing:-.01em;text-wrap:balance}
h2{font-size:var(--step-2);line-height:1.25;margin:2.2rem 0 .7rem;text-transform:uppercase;letter-spacing:.03em}
h2::before{content:"";display:inline-block;width:.55em;height:.55em;margin-right:.45em;border-radius:50%;background:var(--peak);vertical-align:.08em}
h3{font-size:var(--step-1);line-height:1.3;margin:1.2rem 0 .4rem}
p{margin:.6rem 0}
ul,ol{margin:.4rem 0 .8rem;padding-left:1.2rem}
.fig,td.num{font-weight:700;font-variant-numeric:tabular-nums lining-nums}

/* Header: ink faceplate */
header.top{background:var(--head);color:var(--head-fg);border-bottom:4px solid var(--brand)}
.bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding-top:6px;padding-bottom:6px}
.brand{font:800 1rem/1.1 var(--f-display);text-transform:uppercase;letter-spacing:.04em;color:var(--head-fg);text-decoration:none;min-height:48px;display:inline-flex;align-items:center;gap:10px}
.brand::before{content:"";width:30px;height:30px;flex:none;background:url(/favicon.svg) center/contain no-repeat}
.tagline{flex:1 1 14rem;margin:0;color:#C9D3D2;font-size:var(--step--1)}   /* 11.5:1 on ink */
.menu-btn{display:none;margin-left:auto;min-height:48px;min-width:48px;padding:0 16px;background:transparent;border:2px solid var(--hi);border-radius:var(--pill);color:var(--hi);font:700 1rem var(--f-body)}
nav.primary{display:flex;flex-wrap:wrap;gap:2px}
nav.primary a{display:inline-flex;align-items:center;min-height:48px;padding:0 10px;color:var(--head-fg);text-decoration:none;font-weight:700}
nav.primary a:hover{color:var(--hi)}
header.top :focus-visible{outline-color:var(--hi)}

.hero{background:var(--bg);padding:28px 0 22px;border-bottom:1px solid var(--line)}
.byline,.note{color:var(--mut);font-size:var(--step--1)}
.note-box{background:var(--note);border:1px solid var(--note-line);border-radius:var(--r);padding:12px 14px;margin:16px 0;font-size:.97rem}
.kicker{display:inline-block;font:800 .72rem/1 var(--f-display);text-transform:uppercase;letter-spacing:.12em;color:var(--peak);margin:0 0 10px}
.example{display:inline-block;font:700 .7rem/1.5 var(--f-body);text-transform:uppercase;letter-spacing:.08em;color:var(--peak);border:1.5px solid var(--peak);border-radius:var(--pill);padding:0 .55em;vertical-align:.12em}

/* Buttons: rounded transport keys */
.actions,.seg{display:flex;flex-wrap:wrap;gap:10px}
.btn,button.btn,button[type="submit"]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:10px 22px;background:var(--brand);color:#fff;text-decoration:none;border:0;border-radius:var(--pill);font:700 1rem/1.2 var(--f-body);cursor:pointer;box-shadow:inset 0 -4px 0 rgba(0,0,0,.28)}
.btn:hover,button.btn:hover{background:var(--acc)}
.btn:active{box-shadow:inset 0 2px 0 rgba(0,0,0,.3);padding-top:12px;padding-bottom:8px}
.btn.secondary,button.btn.secondary,.actions .btn+.btn{background:transparent;color:var(--acc);box-shadow:inset 0 0 0 2px var(--brand)}
.btn.secondary:hover,.actions .btn+.btn:hover{background:var(--tint)}

/* Cards: cassette — teal label strip carrying the vendor name */
.cards{display:grid;gap:16px}
.card{background:var(--surface);border:2px solid var(--fg);border-radius:var(--r);padding:0 16px 14px;overflow:hidden}
.card h3{margin:0 -16px 12px;padding:10px 16px;background:var(--brand);color:#fff;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.card .meta{color:var(--mut);margin-top:0;font-size:var(--step--1)}
.card li::marker{color:var(--brand)}
.card .per-unit{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:10px 0;padding:10px 12px;background:var(--head);color:var(--head-fg);border-radius:6px}
.card .per-unit strong{color:var(--hi);font:800 1.3rem/1 var(--f-display)}
@media (min-width:900px){.cards.two{grid-template-columns:1fr 1fr}}

/* VU level bar: relative cost, CSS only. Set --lvl:0..1 inline, e.g. style="--lvl:.4" */
.meter{--lvl:.5;height:10px;border-radius:3px;background:
  linear-gradient(90deg,transparent calc(var(--lvl)*100%),var(--soft) 0),
  linear-gradient(90deg,var(--brand) 0 70%,var(--hi) 70% 88%,var(--peak) 88%);
  -webkit-mask:repeating-linear-gradient(90deg,#000 0 7px,transparent 7px 9px);mask:repeating-linear-gradient(90deg,#000 0 7px,transparent 7px 9px);
  min-width:5rem}

/* Tables: scroll in .scroll with sticky first column by default; class="stack" + data-label stacks rows under 560px */
.scroll{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--fg);border-radius:var(--r);margin:12px 0;background:var(--surface)}
table{border-collapse:collapse;width:100%;min-width:20rem;font-size:.97rem}
caption{caption-side:top;text-align:left;padding:10px 12px;font:800 .72rem/1.4 var(--f-display);text-transform:uppercase;letter-spacing:.08em;color:var(--mut)}
th,td{text-align:left;padding:11px 12px;border-bottom:1px dotted #9A9483;vertical-align:middle}
th{background:var(--head);color:var(--head-fg);font:800 .72rem/1.3 var(--f-display);text-transform:uppercase;letter-spacing:.08em}
th:first-child,td:first-child{position:sticky;left:0;z-index:1}
td:first-child{background:var(--surface);font-weight:700}
td.num,th.num{text-align:right;white-space:nowrap}
td small,.cell-note{display:block;color:var(--mut);font-size:.82rem;font-weight:400;margin-top:2px}
.na{color:var(--mut);font-style:italic}
@media (max-width:560px){
  table.stack caption{display:block;width:100%}
  table.stack{min-width:0}
  table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.stack tr{padding:12px;border-bottom:2px solid var(--line)}
  table.stack td:first-child{display:block;text-align:left;font:800 1rem/1.3 var(--f-display);text-transform:uppercase;letter-spacing:.03em;padding-bottom:6px}
  table.stack td:first-child::before{content:none}
  table.stack td .meter{flex:1;max-width:10rem}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack td{position:relative;border:0;padding:3px 0 3px 7.5rem;text-align:left;white-space:normal;min-height:1.6em}
  table.stack td::before{content:attr(data-label);position:absolute;left:0;top:5px;width:calc(7.5rem - .6rem);font:700 .7rem/1.5 var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
  table.stack td:first-child{padding-left:0}
  table.stack td:first-child::before{content:none}
  table.stack td.num{text-align:left}
}

.field{margin:0 0 14px}
label,legend{font-weight:700;display:block;margin-bottom:6px}
fieldset{border:0;margin:0 0 14px;padding:0;min-width:0}
input,select{width:100%;max-width:100%;min-height:48px;font:inherit;padding:8px 12px;border:2px solid #7D8B8E;border-radius:var(--r);background:var(--surface);color:var(--fg)}
input[readonly]{background:var(--soft)}
.help{margin:.35rem 0 0;color:var(--mut);font-size:var(--step--1)}
.seg{flex-direction:column}
.seg label{display:flex;align-items:center;gap:10px;min-height:48px;margin:0;padding:8px 14px;border:2px solid var(--line);border-radius:var(--pill);font-weight:700;position:relative;background:var(--surface)}
.seg label:has(:checked){border-color:var(--brand);background:var(--tint)}
.seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.results{background:var(--head);color:var(--head-fg);border-radius:var(--r);padding:14px 16px;margin:8px 0 16px}
.results strong{color:var(--hi)}
.signup{background:var(--tint);border-radius:var(--r);padding:16px;margin:20px 0}
.site-foot{margin-top:32px;padding:18px 0 32px;background:var(--head);color:var(--head-fg);border-top:4px solid var(--brand)}
.site-foot a{color:var(--head-fg);display:inline-flex;align-items:center;min-height:48px;padding:4px 6px}
.site-foot small,.site-foot .note{color:#C9D3D2}
.foot-links{display:flex;flex-wrap:wrap;gap:4px 8px}
small{display:block;color:var(--mut);margin:16px 0}
@media (max-width:768px){
  .menu-btn{display:inline-flex;align-items:center}
  nav.primary{display:none;flex-basis:100%;flex-direction:column;border-top:1px solid #2C4249}
  nav.primary.open{display:flex}
  nav.primary a{width:100%}
  .seg label{width:100%}
  .tagline{order:3;flex-basis:100%;padding-bottom:6px}
}
@media (min-width:769px){
  .menu-btn{display:none}
  nav.primary{margin-left:auto}
  .seg{flex-direction:row}
  .seg label{flex:1 1 9rem}
}
