@charset "utf-8";
/* ---------------------------------------------------------------------------
   Ruthvika — Direction A, "Ebony & Brass".
   The brief is modernise, not redesign: same dark territory as the old site,
   executed properly.

   Every colour derives from the logo's real gradient stops (#F3CD86 -> #AB7B48),
   NOT from the old template's #c5a47e, which is a Bootstrap theme default that
   happens to sit near the logo's midpoint. Contrast is verified against WCAG AA;
   the old site's body text (#777 on #101010) measured 4.25:1 and failed.

   One typeface. Nearly every top-tier restaurant site runs a single family;
   the old site declared six.
--------------------------------------------------------------------------- */

:root{
  /* ground: warm ebony, brown undertone rather than the old blue-black */
  --c-ground:#14100E;
  --c-surface:#1C1714;
  --c-surface-2:#241E1A;

  --c-ink:#E8DFD1;      /* 14.33:1 on ground — AA  */
  --c-ink-muted:#A79C8E;/*  7.02:1 on ground — AA  (was 4.25:1, failed) */
  --c-ink-faint:#8B8175;

  --c-gold:#CFA467;     /*  8.25:1 — flat logo midpoint, safe for text */
  --c-gold-light:#F3CD86;
  --c-gold-deep:#AB7B48;
  --c-accent:#7D8C5C;   /*  5.20:1 — curry leaf. A culinary reference, not a
                            decorative one: reads Indian without a motif. */
  --c-rule:#2E2620;
  --c-error:#D98166;  /* terracotta, 6.56:1 on ground — AA */

  --f: "Fraunces", "Iowan Old Style", Georgia, serif;

  /* spacing: the single biggest reason a modernised site still feels old is
     shipping a 2019 template's ~60px section padding */
  --s-section:clamp(56px, 9vw, 128px);
  --s-gutter:clamp(20px, 5vw, 72px);
  --measure:68ch;
  --wrap:1240px;

  --t-fast:160ms cubic-bezier(.22,1,.36,1);
  --t-med:420ms cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--c-ground);
  color:var(--c-ink-muted);
  font-family:var(--f);
  font-optical-sizing:auto;
  font-weight:400;
  font-size:18px;              /* was 15px */
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

/* ---------- type scale ---------- */
h1,h2,h3,h4{
  color:var(--c-ink);
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.015em;
  text-wrap:balance;
  margin:0 0 .5em;
}
h1{font-size:clamp(2.1rem,1.3rem+3vw,3.6rem);}
h2{font-size:clamp(1.55rem,1.15rem+1.5vw,2.3rem);}
h3{font-size:clamp(1.15rem,1rem+.6vw,1.4rem);}
h4{font-size:1.05rem;}

p{margin:0 0 1.1em;}
.prose{max-width:var(--measure);}
.prose > * + h2{margin-top:1.8em;}
.prose > * + h3{margin-top:1.5em;}

a{color:var(--c-gold);text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--c-gold-light);}
:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;border-radius:2px;}

.eyebrow{
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--c-gold);font-weight:600;margin:0 0 1em;
  font-variant-caps:all-small-caps;
}

/* ---------- layout ---------- */
.container{width:min(100% - (var(--s-gutter)*2), var(--wrap));margin-inline:auto;}
.section{padding-block:var(--s-section);}
.section--alt{background:var(--c-surface);}
.section--tight{padding-block:calc(var(--s-section) * .55);}

.skip{
  position:absolute;left:-9999px;top:0;background:var(--c-gold);color:var(--c-ground);
  padding:12px 20px;z-index:100;font-weight:600;
}
.skip:focus{left:0;}

/* ---------- buttons: fully square, never the 4-8px template radius ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 28px;                 /* 48px tap target */
  background:var(--c-gold);color:var(--c-ground);
  font-weight:600;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--c-gold);border-radius:0;
  transition:background var(--t-fast),color var(--t-fast);
  cursor:pointer;
}
.btn:hover{background:var(--c-gold-light);border-color:var(--c-gold-light);color:var(--c-ground);}
.btn--ghost{background:transparent;color:var(--c-gold);}
.btn--ghost:hover{background:var(--c-gold);color:var(--c-ground);}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:1.6em;}

/* ---------- header: combo nav, never hamburger-only ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--c-ground) 92%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--c-rule);
}
.site-header-inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  min-height:76px;
}
.site-logo{
  display:flex;align-items:center;text-decoration:none;color:var(--c-ink);
  font-size:1.5rem;font-weight:600;letter-spacing:.04em;line-height:1;
  flex:none;
}
/* Larger now the strapline is gone. Capped by height, never width, so the
   asset's 6.844:1 ratio is always honoured and CLS stays at zero. */
.site-logo img{max-height:44px;width:auto;}
.site-logo .tagline{
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--c-gold);font-weight:500;margin-top:4px;
}

.nav{display:flex;gap:26px;list-style:none;margin:0;padding:0;align-items:center;}
.nav a{
  color:var(--c-ink);text-decoration:none;font-size:.86rem;
  letter-spacing:.1em;text-transform:uppercase;
  display:inline-flex;align-items:center;min-height:44px;
  border-bottom:1px solid transparent;transition:border-color var(--t-fast),color var(--t-fast);
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--c-gold);border-bottom-color:var(--c-gold);}

/* the three items that stay visible on mobile — NN/g measured nav usage at
   57% hamburger-only vs 86% with a few items exposed */
.nav-quick{display:none;gap:10px;align-items:center;}
.nav-quick a{
  min-height:44px;min-width:44px;padding:0 14px;
  display:inline-flex;align-items:center;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--c-ink);text-decoration:none;border:1px solid var(--c-rule);
}
.nav-quick a.is-primary{background:var(--c-gold);color:var(--c-ground);border-color:var(--c-gold);font-weight:600;}

.nav-toggle{
  display:none;min-width:48px;min-height:48px;
  background:none;border:1px solid var(--c-rule);color:var(--c-ink);
  font:inherit;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;padding:0 14px;
}

@media (max-width:960px){
  .nav-wrap{
    position:fixed;inset:76px 0 0;background:var(--c-ground);
    padding:32px var(--s-gutter);overflow-y:auto;
  }
  .nav-wrap[hidden]{display:none;}
  .nav{flex-direction:column;align-items:flex-start;gap:4px;}
  .nav a{font-size:1.1rem;min-height:56px;letter-spacing:.06em;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .nav-quick{display:flex;}
  .site-logo img{max-height:26px;}   /* 178px wide — leaves room for Book + toggle */
  .site-logo{font-size:1.2rem;}
}

/* Narrow phones: the logo, two quick links and the toggle cannot all fit in
   335px of content. Book is the one that earns its place, so Menus drops to
   the panel (where it is the first item anyway). */
@media (max-width:560px){
  .site-logo img{max-height:22px;}                 /* 151px wide */
  .nav-quick a:not(.is-primary){display:none;}
  .site-header-inner{gap:12px;}
}

/* ---------- hero: one still, held. No carousel. ---------- */
.hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, var(--c-ground) 4%, transparent 62%);
}
.hero-media{position:absolute;inset:0;overflow:hidden;}
.hero-media img,
.hero-media video{
  width:100%;height:100%;object-fit:cover;object-position:center;
  display:block;
}
/* The poster is what paints first and what stays on mobile, so it is graded to
   match the rest of the library rather than left raw. */
.hero-video{filter:saturate(.92) contrast(1.04) brightness(.94);}

/* WCAG 2.2.2 pause control. Sits clear of the copy, above the scrim, and is a
   real 48px target. Hidden until playback actually begins. */
.hero-motion{
  position:absolute;right:var(--s-gutter);top:calc(var(--s-gutter) + 76px);
  z-index:3;display:inline-flex;align-items:center;gap:9px;
  min-height:44px;padding:0 16px;
  background:color-mix(in srgb, var(--c-ground) 72%, transparent);
  backdrop-filter:blur(6px);
  border:1px solid var(--c-rule);color:var(--c-ink);
  font:inherit;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast);
}
.hero-motion:hover{border-color:var(--c-gold);color:var(--c-gold);}
.hero-motion[hidden]{display:none;}
.hero-motion-icon{
  width:9px;height:11px;background:currentColor;
  /* two bars = pause; a triangle when already paused */
  clip-path:polygon(0 0,3px 0,3px 100%,0 100%,0 0,6px 0,9px 0,9px 100%,6px 100%);
}
.hero-motion[aria-pressed="true"] .hero-motion-icon{
  clip-path:polygon(0 0,100% 50%,0 100%);
}
@media (max-width:760px){
  /* No video is loaded at this width, so there is nothing to pause. */
  .hero-motion{display:none;}
}
.hero-inner{position:relative;z-index:2;padding-block:clamp(40px,7vw,88px);width:100%;}
.hero h1{max-width:16ch;}
.hero .lede{max-width:46ch;font-size:clamp(1.05rem,.95rem+.5vw,1.25rem);color:var(--c-ink);}

/* ---------- menu index: bands that never leave a gap ---------- */
.band + .band{margin-top:calc(var(--s-section) * .8);}
.band-head{
  display:flex;align-items:baseline;gap:18px;
  border-bottom:1px solid var(--c-rule);padding-bottom:12px;margin-bottom:28px;
}
.band-head h2{margin:0;}
.band-head .count{color:var(--c-ink-faint);font-size:.85rem;}

.menu-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1px;
  background:var(--c-rule);border:1px solid var(--c-rule);
}
.menu-card{
  background:var(--c-ground);padding:26px 24px 24px;
  display:flex;flex-direction:column;gap:8px;min-height:168px;
  text-decoration:none;color:inherit;transition:background var(--t-fast);
}
.menu-card:hover{background:var(--c-surface);}
.menu-card h3{margin:0;color:var(--c-ink);}
.menu-card .avail{font-size:.82rem;color:var(--c-ink-faint);}
.menu-card .go{margin-top:auto;color:var(--c-gold);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;}
.menu-card.is-off{opacity:.62;}

/* ---------- a menu page ---------- */
.menu-nav{
  position:sticky;top:76px;z-index:20;
  background:var(--c-ground);border-bottom:1px solid var(--c-rule);
  padding-block:10px;margin-bottom:var(--s-section);
}
.menu-nav ul{display:flex;gap:6px;list-style:none;margin:0;padding:0;overflow-x:auto;scrollbar-width:thin;}
.menu-nav a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 14px;white-space:nowrap;
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--c-ink-muted);text-decoration:none;border-bottom:2px solid transparent;
}
.menu-nav a:hover,.menu-nav a.is-current{color:var(--c-gold);border-bottom-color:var(--c-gold);}

.course{margin-bottom:calc(var(--s-section) * .7);scroll-margin-top:150px;}
.course > h2{
  font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);
  border-bottom:1px solid var(--c-rule);padding-bottom:10px;margin-bottom:6px;
  font-variant-caps:all-small-caps;
}
.course .course-note{color:var(--c-ink-faint);font-size:.9rem;margin:0 0 1.4em;}

/* dish row — Hawksmoor's three-part structure. No dot leaders: they break
   badly at narrow widths. */
.dish{padding:16px 0;border-bottom:1px solid var(--c-rule);}
.dish:last-child{border-bottom:none;}
.dish-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;}
.dish-name{color:var(--c-ink);font-size:1.06rem;font-weight:500;margin:0;}
.dish-price{
  color:var(--c-ink);font-variant-numeric:tabular-nums;white-space:nowrap;
  font-size:1.02rem;
}
.dish-desc{margin:.35em 0 0;max-width:62ch;font-size:.96rem;}
.dish-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:.5em;}

/* dietary codes as TEXT, not icons — legible small, and readable by screen
   readers without a legend lookup */
.tag{
  font-size:.68rem;letter-spacing:.08em;font-weight:600;
  padding:3px 7px;border:1px solid var(--c-rule);color:var(--c-ink-muted);
  min-height:auto;
}
.tag--diet{border-color:var(--c-accent);color:var(--c-accent);}

.legend{
  background:var(--c-surface);border:1px solid var(--c-rule);
  padding:22px 24px;margin-bottom:var(--s-section);
}
.legend dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 24px;margin:.8em 0 0;}
.legend dt{display:inline;font-weight:600;color:var(--c-accent);}
.legend dd{display:inline;margin:0;font-size:.9rem;}
.legend dd::after{content:"";display:block;}

.allergen-note{color:var(--c-ink-faint);font-size:.9rem;max-width:var(--measure);}

/* ---------- seasonal status ---------- */
.status{
  display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--c-gold);color:var(--c-gold);
  padding:8px 16px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:1.4em;
}
.status--off{border-color:var(--c-rule);color:var(--c-ink-faint);}

/* ---------- news ---------- */
.post-list{display:grid;gap:1px;background:var(--c-rule);border-block:1px solid var(--c-rule);}
.post-item{background:var(--c-ground);padding:30px 0;}
.post-item .container{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;}
.post-item h2{font-size:clamp(1.2rem,1rem+.8vw,1.6rem);margin:0;}
.post-item h2 a{color:var(--c-ink);text-decoration:none;}
.post-item h2 a:hover{color:var(--c-gold);}
.post-meta{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-faint);}

.pagination{display:flex;gap:8px;justify-content:center;margin-top:var(--s-section);}
.pagination a,.pagination span{
  min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--c-rule);text-decoration:none;color:var(--c-ink-muted);
  font-variant-numeric:tabular-nums;
}
.pagination a[aria-current="page"],.pagination .is-current{
  border-color:var(--c-gold);color:var(--c-gold);
}

/* ---------- footer: hours day by day, never behind a link ---------- */
.site-footer{border-top:1px solid var(--c-rule);padding-block:var(--s-section) 40px;background:var(--c-surface);}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:44px;}
.footer-cols h3{
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--c-gold);
  margin-bottom:1.2em;
}
.footer-cols ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.footer-cols a{color:var(--c-ink-muted);text-decoration:none;}
.footer-cols a:hover{color:var(--c-gold);}
.hours{display:grid;gap:6px;font-size:.92rem;}
.hours div{display:flex;justify-content:space-between;gap:18px;}
.hours dt{color:var(--c-ink-muted);}
.hours dd{margin:0;color:var(--c-ink);font-variant-numeric:tabular-nums;text-align:right;}
address{font-style:normal;}
.colophon{
  margin-top:52px;padding-top:24px;border-top:1px solid var(--c-rule);
  display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;
  font-size:.82rem;color:var(--c-ink-faint);
}

/* ---------- lead image ---------- */
/* The archive holds only three hero-grade files, so most pages will not have a
   usable image for a while. Absence is designed: a hairline rule reads as
   deliberate where a stretched thumbnail would read as broken. */
.lead-image{
  --ratio:16 / 9;
  position:relative;overflow:hidden;background:var(--c-surface);
  aspect-ratio:var(--ratio);margin-block:0 var(--s-section);
}
.lead-image img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  /* Unifies a mixed-quality library: pulls the yellow cast out of the older
     files and stops them fighting the ebony ground. */
  filter:saturate(.92) contrast(1.04) brightness(1.02);
}
.lead-image::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top, rgba(20,16,14,.55) 0%, transparent 45%);
}
.lead-rule{
  height:1px;background:linear-gradient(to right,var(--c-gold-deep),transparent 60%);
  margin-block:0 var(--s-section);
}

/* ---------- images ---------- */
img{max-width:100%;height:auto;display:block;}
figure{margin:0;}
.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,5vw,72px);align-items:center;}

/* ---------- motion: three tokens, and always opt-in ---------- */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(16px);transition:opacity var(--t-med),transform var(--t-med);}
  .reveal.is-in{opacity:1;transform:none;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}

/* ---------- print: makes the PDF largely redundant ---------- */
@media print{
  .site-header,.site-footer,.menu-nav,.btn,.skip{display:none!important;}
  body{background:#fff;color:#000;font-size:11pt;}
  h1,h2,h3,.dish-name,.dish-price{color:#000;}
  .dish{break-inside:avoid;border-bottom:1px solid #ccc;}
  .course{break-before:auto;}
}

/* ===========================================================================
   BASE COMPONENTS
   These classes are emitted by the inherited blueprint templates but were
   never styled, so /contact-us/ and /catering/ were rendering browser-default
   white boxes on the ebony ground. Nothing decorative here — this is the
   correctness layer.
   =========================================================================== */

/* ---------- form controls ---------- */
label{
  display:block;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--c-ink-muted);margin:0 0 8px;
}
input[type=text],input[type=email],input[type=tel],input[type=date],
input[type=number],input[type=search],select,textarea{
  width:100%;
  /* 52px, not 48: inputs need more optical height than buttons at this type
     size, and 16px text prevents iOS zooming on focus. */
  min-height:52px;padding:14px 16px;
  background:var(--c-surface);color:var(--c-ink);
  border:1px solid var(--c-rule);border-radius:0;
  font:inherit;font-size:1rem;
  transition:border-color var(--t-fast),background var(--t-fast);
}
textarea{min-height:160px;resize:vertical;line-height:1.6;}
input:hover,select:hover,textarea:hover{border-color:#3D332B;}
input:focus-visible,select:focus-visible,textarea:focus-visible{
  border-color:var(--c-gold);outline:2px solid var(--c-gold);outline-offset:2px;
}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--c-error);}
input:disabled,select:disabled,textarea:disabled{
  background:var(--c-surface-2);color:var(--c-ink-faint);cursor:not-allowed;
}
::placeholder{color:var(--c-ink-faint);opacity:1;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.required{color:var(--c-gold);font-size:.72rem;letter-spacing:.1em;}
.field-sub,.field-desc{font-size:.82rem;color:var(--c-ink-muted);margin-top:6px;}
.field-err{color:var(--c-error);font-size:.86rem;margin-top:6px;}
@media (max-width:560px){.form-row{grid-template-columns:1fr;}}

/* ---------- flash messages ---------- */
/* contact.php writes these then redirects; nothing rendered them, so every
   success and error message was silently discarded. */
.flash{
  border-left:3px solid;padding:14px 18px;background:var(--c-surface-2);
  font-size:.94rem;margin-bottom:24px;
}
.flash.error,.flash.danger{border-color:var(--c-error);color:var(--c-error);}
.flash.success,.flash.ok{border-color:var(--c-accent);color:var(--c-accent);}
.flash.info{border-color:var(--c-gold);color:var(--c-gold);}

/* ---------- page head ---------- */
.page-head{
  padding-block:calc(var(--s-section)*.8) calc(var(--s-section)*.5);
  border-bottom:1px solid var(--c-rule);
}
.page-head h1{max-width:20ch;margin:0 0 .4em;}
.page-head .lede{
  max-width:46ch;font-size:clamp(1.05rem,.95rem+.5vw,1.25rem);color:var(--c-ink);
}

/* ---------- cards ---------- */
.cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:0;
}
.card{
  background:var(--c-ground);padding:26px 24px;
  box-shadow:0 0 0 1px var(--c-rule);
  display:flex;flex-direction:column;gap:10px;
}
.card h3{margin:0;}
.card p{margin:0;font-size:.95rem;}
.card .btn{margin-top:auto;align-self:flex-start;}

/* The legacy theme cropped every gallery and card image to a circle. A round
   crop destroys plated-food composition and is the single clearest "2019
   template" tell, so it is neutralised globally rather than in each partial. */
.circle{
  display:block;border-radius:0;aspect-ratio:4/5;overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--c-rule);
}
.circle img{width:100%;height:100%;object-fit:cover;}

/* ---------- contact ---------- */
.contact-grid{
  display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
  gap:clamp(32px,5vw,72px);align-items:start;
}
.contact-aside,.contact-info{
  background:var(--c-surface-2);border-left:2px solid var(--c-gold-deep);
  padding:24px 26px;font-size:.95rem;
}
.contact-info a{color:var(--c-gold);}
.social-icons{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:16px 0 0;padding:0;}
.social-icons a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 14px;
  border:1px solid var(--c-rule);color:var(--c-ink);text-decoration:none;
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;
}
.social-icons a:hover{border-color:var(--c-gold);color:var(--c-gold);}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;}}

/* ---------- misc blueprint classes ---------- */
.benefits{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.benefits li{padding-left:22px;position:relative;}
.benefits li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:8px;height:1px;background:var(--c-gold);
}
.pricing{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;}
.pricing th,.pricing td{
  text-align:left;padding:14px 12px;border-bottom:1px solid var(--c-rule);
}
.pricing th{
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c-gold);
}
.pricing td:last-child{text-align:right;white-space:nowrap;}
.legal-content{max-width:var(--measure);}
.legal-content h2{margin-top:1.8em;}
.text-center{text-align:center;}
