/* Household Sorted — shared stylesheet
   Palette: enamel teal, dishcloth paper, jam pink, mustard */

:root{
  --ink:#14323C;
  --ink-soft:#4A6670;
  --paper:#EFF2EC;
  --white:#FFFFFF;
  --jam:#C0405F;
  --jam-dark:#9C2F49;
  --mustard:#F2B441;
  --line:#D4DCD3;
  --wrap:1100px;
  --gap:clamp(2.5rem,6vw,5rem);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none !important;transition:none !important}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.wordmark,.btn,nav a,.meta,th{
  font-family:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
}

h1{font-size:clamp(2.3rem,6vw,3.9rem);line-height:1.02;letter-spacing:-.025em;font-weight:800;margin:0 0 1rem}
h2{font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.1;letter-spacing:-.02em;font-weight:700;margin:0 0 .9rem}
h3{font-size:1.2rem;line-height:1.25;font-weight:700;margin:0 0 .4rem}
p{margin:0 0 1rem;max-width:68ch}
a{color:var(--jam-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--mustard);outline-offset:3px;border-radius:2px;
}
img,video{max-width:100%;display:block}

.wrap{width:min(var(--wrap),92vw);margin-inline:auto}
.section{padding-block:var(--gap)}
.section + .section{padding-top:0}
.lede{font-size:1.2rem;color:var(--ink-soft)}

/* ---------- header ---------- */
.site-head{background:var(--ink);color:var(--white)}
.head-inner{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;padding-block:1.1rem}
.wordmark{font-weight:800;font-size:1.3rem;letter-spacing:-.02em;color:var(--white);text-decoration:none;display:flex;align-items:baseline;gap:.5rem}
.wordmark span{width:.55rem;height:.55rem;background:var(--mustard);border-radius:50%;display:inline-block}
.site-head nav{margin-left:auto}
.site-head nav ul{display:flex;flex-wrap:wrap;gap:1.25rem;list-style:none;margin:0;padding:0}
.site-head nav a{color:var(--white);text-decoration:none;font-size:.97rem;padding-bottom:3px;border-bottom:2px solid transparent}
.site-head nav a:hover{border-bottom-color:var(--mustard)}
.site-head nav a[aria-current="page"]{border-bottom-color:var(--jam)}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;background:var(--jam);color:var(--white);
  text-decoration:none;font-weight:600;font-size:1rem;
  padding:.85rem 1.5rem;border:0;border-radius:2px;cursor:pointer;
}
.btn:hover{background:var(--jam-dark)}
.btn-quiet{background:transparent;color:var(--ink);border:2px solid var(--ink);padding:.72rem 1.35rem}
.btn-quiet:hover{background:var(--ink);color:var(--white)}

/* ---------- hero ---------- */
.hero{background:var(--white);border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:clamp(3rem,7vw,5.5rem)}
.hero p{font-size:1.15rem;color:var(--ink-soft)}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.hero-figure{position:relative}
.hero-figure img{border-radius:2px;position:relative;z-index:1}
.hero-figure::after{content:"";position:absolute;inset:14px -14px -14px 14px;background:var(--mustard);z-index:0}
.hero-note{font-size:.9rem;color:var(--ink-soft);margin-top:1.6rem}

/* ---------- reset sheet (the signature piece) ---------- */
.sheet-band{background:var(--ink);color:var(--white)}
.sheet-band .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:var(--gap)}
.sheet-band h2{color:var(--white)}
.sheet-band p{color:#CBD9DC}
.sheet{
  background:var(--white);color:var(--ink);padding:1.75rem 1.75rem 1.75rem 3rem;position:relative;
  background-image:repeating-linear-gradient(var(--white) 0 30px,var(--line) 30px 31px);
  box-shadow:14px 14px 0 rgba(0,0,0,.18);
}
.sheet::before{content:"";position:absolute;top:0;bottom:0;left:2rem;width:2px;background:var(--jam);opacity:.5}
.sheet h3{margin-bottom:1rem;line-height:31px}
.sheet ul{list-style:none;margin:0;padding:0}
.sheet li{line-height:31px;padding-left:1.9rem;position:relative}
.sheet li::before{
  content:"";position:absolute;left:0;top:8px;width:15px;height:15px;
  border:2px solid var(--ink);border-radius:2px;
}
.sheet li.done::after{
  content:"";position:absolute;left:4px;top:11px;width:11px;height:6px;
  border-left:3px solid var(--jam);border-bottom:3px solid var(--jam);transform:rotate(-45deg);
}

/* ---------- pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem 2.5rem;margin-top:2rem}
.pillar{border-left:3px solid var(--mustard);padding-left:1.1rem}
.pillar p{font-size:1rem;color:var(--ink-soft);margin:0}

/* ---------- video ---------- */
.video-block{background:var(--white);border:1px solid var(--line);padding:clamp(1rem,3vw,2rem)}
.video-block video{width:100%;background:var(--ink);border-radius:2px}
.caption{font-size:.92rem;color:var(--ink-soft);margin:.9rem 0 0;max-width:60ch}

/* ---------- post list ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;margin-top:2rem}
.post-card{background:var(--white);border:1px solid var(--line)}
.post-card img{aspect-ratio:3/2;object-fit:cover;width:100%}
.post-card .body{padding:1.1rem 1.25rem 1.5rem}
.post-card h3 a{color:var(--ink);text-decoration:none}
.post-card h3 a:hover{color:var(--jam-dark)}
.meta{font-size:.8rem;letter-spacing:.02em;color:var(--ink-soft);margin:0 0 .45rem}
.post-card p{font-size:.97rem;color:var(--ink-soft);margin:.5rem 0 0}

/* ---------- article + sidebar (WordPress-style) ---------- */
.with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,3.5rem);align-items:start}
.article{background:var(--white);border:1px solid var(--line);padding:clamp(1.5rem,4vw,3rem)}
.article p,.article li{max-width:66ch}
.article h2{margin-top:2rem}
.article blockquote{margin:1.75rem 0;padding:.25rem 0 .25rem 1.25rem;border-left:4px solid var(--mustard);font-size:1.1rem}
.widget{background:var(--white);border:1px solid var(--line);padding:1.25rem 1.4rem;margin-bottom:1.5rem}
.widget h3{font-size:1rem;border-bottom:2px solid var(--jam);padding-bottom:.5rem;margin-bottom:.75rem}
.widget ul{list-style:none;margin:0;padding:0;font-size:.97rem}
.widget li{padding:.35rem 0;border-bottom:1px solid var(--line)}
.widget li:last-child{border-bottom:0}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;background:var(--white);margin:1.5rem 0;font-size:1rem}
th,td{text-align:left;padding:.8rem 1rem;border-bottom:1px solid var(--line)}
th{background:var(--ink);color:var(--white);font-weight:600;font-size:.95rem}
tbody tr:last-child td{border-bottom:0}
caption{caption-side:bottom;font-size:.88rem;color:var(--ink-soft);padding-top:.7rem;text-align:left}

/* ---------- forms ---------- */
.signup{background:var(--mustard);padding:var(--gap) 0}
.signup h2{max-width:20ch}
form{display:grid;gap:.9rem;max-width:34rem}
.field-row{display:flex;flex-wrap:wrap;gap:.6rem}
.field-row input{flex:1 1 15rem}
label{font-size:.95rem;font-weight:600}
input,textarea,select{
  font:inherit;font-size:1rem;padding:.8rem .9rem;border:2px solid var(--ink);
  border-radius:2px;background:var(--white);color:var(--ink);width:100%;
}
.fine{font-size:.85rem;color:#5A4410;margin:0}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:#C7D6D9;padding-block:var(--gap) 2rem;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}
.site-foot h3{color:var(--white);font-size:1rem;margin-bottom:.6rem}
.site-foot a{color:var(--white);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.site-foot a:hover{border-bottom-color:var(--mustard)}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{padding:.25rem 0}
.colophon{border-top:1px solid rgba(255,255,255,.18);margin-top:2.5rem;padding-top:1.25rem;font-size:.85rem}

/* ---------- page header for inner pages ---------- */
.page-head{background:var(--white);border-bottom:1px solid var(--line);padding-block:clamp(2.5rem,6vw,4rem)}
.page-head p{color:var(--ink-soft);font-size:1.12rem}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .hero-grid,.sheet-band .wrap,.with-sidebar{grid-template-columns:1fr}
  .hero-figure::after{inset:10px -10px -10px 10px}
  .site-head nav{margin-left:0;width:100%}
}
