/* TOFA STUDIO — subtle design refinements, October 2026.
   Built as a separate layer to preserve the existing layout, content and behavior. */
:root {
  --paper:#f5f3ed;
  --white:#fffefa;
  --ink:#20241e;
  --gold:#c2a66f;
  --gold-dark:#8b744b;
  --line:#dedbd0;
  --muted:#777a71;
  --polish-ease:cubic-bezier(.2,.7,.22,1);
}
html { scroll-behavior:smooth; }
body { -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
::selection { background:#dac79f; color:#20241e; }
:focus-visible { outline:2px solid #b28d4f !important; outline-offset:4px; }

/* Landing — keep the original photo-free choice layout and black brand mark. */
.landing-editorial {
  background:radial-gradient(ellipse 65% 70% at 100% -15%,rgba(208,194,160,.14),transparent 80%),#f3f1e9;
}
.editorial-entry { width:min(1190px,calc(100% - 80px)); padding-top:34px; }
.entry-topbar { padding-bottom:25px; border-bottom-color:#d4d1c5; }
.entry-topbar::after { content:''; position:absolute; left:0; bottom:-1px; width:88px; height:1px; background:#ad9567; }
.entry-topbar { position:relative; }
.editorial-brand img { filter:brightness(0) !important; transition:opacity .25s ease; }
.editorial-brand:hover img { opacity:.7; }
.entry-topnote { line-height:1.95; letter-spacing:.19em; }
.editorial-intro { padding:66px 0 38px; }
.editorial-kicker { color:#8d764d; font-size:10px; margin-bottom:15px; }
.editorial-kicker span { width:34px; background:#9f8657; }
.editorial-description { color:#62675e; font-size:13px; line-height:2; margin-top:0; }
.editorial-choices { gap:19px; }
.editorial-choice {
  min-height:330px;
  padding:29px 32px 27px;
  border-radius:2px;
  transition:background .32s var(--polish-ease),border-color .32s var(--polish-ease),transform .32s var(--polish-ease),box-shadow .32s var(--polish-ease);
}
.editorial-choice::before {
  content:''; position:absolute; inset:9px; border:1px solid currentColor; opacity:.095; pointer-events:none; z-index:0;
  transition:inset .32s var(--polish-ease),opacity .32s var(--polish-ease);
}
.editorial-choice::after {
  content:''; position:absolute; left:32px; bottom:0; width:0; height:3px;
  background:currentColor; opacity:.7; transition:width .45s var(--polish-ease);
}
.editorial-choice:hover { transform:translateY(-5px); box-shadow:0 20px 42px rgba(29,31,23,.11); }
.editorial-choice:hover::before { inset:12px; opacity:.17; }
.editorial-choice:hover::after { width:calc(100% - 64px); }
.editorial-choice-top { letter-spacing:.2em; }
.choice-circle { width:41px; height:41px; border-color:rgba(129,109,72,.45); font-size:19px; }
.business-choice .choice-circle { border-color:rgba(227,210,173,.45); }
.editorial-choice:hover .choice-circle { transform:rotate(45deg); border-color:currentColor; }
.editorial-choice-bottom strong { font-weight:500; letter-spacing:-.065em; }
.editorial-choice-bottom small { letter-spacing:.18em; }
.choice-description { opacity:.82; letter-spacing:.015em; }
.choice-cta { font-size:11px; font-weight:600; text-underline-offset:5px; transition:gap .25s var(--polish-ease); }
.editorial-choice:hover .choice-cta { gap:23px; }
.choice-watermark { top:58px; right:10px; opacity:.025; font-size:clamp(175px,23vw,280px); }
.editorial-footnote { margin-top:29px; padding-top:17px; color:#8c8b7c; }

/* Site-wide editorial polish */
.topline { letter-spacing:.24em; font-size:10px; padding:10px 12px; }
.nav { border-bottom-color:#d9d7ce; }
.nav .brand .site-logo { filter:brightness(0) !important; }
.nav-links { gap:30px; }
.nav-links > a:not(.nav-cta) { position:relative; padding:8px 0; transition:color .2s ease; }
.nav-links > a:not(.nav-cta)::after {
  content:''; height:1px; width:0; background:var(--gold-dark); position:absolute; left:0; bottom:2px;
  transition:width .27s var(--polish-ease);
}
.nav-links > a:not(.nav-cta):hover::after,
.nav-links > a:not(.nav-cta):focus-visible::after { width:100%; }
.nav-cta { transition:background .25s,color .25s,border-color .25s; }
.nav-cta:hover { background:var(--ink); color:var(--white) !important; }
.eyebrow { letter-spacing:.25em; }
.page-hero { padding-top:84px; padding-bottom:51px; border-bottom:1px solid var(--line); margin-bottom:34px; }
.page-hero h1 { letter-spacing:-.055em; }
.page-hero > p { line-height:1.9; }
.text-link { transition:color .22s,border-color .22s; }
.text-link:hover { color:var(--gold-dark); border-color:var(--gold-dark); }
.section-head h2 { letter-spacing:-.055em; }

/* Service cards gain depth, without changing their grid or wording. */
.service-grid { gap:19px; }
.service-card {
  position:relative; overflow:hidden; padding:29px; min-height:249px;
  border-color:#e0ddd4; border-radius:2px;
  background:linear-gradient(148deg,#fffefa 0%,#faf9f4 100%);
  transition:transform .3s var(--polish-ease), border-color .3s,box-shadow .3s;
}
.service-card::before { content:''; position:absolute; left:0; top:0; height:2px; width:0; background:#ae925e; transition:width .45s var(--polish-ease); }
.service-card:hover { transform:translateY(-5px); border-color:#c3b28c; box-shadow:0 17px 32px rgba(31,33,25,.065); }
.service-card:hover::before { width:100%; }
.service-card h3 { font-size:21px; letter-spacing:-.037em; }
.service-num { letter-spacing:.18em; }
.service-tag { border-radius:1px; border-color:#ded9cd; padding:5px 9px; background:#f8f5ed; }
.price-row { padding-top:18px; }
.price-row strong { letter-spacing:-.015em; }
.banner { position:relative; overflow:hidden; border:1px solid #dfd7c7; background:linear-gradient(110deg,#eee8db,#e6dfce); }
.banner::after { content:''; position:absolute; width:240px; height:240px; border:1px solid rgba(125,103,67,.11); border-radius:50%; right:-100px; top:-105px; pointer-events:none; }
.btn { transition:background .25s,color .25s,border-color .25s,transform .25s,box-shadow .25s; }
.btn:hover { transform:translateY(-2px); box-shadow:0 9px 18px rgba(35,37,30,.08); }
.btn:active { transform:translateY(0); }
.btn-gold:hover { background:#d4b881; }

/* Plan selector: a clear but restrained selected treatment. */
.detail-visual { border-radius:2px; box-shadow:12px 12px 0 #e9e4d7; }
.detail-visual img { transition:transform .65s var(--polish-ease); }
.detail-visual:hover img { transform:scale(1.035); }
.detail-price,.selected-plan-panel,.summary-panel { border-color:#dcd9ce; box-shadow:0 12px 35px rgba(40,41,32,.035); }
.detail-price { padding:31px; }
.tier-row { gap:9px; }
.tier { min-width:0; padding:17px 12px; background:#fbfaf6; border-color:#ddd9ce; border-radius:2px;
  transition:background .25s,border-color .25s,transform .25s,box-shadow .25s; }
.tier:hover { background:#f3f0e6; transform:translateY(-2px); }
.tier.selected { background:#f6f1e4; border-color:#9e8656; box-shadow:inset 0 0 0 1px #9e8656,0 8px 14px rgba(73,61,40,.06); }
.tier.selected::before { content:'✓ '; color:#8b744b; font-size:13px; }
.selected-plan-panel { padding:34px; }
.selected-plan-head { padding-bottom:25px; }
.selected-plan-head h3 { letter-spacing:-.05em; }
.selected-plan-price { letter-spacing:-.045em; }
.plan-spec-row { padding-top:18px; padding-bottom:18px; }
.plan-spec-row:last-child { border-bottom:0; }
.plan-spec-label { font-weight:700; }
.comparison-wrap { border-radius:2px; box-shadow:0 12px 28px rgba(31,33,25,.04); }
.comparison-table thead th { background:#eee9dd; }
.comparison-table th:nth-child(3),.comparison-table td:nth-child(3) { background:#faf5e8; }
.comparison-table thead th:nth-child(3) { background:#e9dcc3; }
.comparison-table tbody tr:hover td { background:#f4f0e7; }
.comparison-table tbody tr:hover td:nth-child(3) { background:#ede4cf; }

/* Quote form — focus, grouping and a tactile summary. */
.quote-layout { gap:37px; }
.field input,.field select,.field textarea { border-color:#d7d3c8; background:#fffefa; border-radius:2px; padding:13px 14px;
  transition:border-color .2s,box-shadow .2s,background .2s; }
.field input:focus,.field select:focus,.field textarea:focus { border-color:#9d8353; box-shadow:0 0 0 3px rgba(168,137,81,.12); background:#fff; }
.option-check { border-color:#dfdcd2; border-radius:2px; transition:background .2s,border-color .2s,box-shadow .2s; }
.option-check:hover { border-color:#bda779; background:#faf7ed; }
.option-check:has(input:checked) { border-color:#aa9369; background:#f6f0e2; box-shadow:inset 3px 0 0 #ae915a; }
input[type='checkbox'] { accent-color:#857044; }
.summary-panel { position:sticky; top:18px; border-radius:2px; }
.summary-total { border-top:1px solid #ded8c9; margin-top:16px; }
.summary-total strong { color:#2e382d; letter-spacing:-.04em; }
.notice { border-left-width:3px; line-height:1.8; }
.step { transition:color .2s,border-color .2s; }

/* About, FAQ and footer typography details */
.about-image { border-radius:2px; overflow:hidden; }
.about-image img { transition:transform .75s var(--polish-ease); }
.about-image:hover img { transform:scale(1.035); }
.faq-item { transition:background .2s; }
.faq-item summary { cursor:pointer; }
.faq-item:hover { background:rgba(245,240,227,.46); }
.footer { background:linear-gradient(145deg,#141913,#10120f 72%); }
.footer-main { padding-bottom:45px; }
.footer-business-info { gap:9px; line-height:1.8; color:#c5c8bd; }
.footer-business-info b { color:#eeeee7; font-weight:600; margin-right:5px; }
.footer-business-info span { max-width:625px; }
.footer-links { gap:20px 25px; align-content:start; }
.footer-links a { transition:color .2s; }
.footer-links a:hover { color:#d1b785; }
.footer-bottom { padding-top:23px; }

@media(max-width:900px) {
  .editorial-entry { width:calc(100% - 52px); }
  .editorial-choice { min-height:290px; padding:25px; }
  .service-grid { gap:13px; }
  .service-card { padding:23px; }
}
@media(max-width:760px) {
  .editorial-entry { width:calc(100% - 36px); padding-top:19px; }
  .editorial-intro { padding:48px 0 29px; }
  .editorial-choices { gap:13px; }
  .editorial-choice { min-height:266px; padding:22px; }
  .editorial-choice::after { left:22px; }
  .editorial-choice:hover::after { width:calc(100% - 44px); }
  .page-hero { padding-top:54px; padding-bottom:35px; margin-bottom:24px; }
  .detail-visual { box-shadow:7px 7px 0 #e9e4d7; }
  .summary-panel { position:static; }
  .service-card { min-height:220px; }
}
@media(max-width:520px) {
  .entry-topbar { padding-bottom:17px; }
  .editorial-intro { padding:38px 0 25px; }
  .editorial-choices { grid-template-columns:1fr; }
  .editorial-choice { min-height:218px; padding:20px 22px; }
  .editorial-choice-bottom { flex-direction:row; align-items:end; gap:12px; }
  .choice-cta { font-size:9px; gap:8px; }
  .editorial-footnote { margin-top:25px; }
  .selected-plan-panel,.detail-price { padding:19px; }
  .page-hero { padding-top:45px; }
  .footer-business-info { font-size:10px; overflow-wrap:anywhere; }
  .nav-links { gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
