/* Quiet Yield — site styles.
   Direction: an inspection certificate. Century Schoolbook (TeX Gyre Schola) throughout,
   blue-black ink on cool grey paper, oxblood reserved for the Seal and the one action on each page.
   Tokens are documented in design-system/quiet-yield/MASTER.md. */

@font-face{font-family:"Schola";src:url("../fonts/schola-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Schola";src:url("../fonts/schola-italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Schola";src:url("../fonts/schola-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Schola";src:url("../fonts/schola-bolditalic.woff") format("woff");font-weight:700;font-style:italic;font-display:swap}

:root{
  --paper:#ECEEF0; --sheet:#F9FAFB; --ink:#1A2230; --ink-2:#4A5363; --rule:#C4CAD2;
  --ox:#6B1E24; --ox-strong:#4F1418; --on-ox:#FFFFFF; --ox-tint:#F1E4E5;
  --font:"Schola","Century Schoolbook","New Century Schoolbook",Georgia,serif;
  --measure:36em; --wide:1120px; --gutter:20px;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:104px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --paper:#12161D; --sheet:#1A1F28; --ink:#E4E7EB; --ink-2:#A9B1BD; --rule:#2E3542;
  --ox:#E7A3A7; --ox-strong:#F3C6C9; --on-ox:#12161D; --ox-tint:#36222A; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#12161D; --sheet:#1A1F28; --ink:#E4E7EB; --ink-2:#A9B1BD; --rule:#2E3542;
  --ox:#E7A3A7; --ox-strong:#F3C6C9; --on-ox:#12161D; --ox-tint:#36222A; color-scheme:dark}
@media (min-width:720px){:root{--gutter:40px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 19px/1.62 var(--font);
  font-variant-numeric:oldstyle-nums proportional-nums;font-kerning:normal;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:var(--ox)}
a:hover{color:var(--ox)}
:focus-visible{outline:2px solid var(--ox);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:var(--gutter);top:-100px;background:var(--ink);color:var(--paper);padding:10px 14px;z-index:20}
.skip:focus{top:10px}
.wrap{max-width:var(--wide);margin-inline:auto;padding-inline:var(--gutter)}

h1,h2,h3{font-weight:700;line-height:1.12;margin:0;text-wrap:balance;font-variant-numeric:lining-nums}
h1{font-size:clamp(35px,4.7vw,56px);letter-spacing:-.018em;line-height:1.04}
h2{font-size:clamp(27px,3.4vw,34px);letter-spacing:-.01em}
h3{font-size:21px;line-height:1.3}
p{margin:0}
.lede{font-size:clamp(20px,1.9vw,22px);line-height:1.5;color:var(--ink-2);max-width:31em}
.muted{color:var(--ink-2)}
.small{font-size:16px;line-height:1.5}
.num{font-variant-numeric:lining-nums tabular-nums}

/* Header */
.site-head{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 94%,transparent);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--rule)}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 24px;min-height:68px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-weight:700;font-size:21px;letter-spacing:.01em;min-height:48px}
.brand svg{width:38px;height:38px;color:var(--ox);flex:none}
.brand:hover{color:var(--ink)}
.site-nav{display:flex;flex-wrap:wrap;gap:0 4px;margin-right:-10px}
.site-nav a{display:inline-flex;align-items:center;min-height:48px;padding:0 10px;text-decoration:none;font-size:17px;color:var(--ink-2)}
.site-nav a:hover{color:var(--ink)}
.site-nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ox);text-decoration-thickness:2px;text-underline-offset:8px}
@media (max-width:560px){.site-head .wrap{padding-block:6px}.site-nav{width:100%;margin-left:-10px}.site-nav a{font-size:16px}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:0;border-radius:3px;
  background:var(--ox);color:var(--on-ox);font:700 18px/1 var(--font);text-decoration:none;cursor:pointer;
  transition:background-color .16s var(--ease)}
.btn:hover{background:var(--ox-strong);color:var(--on-ox)}
.btn:active{transform:translateY(1px)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.textlink{font-size:18px;min-height:48px;display:inline-flex;align-items:center}

/* Page sections: heading in the left margin, content on the right, like the fields of a form */
main{display:block}
.section{padding-block:var(--s5);border-top:1px solid var(--rule)}
@media (min-width:900px){.section{padding-block:var(--s6)}}
.field{display:grid;gap:var(--s3)}
@media (min-width:900px){.field{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s4)}}
.field>header{display:grid;gap:12px;align-content:start}
.field>header p{color:var(--ink-2);max-width:22em}
.body{display:grid;gap:var(--s3);max-width:var(--measure)}
.body p{max-width:var(--measure)}

/* Hero */
.hero{padding-block:28px var(--s5);overflow-x:clip}
@media (min-width:900px){.hero{padding-block:44px var(--s6)}}
.hero .wrap{display:grid;gap:var(--s5);align-items:start}
@media (min-width:980px){.hero .wrap{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:56px}}
.hero-text{display:grid;gap:20px}
.hero-text .price-line{font-size:18px;color:var(--ink)}
.hero-text .price-line b{font-variant-numeric:lining-nums}

/* The exhibit: a question, the assistant's answer and the page's truth, stamped */
.exhibit{position:relative;margin:0;background:var(--sheet);border:1px solid var(--rule);
  box-shadow:0 1px 0 var(--rule),0 18px 40px -28px rgb(20 26 36/.35);padding:var(--s3) var(--s3) var(--s4)}
@media (min-width:720px){.exhibit{padding:32px 36px 44px}}
.exhibit dl{margin:0;display:grid;gap:22px}
.exhibit dt{font-size:16px;font-style:italic;color:var(--ink-2);margin-bottom:4px}
.exhibit dd{margin:0}
.exhibit .q{font-size:21px;line-height:1.4}
.exhibit .wrong{font-size:19px;padding-left:16px;border-left:3px solid var(--ox)}
.exhibit .right{font-size:19px;padding-left:16px;border-left:3px solid var(--ink)}
.exhibit .why{padding-top:18px;border-top:1px solid var(--rule)}
.exhibit .cause{font-size:17px;color:var(--ink-2)}
.exhibit figcaption{position:absolute;left:var(--s3);bottom:12px;font-size:14px;font-style:italic;color:var(--ink-2)}
@media (min-width:720px){.exhibit figcaption{left:36px}}
.exhibit{margin-top:72px;padding-top:44px}
.stamp{position:absolute;width:124px;height:124px;right:-4px;top:-96px;color:var(--ox);transform:rotate(-11deg);
  opacity:.9;pointer-events:none;filter:url(#rough)}
@media (min-width:720px){.exhibit{padding-top:56px}.stamp{width:150px;height:150px;right:-36px;top:-104px}}
@media (min-width:980px){.exhibit{margin-top:84px}}
@media (prefers-reduced-motion:no-preference){
  .stamp{animation:stamp .5s cubic-bezier(.3,1.4,.5,1) .45s both}
  @keyframes stamp{from{opacity:0;transform:rotate(-20deg) scale(1.35)}60%{opacity:.95}to{opacity:.9;transform:rotate(-11deg) scale(1)}}
}
@media (forced-colors:active){.stamp{filter:none}}

/* Coverage lists */
.coverage{display:grid;gap:var(--s4)}
@media (min-width:720px){.coverage{grid-template-columns:3fr 2fr;gap:var(--s4)}}
.coverage h3{margin-bottom:12px}
.ticks,.crosses{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ticks li,.crosses li{position:relative;padding-left:30px}
.ticks li::before{content:"";position:absolute;left:2px;top:.42em;width:14px;height:8px;border-left:2px solid var(--ox);border-bottom:2px solid var(--ox);transform:rotate(-45deg)}
.crosses li{color:var(--ink-2)}
.crosses li::before{content:"";position:absolute;left:3px;top:.72em;width:13px;height:2px;background:var(--ink-2)}

/* Report sheet */
.sheet{background:var(--sheet);border:1px solid var(--rule);box-shadow:0 1px 0 var(--rule)}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px var(--s3);border-bottom:2px solid var(--ink)}
@media (min-width:720px){.sheet-head{padding:22px 32px}}
.sheet-head p{font-size:17px}
.sheet-head b{display:block;font-size:19px}
.sheet-head svg{width:52px;height:52px;color:var(--ox);flex:none;opacity:.9}
.finding{padding:22px var(--s3);border-bottom:1px solid var(--rule);display:grid;gap:12px}
@media (min-width:720px){.finding{padding:26px 32px}}
.finding:last-child{border-bottom:0}
.priority{font-style:italic;font-weight:700;font-size:17px;align-self:start}
.priority.high{color:var(--ox)}
.priority.medium{color:var(--ink-2)}
.finding dl{margin:0;display:grid;gap:10px}
.finding dl>div{display:grid;gap:2px}
@media (min-width:560px){.finding dl>div{grid-template-columns:110px 1fr;gap:16px}}
.finding dt{font-size:16px;font-style:italic;color:var(--ink-2);padding-top:2px}
.finding dd{margin:0;font-size:18px;line-height:1.55}
.finding .lead dd{font-size:19px}
.note{font-size:15px;font-style:italic;color:var(--ink-2);margin-top:14px}

/* Steps: a real sequence, so numbered */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:step}
.steps li{counter-increment:step;display:grid;grid-template-columns:44px 1fr;gap:6px 16px;padding-block:22px;border-top:1px solid var(--rule)}
.steps li:first-child{border-top:0;padding-top:4px}
.steps li::before{content:counter(step);grid-row:span 2;font-weight:700;font-size:30px;line-height:1;color:var(--ox);font-variant-numeric:lining-nums}
.steps h3{font-size:20px}
.steps p{color:var(--ink-2)}

/* Price */
.price{display:grid;gap:var(--s3);padding:var(--s4) var(--s3);background:var(--sheet);border:1px solid var(--rule);border-top:3px solid var(--ox)}
@media (min-width:720px){.price{padding:var(--s4) 40px}}
.price .amount{font-size:clamp(56px,8vw,80px);font-weight:700;line-height:1;letter-spacing:-.02em;font-variant-numeric:lining-nums}
.price .amount small{font-size:20px;font-weight:400;letter-spacing:0;color:var(--ink-2);margin-left:10px}
.price ul{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--ink-2)}
.price li::marker{color:var(--ox)}

/* Questions */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;font-weight:700;font-size:20px;line-height:1.35;min-height:48px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:26px;line-height:1;color:var(--ox);flex:none;transition:transform .2s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 22px;display:grid;gap:12px;color:var(--ink-2);max-width:var(--measure)}

/* Form */
.form{display:grid;gap:20px;max-width:34em}
.form label{display:grid;gap:6px;font-weight:700;font-size:17px}
.form label span{font-weight:400;font-style:italic;color:var(--ink-2)}
.form input,.form textarea,.form select{font:400 18px/1.4 var(--font);color:var(--ink);background:var(--sheet);border:1px solid var(--rule);border-bottom:2px solid var(--ink-2);
  border-radius:2px;padding:12px 14px;min-height:52px;width:100%}
.form textarea{min-height:110px;resize:vertical}
.form input:focus,.form textarea:focus,.form select:focus{outline:2px solid var(--ox);outline-offset:1px;border-bottom-color:var(--ox)}
.form .hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form .fine{font-size:16px;color:var(--ink-2);max-width:32em}

/* Footer */
.site-foot{border-top:2px solid var(--ink);padding-block:var(--s4) var(--s5);font-size:16px;color:var(--ink-2)}
.site-foot .wrap{display:grid;gap:var(--s3)}
@media (min-width:720px){.site-foot .wrap{grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s4)}}
.site-foot svg{width:76px;height:76px;color:var(--ox)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:0 18px}
.site-foot nav a{min-height:44px;display:inline-flex;align-items:center}

/* Simple pages */
.page-intro{padding-block:var(--s5) var(--s4);display:grid;gap:var(--s3)}
@media (min-width:900px){.page-intro{padding-block:var(--s6) var(--s5)}}
.page-intro h1{max-width:15em}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{.site-head,.site-foot nav,.btn{display:none}body{background:#fff}}
