/* Extra homepage styles for the close-focused front page.
   Loads after /styles.css. Do not redefine brand tokens. */

.skip{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--brand-primary);color:var(--ink-on-fill);
  padding:10px 16px;border-radius:0 0 8px 0;font-weight:600;
}
.skip:focus{left:0}
.md-link{font-family:var(--mono);font-size:12px;color:var(--ink-faint)}
.md-link:hover{color:var(--brand-primary)}

.nav-right{
  display:flex;align-items:center;gap:18px;
  position:relative;z-index:51;
}
.nav-phone{
  font-family:var(--mono);font-size:13px;color:var(--ink-dim);
  letter-spacing:.04em;white-space:nowrap;
}
.nav-phone:hover{color:var(--ink)}

.coexist{
  margin:0 0 12px;
  background:var(--bg-2);border:1px solid var(--line);
  border-left:3px solid var(--brand-primary);border-radius:0 10px 10px 0;
  padding:20px 24px;
}
.coexist p{font-size:16px;color:var(--ink);line-height:1.55;max-width:54em}
.coexist p b{font-weight:600}
.coexist .kicker{
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand-primary);margin-bottom:8px;
}

.offer-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;margin-top:40px}
.offer-card{
  background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:28px 26px;
  display:flex;flex-direction:column;
}
.offer-card.partner{border-color:rgba(87,184,148,.4)}
.offer-card h3{font-family:var(--serif);font-size:24px;font-weight:500;margin:8px 0 12px;letter-spacing:-.01em}
.offer-card p{font-size:15px;color:var(--ink-dim);line-height:1.6}
.offer-card p b{color:var(--ink);font-weight:600}
.offer-card .oc-cta{margin-top:22px}

.book-grid{
  display:grid;grid-template-columns:1.2fr .9fr;gap:28px;
  margin-top:40px;align-items:start;
}
.book-cal{
  border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;
  background:var(--surface);
}
.book-aside .scan-box{margin-top:0;max-width:none}
.form-grid{display:flex;flex-direction:column;gap:12px}
.form-fine{margin-top:14px;font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);line-height:1.55}
.form-fine a{color:var(--brand-primary)}
.direct-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}

.rule-line{
  margin-top:28px;font-family:var(--serif);font-size:20px;font-weight:500;
  color:var(--ink);line-height:1.35;max-width:22em;
}

.tcta-link{
  display:block;text-align:center;font-family:var(--mono);font-size:13px;
  padding:12px;border-radius:7px;border:1px solid var(--line-strong);
  color:var(--ink-dim);transition:.2s;
}
.tier.featured .tcta-link{
  background:var(--brand-primary);color:var(--ink-on-fill);
  border-color:var(--brand-primary);font-weight:600;
}
.tcta-link:hover{border-color:var(--brand-primary);color:var(--ink)}
.tier.featured .tcta-link:hover{background:var(--brand-primary-deep);color:var(--ink-on-fill)}

@media (max-width:920px){
  .nav-phone{display:none}
  .offer-grid,.book-grid{grid-template-columns:1fr}
}

/* The nav CTA is monospace, so it is wide per character. "Book a 20 min call"
   wraps to two lines and collides with the logo on a 390px viewport at the
   desktop size. Tighten it below 920px and forbid the wrap outright. */
@media (max-width:920px){
  .nav-cta{font-size:11px;padding:8px 12px;white-space:nowrap}
  .brand-logo{height:26px}
}
@media (max-width:360px){
  .nav-cta{font-size:10px;padding:7px 10px}
  .brand-logo{height:22px}
}

/* ---- Cookie consent banner (cookies.js) ---------------------------------- */
/* Bottom sheet, not a modal: it must not block reading the page while the
   visitor decides. Both buttons carry equal visual weight on purpose — a
   greyed-out "Decline" next to a bright "Accept" is a dark pattern and is
   what regulators actually cite. */
.cookie-consent{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  background:var(--surface);
  border-top:1px solid var(--brand-line);
  box-shadow:0 -18px 40px rgba(0,0,0,.45);
  transform:translateY(100%);
  transition:transform .28s ease;
}
.cookie-consent.cc-in{transform:translateY(0)}
.cookie-consent[hidden]{display:none}

.cookie-consent .cc-inner{
  max-width:1120px; margin:0 auto; padding:18px 24px;
  display:flex; align-items:center; gap:28px;
}
.cookie-consent .cc-copy{flex:1 1 auto; min-width:0}
.cookie-consent .cc-title{
  font-family:var(--sans); font-size:14px; font-weight:600;
  color:var(--ink); margin:0 0 4px;
}
.cookie-consent .cc-body{
  font-family:var(--sans); font-size:13.5px; line-height:1.55;
  color:var(--ink-dim); margin:0; max-width:74ch;
}
.cookie-consent .cc-body a{color:var(--brand-primary-soft); text-decoration:underline}
.cookie-consent .cc-body a:hover{color:var(--brand-primary)}

.cookie-consent .cc-actions{
  flex:0 0 auto; display:flex; align-items:center; gap:10px;
}
.cookie-consent button{
  font-family:var(--sans); font-size:14px; font-weight:600;
  padding:11px 22px; border-radius:7px; cursor:pointer;
  transition:.2s; white-space:nowrap;
}
.cookie-consent .cc-accept{
  background:var(--brand-primary); color:var(--ink-on-fill);
  border:1px solid var(--brand-primary);
}
.cookie-consent .cc-accept:hover{background:var(--brand-primary-deep)}
.cookie-consent .cc-decline{
  background:transparent; color:var(--ink);
  border:1px solid var(--line-strong);
}
.cookie-consent .cc-decline:hover{border-color:var(--ink-dim); background:rgba(255,255,255,.04)}
.cookie-consent button:focus-visible{outline:2px solid var(--brand-primary-soft); outline-offset:2px}

@media (max-width:720px){
  .cookie-consent .cc-inner{flex-direction:column; align-items:stretch; gap:14px; padding:16px 18px}
  .cookie-consent .cc-actions{justify-content:stretch}
  .cookie-consent .cc-actions button{flex:1 1 50%}
}
@media (prefers-reduced-motion:reduce){
  .cookie-consent{transition:none}
}

/* ---- Cookie inventory table (cookie-policy.html) ------------------------- */
.prose .cookie-table{
  width:100%; border-collapse:collapse; margin:18px 0 10px;
  font-family:var(--sans); font-size:13.5px; line-height:1.5;
}
.prose .cookie-table th{
  text-align:left; font-weight:600; font-size:12px; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-faint);
  padding:0 14px 9px 0; border-bottom:1px solid var(--line-strong);
}
.prose .cookie-table td{
  padding:14px 14px 14px 0; border-bottom:1px solid var(--line);
  color:var(--ink-dim); vertical-align:top;
}
.prose .cookie-table td:first-child{color:var(--ink); white-space:nowrap}
.prose .cookie-table td:last-child{padding-right:0; white-space:nowrap}
.prose .cookie-table code{font-family:var(--mono); font-size:12.5px; color:var(--brand-primary-soft)}
.prose .cookie-table .ct-note{font-size:11.5px; color:var(--ink-faint)}
.prose .ct-after{font-size:13.5px; color:var(--ink-faint)}

/* Narrow screens: let the table scroll rather than squash the page. */
@media (max-width:640px){
  .prose .cookie-table{display:block; overflow-x:auto; white-space:nowrap}
  .prose .cookie-table td{white-space:normal; min-width:150px}
}
