:root {
  --color-primary:#0b1f35;
  --color-secondary:#f7f2e8;
  --color-accent:#bd9855;
  --color-background:#fbf7ef;
  --color-text:#0b1f35;
  --font-serif: Georgia, 'Times New Roman', serif;
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --shadow: 0 18px 45px rgba(11,31,53,.12);
  --border: 1px solid rgba(11,31,53,.12);
}
* { box-sizing: border-box; }
body { margin:0; background:var(--color-background); color:var(--color-text); font-family:var(--font-sans); line-height:1.6; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--color-accent); }
img { max-width:100%; display:block; }
button, .button { background:var(--color-accent); color:#fff; border:0; padding:.9rem 1.15rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.78rem; cursor:pointer; display:inline-block; border-radius:0; }
button:hover, .button:hover { filter:brightness(.95); color:#fff; }
.button-secondary, .button.secondary { background:transparent; color:var(--color-primary); border:1px solid var(--color-accent); }
.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; font-weight:700; color:var(--color-accent); }
.top-note { background:var(--color-primary); color:#fff; display:flex; justify-content:center; gap:1rem; padding:.6rem 1rem; font-size:.85rem; }
.site-header { background:#fff; display:flex; align-items:center; justify-content:space-between; min-height:86px; padding:0 4vw; border-bottom:var(--border); position:sticky; top:0; z-index:20; }
.brand { font-family:var(--font-serif); font-size:2rem; letter-spacing:-.03em; line-height:1; color:var(--color-primary); display:inline-flex; flex-direction:column; text-transform:uppercase; }
.brand-main { font-size:1.6rem; }
.brand-accent { color:var(--color-accent); font-size:1.15rem; text-align:right; margin-top:-.2rem; }
.site-nav { display:flex; align-items:center; gap:1.35rem; text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; font-weight:700; }
.nav-search { border-left:var(--border); padding-left:1rem; }
.nav-toggle { display:none; background:transparent; color:var(--color-primary); border:1px solid rgba(11,31,53,.2); padding:.5rem .7rem; }
.hero { min-height:620px; background-size:cover; background-position:center; display:flex; align-items:center; padding:6vw; color:#fff; }
.hero-content { max-width:620px; }
.hero h1 { font-family:var(--font-serif); font-size:clamp(3rem, 6vw, 5.6rem); line-height:.95; margin:.7rem 0 1rem; font-weight:400; letter-spacing:-.05em; }
.hero p { font-size:1.08rem; max-width:520px; margin-bottom:1.7rem; }
.promise-row { display:grid; grid-template-columns:repeat(4,1fr); gap:0; max-width:1180px; margin:2.2rem auto 1.3rem; background:#fff; border:var(--border); box-shadow:var(--shadow); }
.promise-row div { padding:1.7rem; border-right:var(--border); }
.promise-row div:last-child { border-right:0; }
.promise-row strong { display:block; text-transform:uppercase; letter-spacing:.12em; font-size:.78rem; margin-bottom:.35rem; }
.promise-row span { font-size:.92rem; color:rgba(11,31,53,.75); }
.content-section, .newsletter-panel, .seasonal-panel { max-width:1180px; margin:3rem auto; padding:0 1.3rem; }
.section-heading { text-align:center; max-width:760px; margin:0 auto 1.7rem; }
.section-heading h2, .newsletter-panel h2, .seasonal-panel h2, .archive-header h1, .page-content h1, .article-hero h1 { font-family:var(--font-serif); line-height:1; font-weight:400; letter-spacing:-.035em; }
.section-heading h2 { font-size:2.1rem; margin:.4rem 0; }
.article-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.article-grid.single { grid-template-columns:minmax(0, 1fr); }
.article-card { background:#fff; border:var(--border); min-height:100%; box-shadow:0 12px 35px rgba(11,31,53,.06); }
.article-card__image { min-height:220px; background-size:cover; background-position:center; display:block; }
.article-card__body { padding:1.25rem; }
.article-card h3 { font-family:var(--font-serif); font-size:1.45rem; line-height:1.05; margin:.45rem 0 .65rem; font-weight:400; }
.article-card p { color:rgba(11,31,53,.75); margin:.2rem 0 .9rem; font-size:.95rem; }
.text-link { text-transform:uppercase; letter-spacing:.12em; font-size:.72rem; color:var(--color-accent); font-weight:800; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.category-tile { background:#fff; border:var(--border); padding:1.5rem; min-height:150px; display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 12px 35px rgba(11,31,53,.06); }
.category-tile span { font-family:var(--font-serif); font-size:1.45rem; }
.category-tile small { color:rgba(11,31,53,.7); }
.newsletter-panel { display:flex; align-items:center; justify-content:space-between; gap:2rem; background:var(--color-primary); color:#fff; padding:2.5rem; }
.newsletter-panel h2 { font-size:2.1rem; margin:.35rem 0; }
.newsletter-form { display:flex; min-width:min(520px,100%); }
.newsletter-form input { flex:1; padding:1rem; border:1px solid rgba(255,255,255,.4); background:rgba(255,255,255,.08); color:#fff; }
.newsletter-form input::placeholder { color:rgba(255,255,255,.72); }
.newsletter-form button { background:var(--color-accent); }
.seasonal-panel { background:linear-gradient(135deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 80%, var(--color-accent))); color:#fff; padding:2.4rem; text-align:center; box-shadow:var(--shadow); }
.seasonal-panel h2 { font-size:2.4rem; margin:.4rem 0; }
.page-wrap, .article-wrap { max-width:1180px; margin:0 auto; padding:4rem 1.3rem; }
.page-wrap.narrow { max-width:820px; }
.archive-header { max-width:780px; margin-bottom:2rem; }
.archive-header h1, .page-content h1 { font-size:3.2rem; margin:.4rem 0; }
.search-form, .public-form, .install-form { display:grid; gap:1rem; }
.search-form { grid-template-columns:1fr auto; margin-bottom:2rem; max-width:760px; }
input, textarea, select { width:100%; padding:.85rem .9rem; border:1px solid rgba(11,31,53,.2); background:#fff; color:var(--color-text); font:inherit; }
label { display:grid; gap:.35rem; font-weight:700; font-size:.9rem; }
.check { display:flex; flex-direction:row; gap:.5rem; align-items:flex-start; }
.check input { width:auto; margin-top:.3rem; }
.article-detail { max-width:880px; margin:0 auto; }
.article-hero { text-align:center; margin-bottom:2rem; }
.article-hero h1 { font-size:clamp(2.7rem, 6vw, 5rem); margin:.5rem 0; }
.subtitle { font-size:1.2rem; color:rgba(11,31,53,.75); }
.article-meta { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; color:rgba(11,31,53,.65); font-size:.9rem; }
.article-main-image { width:100%; border:var(--border); margin-bottom:2rem; }
.article-body { font-family:var(--font-serif); font-size:1.22rem; line-height:1.75; }
.article-body p { margin:0 0 1.2rem; }
.article-body .button { font-family:var(--font-sans); font-size:.8rem; }
.public-form { background:#fff; border:var(--border); padding:2rem; box-shadow:var(--shadow); }
.notice { padding:1rem; margin:1rem 0; border:var(--border); background:#fff; }
.notice.success { border-color:rgba(55,120,80,.4); background:#f1f8f3; }
.notice.error { border-color:rgba(150,40,40,.4); background:#fff4f3; }
.site-footer { background:var(--color-primary); color:#fff; margin-top:3rem; padding:2.2rem 4vw; }
.footer-newsletter { display:flex; justify-content:space-between; gap:2rem; align-items:center; border-bottom:1px solid rgba(255,255,255,.16); padding-bottom:1.6rem; }
.footer-newsletter p { margin:.3rem 0 0; }
.footer-bottom { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding-top:1.2rem; font-size:.85rem; color:rgba(255,255,255,.75); }
.footer-bottom a { margin-left:1rem; }
.install-body { min-height:100vh; display:grid; place-items:center; padding:2rem; background:linear-gradient(135deg, #fbf7ef, #eef3f5); }
.install-card { width:min(880px, 100%); background:#fff; border:var(--border); box-shadow:var(--shadow); padding:2rem; }
.install-card h1 { font-family:var(--font-serif); font-size:2.7rem; font-weight:400; margin:.2rem 0 1rem; }
.install-form fieldset { border:var(--border); padding:1rem; display:grid; gap:1rem; margin:0; }
.install-form legend { padding:0 .4rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; font-size:.75rem; }
.small-note { font-size:.85rem; color:rgba(11,31,53,.68); }
code { background:rgba(11,31,53,.08); padding:.15rem .3rem; }
@supports not (background: color-mix(in srgb, #000, #fff)) {
  .seasonal-panel { background:var(--color-primary); }
}
@media (max-width: 980px) {
  .site-header { align-items:flex-start; padding:1rem 4vw; }
  .nav-toggle { display:block; }
  .site-nav { display:none; position:absolute; left:0; right:0; top:86px; background:#fff; flex-direction:column; align-items:flex-start; padding:1rem 4vw; border-bottom:var(--border); }
  .site-nav.is-open { display:flex; }
  .article-grid, .category-grid, .promise-row { grid-template-columns:repeat(2,1fr); }
  .newsletter-panel, .footer-newsletter { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 640px) {
  .hero { min-height:520px; padding:2rem; }
  .article-grid, .category-grid, .promise-row, .search-form { grid-template-columns:1fr; }
  .promise-row div { border-right:0; border-bottom:var(--border); }
  .footer-bottom a { margin:0 1rem 0 0; }
  .newsletter-form { flex-direction:column; }
}
