@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap');
@import 'tailwindcss';
@import 'tw-animate-css';
@plugin "@tailwindcss/typography";

:root {
  --background: 33 36% 95%;
  --foreground: 20 18% 11%;
  --card: 31 41% 97%;
  --card-foreground: 20 18% 11%;
  --popover: 31 41% 97%;
  --popover-foreground: 20 18% 11%;
  --primary: 15 52% 51%;
  --primary-foreground: 32 45% 97%;
  --secondary: 34 37% 88%;
  --secondary-foreground: 20 18% 11%;
  --muted: 35 22% 87%;
  --muted-foreground: 24 12% 39%;
  --accent: 153 20% 31%;
  --accent-foreground: 32 45% 97%;
  --destructive: 3 58% 44%;
  --destructive-foreground: 32 45% 97%;
  --border: 32 27% 80%;
  --input: 32 27% 80%;
  --ring: 15 52% 51%;
  --radius: 0.9rem;
  --paper: #faf6ef;
  --sand: #eee4d2;
  --rust: #bf6146;
  --rust-deep: #93412f;
  --ink: #211b17;
  --ink-soft: #514940;
  --sage: #3d5a4c;
  --line: #d8cabb;
  --serif: 'Fraunces', Georgia, serif;
  --sans: 'DM Sans', system-ui, sans-serif;
  --mono: 'DM Mono', monospace;
}

.dark {
  --background: 20 16% 12%;
  --foreground: 32 35% 92%;
  --card: 20 15% 16%;
  --card-foreground: 32 35% 92%;
  --popover: 20 15% 16%;
  --popover-foreground: 32 35% 92%;
  --primary: 15 58% 59%;
  --primary-foreground: 20 16% 12%;
  --secondary: 22 16% 23%;
  --secondary-foreground: 32 35% 92%;
  --muted: 22 16% 23%;
  --muted-foreground: 30 16% 67%;
  --accent: 153 24% 40%;
  --accent-foreground: 32 35% 92%;
  --destructive: 3 58% 50%;
  --destructive-foreground: 32 35% 92%;
  --border: 22 13% 28%;
  --input: 22 13% 28%;
  --ring: 15 58% 59%;
}

@theme inline {
  --color-background: hsl(var(--background));
  --color-foreground: hsl(var(--foreground));
  --color-card: hsl(var(--card));
  --color-card-foreground: hsl(var(--card-foreground));
  --color-popover: hsl(var(--popover));
  --color-popover-foreground: hsl(var(--popover-foreground));
  --color-primary: hsl(var(--primary));
  --color-primary-foreground: hsl(var(--primary-foreground));
  --color-secondary: hsl(var(--secondary));
  --color-secondary-foreground: hsl(var(--secondary-foreground));
  --color-muted: hsl(var(--muted));
  --color-muted-foreground: hsl(var(--muted-foreground));
  --color-accent: hsl(var(--accent));
  --color-accent-foreground: hsl(var(--accent-foreground));
  --color-destructive: hsl(var(--destructive));
  --color-destructive-foreground: hsl(var(--destructive-foreground));
  --color-border: hsl(var(--border));
  --color-input: hsl(var(--input));
  --color-ring: hsl(var(--ring));
  --font-sans: var(--sans);
  --font-serif: var(--serif);
  --font-mono: var(--mono);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::before {
  content: '';
  position: fixed;
  pointer-events: none;
  inset: 0;
  z-index: 100;
  opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.wrap { width: min(1160px, calc(100% - 48px)); margin: 0 auto; }
.skip { position: absolute; left: -999px; top: 12px; z-index: 200; background: var(--ink); color: var(--paper); padding: 8px 12px; border-radius: 8px; }
.skip:focus { left: 12px; }
.nav { position: sticky; top: 0; z-index: 50; background: rgba(250,246,239,.9); backdrop-filter: blur(15px); border-bottom: 1px solid var(--line); }
.nav-inner { min-height: 76px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; text-decoration:none; flex-shrink:0; }
.brand img { width: 180px; height:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:25px; font-size:13px; color:var(--ink-soft); }
.nav-links a { text-decoration:none; transition:color .2s ease; }
.nav-links a:hover, .nav-links a.active { color:var(--rust-deep); }
.nav-toggle { display:none; border:0; background:none; padding:8px; color:var(--ink); }
.nav-toggle span { display:block; width:23px; height:2px; background:currentColor; margin:4px 0; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--ink); border-radius:999px; background:var(--ink); color:var(--paper); padding:11px 19px; text-decoration:none; font-size:13px; font-weight:600; letter-spacing:.015em; transition:transform .2s ease, background .2s ease, border-color .2s ease; }
.btn:hover { transform:translateY(-2px); background:var(--rust-deep); border-color:var(--rust-deep); }
.btn-rust { background:var(--rust); border-color:var(--rust); }
.btn-ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.btn-ghost:hover { background:var(--sand); color:var(--ink); border-color:var(--ink); }
.btn-lg { padding:14px 24px; font-size:15px; }
.hero { padding:105px 0 92px; position:relative; overflow:hidden; }
.home-hero-mark { position:absolute; right:2%; top:8%; width:min(42vw,520px); height:auto; opacity:.08; pointer-events:none; z-index:0; }
.hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.12fr .88fr; gap:70px; align-items:end; }
.page-hero { padding:72px 0 56px; }
.page-hero h1 { font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.12; max-width:18ch; }
.page-hero .lede { margin-bottom:0; }
.page-hero + section { padding-top:72px; }
.page-hero ~ section h2 { font-size:clamp(1.8rem, 3vw, 2.4rem); }
.kicker { margin:0 0 18px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.17em; font-size:10px; color:var(--rust-deep); font-weight:500; }
h1,h2,h3 { font-family:var(--serif); font-weight:500; letter-spacing:-.035em; line-height:1.08; margin:0; }
h1 { font-size:clamp(48px, 7.2vw, 90px); max-width:780px; }
h2 { font-size:clamp(36px, 5vw, 62px); }
h3 { font-size:clamp(23px, 2.3vw, 31px); }
.lede { max-width:650px; color:var(--ink-soft); font-size:18px; line-height:1.65; margin:24px 0 28px; }
.hero-aside { border-top:1px solid var(--ink); padding-top:17px; max-width:320px; margin-left:auto; }
.hero-aside p { color:var(--ink-soft); font-size:14px; margin:0; }
.hero-aside strong { display:block; font-family:var(--serif); font-size:38px; font-weight:500; color:var(--rust); line-height:1; margin:13px 0 8px; }
.fine { font-size:12px; color:var(--muted-foreground); }
.cta-row { display:flex; gap:11px; flex-wrap:wrap; align-items:center; }
.home-hero-copy .lede { margin-bottom:36px; }
.home-hero-copy .fine { margin:18px 0 0; }
.home-work-note { margin:28px 0 0; }
section { padding:88px 0; }
.section-head { max-width:720px; margin-bottom:38px; }
.fourth-option { margin-top:88px; margin-bottom:0; }
.section-head .lede { margin:18px 0 0; }
.band { background:var(--ink); color:var(--paper); padding:18px 0; }
.band-row { display:flex; flex-wrap:wrap; justify-content:space-between; gap:13px 28px; font-family:var(--mono); font-size:10px; letter-spacing:.035em; text-transform:uppercase; }
.band-row span::before { content:'·'; color:var(--rust); margin-right:9px; }
.card-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card { background:#fdf9f4; border:1px solid var(--line); border-radius:18px; padding:29px; min-height:240px; transition:transform .25s ease, box-shadow .25s ease; }
.card:hover { transform:translateY(-5px); box-shadow:0 18px 35px rgba(66,37,24,.09); }
.card p { color:var(--ink-soft); font-size:15px; }
.num { color:var(--rust); font-family:var(--mono); font-size:11px; letter-spacing:.12em; margin-bottom:24px; }
.steward-week { padding-top:0; }
.steward-week-grid { display:grid; grid-template-columns:1fr; gap:40px; max-width:820px; }
.steward-week-grid figure { margin:0; }
.steward-week-grid img { display:block; width:100%; height:auto; object-fit:contain; border:1px solid #d8cabb; border-radius:14px; cursor:zoom-in; }
.steward-week-grid img:focus-visible { outline:3px solid var(--rust); outline-offset:4px; }
.steward-week-grid figcaption { margin-top:12px; color:var(--ink-soft); font-size:13px; line-height:1.55; }
.steward-week-note { margin:34px 0 0; color:var(--ink-soft); font-size:15px; }
.image-lightbox { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:4vh 4vw; background:rgba(33,27,23,.72); cursor:zoom-out; }
.image-lightbox img { display:block; max-width:92vw; max-height:92vh; width:auto; height:auto; object-fit:contain; }
.card h3 { margin-bottom:14px; }
.two-products { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.product-card { min-height:310px; display:flex; flex-direction:column; }
.product-card .card-link { margin-top:auto; color:var(--rust-deep); text-decoration:none; font-size:13px; font-weight:600; }
.sand-bg { background:var(--sand); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.steps { max-width:800px; }
.step { display:grid; grid-template-columns:64px 1fr; gap:24px; padding:26px 0; border-bottom:1px solid rgba(81,73,64,.22); }
.step-num { font-family:var(--serif); color:var(--rust); font-size:36px; line-height:1; }
.step h3 { font-size:25px; margin-bottom:8px; }
.step p { margin:0; max-width:650px; color:var(--ink-soft); font-size:15px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.quote { border-left:3px solid var(--rust); padding:4px 0 4px 25px; font-family:var(--serif); font-size:30px; line-height:1.18; color:var(--ink-soft); }
.work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; align-items:start; }
.work-card { background:var(--ink); color:var(--paper); border-radius:18px; padding:30px; min-height:280px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; }
.work-card::before { content:''; position:absolute; width:190px; height:190px; border-radius:50%; border:1px solid rgba(250,246,239,.22); right:-40px; top:-45px; }
.work-card::after { content:''; position:absolute; width:110px; height:110px; border-radius:50%; border:1px solid rgba(191,97,70,.65); right:25px; top:25px; }
.work-card > * { position:relative; z-index:1; }
.work-card-with-image { padding:0; min-height:0; justify-content:flex-start; }
.work-card-with-image::before,.work-card-with-image::after { display:none; }
.work-card-image { width:100%; aspect-ratio:16/10; object-fit:cover; }
.work-card-content { padding:26px 30px 30px; display:flex; flex:1; flex-direction:column; align-items:flex-start; }
.work-card .industry { color:#dda085; font-family:var(--mono); text-transform:uppercase; font-size:10px; letter-spacing:.12em; margin-bottom:15px; }
.work-card h3 { font-size:28px; max-width:530px; }
.work-card p { color:#cfc1b3; max-width:530px; margin:12px 0 0; font-size:14px; }
.work-card-link { display:inline-flex; align-items:center; gap:6px; margin-top:22px; color:var(--paper); font-size:13px; font-weight:700; border-bottom:1px solid rgba(250,246,239,.38); padding-bottom:3px; }
.work-card-link:hover { color:#dda085; border-color:#dda085; }
.work-card-compact .work-card-content { padding:20px 22px 24px; }
.work-card-compact h3 { font-size:23px; }
.work-card-compact p { font-size:13px; }
.metric-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.metric { border-top:2px solid var(--rust); padding-top:16px; }
.metric strong { font-family:var(--serif); color:var(--rust); font-size:39px; font-weight:500; display:block; line-height:1.1; }
.metric span { color:var(--ink-soft); font-size:14px; display:block; margin-top:8px; }
.price-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; align-items:stretch; }
.price { background:#fdf9f4; border:1px solid var(--line); padding:30px; border-radius:18px; display:flex; flex-direction:column; }
.price.featured { background:var(--ink); color:var(--paper); border-color:var(--ink); transform:translateY(-12px); }
.tag { display:inline-flex; align-self:flex-start; background:var(--sand); color:var(--rust-deep); border-radius:999px; padding:5px 10px; font-family:var(--mono); font-size:9px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:18px; }
.featured .tag { background:#4e3b32; color:#e7b39b; }
.price h3 { font-size:28px; }
.amt { font-family:var(--serif); font-size:48px; margin:21px 0 4px; line-height:1; }
.amt small { font-family:var(--sans); font-size:13px; color:var(--muted-foreground); }
.price.featured .amt small { color:var(--paper); }
.price p { color:var(--ink-soft); font-size:14px; }
.featured p, .featured li { color:#cabdb0; }
.price ul { list-style:none; padding:0; margin:17px 0 25px; flex:1; }
.price li { color:var(--ink-soft); font-size:14px; padding:8px 0 8px 19px; border-bottom:1px solid var(--line); position:relative; }
.price.featured li { color:var(--paper); }
.featured li { border-color:#4a3d35; }
.price li::before { content:'→'; position:absolute; left:0; color:var(--rust); }
.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:17px; background:#fdf9f4; }
table { border-collapse:collapse; width:100%; min-width:760px; font-size:13px; }
th,td { padding:16px 17px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
thead th { background:var(--ink); color:var(--paper); font-weight:600; }
thead th:first-child { background:var(--sand); color:var(--ink); }
tbody th { background:var(--sand); font-weight:600; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom:0; }
td.us { background:#f7e9df; font-weight:600; }
.faq { max-width:820px; }
details { border-bottom:1px solid var(--line); padding:20px 0; }
summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:18px; font-weight:600; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; color:var(--rust); font-size:24px; line-height:1; font-weight:400; }
details[open] summary::after { content:'−'; }
.faq-body { color:var(--ink-soft); max-width:700px; padding:13px 35px 0 0; font-size:15px; }
.form-layout { display:grid; grid-template-columns:1fr .7fr; gap:85px; align-items:start; }
.form-grid { max-width:650px; display:grid; gap:18px; }
.form-field { display:grid; gap:7px; }
.form-field label { font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; border:1px solid var(--line); border-radius:9px; background:#fdf9f4; color:var(--ink); padding:13px 14px; outline:0; transition:border .2s, box-shadow .2s; }
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus { border-color:var(--rust); box-shadow:0 0 0 3px rgba(191,97,70,.13); }
.form-grid textarea { min-height:145px; resize:vertical; }
.form-success { background:var(--sage); color:var(--paper); border-radius:15px; padding:25px; }
.form-success p { color:#e5e0d5; }
.form-success .btn-ghost { color:var(--paper); border-color:rgba(250,246,239,.5); }
.form-success .btn-ghost:hover { background:rgba(250,246,239,.12); color:var(--paper); border-color:var(--paper); }
.side-note { border-top:1px solid var(--ink); padding-top:16px; margin-bottom:32px; }
.side-note h3 { font-size:27px; margin-bottom:13px; }
.side-note ol { padding-left:20px; color:var(--ink-soft); font-size:14px; }
.side-note .btn + .fine { margin-top:20px; }
.mini-row { display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding:12px 0; font-size:14px; }
.callout { background:var(--sand); border-left:4px solid var(--rust); border-radius:11px; padding:19px 22px; color:var(--ink-soft); font-size:15px; }
.legal { max-width:770px; }
.legal h2 { font-size:28px; margin:40px 0 13px; }
.legal p,.legal li { color:var(--ink-soft); font-size:15px; }
.legal ul { padding-left:20px; }
.center { text-align:center; }
.center .lede { margin-left:auto; margin-right:auto; }
.closing { padding:110px 0; }
.closing .fine { margin:30px 0 0; }
footer { background:var(--ink); color:#bdb0a4; padding:60px 0 30px; }
.foot-grid { display:grid; grid-template-columns:1.6fr repeat(3,1fr); gap:30px; margin-bottom:45px; }
.foot-brand img { width:190px; filter:none; }
.foot-tagline { font-family:var(--serif); color:var(--paper); font-size:20px; max-width:220px; line-height:1.2; margin-top:18px; }
.foot-col-label { color:#d88a6e; font-family:var(--mono); text-transform:uppercase; letter-spacing:.13em; font-size:10px; margin:0 0 12px; }
.foot-col a { display:block; color:#c5b7aa; text-decoration:none; padding:4px 0; font-size:13px; }
.foot-col a:hover { color:var(--paper); }
.foot-bottom { border-top:1px solid #453a33; padding-top:20px; display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; font-size:11px; color:#978a7e; }
.foot-bottom p { margin:0; }
.reveal { animation:rise .7s both; }
@keyframes rise { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@media (max-width: 1024px) {
  .wrap { width:min(100% - 40px, 960px); }
  .nav-inner { gap:18px; }
  .nav-links { gap:17px; }
  .hero-grid { gap:48px; }
  section { padding:88px 0; }
  .card,.price { padding:25px; }
  .form-layout { gap:55px; }
}
@media (max-width: 900px) {
  .hero-grid,.split,.form-layout { grid-template-columns:1fr; gap:40px; }
  .hero-aside { margin-left:0; }
  .card-grid,.price-grid { grid-template-columns:1fr 1fr; }
  .price.featured { transform:none; }
  .work-grid { grid-template-columns:1fr; }
  .foot-grid { grid-template-columns:1.5fr 1fr 1fr; }
  .foot-grid > :first-child { grid-column:1/-1; }
  .hero { padding:82px 0 72px; }
  .page-hero { padding:68px 0 48px; }
  .page-hero + section { padding-top:64px; }
  .lede { font-size:17px; }
}
@media (max-width: 1100px) {
  .nav-toggle { display:block; }
  .nav-links {
    display:none;
    position:absolute;
    top:76px;
    left:0;
    right:0;
    max-height:calc(100dvh - 76px);
    overflow-y:auto;
    padding:12px 20px 20px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .nav-links.open { display:flex; }
  .nav-links a { padding:11px 4px; border-bottom:1px solid var(--line); }
  .nav-links .btn { margin-top:12px; }
}
@media (max-width: 680px) {
  .wrap { width:min(100% - 32px, 560px); }
  .nav-inner { min-height:68px; }
  .brand img { width:150px; }
  .nav-links { display:none; position:absolute; top:68px; left:0; right:0; padding:12px 16px 18px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0; }
  .nav-links.open { display:flex; }
  .nav-links a { padding:11px 4px; border-bottom:1px solid var(--line); }
  .nav-links .btn { margin-top:12px; }
  .hero { padding:70px 0 64px; }
  .page-hero { padding:56px 0 40px; }
  .page-hero + section { padding-top:42px; }
  h1 { font-size:clamp(46px, 14vw, 70px); }
  section { padding:62px 0; }
  .section-head { margin-bottom:30px; }
  .card-grid,.two-products,.price-grid,.metric-grid { grid-template-columns:1fr; }
  .card { min-height:0; }
  .step { grid-template-columns:43px 1fr; gap:15px; }
  .step-num { font-size:29px; }
  .band-row { flex-direction:column; gap:8px; }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .foot-grid > :first-child { grid-column:1/-1; }
  .foot-bottom { display:block; }
  .foot-bottom p + p { margin-top:8px; }
  .closing { padding:78px 0; }
  .closing .fine { margin:24px auto 0; max-width:26ch; line-height:1.45; }
  .cta-row { align-items:stretch; }
  .cta-row .btn { width:100%; }
  .form-grid input,.form-grid select,.form-grid textarea { min-height:48px; }
  .form-grid textarea { min-height:150px; }
  summary { min-height:44px; align-items:center; }
  .table-wrap { scrollbar-width:thin; }
}