/* ==========================================================================
   Dinewise v2 — "Consulting à la carte"
   A menu-card take on the Dinewise brand: warm paper, dominant navy,
   restrained antique gold, Syne display type, dotted menu leaders, offset shadows.
   2026 palette: deep teal, antique gold and warm silver · Syne + DM Sans.
   ========================================================================== */

/* ---- Fonts (self-hosted, extracted from the original site) ---- */
@font-face { font-family: 'Syne'; src: url('../assets/fonts/syne-400.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syne'; src: url('../assets/fonts/syne-500.ttf') format('truetype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syne'; src: url('../assets/fonts/syne-600.ttf') format('truetype'); font-weight: 600 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-400.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-400-italic.ttf') format('truetype'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-500.ttf') format('truetype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-500-italic.ttf') format('truetype'); font-weight: 500; font-style: italic; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-600.ttf') format('truetype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'DM Sans'; src: url('../assets/fonts/dmsans-700.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }

/* ---- Tokens ---- */
:root {
  /* brand (unchanged) */
  --navy: #123F3B;
  --yellow: #B89A5A;

  /* supporting cast */
  --navy-deep: #082E2B;
  --navy-ink: #062421;
  --yellow-soft: #F2EBDD;
  --paper: #F5F6F3;
  --cream: #FCFCF9;
  --ink: #24302E;
  --muted: #61706D;
  --rule: #D7D9D3;
  --line-navy: rgba(18, 63, 59, .18);

  --font-head: 'Syne', 'Trebuchet MS', sans-serif;
  --font-body: 'DM Sans', 'Segoe UI', sans-serif;

  --container: 1160px;
  --shadow-pop: 6px 6px 0 rgba(28, 70, 95, 1);
  --shadow-pop-sm: 4px 4px 0 rgba(28, 70, 95, 1);
  --ease-out: cubic-bezier(.22, .8, .3, 1);

  /* grain texture used on navy surfaces */
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}

/* ---- Reset / base ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration: none; }
button, summary, [role="button"] { cursor: pointer; }
button:disabled, [disabled] { cursor: not-allowed; }
p { margin: 0 0 1rem; }
::selection { background: var(--yellow); color: var(--navy-ink); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 600;
  color: var(--navy);
  line-height: 1.08;
  margin: 0 0 .55em;
  letter-spacing: -.01em;
}
h1 { font-size: clamp(2.2rem, 4.2vw, 3.45rem); }
h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
h3 { font-size: 1.35rem; }
h4 { font-size: 1.1rem; }

.container { max-width: var(--container); margin: 0 auto; padding: 0 1.25rem; }
.section { padding: clamp(1.75rem, 3.5vw, 2.5rem) 0; }
.section--tight { padding: clamp(2.2rem, 4vw, 3.2rem) 0; }
.section--navy {
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  color: #EAF1F5;
  position: relative;
}
.section--navy::after {
  content: ''; position: absolute; inset: 0;
  background: var(--grain); pointer-events: none;
}
.section--navy > * { position: relative; z-index: 1; }
.section--navy h2, .section--navy h3 { color: #fff; }
.section--cream { background: var(--cream); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.text-center { text-align: center; }

/* eyebrow section label: "01 — The menu" */
.eyebrow {
  display: flex;
  align-items: center;
  gap: .7rem;
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 1.1rem;
}
.eyebrow::before { content: ''; width: 26px; height: 3px; background: var(--yellow); }
.section--navy .eyebrow { color: var(--yellow); }

/* yellow marker highlight for a word in headings (background paint — safe
   inside transformed/animated ancestors, unlike a z-index:-1 pseudo) */
.hl {
  white-space: nowrap;
  padding: 0 .08em;
  background: linear-gradient(to top, transparent .04em, var(--yellow) .04em, var(--yellow) .38em, transparent .38em);
}
.section--navy .hl { color: #fff; }

.skip-link { position: absolute; left: -9999px; top: 0; background: var(--yellow); color: var(--navy-ink); padding: .5rem 1rem; z-index: 300; font-weight: 700; }
.skip-link:focus { left: 0; }

/* ---- Buttons: hard offset shadow, tactile ---- */
.btn {
  display: inline-block;
  font-family: var(--font-head);
  font-size: .95rem;
  font-weight: 600;
  letter-spacing: .01em;
  padding: .85rem 1.7rem;
  background: var(--yellow);
  color: var(--navy-ink);
  border: 2px solid var(--navy);
  box-shadow: var(--shadow-pop-sm);
  cursor: pointer;
  transition: transform .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s;
}
.btn:hover { transform: translate(-2px, -2px); box-shadow: var(--shadow-pop); color: var(--navy-ink); }
.btn:active { transform: translate(2px, 2px); box-shadow: 0 0 0 rgba(0,0,0,0); }
.btn--ghost { background: transparent; color: #fff; border-color: #fff; box-shadow: 4px 4px 0 rgba(184, 154, 90, .9); }
.btn--ghost:hover { box-shadow: 6px 6px 0 rgba(184, 154, 90, 1); color: #fff; }
.btn--navy { background: var(--navy); color: #fff; border-color: var(--navy-ink); box-shadow: 4px 4px 0 rgba(184, 154, 90, 1); }
.btn--navy:hover { color: #fff; box-shadow: 6px 6px 0 rgba(184, 154, 90, 1); }
.btn--sm { padding: .55rem 1.1rem; font-size: .85rem; box-shadow: 3px 3px 0 rgba(18,63,59,1); }

/* ==========================================================================
   Header (injected from js/chrome.js — header + footer live in that ONE file)
   ========================================================================== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--navy);
  border-bottom: 2px solid var(--yellow);
}
.site-header .container {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  min-height: 76px;
}
.brand { flex: 0 0 auto; display: flex; align-items: center; }
.brand img { width: 200px; height: auto; }

.site-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.site-nav > ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  align-items: center;
  gap: 2rem;
}
.site-nav a {
  color: #fff;
  font-size: .98rem;
  font-weight: 500;
  padding: .35rem 0;
  position: relative;
  white-space: nowrap;
}
.site-nav > ul > li > a::after {
  content: ''; position: absolute; left: 0; bottom: -2px;
  width: 100%; height: 2px; background: var(--yellow);
  transform: scaleX(0); transform-origin: left;
  transition: transform .22s var(--ease-out);
}
.site-nav > ul > li > a:hover, .site-nav a.is-active { color: var(--yellow); }
.site-nav > ul > li > a:hover::after, .site-nav a.is-active::after { transform: scaleX(1); }

/* services dropdown */
.has-dropdown { position: relative; }
.has-dropdown > a .caret {
  display: inline-block; margin-left: .35rem;
  border: 4px solid transparent; border-top-color: currentColor;
  vertical-align: 2px;
  transition: transform .2s;
}
.dropdown {
  position: absolute; top: calc(100% + 14px); left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 280px;
  background: var(--cream);
  border: 2px solid var(--navy);
  box-shadow: var(--shadow-pop);
  padding: .5rem 0;
  list-style: none;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s var(--ease-out), transform .2s var(--ease-out), visibility .2s;
}
.dropdown::before { /* hover bridge */
  content: ''; position: absolute; top: -16px; left: 0; right: 0; height: 16px;
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown,
.has-dropdown.open .dropdown {
  opacity: 1; visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.has-dropdown:hover > a .caret, .has-dropdown.open > a .caret { transform: rotate(180deg) translateY(2px); }
.dropdown li a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: .55rem 1.1rem;
  color: var(--navy);
  font-weight: 500;
  font-size: .93rem;
}
.dropdown li a:hover { background: var(--yellow-soft); color: var(--navy-ink); }
.dropdown li a .price { font-family: var(--font-head); font-size: .8rem; color: var(--muted); }
.dropdown li.dd-all { border-top: 1px dashed var(--line-navy); margin-top: .4rem; padding-top: .4rem; }
.dropdown li.dd-all a { font-family: var(--font-head); font-weight: 600; }

.header-cta { flex: 0 0 auto; }
.header-cta .btn { border-color: var(--navy-ink); }

.nav-toggle {
  display: none;
  background: none; border: 0; padding: 8px; cursor: pointer;
}
.nav-toggle svg { width: 30px; height: 30px; fill: #fff; }
.nav-toggle:hover svg { fill: var(--yellow); }

/* mobile nav */
@media (max-width: 1099px) {
  .site-header .container { min-height: 64px; }
  .brand img { width: 168px; }
  .nav-toggle { display: block; order: 3; margin-left: auto; }
  .header-cta { display: none; }
  .site-nav {
    position: fixed;
    inset: 0;
    top: 66px;
    background: linear-gradient(180deg, var(--navy) 0%, var(--navy-ink) 100%);
    display: none;
    overflow-y: auto;
    padding: 1.6rem 1.4rem 3rem;
  }
  .site-nav.is-open { display: block; }
  .site-nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .site-nav > ul > li { border-bottom: 1px solid rgba(255,255,255,.12); }
  .site-nav > ul > li > a {
    display: block;
    font-family: var(--font-head);
    font-size: 1.35rem;
    padding: 1rem 0;
  }
  .site-nav > ul > li > a::after { display: none; }
  .dropdown,
  .has-dropdown:hover .dropdown,
  .has-dropdown:focus-within .dropdown,
  .has-dropdown.open .dropdown {
    position: static;
    transform: none;
    opacity: 1; visibility: visible;
    background: transparent;
    border: 0; box-shadow: none;
    padding: 0 0 .8rem .6rem;
  }
  .dropdown { display: none; }
  .has-dropdown.open .dropdown { display: block; }
  .dropdown li a { color: #dbe7ee; padding: .45rem .5rem; }
  .dropdown li a:hover { background: rgba(184, 154, 90, .12); color: var(--yellow); }
  .dropdown li a .price { color: var(--yellow); }
  .dropdown li.dd-all { border-top-color: rgba(255,255,255,.15); }
  .mobile-cta { margin-top: 1.6rem; }
  .mobile-cta .btn { display: block; text-align: center; }
}
@media (min-width: 1024px) { .mobile-cta { display: none; } }

/* 2026-09-25: Lee -- "the nav bar is badly sized and not centred". With 12
   links in one row inside a 1160px container, anything 1600px+ pushed the
   links (and the Talk to Emma button) off the right edge of the screen,
   and anything narrower got a phone-style hamburger even on a laptop.
   Desktop header is now two rows: logo left + button right on top, the
   full link list centred underneath and allowed to wrap. Hamburger only
   below 1100px. */
@media (min-width: 1100px) {
  .site-header .container {
    max-width: 1400px;
    flex-wrap: wrap;
    column-gap: 1.6rem;
    row-gap: 0;
    min-height: 0;
    padding-top: .7rem;
  }
  .brand img { width: 190px; }
  .header-cta { margin-left: auto; }
  .site-nav {
    order: 3;
    flex: 1 0 100%;
    justify-content: center;
    margin-top: .55rem;
    padding: .45rem 0 .55rem;
    border-top: 1px solid rgba(255, 255, 255, .14);
  }
  .site-nav > ul {
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem 1.2rem;
  }
  .site-nav a { font-size: .9rem; }
}
@media (min-width: 1100px) and (max-width: 1439px) {
  .site-nav > ul { gap: .35rem .7rem; }
  .site-nav a { font-size: .82rem; }
}

/* ==========================================================================
   Ticker strip (antique-gold marquee)
   ========================================================================== */
.ticker {
  background: var(--yellow);
  border-top: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  overflow: hidden;
  padding: .55rem 0;
}
.ticker__track {
  display: flex;
  gap: 2.6rem;
  width: max-content;
  animation: ticker 30s linear infinite;
}
.ticker span {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .9rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--navy-ink);
  white-space: nowrap;
}
.ticker span::after { content: '✦'; margin-left: 2.6rem; color: var(--navy); }
@keyframes ticker { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker__track { animation: none; } }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
  position: relative;
  background: linear-gradient(200deg, rgba(18,63,59,.82) 0%, var(--navy-deep) 88%), var(--navy);
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.hero::after { content: ''; position: absolute; inset: 0; background: var(--grain); pointer-events: none; }
.hero > .container { position: relative; z-index: 1; }
.hero--photo {
  background:
    linear-gradient(200deg, rgba(18,63,59,.78) 0%, rgba(18,51,73,.96) 88%),
    url('../assets/img/hero-home.jpg') center 40% / cover no-repeat;
}
.hero--home { padding: clamp(2rem, 4.5vw, 3.5rem) 0 clamp(2.25rem, 4.5vw, 3.25rem); }
.hero--page { padding: clamp(1.15rem, 2.4vw, 1.8rem) 0; }
.hero h1 { color: #fff; max-width: 780px; }
.hero .lede {
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.55;
  color: #DCE7EE;
  max-width: 620px;
  margin: 1.1rem 0 1.9rem;
}
.hero .eyebrow { color: var(--yellow); }
.hero-actions { display: flex; gap: 1.1rem; flex-wrap: wrap; align-items: center; }
.hero-note { font-size: .88rem; color: #B9CBD6; margin-top: 1.3rem; }
.hero-note strong { color: var(--yellow); font-weight: 700; }

/* staggered load-in */
.hero [data-rise] { opacity: 0; transform: translateY(26px); animation: rise .7s var(--ease-out) forwards; }
.hero [data-rise="2"] { animation-delay: .12s; }
.hero [data-rise="3"] { animation-delay: .24s; }
.hero [data-rise="4"] { animation-delay: .36s; }
@keyframes rise { to { opacity: 1; transform: none; } }

/* breadcrumb on detail pages */
.crumbs { font-size: .85rem; color: #B9CBD6; margin-bottom: 1.2rem; }
.crumbs a { color: var(--yellow); }
.crumbs a:hover { text-decoration: underline; }
.crumbs .sep { margin: 0 .45rem; opacity: .6; }

/* price chip */
.price-chip {
  display: inline-flex;
  align-items: baseline;
  gap: .4rem;
  background: var(--yellow);
  color: var(--navy-ink);
  border: 2px solid var(--navy-ink);
  box-shadow: var(--shadow-pop-sm);
  font-family: var(--font-head);
  padding: .5rem 1.1rem;
  transform: rotate(-1.5deg);
}
.price-chip .from { font-size: .78rem; font-weight: 500; }
.price-chip .amount { font-size: 1.5rem; font-weight: 600; letter-spacing: -.01em; }

/* ==========================================================================
   The menu (services list) — signature component
   ========================================================================== */
.menu-card {
  background: var(--cream);
  border: 2px solid var(--navy);
  box-shadow: var(--shadow-pop);
  padding: clamp(1.6rem, 4vw, 3rem) clamp(1.2rem, 4vw, 3rem);
  position: relative;
}
.menu-card::before {
  content: '';
  position: absolute; inset: 8px;
  border: 1px dashed var(--line-navy);
  pointer-events: none;
}
.menu-head { text-align: center; margin-bottom: 1.6rem; }
.menu-head .menu-title { font-size: clamp(1.7rem, 3vw, 2.3rem); margin-bottom: .2em; }
.menu-head .menu-sub { color: var(--muted); font-style: italic; margin: 0; }

.menu-list { list-style: none; margin: 0; padding: 0; }
.menu-row {
  display: block;
  padding: 1.15rem .4rem;
  position: relative;
  transition: background .2s;
}
.menu-row + .menu-row { border-top: 1px solid var(--rule); }
.menu-row:hover { background: var(--yellow-soft); }
.menu-row__top {
  display: flex;
  align-items: baseline;
  gap: .8rem;
}
.menu-row__num {
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 600;
  color: var(--muted);
  flex: 0 0 auto;
}
.menu-row__name {
  font-family: var(--font-head);
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  font-weight: 600;
  color: var(--navy);
  flex: 0 0 auto;
  transition: color .2s;
}
.menu-row:hover .menu-row__name { color: var(--navy-ink); }
.menu-row__dots {
  flex: 1 1 auto;
  border-bottom: 2px dotted var(--line-navy);
  transform: translateY(-4px);
  min-width: 30px;
}
.menu-row__price {
  font-family: var(--font-head);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  font-weight: 600;
  color: var(--navy);
  flex: 0 0 auto;
}
.menu-row__price .from { font-size: .72em; color: var(--muted); font-weight: 500; margin-right: .25rem; }
.menu-row__desc {
  margin: .3rem 0 0 calc(.8rem + 2ch);
  color: var(--muted);
  font-size: .95rem;
  max-width: 640px;
}
.menu-row__go {
  position: absolute;
  right: .6rem; bottom: .9rem;
  font-family: var(--font-head);
  font-size: .8rem;
  font-weight: 600;
  color: var(--navy);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity .2s, transform .2s var(--ease-out);
}
.menu-row:hover .menu-row__go { opacity: 1; transform: none; }
@media (max-width: 640px) {
  .menu-row__desc { margin-left: 0; }
  .menu-row__go { display: none; }
}

/* ==========================================================================
   Feature list (what's included) — check rows
   ========================================================================== */
.includes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: .35rem 2.2rem; }
.includes li { padding: .55rem 0 .55rem 2rem; position: relative; border-bottom: 1px dashed var(--rule); font-size: .98rem; }
.includes li::before {
  content: ''; position: absolute; left: 0; top: .72rem;
  width: 18px; height: 18px;
  background: var(--yellow);
  border: 2px solid var(--navy);
  clip-path: none;
}
.includes li::after {
  content: ''; position: absolute; left: 5px; top: 1.02rem;
  width: 8px; height: 4px;
  border-left: 2px solid var(--navy-ink);
  border-bottom: 2px solid var(--navy-ink);
  transform: rotate(-45deg);
}
.includes b { color: var(--navy); }

/* ==========================================================================
   Cards: numbered detail cards on service pages
   ========================================================================== */
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 1.4rem; }
.detail-card {
  background: var(--cream);
  border: 1.5px solid var(--navy);
  padding: 1.5rem 1.5rem 1.4rem;
  position: relative;
  transition: transform .2s var(--ease-out), box-shadow .2s var(--ease-out);
}
.detail-card:hover { transform: translate(-3px, -3px); box-shadow: var(--shadow-pop-sm); }
.detail-card .num {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .85rem;
  color: var(--navy-ink);
  background: var(--yellow);
  border: 1.5px solid var(--navy);
  width: 34px; height: 34px;
  display: grid; place-items: center;
  margin-bottom: .9rem;
}
.detail-card h4 { margin-bottom: .4rem; }
.detail-card p { margin: 0; font-size: .94rem; color: var(--muted); }

/* ==========================================================================
   Stats / counters
   ========================================================================== */
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); }
.stat { background: var(--navy-deep); padding: 2rem 1.4rem; text-align: center; }
.stat__number { font-family: var(--font-head); font-weight: 600; font-size: clamp(2.6rem, 4.5vw, 3.6rem); color: var(--yellow); line-height: 1; }
.stat__label { color: #C6D6DF; margin-top: .5rem; font-size: .95rem; }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonials { position: relative; }
.testimonial-viewport { overflow: hidden; }
.testimonial-track { display: flex; transition: transform .5s var(--ease-out); }
.testimonial { flex: 0 0 100%; padding: .4rem 3.4rem 0; }
.testimonial blockquote {
  margin: 0 0 1.3rem;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  line-height: 1.7;
  font-style: italic;
  color: var(--ink);
  position: relative;
}
.testimonial blockquote::before {
  content: '\201C';
  font-family: var(--font-head);
  font-size: 4.6rem;
  line-height: 1;
  color: var(--yellow);
  display: block;
  margin-bottom: .3rem;
}
.testimonial .who { font-family: var(--font-head); font-weight: 600; color: var(--navy); }
.testimonial .role { color: var(--muted); font-size: .9rem; }
.car-arrow {
  position: absolute; top: 42%;
  background: var(--cream);
  border: 1.5px solid var(--navy);
  width: 42px; height: 42px;
  display: grid; place-items: center;
  cursor: pointer;
  font-size: 1.3rem;
  color: var(--navy);
  transition: background .2s, transform .15s;
}
.car-arrow:hover { background: var(--yellow); transform: translateY(-2px); }
.car-prev { left: 0; }
.car-next { right: 0; }
.car-dots { display: flex; justify-content: center; gap: 10px; padding-top: 1.6rem; }
.car-dots button {
  width: 10px; height: 10px;
  border: 1.5px solid var(--navy);
  background: transparent;
  padding: 0;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.car-dots button.is-active { background: var(--yellow); transform: rotate(45deg); }
@media (max-width: 640px) { .testimonial { padding: .4rem .4rem 0; } .car-arrow { display: none; } }

/* ==========================================================================
   Case study / article cards
   ========================================================================== */
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.6rem; }
.case-card {
  position: relative;
  display: block;
  min-height: 380px;
  overflow: hidden;
  border: 2px solid var(--navy);
  background: var(--navy) center / cover no-repeat;
  color: #fff;
  transition: transform .22s var(--ease-out), box-shadow .22s var(--ease-out);
}
.case-card:hover { transform: translate(-4px, -4px); box-shadow: var(--shadow-pop); }
.case-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(185deg, rgba(12,37,55,.06) 34%, rgba(12,37,55,.88) 100%);
  transition: background .25s;
}
.case-card:hover::after { background: linear-gradient(185deg, rgba(12,37,55,.18) 20%, rgba(12,37,55,.94) 100%); }
.case-card .tag {
  position: absolute; top: 18px; left: 18px; z-index: 2;
  background: var(--yellow);
  color: var(--navy-ink);
  border: 1.5px solid var(--navy-ink);
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .35rem .8rem;
}
.case-card h3 {
  position: absolute; z-index: 2;
  bottom: 1.1rem; left: 1.2rem; right: 1.2rem;
  color: #fff;
  font-size: 1.25rem;
  margin: 0;
}
.case-card .read {
  position: absolute; z-index: 2;
  bottom: -2rem; left: 1.2rem;
  font-family: var(--font-head);
  font-size: .8rem; font-weight: 600;
  color: var(--yellow);
  transition: bottom .22s var(--ease-out);
}
.case-card:hover .read { bottom: .45rem; }
.case-card:hover h3 { transform: translateY(-1.1rem); transition: transform .22s var(--ease-out); }
.case-card.is-lost { cursor: default; filter: saturate(.35); }
.case-card.is-lost:hover { transform: none; box-shadow: none; }
.case-card .lost-note {
  position: absolute; z-index: 2; top: 18px; right: 18px;
  background: rgba(250,247,239,.92);
  color: var(--ink);
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .3rem .7rem;
  border: 1px solid var(--navy);
  transform: rotate(2deg);
}

/* ==========================================================================
   Split layouts, prose, quotes
   ========================================================================== */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
@media (max-width: 900px) { .split { grid-template-columns: 1fr; } }

.prose { max-width: 760px; }
.prose--center { margin: 0 auto; }
.prose h2 { margin-top: 1.6em; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin-top: 1.5em; color: var(--navy); }
.prose ul { margin: 0 0 1.1rem; padding-left: 1.25rem; }
.prose li { margin-bottom: .4rem; }
.prose li::marker { color: var(--yellow); content: '■  '; font-size: .75em; }
.prose blockquote {
  border-left: 3px solid var(--yellow);
  background: var(--cream);
  margin: 1.4rem 0;
  padding: 1rem 1.3rem;
  font-style: italic;
  color: var(--navy);
}
.prose hr { border: 0; border-top: 1px dashed var(--line-navy); margin: 2.4rem 0; }
.lead { font-size: 1.14rem; line-height: 1.7; }
.muted { color: var(--muted); }

/* pull-quote banner (navy) */
.pull-quote {
  background: linear-gradient(180deg, var(--navy) 0%, var(--navy-deep) 100%);
  position: relative;
  color: #fff;
  text-align: center;
  padding: clamp(2.6rem, 6vw, 4rem) 1.25rem;
}
.pull-quote::after { content: ''; position: absolute; inset: 0; background: var(--grain); pointer-events: none; }
.pull-quote p {
  position: relative; z-index: 1;
  font-family: var(--font-head);
  font-weight: 500;
  font-size: clamp(1.25rem, 2.6vw, 1.9rem);
  line-height: 1.4;
  max-width: 880px;
  margin: 0 auto;
}
.pull-quote .mark { color: var(--yellow); }

/* portrait replacement panel (About) */
.portrait-panel {
  position: relative;
  background: linear-gradient(200deg, rgba(18,63,59,.92), var(--navy-deep)), var(--navy);
  border: 2px solid var(--navy-ink);
  box-shadow: var(--shadow-pop);
  color: #fff;
  display: grid;
  place-items: center;
  min-height: 420px;
  padding: 2.6rem;
  text-align: center;
  overflow: hidden;
}
.portrait-panel::after { content: ''; position: absolute; inset: 0; background: var(--grain); pointer-events: none; }
.portrait-panel > * { position: relative; z-index: 1; }
.portrait-panel img { width: 250px; margin: 0 auto 1.6rem; }
.portrait-panel .darwin { font-style: italic; font-size: 1.05rem; line-height: 1.7; max-width: 400px; color: #DCE7EE; }
.portrait-panel .darwin cite { display: block; font-style: normal; font-family: var(--font-head); font-weight: 600; color: var(--yellow); margin-top: .9rem; }

/* about skills */
.skill { border-left: 3px solid var(--yellow); padding: .2rem 0 .2rem 1.5rem; margin-bottom: 2rem; }
.skill .num { font-family: var(--font-head); font-weight: 600; font-size: 2.4rem; line-height: 1; color: rgba(18,63,59,.25); }
.skill h3 { margin: .35rem 0 .5rem; }
.skill p { margin-bottom: .5rem; }
.skill blockquote { margin: .7rem 0 0; padding: .6rem 1rem; background: var(--yellow-soft); border-left: 3px solid var(--yellow); font-style: italic; color: var(--navy); }

/* ==========================================================================
   FAQ accordion
   ========================================================================== */
.accordion { max-width: 820px; margin: 0 auto; }
.accordion details {
  background: var(--cream);
  border: 1.5px solid var(--navy);
  margin-bottom: .8rem;
  transition: box-shadow .2s var(--ease-out);
}
.accordion details[open] { box-shadow: var(--shadow-pop-sm); }
.accordion summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  gap: .9rem;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 1.02rem;
  color: var(--navy);
  padding: 1.05rem 3.2rem 1.05rem 1.2rem;
  position: relative;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary .q-num { color: var(--muted); font-size: .8rem; flex: 0 0 2ch; }
.accordion summary::after {
  content: '+';
  position: absolute; right: 1.1rem; top: 50%;
  transform: translateY(-50%);
  width: 26px; height: 26px;
  display: grid; place-items: center;
  background: var(--yellow);
  border: 1.5px solid var(--navy);
  font-size: 1.1rem;
  transition: transform .2s;
}
.accordion details[open] summary::after { content: '\2212'; transform: translateY(-50%) rotate(180deg); }
.accordion .a-body { padding: 0 1.2rem 1.2rem 3.1rem; color: var(--ink); }
.accordion .a-body p { margin: 0; }

/* ==========================================================================
   Contact
   ========================================================================== */
.contact-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(2rem, 5vw, 3.6rem); align-items: start; }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-form label { display: block; font-weight: 600; font-size: .92rem; color: var(--navy); margin-bottom: .35rem; }
.contact-form input, .contact-form textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 1rem;
  padding: .8rem .9rem;
  border: 1.5px solid var(--navy);
  background: var(--cream);
  color: var(--ink);
  margin-bottom: 1.15rem;
  transition: box-shadow .15s var(--ease-out);
}
.contact-form input:focus, .contact-form textarea:focus {
  outline: none;
  box-shadow: 3px 3px 0 var(--yellow);
}
.contact-aside {
  background: var(--navy);
  color: #fff;
  border: 2px solid var(--navy-ink);
  box-shadow: var(--shadow-pop);
  padding: 2rem;
  position: relative;
  overflow: hidden;
}
.contact-aside::after { content: ''; position: absolute; inset: 0; background: var(--grain); pointer-events: none; }
.contact-aside > * { position: relative; z-index: 1; }
.contact-aside h3 { color: #fff; }
.contact-aside .c-label { font-family: var(--font-head); font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--yellow); margin: 1.3rem 0 .2rem; }
.contact-aside a { color: #fff; font-size: 1.15rem; font-weight: 500; }
.contact-aside a:hover { color: var(--yellow); }
.contact-aside .hours { font-size: .9rem; color: #C6D6DF; margin-top: 1.4rem; }

/* ==========================================================================
   Chat CTA band (pre-footer, injected by chrome.js)
   ========================================================================== */
.chat-cta {
  background: var(--yellow);
  border-top: 2px solid var(--navy);
  text-align: center;
  padding: 1.1rem 1.25rem;
  position: relative;
}
.chat-cta h2 { color: var(--navy-ink); margin-bottom: .4rem; position: relative; z-index: 1; }
.chat-cta p { color: var(--navy); max-width: 520px; margin: 0 auto 1.6rem; position: relative; z-index: 1; }
.chat-cta .btn { background: var(--navy); color: #fff; border-color: var(--navy-ink); box-shadow: 4px 4px 0 var(--navy-ink); position: relative; z-index: 1; }
.chat-cta .btn:hover { box-shadow: 6px 6px 0 var(--navy-ink); color: #fff; }

/* ==========================================================================
   Footer (injected by chrome.js)
   ========================================================================== */
.site-footer {
  background: linear-gradient(180deg, var(--navy-deep) 0%, var(--navy-ink) 100%);
  color: #C6D6DF;
  position: relative;
}
.site-footer::after { content: ''; position: absolute; inset: 0; background: var(--grain); pointer-events: none; }
.site-footer > .container { position: relative; z-index: 1; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap: 2.6rem;
  padding: clamp(2.6rem, 5vw, 3.8rem) 0 2.2rem;
}
@media (max-width: 860px) { .footer-grid { grid-template-columns: 1fr; gap: 2rem; } }
.site-footer .f-brand img { width: 210px; margin-bottom: 1rem; }
.site-footer .f-brand p { font-size: .93rem; max-width: 300px; margin: 0; }
.site-footer h4 {
  color: #fff;
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.site-footer h4::after { content: ''; display: block; width: 22px; height: 2px; background: var(--yellow); margin-top: .5rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer ul li { margin-bottom: .45rem; }
.site-footer ul a { color: #C6D6DF; font-size: .95rem; }
.site-footer ul a:hover { color: var(--yellow); }
.site-footer .f-contact a { display: flex; align-items: center; gap: .7rem; color: #fff; font-weight: 500; margin-bottom: .8rem; }
.site-footer .f-contact a:hover { color: var(--yellow); }
.site-footer .f-contact svg { width: 18px; height: 18px; fill: var(--yellow); flex: 0 0 auto; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1.2rem 0 1.4rem;
  font-size: .84rem;
}
.footer-bottom .pol { display: flex; gap: 1.4rem; }
.footer-bottom a { color: #C6D6DF; }
.footer-bottom a:hover { color: var(--yellow); }

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .6s var(--ease-out), transform .6s var(--ease-out); }
.reveal.in-view { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* utilities */
.mb-0 { margin-bottom: 0; }
.mb-2 { margin-bottom: 2rem; }
.mt-2 { margin-top: 2rem; }
.center-block { display: flex; justify-content: center; }


/* Shrink Smart rebuild — restrained teal, antique gold and silver */
:root { --silver:#C7CCC8; --silver-dark:#8D9994; --gold:#B89A5A; }
.ticker { color:#fff; background:linear-gradient(90deg,var(--navy-deep),var(--navy)); border-block:1px solid rgba(184,154,90,.5); }
.ticker__track span::after { color:var(--gold); }
.hero--home::before { background:linear-gradient(90deg,rgba(6,36,33,.94) 0%,rgba(6,36,33,.77) 52%,rgba(6,36,33,.38) 100%); }
.product-kicker { display:inline-flex; align-items:center; gap:.65rem; padding:.38rem .7rem; border:1px solid rgba(184,154,90,.7); color:var(--navy); font-family:var(--font-head); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; transition:background .15s ease,color .15s ease; }
.product-kicker:hover { background:var(--navy); color:#fff; }
.product-kicker::before { content:''; width:8px; height:8px; border-radius:50%; background:var(--gold); }
.shrink-intro { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.leak-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
.leak-card { padding:1.35rem; background:var(--cream); border:1px solid var(--rule); border-top:3px solid var(--gold); }
.leak-card h3 { font-size:1.05rem; margin-bottom:.35rem; }
.leak-card p { font-size:.92rem; color:var(--muted); margin:0; }
.score-panel { padding:2rem; background:linear-gradient(150deg,var(--navy),var(--navy-deep)); color:#fff; border:1px solid var(--gold); box-shadow:8px 8px 0 var(--silver); }
.score-panel h3 { color:#fff; font-size:1.7rem; }
.score-panel .big { font-family:var(--font-head); font-size:clamp(2.8rem,6vw,5rem); color:var(--gold); line-height:1; margin:.6rem 0; }
.score-panel ul { margin:1rem 0 0; padding-left:1.2rem; }
.score-panel li { margin:.45rem 0; }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; counter-reset:steps; }
.process-card { position:relative; padding:1.6rem; border:1px solid var(--rule); background:#fff; }
.process-card::before { counter-increment:steps; content:'0' counter(steps); display:block; color:var(--gold); font-family:var(--font-head); font-size:.9rem; margin-bottom:1rem; }
.badge-row { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.5rem 0; }
.badge-row span { padding:.35rem .7rem; border:1px solid var(--silver-dark); color:var(--navy); font-size:.82rem; font-weight:600; }
.shrink-hero { background:radial-gradient(circle at 80% 20%,rgba(184,154,90,.18),transparent 32%),linear-gradient(135deg,var(--navy-deep),var(--navy)); color:#fff; }
.shrink-hero h1,.shrink-hero h2 { color:#fff; }
.shrink-wordmark { display:inline-block; border:1px solid var(--gold); padding:.32rem .65rem; letter-spacing:.12em; text-transform:uppercase; font-family:var(--font-head); color:var(--gold); }
@media(max-width:800px){.shrink-intro,.leak-grid,.process-grid{grid-template-columns:1fr}.score-panel{box-shadow:5px 5px 0 var(--silver)}}

/* Dinewise® 2026 final refinements */
.product-kicker span{opacity:.72;letter-spacing:.08em;text-transform:none}
.brand-mark{font-family:var(--font-head);font-weight:600;letter-spacing:.08em}
.concept-film video{width:100%;border:1px solid var(--gold);box-shadow:8px 8px 0 var(--silver);background:#061f1d}
.site-header{border-bottom-color:rgba(184,154,90,.55)}
.hero--home:after{background:linear-gradient(90deg,rgba(6,36,33,.94) 0%,rgba(6,36,33,.76) 48%,rgba(6,36,33,.3) 100%)}
@media(max-width:800px){.concept-film video{box-shadow:5px 5px 0 var(--silver)}}

/* 2026 rebuild: listening-led Dinewise / Shrink Smart */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rebuilt-hero .container{max-width:980px;margin-left:max(1.25rem,calc((100vw - var(--container))/2 + 1.25rem))}
.rebuilt-hero h1{max-width:880px}.rebuilt-hero .lede{max-width:780px}
.listening-stage{padding:clamp(4rem,8vw,7rem) 0;background:#fff;border-bottom:1px solid var(--rule)}
.listening-stage h2,.max-heading{font-size:clamp(2.3rem,5vw,4.6rem);max-width:1000px}
.listen-form{margin-top:2rem}.listen-form textarea{width:100%;min-height:220px;border:3px solid var(--navy);background:var(--cream);padding:1.5rem;font:500 clamp(1.25rem,2.2vw,2rem)/1.35 var(--font-body);color:var(--navy-ink);box-shadow:8px 8px 0 var(--yellow);resize:vertical}
.listen-form textarea:focus{outline:4px solid rgba(184,154,90,.35);outline-offset:4px}
.listen-actions{display:flex;align-items:center;gap:1.5rem;margin-top:1.5rem;flex-wrap:wrap}.listen-actions span{color:var(--muted);font-weight:600}
.listen-response{margin-top:2rem;padding:1.5rem 1.75rem;background:var(--navy);color:#fff;border-left:8px solid var(--yellow);font-size:1.15rem}.listen-response h3{color:var(--yellow)}
.definition-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}.definition-copy{font-size:1.1rem}
.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:3rem}.impact-grid.six{grid-template-columns:repeat(3,1fr)}.impact-grid article{border:2px solid var(--navy);padding:1.35rem;background:#fff;box-shadow:4px 4px 0 rgba(184,154,90,.7)}.impact-grid article span{font-family:var(--font-head);color:var(--yellow);font-weight:700}.impact-grid article p{margin-bottom:0}
.knowledge-panel{background:var(--navy);color:#fff;padding:2rem;border:2px solid var(--navy-ink);box-shadow:8px 8px 0 var(--yellow)}.knowledge-panel div{display:flex;align-items:baseline;gap:1rem;border-bottom:1px solid rgba(255,255,255,.18);padding:.75rem 0}.knowledge-panel strong{font:600 2.4rem var(--font-head);color:var(--yellow)}.knowledge-panel p{margin:1rem 0 0;color:#dbe7ee}
.rebuilt-shrink{padding:clamp(4rem,9vw,8rem) 0;background:linear-gradient(135deg,var(--navy),var(--navy-deep));color:#fff}.rebuilt-shrink h1{color:#fff;max-width:980px}.rebuilt-shrink .lede{max-width:850px}.problem-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}.problem-tiles button{padding:1.35rem;border:2px solid var(--navy);background:var(--cream);font:600 1.1rem var(--font-head);color:var(--navy);cursor:pointer;text-align:left;box-shadow:4px 4px 0 var(--yellow)}.problem-tiles button:hover,.problem-tiles button.is-selected{background:var(--yellow-soft);transform:translate(-2px,-2px)}
.engine-steps{list-style:none;margin:0;padding:0;counter-reset:step}.engine-steps li{display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule)}.engine-steps strong{font-family:var(--font-head);color:var(--navy)}
.about-intro{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border:3px solid var(--navy);box-shadow:10px 10px 0 var(--yellow);filter:saturate(.85) contrast(1.04)}.quote-strip{margin-top:2rem;padding:1.25rem 1.5rem;background:var(--navy);color:#fff;font:600 1.25rem var(--font-head);border-left:8px solid var(--yellow)}.principles{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.principles article{padding:1.5rem;background:#fff;border-top:6px solid var(--yellow)}
@media(max-width:800px){.definition-grid,.about-intro{grid-template-columns:1fr}.impact-grid,.impact-grid.six,.problem-tiles,.principles{grid-template-columns:1fr}.listen-form textarea{min-height:180px}.engine-steps li{grid-template-columns:1fr}.about-photo{max-width:430px}}

/* --- Shrink Smart knowledge interface v0.4 --- */
.problem-tiles{display:flex;flex-wrap:wrap;gap:.65rem;margin:1.2rem 0 1.1rem}
.problem-tiles button{border:1px solid rgba(191,151,61,.5);background:#fff;color:#0b2a3e;border-radius:999px;padding:.7rem 1rem;font:600 .92rem/1.1 'DM Sans',sans-serif;cursor:pointer;transition:.2s ease}
.problem-tiles button:hover,.problem-tiles button.is-selected{background:#0b2a3e;color:#fff;border-color:#0b2a3e;transform:translateY(-1px)}
.listen-status{margin:.9rem 0 0;color:#50616c;font-size:.9rem}
.listen-response{margin-top:1.4rem;background:#fff;border:1px solid rgba(15,76,76,.18);border-left:5px solid #b69a5b;border-radius:18px;padding:clamp(1.2rem,3vw,2rem);box-shadow:0 18px 42px rgba(9,35,49,.09)}
.listen-response__head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;border-bottom:1px solid #e8ecee;padding-bottom:1rem;margin-bottom:1rem}
.listen-response__head h3{margin:0;color:#0b2a3e}
.listen-response__badge{white-space:nowrap;background:#eef4f3;color:#0f4c4c;border-radius:999px;padding:.35rem .65rem;font-size:.78rem;font-weight:700}
.insight-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:1.5rem}
.insight-list{display:grid;gap:.8rem;margin:.8rem 0 0;padding:0;list-style:none}
.insight-list li{padding:.9rem 1rem;background:#f7f8f7;border-radius:12px}
.insight-list strong{display:block;color:#0b2a3e;margin-bottom:.25rem}
.next-questions{background:#0b2a3e;color:#fff;border-radius:14px;padding:1.15rem}
.next-questions h4{color:#d8b35b;margin:0 0 .7rem}
.next-questions ol{padding-left:1.15rem;margin:0;display:grid;gap:.65rem}
.engine-note{margin-top:1rem;color:#64737b;font-size:.88rem}
.about-photo img{width:100%;height:auto;aspect-ratio:390/560;object-fit:cover;object-position:center top;border-radius:22px;box-shadow:0 24px 55px rgba(9,35,49,.18)}
@media(max-width:760px){.insight-grid{grid-template-columns:1fr}.listen-response__head{display:block}.listen-response__badge{display:inline-block;margin-top:.65rem}.problem-tiles{display:grid;grid-template-columns:1fr 1fr}.problem-tiles button{border-radius:12px}}

/* --- Shrink Smart working diagnostic v0.5 --- */
.questionnaire-shell{color:#17313f}
.questionnaire-top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.questionnaire-top h3{font-size:clamp(1.55rem,3vw,2.35rem);margin:.15rem 0 .4rem;color:#0b2a3e}
.questionnaire-reset{border:0;background:transparent;color:#0f4c4c;text-decoration:underline;font-weight:700;cursor:pointer;padding:.4rem}
.questionnaire-progress{height:10px;background:#e8ecee;border-radius:999px;overflow:hidden;margin:1.25rem 0 .65rem}
.questionnaire-progress span{display:block;height:100%;background:linear-gradient(90deg,#0f4c4c,#b69a5b);transition:width .35s ease}
.question-count{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:#64737b;font-weight:700}
.questionnaire-question{font:600 clamp(1.5rem,3.2vw,2.5rem)/1.2 var(--font-head);color:#0b2a3e;max-width:900px;margin:1rem 0 .55rem}
.questionnaire-hint{font-size:1.05rem;color:#586a74;margin-bottom:1.2rem}
.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-top:1.4rem}
.answer-option{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:82px;padding:1rem 1.15rem;border:2px solid #d8dedf;border-radius:14px;background:#fff;color:#0b2a3e;text-align:left;cursor:pointer;font:600 1rem/1.3 var(--font-body);transition:.16s ease}
.answer-option small{display:block;max-width:100px;text-align:right;color:#76858c;font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}
.answer-option:hover,.answer-option:focus{border-color:#b69a5b;background:#fffaf0;transform:translateY(-2px);box-shadow:0 10px 24px rgba(9,35,49,.1);outline:none}
.questionnaire-privacy{margin:1rem 0 0;color:#718088;font-size:.82rem}
.report-hero{display:grid;grid-template-columns:190px 1fr;gap:1.5rem;align-items:center;padding:1.2rem 0 1.5rem;border-bottom:1px solid #e5eaeb}
.report-score{width:165px;height:165px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#eef4f3;border:10px solid #0f4c4c}
.report-score strong{font:600 2.8rem/1 var(--font-head);color:#0b2a3e}.report-score span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;margin-top:.35rem}
/* v108 — three lights. The old four-step scale put gold on 57%, which reads
   as an award for a business where a third of its controls are not working.
   Red is the ordinary state of an operation that never built these controls,
   not a reserved catastrophe colour, and green is deliberately hard to reach. */
.report-score.red{border-color:#b74e3d}.report-score.amber{border-color:#d48735}.report-score.green{border-color:#2f7d55}
.report-band{font:600 1.45rem var(--font-head);color:#0b2a3e;margin:0 0 .45rem}.report-caveat{font-size:.86rem;color:#687981}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem}.report-grid h4{font-size:1.15rem;color:#0b2a3e}
.priority-list{display:grid;gap:.75rem}.priority-list article{padding:1rem;background:#f7f8f7;border-left:4px solid #b69a5b;border-radius:0 10px 10px 0}.priority-list p{margin:.35rem 0 0;font-size:.9rem;color:#52646e}
.report-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.5rem}.report-actions .btn--ghost{border-color:#0b2a3e;color:#0b2a3e}
@media(max-width:760px){.answer-grid,.report-grid,.report-hero{grid-template-columns:1fr}.report-score{width:140px;height:140px}.answer-option{min-height:72px}.questionnaire-top{display:block}.questionnaire-reset{padding-left:0}}
@media print{.site-header,.site-footer,.hero,.listen-form,.problem-tiles,.listen-status,.questionnaire-reset,.report-actions,.section:not(.listening-stage):not(.printable-results){display:none!important}.listening-stage{padding:0}.listen-response{box-shadow:none;border:1px solid #999}.report-grid{grid-template-columns:1fr 1fr}}
/* v107 — a bad result must look bad.
   At 14% control assurance the report rendered in exactly the same neutral
   palette as a 90% one, headlined "Strong fit" — which describes how well the
   product suits the operator, not how bad their business is. Severity of
   control failure is counted directly from their own answers, so it is stated
   plainly and shown; what it costs still is not inferred, and the report says
   why rather than leaving the silence to be read as "nothing to worry about". */
.report-band{font:600 1.45rem/1.25 var(--font-head);color:#0b2a3e;margin:0 0 .5rem}
.verdict-detail{margin:0 0 .6rem;font-size:1.02rem;line-height:1.55}
.verdict-money{margin:0 0 .5rem;font-size:.88rem;color:#5d6f6a;border-left:3px solid #c7d2d6;padding-left:.7rem}
.verdict-signal{margin:0;font-size:.82rem;color:#5d6f6a}
.report-score span{max-width:76%;text-align:center;line-height:1.25}
.report-shell.verdict-red .report-hero,
.report-shell.verdict-amber .report-hero{
  background:linear-gradient(180deg,#fdf3f0 0%,#fff 100%);
  border-left:6px solid #b74e3d;border-radius:12px;
  padding:1.3rem 1.4rem;margin-bottom:1.2rem;border-bottom:0}
.report-shell.verdict-amber .report-hero{border-left-color:#d48735;background:linear-gradient(180deg,#fdf7ef 0%,#fff 100%)}
.report-shell.verdict-red .report-band{color:#8e3527;font-size:1.7rem}
.report-shell.verdict-amber .report-band{color:#8a5613}
.report-shell.verdict-red .report-score{background:#fdece8}
.report-shell.verdict-amber .report-score{background:#fdf5ea}
.report-shell.verdict-amber .report-score strong{color:#8a5613}
.report-shell.verdict-red .report-score strong{color:#8e3527}
.report-shell.verdict-green .report-score{background:#eef6f1}
.report-shell.verdict-green .report-band{color:#1f6b45}
@media print{
  body.emma-report-open .report-shell.verdict-red .report-hero,
  body.emma-report-open .report-shell.verdict-amber .report-hero{
    -webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* v108 — the score scale.
   Mostly-solid zones with short blends at the boundaries, so it reads as
   traffic lights rather than as a continuous measurement it is not entitled to
   imply. The pin sits at the score; the ticks show where the lights change. */
.score-scale-wrap{margin:0 0 1.4rem;padding:0 26px}
.score-scale{position:relative;height:13px;border-radius:999px;margin:2.1rem 0 .5rem;
  background:linear-gradient(90deg,#b74e3d 0%,#b74e3d 52%,#d48735 63%,#d48735 76%,#2f7d55 86%,#2f7d55 100%);
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.score-tick{position:absolute;top:-4px;height:21px;width:2px;background:rgba(255,255,255,.85);transform:translateX(-1px)}
.score-tick i{display:none}
.score-tick em{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-style:normal;
  font-size:.66rem;color:#5d6f6a;letter-spacing:.04em}
.score-pin{position:absolute;top:50%;transform:translate(-50%,-50%);width:22px;height:22px;
  border-radius:50%;background:#fff;border:3px solid #0b2a3e;box-shadow:0 2px 8px rgba(9,35,49,.28)}
.score-pin b{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:#0b2a3e;color:#fff;font-size:.76rem;padding:.16rem .5rem;border-radius:4px;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.score-pin b:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#0b2a3e}
.score-scale-note{margin:1.1rem 0 0;font-size:.78rem;color:#5d6f6a}

/* v104 — printing the Emma diagnostic report.
   The print block above hides .section:not(.listening-stage):not(.printable-results),
   and the Emma conversation lives in <section class="section" id="start">, so a
   finished report printed as a blank page. The button was missing and so was the
   page. These rules un-hide only the chain the report actually sits in, drop the
   conversational furniture that means nothing on paper, and keep each section
   whole across page breaks. Scoped to body.emma-report-open, which emma-brain.js
   sets when the report renders and clears on reset — printing any other part of
   the site is unchanged. */
.report-print-head{display:none}
@media print{
  body.emma-report-open #content,
  body.emma-report-open #content #start,
  body.emma-report-open #content #start>.container,
  body.emma-report-open #content .listen-response{display:block!important}
  body.emma-report-open #content #start{padding:0!important;margin:0!important}
  body.emma-report-open #content #start>.container{max-width:none;padding:0;margin:0}
  body.emma-report-open .emma-start-header,
  body.emma-report-open .report-shell .emma-question-head,
  body.emma-report-open .emma-escape,
  body.emma-report-open .report-actions,
  body.emma-report-open .prelaunch-warning,
  body.emma-report-open #start .reveal,
  body.emma-report-open #boxModal{display:none!important}
  body.emma-report-open,
  body.emma-report-open #content,
  body.emma-report-open #content #start,
  body.emma-report-open #content #start>.container{background:#fff!important}
  body.emma-report-open .listen-response{box-shadow:none;border:0;padding:0;background:#fff}
  body.emma-report-open .report-shell{padding:0;font-size:11pt;line-height:1.45;color:#17313f;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body.emma-report-open .report-print-head{display:block;border-bottom:2px solid #0b2a3e;padding-bottom:.45rem;margin-bottom:1rem}
  body.emma-report-open .report-print-head .rph-brand{margin:0;font-size:8pt;letter-spacing:.14em;text-transform:uppercase;color:#0f4c4c}
  body.emma-report-open .report-print-head h2{margin:.15rem 0;font-size:17pt;color:#0b2a3e}
  body.emma-report-open .report-print-head .rph-meta{margin:0;font-size:8.5pt;color:#4a5c66}
  body.emma-report-open .report-hero,
  body.emma-report-open .report-shell .priority-list article,
  body.emma-report-open .report-shell .specialist-handover{break-inside:avoid;page-break-inside:avoid}
  body.emma-report-open .report-shell h4{break-after:avoid;page-break-after:avoid;margin-bottom:.3rem}
  body.emma-report-open .report-shell section{margin-bottom:.85rem}
  body.emma-report-open .report-score{width:132px;height:132px;border-width:7px}
  body.emma-report-open .report-score strong{font-size:2rem}
  body.emma-report-open .report-score span{font-size:6.5pt;letter-spacing:.06em}
  body.emma-report-open .report-hero{grid-template-columns:150px 1fr;padding-top:0;gap:1rem}
  body.emma-report-open .questionnaire-privacy{font-size:8.5pt;border-top:1px solid #c7d2d6;padding-top:.5rem;margin-top:1rem}
  body.emma-report-open a[href]:after{content:""}
  @page{margin:14mm 14mm 16mm}
}
@media print{.accordion summary::after{display:none}.accordion details:not([open]) > *:not(summary){display:block!important}.accordion .a-body{padding-left:1.2rem}.accordion details{break-inside:avoid-page;box-shadow:none!important}}

/* --- Emma experience v0.6 --- */
.emma-hero{background:linear-gradient(90deg,#fffaf1 0 42%,#0a2a40 42% 100%);overflow:hidden;border-bottom:1px solid var(--rule)}
.emma-hero-grid{display:grid;grid-template-columns:.82fr 1.18fr;min-height:680px;align-items:stretch}
.emma-copy{padding:clamp(3.5rem,7vw,7rem) clamp(1.5rem,4vw,4rem) 3rem 0;align-self:center}.emma-intro{font:600 clamp(2.1rem,4vw,4rem)/1 var(--font-head);margin:0 0 .5rem;color:var(--navy)}
.emma-copy h1{font-size:clamp(2.7rem,5.6vw,5.7rem);line-height:.98;max-width:700px}.emma-copy .lede{max-width:620px}.kindness-line{font:italic 600 1.15rem var(--font-body);color:#b18431;margin-top:1.25rem}
.emma-portrait-wrap{position:relative;min-height:680px;background:radial-gradient(circle at 60% 30%,rgba(255,255,255,.35),transparent 36%),#0a2a40}.emma-portrait-wrap>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.emma-quote{position:absolute;right:4%;top:8%;width:min(330px,42%);padding:1.6rem;background:rgba(5,29,48,.94);color:#fff;border-radius:18px;box-shadow:0 20px 45px rgba(0,0,0,.24)}.emma-quote span{display:block;font:italic 500 clamp(1.8rem,3vw,3.2rem)/1.05 var(--font-head);color:var(--yellow)}.emma-quote strong{display:block;font-size:1.3rem;margin:1rem 0}.emma-quote p{margin:0;color:#dbe5eb}
.trust-strip{background:#f7f0e4;border-bottom:1px solid var(--rule)}.trust-strip .container{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding-top:1rem;padding-bottom:1rem}.trust-strip strong,.trust-strip span{display:block}.trust-strip strong{color:var(--navy)}.trust-strip span{font-size:.84rem;color:var(--muted)}
.emma-path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2rem}.emma-path-grid article{background:#fff;border:1px solid var(--rule);padding:1.5rem;border-radius:18px;box-shadow:0 14px 35px rgba(9,35,49,.07)}.emma-path-grid span{font:700 2rem var(--font-head);color:var(--yellow)}
.observation-feature{display:grid;grid-template-columns:1fr .72fr;gap:clamp(2rem,6vw,5rem);align-items:center}.observation-card{background:var(--navy);color:#fff;border-radius:22px;padding:2rem;box-shadow:10px 10px 0 var(--yellow)}.observation-card h3,.observation-card strong{color:var(--yellow)}.observation-card li{margin:.45rem 0}
.kindness-panel img{width:100%;max-height:540px;object-fit:cover;border-radius:22px}.boss-intro{display:grid;grid-template-columns:240px 1fr;gap:2.5rem;align-items:center}.boss-intro img{width:240px;height:280px;object-fit:cover;border-radius:22px;box-shadow:8px 8px 0 var(--yellow)}.boss-intro blockquote{font:600 1.35rem/1.45 var(--font-head);color:var(--navy);border-left:5px solid var(--yellow);padding-left:1rem}
.emma-final{display:grid;grid-template-columns:minmax(260px,420px) 1fr;align-items:center;text-align:left;padding:0!important;overflow:hidden}.emma-final img{width:100%;height:100%;min-height:360px;object-fit:cover}.emma-final div{padding:3rem}.emma-final h2{font-size:clamp(2.5rem,5vw,4.7rem)}
.emma-assessment-hero{background:linear-gradient(135deg,#fffaf1,#f4ead8);padding:clamp(1.5rem,3vw,2.5rem) 0;border-bottom:1px solid var(--rule)}.emma-assessment-hero .container{display:grid;grid-template-columns:360px 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}.emma-assessment-image img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;border-radius:28px;box-shadow:12px 12px 0 var(--yellow)}.emma-assessment-hero h1{font-size:clamp(2.5rem,5vw,5rem)}
.emma-listen-heading{display:grid;grid-template-columns:100px 1fr;gap:1.25rem;align-items:center}.emma-listen-heading img{width:100px;height:100px;object-fit:cover;object-position:center top;border-radius:50%;border:4px solid var(--yellow)}.emma-listen-heading h2{margin:.15rem 0 .4rem}
.emma-question-head{display:grid;grid-template-columns:84px 1fr;gap:1rem;align-items:center;margin-bottom:1rem}.emma-question-head img{width:84px;height:84px;border-radius:50%;object-fit:cover;object-position:center top;border:3px solid #d8b35b}.emma-question-head p{margin:0;color:#64737b}.emma-assurance{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:1.2rem 0}.emma-assurance div{padding:.8rem;background:#f7f3ea;border-radius:12px}.emma-assurance strong{display:block;color:#0b2a3e;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.emma-assurance span{font-size:.88rem;color:#586a74}
@media(max-width:900px){.emma-hero{background:#fffaf1}.emma-hero-grid,.emma-assessment-hero .container,.observation-feature,.boss-intro,.emma-final{grid-template-columns:1fr}.emma-portrait-wrap{min-height:620px}.emma-copy{padding-right:0}.trust-strip .container,.emma-path-grid{grid-template-columns:1fr 1fr}.boss-intro img{width:220px}.emma-final img{max-height:430px}.emma-assurance{grid-template-columns:1fr}}
@media(max-width:620px){.emma-hero-grid{min-height:auto}.emma-portrait-wrap{min-height:520px}.emma-quote{width:70%;right:5%;top:auto;bottom:5%}.trust-strip .container,.emma-path-grid{grid-template-columns:1fr}.emma-listen-heading{grid-template-columns:72px 1fr}.emma-listen-heading img{width:72px;height:72px}.emma-assessment-image{max-width:300px}.emma-assessment-hero .container{gap:2rem}.boss-intro img{width:180px;height:220px}}
.emma-site-cta{display:flex;align-items:center;gap:1.25rem;text-align:left}.emma-site-cta img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:center top;border:3px solid var(--navy);flex:0 0 auto}.emma-site-cta>div{flex:1;min-width:0}.emma-site-cta h2{margin:0 0 .2rem;font-size:1.2rem}.emma-site-cta p{margin:0;max-width:none}.emma-site-cta .btn{flex:0 0 auto;white-space:nowrap}@media(max-width:760px){.emma-site-cta{flex-direction:column;text-align:center}.emma-site-cta img{margin:auto}.emma-site-cta .btn{width:100%}}

/* ========================================================================== 
   Emma On Board v0.7 — the guide leads the whole experience
   ========================================================================== */
.btn--soft{background:#fff;color:var(--navy);border-color:var(--navy);box-shadow:4px 4px 0 rgba(184,154,90,.95)}
.emma-home-hero{background:linear-gradient(115deg,#fff 0%,#fbf8ef 46%,#e9dfc9 100%);overflow:hidden;border-bottom:1px solid var(--rule)}
.emma-home-grid{min-height:700px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:clamp(2rem,5vw,5rem)}
.emma-home-copy{padding:5rem 0}.emma-name{font-family:var(--font-head);font-size:clamp(1.5rem,2.4vw,2.2rem);font-weight:600;color:var(--yellow);margin-bottom:.35rem}
.emma-home-copy h1{font-size:clamp(2rem,3.6vw,3.1rem);max-width:780px;line-height:1.15}.emma-home-copy .lede{font-size:1.2rem;max-width:700px}.emma-signoff{font-family:var(--font-head);font-size:1.2rem;color:var(--yellow);margin-top:1.5rem}
.emma-home-visual{height:100%;min-height:460px;max-height:560px;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.emma-home-visual>img{width:100%;height:100%;object-fit:cover;object-position:center top}
.emma-home-note{position:absolute;right:1rem;bottom:2rem;width:min(165px,50%);background:rgba(8,46,43,.95);color:#fff;padding:.6rem .7rem;border-left:3px solid var(--yellow);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.emma-home-note strong,.emma-home-note span{display:block}.emma-home-note strong{font-family:var(--font-head);color:var(--yellow);font-size:.72rem;margin-bottom:.2rem}.emma-home-note span{font-size:.72rem;line-height:1.35}
.emma-proof-strip{background:var(--navy);color:#fff;border-bottom:3px solid var(--yellow)}.emma-proof-strip .container{display:grid;grid-template-columns:repeat(4,1fr);padding-top:1.1rem;padding-bottom:1.1rem}.emma-proof-strip .container>div{padding:.25rem 1.2rem;border-right:1px solid rgba(255,255,255,.18)}.emma-proof-strip .container>div:last-child{border-right:0}.emma-proof-strip strong,.emma-proof-strip span{display:block}.emma-proof-strip strong{font-family:var(--font-head);color:var(--yellow)}.emma-proof-strip span{font-size:.9rem;color:#e5eeeb}
.emma-role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.emma-role-grid article{position:relative;background:var(--cream);border:2px solid var(--yellow);border-radius:16px;padding:2.2rem 2.4rem 2.3rem;box-shadow:var(--shadow-pop);transition:transform .18s ease,box-shadow .18s ease;text-align:center;display:flex;flex-direction:column;align-items:center}
.emma-role-grid article:hover{transform:translateY(-4px);box-shadow:9px 9px 0 rgba(28,70,95,1)}
.emma-role-step{display:inline-block;font-family:var(--font-head);font-weight:700;color:#fff;background:var(--navy);padding:.22rem .7rem;border-radius:999px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.9rem}
.emma-role-grid h3{margin-bottom:.8rem;font-size:1.4rem}
.emma-role-desc{color:var(--navy);font-weight:700;font-size:1.14rem;line-height:1.6;margin:0;max-width:34ch}
.emma-conversation-preview{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}.emma-conversation-preview>img{border:8px solid #fff;box-shadow:12px 12px 0 var(--navy);border-radius:2px}.conversation-chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.5rem}.conversation-chips a{padding:.32rem .6rem;border:1px solid var(--navy);background:#fff;font-weight:600;font-size:.82rem;line-height:1.3}.conversation-chips a:hover{background:var(--yellow-soft)}
.observation-feature--dark .emma-story-card{background:#fff;color:var(--ink);padding:1rem;box-shadow:8px 8px 0 var(--yellow)}.emma-story-card img{aspect-ratio:4/3;object-fit:cover}.emma-story-card blockquote{font-family:var(--font-head);font-size:1.5rem;color:var(--navy);margin:1.2rem .5rem .6rem}.emma-story-card p{margin:.5rem}
.kindness-experience{background:#fff}.kindness-experience img{max-height:620px;object-fit:contain;margin:auto}
.emma-onboard-final{background:var(--navy);color:#fff}.emma-onboard-final .container{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:3rem}.emma-onboard-final img{max-height:530px;width:100%;object-fit:cover;object-position:top}.emma-onboard-final h2{color:#fff;font-size:clamp(2.8rem,6vw,5.5rem)}.emma-onboard-final p{font-size:1.2rem;max-width:600px}
.pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:1.75rem}.pillar-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid rgba(15,76,76,.16);border-top:4px solid #D7AD4B;border-radius:16px;padding:1.2rem;box-shadow:0 8px 22px rgba(0,0,0,.05);transition:transform .18s ease,box-shadow .18s ease,border-top-color .18s ease}.pillar-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,76,76,.14);border-top-color:#4e8492}.pillar-card.c-teal{border-top-color:#4e8492}.pillar-card.c-teal:hover{border-top-color:#D7AD4B}.pillar-card.c-navy{border-top-color:#123F3B}.pillar-card.c-navy:hover{border-top-color:#0d413d}.pillar-card.c-deep{border-top-color:#0d413d}.pillar-card.c-deep:hover{border-top-color:#123F3B}.pillar-num{font:800 .78rem var(--font-head);color:var(--gold,#b69a5b);letter-spacing:.08em}.pillar-card h3{margin:.35rem 0 .4rem;font-size:1.08rem;color:var(--navy)}.pillar-card p{margin:0;font-size:.86rem;color:var(--muted);line-height:1.4}
.principles-strip .principles-line{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:1rem;font-size:1.05rem;color:var(--navy)}.principles-strip .principles-line a{margin-left:auto;white-space:nowrap}@media(max-width:960px){.pillar-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.pillar-grid{grid-template-columns:1fr}.principles-strip .principles-line{gap:.6rem 1.2rem}.principles-strip .principles-line a{margin-left:0}}
.emma-context-strip{background:#f7f0df;border-bottom:1px solid #d8ceb8}.emma-context-strip .container{display:grid;grid-template-columns:86px 1fr auto;gap:1.2rem;align-items:center;padding-top:1rem;padding-bottom:1rem}.emma-context-strip img{width:78px;height:78px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--yellow)}.emma-context-strip h2{font-size:1.25rem;margin:.05rem 0 .2rem}.emma-context-strip p{margin:0;color:var(--muted);font-size:.95rem}.emma-context-name{font-family:var(--font-head);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--yellow);font-weight:700}
.emma-site-cta img{object-position:center top}
.emma-question-head img,.emma-listen-heading img,.emma-assessment-image img{object-position:center top}

@media(max-width:900px){.emma-home-grid,.emma-conversation-preview,.emma-onboard-final .container{grid-template-columns:1fr}.emma-home-copy{padding:3.5rem 0 1rem}.emma-home-visual{min-height:420px;max-height:420px}.emma-proof-strip .container,.emma-role-grid{grid-template-columns:1fr 1fr}.emma-context-strip .container{grid-template-columns:68px 1fr}.emma-context-strip .btn{grid-column:2;justify-self:start}.emma-context-strip img{width:62px;height:62px}}
@media(max-width:580px){.emma-proof-strip .container,.emma-role-grid{grid-template-columns:1fr}.emma-proof-strip .container>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.15)}.emma-home-visual{min-height:340px;max-height:340px}.emma-home-note{right:.6rem;bottom:.6rem}.emma-context-strip .container{grid-template-columns:54px 1fr;gap:.8rem}.emma-context-strip img{width:50px;height:50px}.emma-context-strip h2{font-size:1.05rem}}

/* v0.8 Emma Assurance */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.team-grid article{background:#fff;border:1px solid var(--rule);padding:1.5rem;border-radius:16px;box-shadow:4px 4px 0 var(--yellow-soft)}.team-role{color:var(--yellow);font-weight:700}.emma-handover{display:grid;grid-template-columns:320px 1fr;gap:3rem;align-items:center}.emma-handover img{width:100%;max-height:430px;object-fit:cover;border-radius:22px;box-shadow:10px 10px 0 var(--yellow)}.assurance-response{max-width:900px;margin:auto}.assurance-confirm{display:grid;grid-template-columns:70px 1fr;gap:1.2rem;align-items:center;background:#f5f0e5;padding:1.4rem;border-radius:16px;margin:1.2rem 0}.assurance-tick{width:64px;height:64px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:2rem;font-weight:800}.handover-note,.specialist-handover{background:#fff8e7;border-left:5px solid var(--yellow);padding:1.2rem 1.4rem;margin:1.2rem 0}.handover-note p,.specialist-handover p{margin-bottom:0}.page-hero--navy img{max-height:520px;object-fit:contain}@media(max-width:950px){.team-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.team-grid,.emma-handover{grid-template-columns:1fr}.assurance-confirm{grid-template-columns:52px 1fr}.assurance-tick{width:48px;height:48px}}


/* v0.9 Legal centre and transparent browser-storage notice */
.legal-hero{background:linear-gradient(120deg,#fffaf1 0%,#f4ead8 100%)}
.legal-hero-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:3rem;align-items:center}
.legal-hero-grid img{width:100%;max-height:440px;object-fit:contain;object-position:center bottom}
.legal-updated{font-weight:700;color:var(--muted)}
.legal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.legal-toc{position:sticky;top:110px;display:grid;gap:.45rem;padding:1.25rem;background:#f7f0df;border-left:5px solid var(--yellow)}
.legal-toc strong{font-family:var(--font-head);color:var(--navy);margin-bottom:.25rem}.legal-toc a{font-size:.9rem;color:var(--navy)}
.legal-copy h2{scroll-margin-top:130px;margin-top:2.4rem;font-size:clamp(1.55rem,2.5vw,2.1rem)}
.legal-note{padding:1.2rem 1.35rem;background:var(--navy);color:#fff;border-left:6px solid var(--yellow);margin-bottom:2rem}.legal-note strong{color:var(--yellow)}
.emma-legal-quote{display:grid;grid-template-columns:100px 1fr;gap:1.15rem;align-items:center;background:#fff8e7;padding:1rem 1.2rem;border-radius:16px;margin:1.5rem 0}.emma-legal-quote img{width:100px;height:100px;object-fit:cover;object-position:center top;border-radius:50%;border:3px solid var(--yellow)}.emma-legal-quote p{margin:0;font:600 1.08rem/1.5 var(--font-head);color:var(--navy)}
.legal-inline-button,.footer-cookie-link{border:0;background:none;padding:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer}.footer-cookie-link{font-size:inherit}
.cookie-notice{position:fixed;z-index:9999;left:1rem;right:1rem;bottom:1rem;max-width:880px;margin:auto;display:grid;grid-template-columns:88px 1fr;gap:1rem;align-items:center;background:#fff;color:var(--ink);border:2px solid var(--navy);border-left:8px solid var(--yellow);box-shadow:0 22px 60px rgba(0,0,0,.25);padding:1rem 1.2rem;border-radius:18px}.cookie-notice img{width:82px;height:82px;object-fit:cover;object-position:center top;border-radius:50%}.cookie-notice strong{font-family:var(--font-head);font-size:1.12rem;color:var(--navy)}.cookie-notice p{margin:.25rem 0 .65rem;font-size:.92rem}.cookie-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.cookie-actions a{font-weight:700;color:var(--navy)}
@media(max-width:800px){.legal-hero-grid,.legal-layout{grid-template-columns:1fr}.legal-hero-grid img{max-height:300px}.legal-toc{position:static}.cookie-notice{grid-template-columns:58px 1fr}.cookie-notice img{width:56px;height:56px}}
@media(max-width:520px){.cookie-notice{grid-template-columns:1fr}.cookie-notice img{display:none}}

/* Prelaunch v1.0 additions */
.wide-prose{max-width:900px}.definition-callout{font-size:1.4rem;line-height:1.5;padding:1.6rem;border-left:5px solid var(--gold,#b69a5b);background:#fff}.shrink-definition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-top:1rem}.shrink-definition-grid .shrink-box{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid rgba(15,76,76,.16);border-top:4px solid #D7AD4B;border-radius:12px;padding:.6rem .7rem;box-shadow:0 4px 12px rgba(0,0,0,.04);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.shrink-definition-grid a.shrink-box{cursor:pointer}.shrink-definition-grid a.shrink-box:hover{transform:translateY(-3px);border-color:#0f4c4c;border-top-color:#0f4c4c;box-shadow:0 12px 28px rgba(15,76,76,.14)}.shrink-definition-grid .shrink-box:nth-child(3n+2){border-top-color:#4e8492}.shrink-definition-grid .shrink-box:nth-child(3n+3){border-top-color:#123F3B}.shrink-definition-grid .shrink-box p{font-size:.76rem;line-height:1.32;margin:.2rem 0 0}.shrink-definition-grid .shrink-box .shrink-box-cta{display:block;margin-top:.4rem;font-size:.74rem;font-weight:700;color:#0f4c4c;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}.shrink-definition-grid a.shrink-box:hover .shrink-box-cta{opacity:1;transform:translateY(0)}.trust-levels article{background:#fff;border:1px solid rgba(15,76,76,.16);border-radius:18px;padding:1.35rem;box-shadow:0 10px 30px rgba(0,0,0,.05)}.shrink-definition-grid h3{margin-top:0;font-size:.9rem}
.leak-block{margin-top:2.2rem}.leak-block-head{max-width:640px;margin-bottom:1rem}.leak-block-kicker{display:inline-block;font:800 .72rem var(--font-head);letter-spacing:.08em;text-transform:uppercase;color:#94721d;background:#f4f1e9;border-radius:999px;padding:.3rem .7rem;margin-bottom:.5rem}.leak-block--profit .leak-block-kicker{color:#123F3B;background:#eef3f2}.leak-block-head h3{margin:.1rem 0 .4rem;color:var(--navy);font-size:1.3rem}.leak-block-head p{margin:0;color:var(--muted);max-width:56ch}.leak-block-cta{margin-top:1.1rem}
@media(max-width:1100px){.shrink-definition-grid{grid-template-columns:repeat(3,1fr)}}
.money-leak-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;padding:.25rem .6rem;border-radius:999px;margin-top:.5rem}
.money-leak-badge.leak-urgent{background:rgba(183,78,61,.12);color:#b74e3d}
.money-leak-badge.leak-weak{background:rgba(212,135,53,.12);color:#d48735}
.money-leak-badge.leak-mixed{background:rgba(182,154,91,.12);color:#b69a5b}
.money-leak-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.prelaunch-warning{margin-top:1.5rem;padding:1.25rem;border-radius:16px;background:#fff3cd;border:1px solid #e8c96a;color:#493d18}.trust-levels{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.quote-panel{margin:2rem 0;padding:1.6rem;background:#0f4c4c;color:#fff;border-radius:20px;font-size:1.35rem}.emma-start-header{display:grid;grid-template-columns:180px 1fr;gap:2rem;align-items:center;margin-bottom:1.5rem}.emma-start-header img{width:180px;height:180px;object-fit:cover;border-radius:50%}.emma-problem-form{padding:2rem;background:#f3eee4;border-radius:24px}.emma-problem-form label{display:block;font-weight:700;font-size:1.25rem;margin-bottom:.7rem}.emma-problem-form textarea{width:100%;padding:1rem;border:1px solid #bbb;border-radius:14px;font:inherit}.problem-tiles{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.problem-tiles button{border:1px solid #0f4c4c;background:#fff;border-radius:999px;padding:.7rem 1rem;cursor:pointer}.problem-tiles button.is-selected{background:#0f4c4c;color:#fff}.emma-form-status{font-weight:700;margin-top:1rem}.legal-toc a{display:block}.hero--page .legal-hero-grid img{max-height:470px;object-fit:cover;border-radius:28px}
.listen-form textarea,.emma-problem-form textarea{min-height:auto;height:auto;box-shadow:none;border:1px solid #bbb;padding:.9rem 1rem;font:inherit;font-size:1.05rem;line-height:1.4}
.emma-input-wrap{display:flex;gap:.6rem;align-items:flex-end}
.emma-input-wrap textarea{flex:1;resize:none}
.emma-ask-btn{flex-shrink:0;padding:.9rem 1.6rem;white-space:nowrap}
.emma-char-count{margin:.35rem 0 0;font-size:.85rem;color:#6b6b6b;text-align:right}
@media(max-width:800px){.emma-input-wrap{flex-direction:column;align-items:stretch}.emma-ask-btn{width:100%}}
@media(max-width:900px){.shrink-definition-grid{grid-template-columns:repeat(2,1fr)}.trust-levels{grid-template-columns:1fr}}@media(max-width:620px){.shrink-definition-grid{grid-template-columns:1fr}.emma-start-header{grid-template-columns:1fr}.emma-start-header img{width:130px;height:130px}}

/* V32: EMMA/test/master hero consistency — user-approved Dinewise green and compact type */
.hero--page{background:#123F3B!important;padding:1.35rem 0!important}.hero--page h1{font-size:34px!important;line-height:1.08!important;margin:.25rem 0 .55rem!important}.hero--page .lede{font-size:16px!important;line-height:1.45!important;color:#e6efed!important}.hero--page .eyebrow{color:var(--yellow)!important}


/* V33 — canonical Dinewise hero contract for test/master pages */
.hero--page{background:#123F3B!important;padding:1.05rem 0!important}
.hero--page h1{font-size:30px!important;line-height:1.08!important;margin:.2rem 0 .45rem!important}
.hero--page .lede{font-size:15px!important;line-height:1.4!important;color:#e6efed!important}
.hero--page .eyebrow{color:var(--yellow)!important}

/* V34 canonical hero lock */
.hero--page,.emma-hub-hero{background:#123F3B!important;background-image:none!important;padding:.8rem 0!important}.hero--page h1,.emma-hub-hero h1{font-size:28px!important;line-height:1.06!important;margin:.15rem 0 .35rem!important}.hero--page .lede,.emma-hub-hero .lede{font-size:14px!important;line-height:1.35!important}

/* V36: box-modal — in-page popup for shrink-box / pl-box detail pages, so browsing the
   Shrink Smart / Profit Leak grids doesn't require leaving shrink-smart.html. The linked
   page remains the single source of content (fetched live), so nothing is duplicated. */
body.box-modal-lock{overflow:hidden}
.box-modal{position:fixed;inset:0;z-index:2000;display:none;align-items:center;justify-content:center;padding:1.5rem}
.box-modal.open{display:flex}
.box-modal-backdrop{position:absolute;inset:0;background:rgba(8,20,25,.55);backdrop-filter:blur(1px)}
.box-modal-card{position:relative;background:#fff;border-radius:20px;max-width:640px;width:100%;max-height:85vh;overflow-y:auto;padding:2.1rem 2rem 1.6rem;box-shadow:0 30px 70px rgba(0,0,0,.35);opacity:0;transform:translateY(10px) scale(.98);transition:opacity .16s ease,transform .16s ease}
.box-modal.open .box-modal-card{opacity:1;transform:translateY(0) scale(1)}
.box-modal-close{position:absolute;top:.9rem;right:.9rem;width:34px;height:34px;border-radius:50%;border:1px solid rgba(15,76,76,.16);background:#fff;font-size:1.3rem;line-height:1;color:#123F3B;cursor:pointer}
.box-modal-close:hover{background:#f4f1e9}
.box-modal-media{text-align:center;margin-bottom:.9rem}
.box-modal-img{max-height:110px;width:auto;border-radius:14px;object-fit:cover;box-shadow:0 8px 18px rgba(0,0,0,.12)}
.box-modal-img[hidden]{display:none}
.box-modal-body .eyebrow{margin-bottom:.5rem}
.box-modal-title{margin:.1rem 0 .6rem;color:var(--navy);font-size:1.4rem}
.box-modal-lede{font-size:1.02rem;color:var(--muted);margin:0 0 1rem}
.box-modal-body h3{margin:1.1rem 0 .4rem;font-size:1.02rem;color:var(--navy)}
.box-modal-body p{margin:0 0 .2rem;line-height:1.55}
.box-modal-body .definition-callout{font-size:1.15rem;padding:1.1rem 1.3rem;margin-bottom:.3rem}
.box-modal-body .handover-note{margin-top:1.4rem!important}
.box-modal-fullpage{margin:0;font-size:.85rem}
.box-modal-fullpage a{color:#0f4c4c;font-weight:700}
.box-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.3rem;padding-top:1rem;border-top:1px solid rgba(15,76,76,.12)}
.box-modal-print{font:inherit;font-size:.8rem;font-weight:700;color:#123F3B;background:#fff;border:2px solid #123F3B;border-radius:999px;padding:.45rem 1.1rem;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:.4rem}
.box-modal-print:hover{background:#123F3B;color:#fff}
@media(max-width:600px){.box-modal{padding:0}.box-modal-card{max-height:100vh;height:100%;border-radius:0}}
@media print{
  /* Only while a box modal is open (body.box-modal-lock). Unscoped, this hid
     every page on the site when printed (fixed 2 Oct 2026). */
  body.box-modal-lock>*{visibility:hidden}
  body.box-modal-lock .box-modal,body.box-modal-lock .box-modal *{visibility:visible}
  body.box-modal-lock .box-modal{position:absolute;inset:auto;top:0;left:0;width:100%;padding:0;display:block!important;z-index:auto}
  body.box-modal-lock .box-modal-backdrop{display:none}
  body.box-modal-lock .box-modal-card{position:static;max-width:100%;max-height:none;height:auto;box-shadow:none;overflow:visible;border-radius:0;padding:0}
  body.box-modal-lock .box-modal-close,body.box-modal-lock .box-modal-print,body.box-modal-lock .box-modal-fullpage{display:none!important}
  body.box-modal-lock .box-modal-footer{border-top:0;justify-content:flex-start}
}


/* Emma safety-first reply (2 Oct 2026, go-live audit blocker 4) */
.emma-safety .emma-safety-now{background:#fdf0ee;border-left:5px solid #a8322a;padding:.8rem 1rem;margin:1rem 0;border-radius:6px}
.emma-safety .emma-safety-now strong{color:#7b1f17}
.emma-safety .emma-safety-list{margin:.4rem 0 0 1.2rem;padding:0}
.emma-safety .emma-safety-list li{margin:.3rem 0;line-height:1.5}
