@font-face { font-family: "Lora"; src: url("fonts/lora-normal.woff2") format("woff2"); font-weight: 400 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("fonts/lora-italic.woff2") format("woff2"); font-weight: 400 600; font-style: italic; font-display: swap; }
@font-face { font-family: "Inter"; src: url("fonts/inter-normal.woff2") format("woff2"); font-weight: 300 800; font-style: normal; font-display: swap; }
:root {
  --burgundy: #5e1a2e;
  --burgundy-deep: #471020;
  --rose: #b65167;
  --gold: #c8a86a;
  --gold-light: #e2cf9f;
  --gold-dark: #8a6a38;
  --gold-deep: #866637;
  --onyx: #26121b;
  --onyx-soft: #3a2430;
  --cream: #f7f2ec;
  --paper: #fbf8f4;
  --linen: #f1e9dd;
  --stone: #e2d8cc;
  --graphite: #6b5b5f;
  --white: #fff;
  --green: #2f7159;
  --font-display: "Lora", Georgia, serif;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shadow: 0 28px 70px -48px rgba(38, 18, 27, .62);
  --shadow-strong: 0 36px 86px -46px rgba(38, 18, 27, .78);
  --shadow-hover: 0 22px 40px rgba(38, 18, 27, .1);
  --shadow-float: 0 18px 42px rgba(22, 12, 17, .28);
  --shadow-float-lg: 0 35px 100px rgba(22, 12, 17, .48);
  --shadow-soft: 0 18px 34px rgba(38, 18, 27, .1);
  --ring-gold: 0 0 0 1px rgba(200, 168, 106, .55);
  --ring-graphite: 0 0 0 1px rgba(107, 91, 95, .5);
  --max: 1240px;
  --max-wide: 1360px;
  --header-height: 92px;
  --control: 48px;
  --control-sm: 44px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--onyx); }
body { margin: 0; color: var(--onyx); background: var(--cream); font-family: var(--font-body); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, select { cursor: pointer; }
h1, h2, h3 { margin-top: 0; font-family: var(--font-display); font-weight: 400; line-height: 1.08; letter-spacing: -.035em; }
p { margin-top: 0; }
::selection { color: var(--cream); background: var(--burgundy); }

.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; }
.skip-link { position: fixed; z-index: 9999; left: 16px; top: 16px; transform: translateY(-150%); padding: 12px 16px; color: var(--onyx); background: var(--gold); font-size: .8rem; font-weight: 700; }
.skip-link:focus { transform: translateY(0); }
.shell { width: min(calc(100% - 56px), var(--max)); margin-inline: auto; }
.shell-wide { width: min(calc(100% - 56px), var(--max-wide)); margin-inline: auto; }
.eyebrow { margin: 0 0 20px; color: var(--burgundy); font-size: .7rem; font-weight: 800; letter-spacing: .24em; line-height: 1.2; text-transform: uppercase; }
.eyebrow.light { color: var(--gold-light); }
.eyebrow.gold { color: var(--gold); }
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: var(--control); padding: 14px 20px; border: 1px solid transparent; font-size: .7rem; font-weight: 800; letter-spacing:.16em; line-height: 1.2; text-transform: uppercase; transition: transform .35s ease, background .2s ease, color .2s ease, border-color .2s ease; }
.button:hover { transform: translateY(-2px); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--onyx); outline-offset: 2px; }
.section-onyx a:focus-visible, .section-onyx button:focus-visible, .site-header a:focus-visible, .site-header button:focus-visible, .site-footer a:focus-visible, .site-footer button:focus-visible, .office-hero button:focus-visible, .conversion-panel a:focus-visible, .conversion-panel button:focus-visible, .hub-office-support button:focus-visible { outline-color: var(--gold); }
.button-gold { color: var(--onyx); background: var(--gold); }
.button-gold:hover { background: var(--gold-light); }
.button-burgundy { color: var(--cream); background: var(--burgundy); }
.button-burgundy:hover { background: var(--burgundy-deep); }
.button-outline { color: var(--burgundy); border-color: var(--burgundy); background: transparent; }
.button-outline:hover { color: var(--cream); background: var(--burgundy); }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--burgundy); font-size: .7rem; font-weight: 800; letter-spacing:.16em; text-transform: uppercase; }
.text-link span { font-size: 1rem; }
.light-link { color: var(--cream); }
.gold-link { color: var(--gold); }
.section { padding: 104px 0; }
.section-compact { padding: 32px 0; }
.section-cream { background: var(--cream); }
.section-linen { background: var(--linen); }
.section-onyx { color: var(--cream); background: var(--onyx); }
.section-burgundy { color: var(--cream); background: var(--burgundy); }
.section-heading h2, .split-heading h2 { margin-bottom: 0; font-size: clamp(2.6rem, 5vw, 4.5rem); }
.section-heading.centred { max-width: 760px; margin: 0 auto 52px; text-align: center; }
.split-heading { display: grid; grid-template-columns: .46fr 1.54fr; gap: 72px; align-items: end; margin-bottom: 48px; }
.split-heading > div > p { max-width: 680px; margin: 22px 0 0; color: var(--graphite); }

/* Header */
.site-header { position: sticky; z-index: 1000; top: 0; color: var(--cream); background: rgba(94, 26, 46, .98); border-bottom: 1px solid rgba(200, 168, 106, .42); backdrop-filter: blur(12px); }
.header-inner { width: min(calc(100% - 56px), var(--max-wide)); height: var(--header-height); margin: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; justify-self: start; white-space: nowrap; }
.brand-name { color: var(--cream); font-family: var(--font-body); font-size: .92rem; font-weight: 700; letter-spacing:.1em; text-transform: uppercase; }
.brand-logo { height: 20px; width: auto; }
.brand-location { color: var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }
.footer-logo { height: 26px; width: auto; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: 28px; }
.nav-link { position: relative; padding: 12px 0; color: #eadde1; font-size: .64rem; font-weight: 700; letter-spacing:.16em; text-transform: uppercase; }
.nav-link::after { content: ""; position: absolute; right: 0; bottom: 5px; left: 0; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--gold); transition: transform .35s ease; }
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); transform-origin: left; }
.nav-link.active { color: var(--gold); }
.header-cta { justify-self: end; min-height: var(--control-sm); display: inline-flex; align-items: center; padding: 0 18px; color: var(--onyx); background: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing:.16em; text-transform: uppercase; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid rgba(200,168,106,.55); background: transparent; }
.menu-toggle span:not(.sr-only) { display: block; width: 100%; height: 1px; margin: 6px 0; background: var(--gold); transition: transform .35s ease; }

/* Footer */
.site-footer { color: var(--cream); background: #160c11; }
.footer-main { width: min(calc(100% - 56px), var(--max)); margin: auto; padding: 74px 0 56px; display: grid; grid-template-columns: 1.35fr .65fr; gap: 90px; }
.footer-brand { display: inline-block; margin-bottom: 20px; color: var(--cream); font-family: var(--font-body); font-size: .85rem; font-weight: 700; letter-spacing:.1em; text-transform: uppercase; }
.footer-credential { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 20px 12px; color: #93858a; font-size: .58rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; vertical-align: middle; }
.footer-credential img { width: 16px; height: auto; display: block; }
.credential-badge { width: 56px; height: auto; }
.footer-main > div:first-child p { max-width: 610px; color: #cbbdc2; font-size: .9rem; line-height: 1.8; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.footer-links div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-links span { margin-bottom: 6px; color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.footer-links a { color: #d6c9cd; font-size: .8rem; }
.footer-links a:hover { color: var(--gold); }
.footer-base { width: min(calc(100% - 56px), var(--max)); margin: auto; padding: 18px 0 22px; display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,.12); color: #93858a; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }

/* Home */
.home-hero { min-height: 700px; display: grid; grid-template-columns: 1fr 1fr; box-shadow: var(--shadow-strong); }
.home-hero-copy { position: relative; overflow: hidden; padding: 84px 62px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; color: var(--cream); background: var(--burgundy); }
.home-hero-copy::after { content: ""; position: absolute; width: 380px; height: 380px; right: -180px; bottom: -180px; border: 1px solid rgba(200,168,106,.24); border-radius: 50%; box-shadow: 0 0 0 44px rgba(200,168,106,.035), 0 0 0 88px rgba(200,168,106,.025); }
.home-hero h1 { position: relative; z-index: 1; max-width: 690px; margin-bottom: 28px; font-size: clamp(3.7rem, 5.3vw, 5.15rem); line-height:1; letter-spacing:-0.05em; }
.home-hero h1 em { color: var(--gold); font-weight: 400; }
.hero-lede { position: relative; z-index: 1; max-width: 650px; margin-bottom: 34px; color: #dfd1d5; font-size: 1rem; line-height:1.75; }
.home-hero-visual { position: relative; min-height: 700px; overflow: hidden; background: linear-gradient(135deg, #e8ddd0 0%, #f5efe7 56%, #ded0c0 100%); }
.home-hero-visual::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(94,26,46,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(94,26,46,.055) 1px, transparent 1px); background-size: 62px 62px; }
.hero-portrait-card { position: absolute; z-index: 3; width: 30%; left: 9%; bottom: 9%; border-top: 5px solid var(--gold); box-shadow: var(--shadow-strong); }
.hero-portrait-card img { width: 100%; height: auto; display: block; }
.monogram { position: absolute; top: 22px; right: 28px; color: rgba(94,26,46,.09); font-family: var(--font-display); font-size: 14rem; line-height: 1; letter-spacing: -.09em; }
.visual-card { position: absolute; z-index: 2; box-shadow: var(--shadow); }
.visual-card-main { width: 56%; left: 12%; top: 21%; padding: 38px; color: var(--cream); background: var(--onyx); border-top: 5px solid var(--gold); }
.visual-card-main .mini-label { display: block; margin-bottom: 34px; color: var(--gold); font-size: .58rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.visual-card-main strong { display: block; margin-bottom: 12px; font-family: var(--font-display); font-size: 2rem; font-weight: 400; }
.visual-card-main p { margin-bottom: 0; color: #cfc2c7; font-size: .78rem; line-height: 1.7; }
.visual-card-top, .visual-card-bottom { width: 42%; padding: 24px; color: var(--onyx); background: rgba(255,255,255,.92); border-left: 3px solid var(--gold); backdrop-filter: blur(8px); }
.visual-card-top { top: 13%; right: 8%; }
.visual-card-bottom { right: 8%; bottom: 14%; }
.visual-card-top span, .visual-card-bottom span { display: block; margin-bottom: 8px; color: var(--burgundy); font-size: .55rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.visual-card-top b, .visual-card-bottom b { font-family: var(--font-display); font-size: 1.12rem; font-weight: 400; line-height: 1.3; }
.visual-rule { position: absolute; z-index: 1; width: 1px; height: 56%; left: 50%; top: 22%; background: var(--gold); }
.trust-strip { display: grid; grid-template-columns: repeat(4,1fr); color: var(--cream); background: var(--onyx); }
.trust-strip > div { padding: 20px 24px; border-right: 1px solid rgba(255,255,255,.12); }
.trust-strip > div:last-child { border-right: 0; }
.trust-strip strong, .trust-strip span { display: block; }
.trust-strip strong { margin-bottom: 2px; font-family: var(--font-display); font-size: .95rem; font-weight: 400; }
.trust-strip span { color: #bcaeb3; font-size:.55rem; letter-spacing:.12em; text-transform: uppercase; }
.route-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--burgundy); border-bottom: 1px solid var(--stone); }
.route-grid article { min-height: 290px; padding: 36px; display: flex; flex-direction: column; border-right: 1px solid var(--stone); }
.route-grid article:first-child { background: var(--linen); }
.route-grid article:last-child { border-right: 0; }
.route-grid article > span { color: var(--burgundy); font-size: .58rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.route-grid h3 { margin: 28px 0 14px; font-size: 1.55rem; }
.route-grid p { margin-bottom: 24px; color: var(--graphite); font-size: .8rem; line-height:1.7; }
.route-grid a { margin-top: auto; color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.feature-split { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: end; }
.feature-split h2 { max-width: 620px; margin-bottom: 0; font-size: clamp(2.8rem, 5vw, 4.8rem); }
.feature-copy p { max-width: 650px; color: #cfc2c7; font-family: var(--font-display); font-size:1.25rem; line-height: 1.65; }
.project-feature { display: grid; grid-template-columns: 1.05fr .95fr; gap: 86px; align-items: center; }
.project-feature h2 { margin-bottom: 22px; font-size: clamp(2.5rem, 4.5vw, 4.2rem); }
.project-feature > div:last-child > p:not(.eyebrow) { margin-bottom: 30px; color: var(--graphite); font-size: .95rem; line-height: 1.8; }
.project-art { position: relative; min-height: 440px; overflow: hidden; }
.project-art-hushri { padding: 48px; display: flex; flex-direction: column; justify-content: space-between; color: var(--onyx); background: linear-gradient(135deg,#f4efe7 0%,#e8ddd0 100%); box-shadow: var(--shadow-strong); }
.project-art-hushri::before { content: ""; position: absolute; width: 360px; height: 360px; top: -150px; right: -120px; border: 1px solid rgba(94,26,46,.14); border-radius: 50%; box-shadow: 0 0 0 48px rgba(94,26,46,.025), 0 0 0 96px rgba(94,26,46,.018); }
.project-art-hushri img.hushri-logo { position: relative; z-index: 1; width: 160px; height: auto; display: block; }
.hushri-heading-logo { width: 190px; max-width: 100%; height: auto; display: block; margin-bottom: 6px; }
.project-art-hushri i { position: relative; z-index: 1; width: 58%; height: 1px; display: block; background: rgba(38,18,27,.16); }
.project-art-hushri b { position: relative; z-index: 1; max-width: 330px; color: var(--onyx); font-family: var(--font-display); font-size: 2rem; font-weight: 400; line-height:1.2; }
.insights-preview > header { margin-bottom: 44px; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 40px; }
.insights-preview > header .eyebrow { grid-column: 1 / -1; margin-bottom: -14px; }
.insights-preview > header h2 { max-width: 760px; margin-bottom: 0; font-size: clamp(2.7rem, 4.7vw, 4.3rem); }
.insight-row { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--burgundy); }
.insight-row article { min-height: 280px; padding: 34px 30px; display: flex; flex-direction: column; border-right: 1px solid var(--stone); }
.insight-row article:last-child { border-right: 0; }
.insight-row article > span { color: var(--burgundy); font-size: .58rem; font-weight: 800; letter-spacing:.12em; text-transform: uppercase; }
.insight-row h3 { margin: 30px 0 14px; font-size: 1.5rem; }
.insight-row p { color: var(--graphite); font-size: .8rem; line-height:1.7; }
.insight-row a { margin-top: auto; color: var(--burgundy); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.cta-band { color: var(--cream); background: var(--burgundy); border-top: 5px solid var(--gold); }
.cta-band > .shell { min-height: 240px; padding: 52px 0; display: grid; grid-template-columns: .8fr 1fr auto; gap: 64px; align-items: center; }
.cta-band h2 { margin-bottom: 0; font-size: 2.8rem; }
.cta-band p:not(.eyebrow) { margin-bottom: 0; color: #ddcfd4; font-size: .9rem; line-height: 1.75; }
.cta-band-light { color: var(--onyx); background: var(--linen); border-top: 1px solid var(--gold); }
.cta-band-light p:not(.eyebrow) { color: var(--graphite); }

/* Shared page heroes */
.page-hero { position: relative; overflow: hidden; }
.page-hero::before { content: ""; position: absolute; inset: 0; opacity: .42; background-image: linear-gradient(rgba(200,168,106,.11) 1px, transparent 1px), linear-gradient(90deg, rgba(200,168,106,.11) 1px, transparent 1px); background-size: 72px 72px; }
.page-hero-burgundy, .page-hero-dark { color: var(--cream); background: var(--burgundy); }
.page-hero-cream, .page-hero-light { color: var(--onyx); background: var(--linen); }
.page-hero-cream .page-intro, .page-hero-light .page-intro { color: var(--onyx-soft); }
.page-hero-cream .eyebrow:not(.gold):not(.light), .page-hero-light .eyebrow:not(.gold):not(.light) { color: var(--burgundy); }
.page-hero-grid { position: relative; z-index: 1; min-height: 480px; padding: 82px 0; display: grid; grid-template-columns: 1.2fr .8fr; gap: 100px; align-items: end; }
.page-hero h1 { max-width: 820px; margin-bottom: 0; font-size: clamp(4rem, 7.2vw, 7.1rem); line-height: .94; }
.page-intro { margin: 0 0 12px; color: #dfd1d5; font-family: var(--font-display); font-size: 1.35rem; line-height:1.6; }
.page-intro.dark { color: var(--onyx-soft); }

/* About */
.about-intro { display: grid; grid-template-columns: .62fr 1.38fr; gap: 90px; align-items: start; }
.about-portrait { margin-top: 30px; }
.about-portrait img { width: 100%; height: auto; display: block; border-top: 5px solid var(--gold); box-shadow: var(--shadow-strong); }
.about-portrait figcaption { margin-top: 14px; color: var(--graphite); font-size:.75rem; letter-spacing: .02em; }
.about-portrait figcaption strong { display: block; margin-bottom: 2px; color: var(--onyx); font-family: var(--font-display); font-size: 1.05rem; font-weight: 400; }
.founder-card { position: sticky; top: calc(var(--header-height) + 34px); padding: 34px; color: var(--cream); background: var(--onyx); border-top: 5px solid var(--gold); box-shadow: var(--shadow); }
.founder-monogram { width: 110px; height: 110px; margin-bottom: 44px; display: grid; place-items: center; color: var(--gold); border: 1px solid var(--gold); border-radius: 50%; font-family: var(--font-display); font-size: 2.1rem; }
.founder-card strong, .founder-card span { display: block; }
.founder-card strong { margin-bottom: 8px; font-family: var(--font-display); font-size: 1.45rem; font-weight: 400; }
.founder-card span { color: #c8bbc0; font-size: .62rem; letter-spacing: .12em; line-height: 1.7; text-transform: uppercase; }
.prose-large p { margin-bottom: 30px; font-family: var(--font-display); font-size: 1.38rem; line-height:1.7; }
.prose-large p:first-child { color: var(--burgundy); font-size: 1.8rem; }
.story-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 90px; }
.story-grid h2 { font-size: clamp(2.8rem, 4.8vw, 4.6rem); }
.story-copy > p { color: var(--graphite); font-size: .95rem; line-height:1.85; }
.story-copy blockquote { margin: 50px 0 0; padding: 34px 38px; color: var(--burgundy); background: var(--cream); border-left: 3px solid var(--gold); font-family: var(--font-display); font-size: 1.7rem; font-style: italic; line-height: 1.48; }
.principle-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--burgundy); border-bottom: 1px solid var(--stone); }
.principle-grid article { min-height: 280px; padding: 32px; border-right: 1px solid var(--stone); }
.principle-grid article:last-child { border-right: 0; }
.principle-grid article:nth-child(2) { background: var(--linen); }
.principle-grid span { color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .18em; }
.principle-grid h3 { margin: 34px 0 14px; font-size: 1.5rem; }
.principle-grid p { color: var(--graphite); font-size: .8rem; line-height:1.7; }
.credentials-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: start; }
.credentials-grid h2 { font-size: clamp(2.8rem, 5vw, 4.7rem); }
.credentials-grid > div:last-child p { color: var(--graphite); font-family: var(--font-display); font-size: 1.15rem; line-height: 1.7; }

/* Portfolio */
.filter-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.filter-bar > span { margin-right: auto; color: var(--graphite); font-size: .62rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.filter-button { padding: 10px 16px; color: var(--graphite); border: 1px solid var(--stone); background: transparent; font-size: .58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.filter-button:hover, .filter-button.active { color: var(--cream); border-color: var(--burgundy); background: var(--burgundy); }
.portfolio-list { padding-top: 48px; }
.portfolio-project { padding: 56px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; border-bottom: 1px solid var(--stone); }
.portfolio-project:first-child { padding-top: 0; }
.portfolio-project.reverse .project-art { order: 2; }
.portfolio-project[hidden] { display: none; }
.portfolio-project .project-art { min-height: 480px; }
.portfolio-project .project-art.large { min-height: 560px; }
.project-copy h2 { margin-bottom: 18px; font-size: clamp(3rem, 5vw, 4.7rem); }
.project-summary { margin-bottom: 32px; color: var(--onyx-soft); font-family: var(--font-display); font-size: 1.22rem; line-height: 1.6; }
.project-copy dl { margin: 0; }
.project-copy dl > div { padding: 18px 0; display: grid; grid-template-columns: 130px 1fr; gap: 20px; border-top: 1px solid var(--stone); }
.project-copy dt { color: var(--burgundy); font-size:.58rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-copy dd { margin: 0; color: var(--graphite); font-size: .78rem; line-height:1.7; }
.concept-label { display: inline-block; margin-top: 24px; padding: 8px 10px; color: var(--burgundy); border: 1px solid var(--gold); font-size: .55rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.project-art-nb { padding: 44px; display: flex; flex-direction: column; justify-content: center; color: var(--cream); background: var(--burgundy); border: 16px solid var(--linen); outline: 1px solid var(--gold); box-shadow: var(--shadow); }
.project-art-nb::before { content: ""; position: absolute; inset: 40px; border: 1px solid rgba(200,168,106,.34); }
.project-art-nb div { position: relative; z-index: 1; margin-bottom: 70px; color: rgba(200,168,106,.16); font-family: var(--font-display); font-size: 9rem; line-height:.72; }
.project-art-nb span, .project-art-nb b { position: relative; z-index: 1; display: block; }
.project-art-nb span { color: var(--gold); font-size: .66rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.project-art-nb b { max-width: 320px; margin-top: 12px; font-family: var(--font-display); font-size: 2.3rem; font-weight: 400; line-height: 1.15; }
.project-art-north { padding: 48px; color: var(--cream); background: linear-gradient(145deg,#243746,#13222f); box-shadow: var(--shadow); }
.project-art-north::after { content: ""; position: absolute; width: 310px; height: 310px; right: -100px; bottom: -120px; border: 1px solid rgba(255,255,255,.16); transform: rotate(34deg); }
.project-art-north span { font-size: .72rem; font-weight: 800; letter-spacing: .22em; }
.project-art-north i { width: 1px; height: 45%; margin: 80px 0 48px 30%; display: block; background: var(--gold); }
.project-art-north b { display: block; max-width: 360px; font-family: var(--font-display); font-size: 2rem; font-weight: 400; line-height: 1.25; }
.project-art-atelier { padding: 52px; display: flex; flex-direction: column; color: var(--onyx); background: #d8c9b3; box-shadow: var(--shadow); }
.project-art-atelier span { font-size:.68rem; font-weight: 800; letter-spacing: .18em; }
.project-art-atelier div { width: 58%; aspect-ratio: 1; margin: auto; border: 1px solid var(--burgundy); border-radius: 50% 50% 8% 50%; box-shadow: inset 0 0 0 32px rgba(94,26,46,.04); }
.project-art-atelier b { max-width: 300px; font-family: var(--font-display); font-size: 2.1rem; font-weight: 400; line-height: 1.2; }
.portfolio-note { max-width: 880px; text-align: center; }
.portfolio-note h2 { font-size: clamp(2.8rem, 5vw, 4.7rem); }
.portfolio-note > p:last-child { color: var(--graphite); font-size: .95rem; line-height: 1.8; }

/* Services */
.services-hero .page-hero-grid { min-height: 540px; }
.service-catalogue { padding-top: 68px; }
.service-card { min-height: 360px; display: grid; grid-template-columns: 80px 1fr 250px; gap: 42px; padding: 52px 44px; border-top: 1px solid var(--stone); }
.service-card:last-child { border-bottom: 1px solid var(--stone); }
.service-card-featured { background: var(--linen); border-top: 3px solid var(--gold); }
.service-number { color: var(--gold-dark); font-family: var(--font-display); font-size: 2rem; }
.service-main h2 { margin-bottom: 16px; color: var(--burgundy); font-size: clamp(2.8rem, 5vw, 4.6rem); }
.service-main > p:not(.eyebrow) { max-width: 730px; color: var(--graphite); font-family: var(--font-display); font-size: 1.15rem; line-height:1.6; }
.service-main ul { margin: 28px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; }
.service-main li { position: relative; padding-left: 18px; color: var(--graphite); font-size:.75rem; }
.service-main li::before { content: ""; position: absolute; width: 6px; height: 6px; left: 0; top: .63em; background: var(--gold); border-radius: 50%; }
.service-side { align-self: stretch; padding-left: 34px; display: flex; flex-direction: column; align-items: flex-start; border-left: 1px solid var(--stone); }
.service-side span, .service-side strong, .service-side small { display: block; }
.service-side span { color: var(--graphite); font-size: .58rem; font-weight: 800; letter-spacing:.16em; text-transform: uppercase; }
.service-side strong { margin: 12px 0 4px; font-family: var(--font-display); font-size: 2.1rem; font-weight: 400; }
.service-side small { color: var(--graphite); font-size: .68rem; }
.service-side .button { width: 100%; margin-top: auto; }
.service-card-dark { color: var(--cream); background: var(--onyx); border-top: 3px solid var(--gold); }
.service-card-dark .service-main h2 { color: var(--gold); }
.service-card-dark .service-main > p:not(.eyebrow), .service-card-dark .service-main li, .service-card-dark .service-side span, .service-card-dark .service-side small { color: #cdbfc4; }
.service-card-dark .service-side { border-color: rgba(255,255,255,.15); }
.process-section { display: grid; grid-template-columns: .75fr 1.25fr; gap: 100px; }
.process-section > div h2 { font-size: clamp(2.8rem, 5vw, 4.6rem); }
.process-section > div > p:last-child { color: #cdbfc4; }
.process-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(200,168,106,.6); }
.process-list li { padding: 26px 0; display: grid; grid-template-columns: 70px 1fr; gap: 28px; border-bottom: 1px solid rgba(255,255,255,.13); }
.process-list li > span { color: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing:.16em; }
.process-list h3 { margin-bottom: 8px; font-size: 1.55rem; }
.process-list p { margin-bottom: 0; color: #cdbfc4; font-size: .78rem; }
.faq-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 100px; }
.faq-layout h2 { font-size: clamp(2.8rem, 4.7vw, 4.4rem); }
.faq-list { display: flex; flex-direction: column; gap: 14px; }
.faq-list details { background: var(--paper); border: 1px solid var(--stone); border-top: 3px solid var(--stone); transition: border-color .2s ease, box-shadow .35s ease; }
.faq-list details:hover { border-top-color: var(--gold); }
.faq-list details[open] { border-top-color: var(--gold); box-shadow: var(--shadow); }
.faq-list summary { position: relative; padding: 24px 56px 24px 26px; list-style: none; font-family: var(--font-display); font-size: 1.25rem; cursor: pointer; transition: color .2s ease; }
.faq-list summary:hover { color: var(--burgundy); }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 26px; top: 22px; color: var(--burgundy); font-family: var(--font-body); font-size: 1.4rem; font-weight: 300; transition: transform .35s ease; }
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list details p { max-width: 760px; margin: 0; padding: 0 56px 26px 26px; color: var(--graphite); font-size: .82rem; line-height: 1.75; }

/* Insights */
.insights-hero .page-hero-grid { min-height: 420px; }
.featured-insight { border-top: 3px solid var(--gold); }
.feature-article { display: grid; grid-template-columns: .95fr 1.05fr; gap: 100px; }.article-art{position:relative;padding-top:32px}.article-art span{position:relative;z-index:1;display:block;margin-bottom:20px;color:var(--burgundy);font-size:.7rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase}.article-art b{position:relative;z-index:1;display:block;color:var(--burgundy);font-family:var(--font-display);font-weight:400;font-style:italic;font-size:clamp(1.6rem,2.4vw,2.15rem);line-height:1.4}.article-art i{position:absolute;top:-56px;left:-14px;z-index:0;color:rgba(94,26,46,.09);font-family:var(--font-display);font-style:normal;font-size:9rem;line-height:1;pointer-events:none}.article-art i::before{content:'\201C'}
.article-category { display: block; margin-bottom: 32px; color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.feature-article h2 { margin-bottom: 24px; font-size: clamp(3.2rem, 5.4vw, 5.4rem); }
.feature-article > div:first-child > p { color: #ddcfd4; font-family: var(--font-display); font-size: 1.2rem; line-height:1.6; }
.article-meta-line { display: flex; gap: 18px; color: #c8bbc0; font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.feature-article-body { padding-top: 42px; border-top: 1px solid rgba(200,168,106,.5); }
.feature-article-body > p { color: #e1d5d8; font-size: .9rem; line-height:1.85; }
.feature-article-body blockquote { margin: 32px 0; padding: 28px 30px; color: var(--gold-light); background: var(--onyx); border-left: 3px solid var(--gold); font-family: var(--font-display); font-size: 1.55rem; font-style: italic; line-height: 1.48; }
.article-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--burgundy); }
.article-grid article { min-height: 330px; padding: 34px 30px; display: flex; flex-direction: column; border-right: 1px solid var(--stone); border-bottom: 1px solid var(--stone); }
.article-grid article:nth-child(3n) { border-right: 0; }
.article-grid article:nth-child(2), .article-grid article:nth-child(6) { background: var(--cream); }
.article-grid article > span { color: var(--burgundy); font-size:.58rem; font-weight: 800; letter-spacing:.12em; text-transform: uppercase; }
.article-grid h2 { margin: 28px 0 14px; font-size: 1.65rem; }
.article-grid p { color: var(--graphite); font-size: .78rem; line-height: 1.7; }
.article-grid a { margin-top: auto; color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.insights-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--burgundy); }
.insights-grid article { min-height: 300px; padding: 32px 28px; display: flex; flex-direction: column; border-right: 1px solid var(--stone); border-bottom: 1px solid var(--stone); }
.insights-grid article:nth-child(3n) { border-right: 0; }
.insights-grid article:nth-child(even) { background: var(--linen); }
.insights-grid article > span { color: var(--burgundy); font-size:.58rem; font-weight: 800; letter-spacing:.12em; text-transform: uppercase; }
.insights-grid h2 { margin: 22px 0 12px; font-size: 1.38rem; line-height: 1.3; }
.insights-grid p { color: var(--graphite); font-size: .78rem; line-height: 1.7; }
.insights-grid a { margin-top: auto; color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.article-reading-layout { display: grid; grid-template-columns: 230px minmax(0,760px); gap: 90px; justify-content: center; }
.article-reading-layout aside { position: sticky; top: calc(var(--header-height) + 32px); align-self: start; padding-top: 18px; border-top: 1px solid var(--gold); }
.article-reading-layout aside a { display: block; padding: 10px 0; color: var(--graphite); border-bottom: 1px solid var(--stone); font-size: .72rem; }
.longform-list { display: flex; flex-direction: column; gap: 30px; }
.longform-article { padding: 40px 44px; margin-bottom: 0; background: var(--onyx-soft); border-top: 3px solid var(--gold); }
.longform-article-head { display: flex; align-items: center; gap: 16px; margin-bottom: 6px; }
.longform-article-num { color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .16em; }
.longform-article-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; background: var(--cream); border-radius: 50%; box-shadow: var(--ring-gold); }
.longform-article-icon img { width: 22px; height: 22px; display: block; }
.longform-article h2 { margin: 0 0 22px; font-size: clamp(2.5rem, 4.5vw, 4rem); }
.longform-article p { color: #cbbdc2; font-family: var(--font-display); font-size: 1.08rem; line-height:1.85; }
.longform-article .standfirst { color: #e0d3d7; font-size: 1.4rem; }
.longform-article > a { display: inline-block; margin-top: 22px; color: var(--gold); font-family: var(--font-body); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.notes-index { display: flex; flex-direction: column; gap: 12px; }
.notes-index-row { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 20px; padding: 20px 26px; background: var(--paper); border: 1px solid var(--stone); border-left: 3px solid var(--stone); text-decoration: none; color: inherit; transition: border-color .2s ease, box-shadow .35s ease, transform .35s ease; }
.notes-index-row:hover { border-left-color: var(--gold); box-shadow: var(--shadow); transform: translateX(4px); }
.notes-index-num { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.notes-index-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; background: var(--cream); border-radius: 50%; box-shadow: var(--ring-gold); }
.notes-index-icon img { width: 20px; height: 20px; display: block; }
.notes-index-num b { font-family: var(--font-display); font-weight: 400; font-size: 1rem; color: var(--gold-dark); }
.notes-index-body { display: flex; flex-direction: column; gap: 6px; }
.notes-index-meta { color: var(--burgundy); font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing:.04em; }
.notes-index-body strong { font-family: var(--font-display); font-weight: 400; font-size: 1.2rem; color: var(--onyx); line-height: 1.3; }
.notes-index-teaser { color: var(--graphite); font-size: .8rem; line-height: 1.6; }
.notes-index-jump { display: inline-flex; align-items: center; color: var(--burgundy); font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing:.04em; white-space: nowrap; }
.notes-index-row:hover .notes-index-jump { text-decoration: underline; }
.newsletter-band { color: var(--cream); background: var(--onyx); border-top: 5px solid var(--gold); }
.newsletter-band > .shell { padding: 72px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.newsletter-band h2 { margin-bottom: 0; font-size: clamp(2.6rem, 4.5vw, 4.1rem); }
.newsletter-form label { display: block; margin-bottom: 10px; color: var(--gold); font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.newsletter-form > div { display: grid; grid-template-columns: 1fr auto; }
.newsletter-form input { min-width: 0; padding: 16px 16px; color: var(--onyx); border: 1px solid var(--stone); background: var(--cream); }
.newsletter-form button { padding: 0 22px; color: var(--onyx); border: 0; background: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.newsletter-form > p { margin: 10px 0 0; color: #9d8f94; font-size:.66rem; }

/* Contact */
.contact-hero .page-hero-grid { min-height: 500px; }
.contact-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 90px; align-items: start; }
.contact-aside { position: sticky; top: calc(var(--header-height) + 34px); }
.contact-aside h2 { font-size: 2.6rem; }
.contact-aside ol { margin: 36px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--burgundy); }
.contact-aside li { padding: 16px 0; display: grid; grid-template-columns: 42px 1fr; gap: 12px; border-bottom: 1px solid var(--stone); color: var(--graphite); font-size: .78rem; }
.contact-aside li span { color: var(--burgundy); font-size:.58rem; font-weight: 800; letter-spacing:.12em; }
.contact-note { margin-top: 34px; padding: 24px; color: var(--cream); background: var(--onyx); border-top: 3px solid var(--gold); }
.contact-note strong { font-family: var(--font-display); font-size: 1.2rem; font-weight: 400; }
.contact-note p { margin: 10px 0 0; color: #cbbdc2; font-size: .75rem; line-height: 1.7; }
.enquiry-form { padding: 46px; background: var(--paper); border: 1px solid var(--stone); box-shadow: var(--shadow); }
.enquiry-form fieldset { margin: 0 0 42px; padding: 0; border: 0; }
.enquiry-form legend { width: 100%; margin-bottom: 24px; padding-bottom: 12px; color: var(--burgundy); border-bottom: 1px solid var(--gold); font-family: var(--font-display); font-size: 1.45rem; }
.form-grid.two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-field { margin-bottom: 20px; }
.form-field label { display: block; margin-bottom: 8px; color: var(--onyx); font-size: .68rem; font-weight: 800; letter-spacing:.1em; }
.form-field input, .form-field textarea, .form-field select { width: 100%; padding: 14px; color: var(--onyx); border: 1px solid #cfc3b7; border-radius: 0; background: var(--white); font-family: var(--font-body); font-size: .92rem; line-height: 1.2; }
.form-field input, .form-field select { min-height: var(--control); }
.form-field select { height: var(--control); padding-block: 0; }
.form-field textarea { resize: vertical; min-height: 120px; }
.form-field input::placeholder, .form-field textarea::placeholder { color: #96898d; }
.form-consent { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; margin-bottom: 24px; color: var(--graphite); font-size: .72rem; }
.form-consent input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--burgundy); }
.submit-button { width: 100%; border: 0; }
.form-note { margin: 14px 0 0; color: var(--graphite); font-size: .66rem; line-height: 1.55; }
.hidden-field { position: absolute; left: -9999px; }
.contact-expectations > .shell > div:first-child { max-width: 750px; margin-bottom: 48px; }
.contact-expectations h2 { font-size: clamp(2.8rem, 4.8vw, 4.5rem); }
.expectation-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--burgundy); }
.expectation-grid article { padding: 32px; border-right: 1px solid var(--stone); }
.expectation-grid article:last-child { border-right: 0; }
.expectation-grid span { color: var(--burgundy); font-size: .58rem; font-weight: 800; letter-spacing:.16em; }
.expectation-grid h3 { margin: 28px 0 12px; font-size: 1.55rem; }
.expectation-grid p { color: var(--graphite); font-size: .78rem; line-height:1.7; }

/* Responsive */
@media (max-width: 1080px) {
  .header-inner { grid-template-columns: 1fr auto auto; }
  .primary-nav { gap: 18px; }
  .home-hero-copy { padding: 70px 44px; }
  .home-hero h1 { font-size: 4rem; }
  .visual-card-main { width: 62%; left: 8%; }
  .service-card { grid-template-columns: 54px 1fr 220px; gap: 28px; padding-inline: 30px; }
  .principle-grid { grid-template-columns: 1fr 1fr; }
  .principle-grid article:nth-child(2) { background: var(--linen); }
  .principle-grid article:nth-child(2n) { border-right: 0; }
  .principle-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--stone); }
}

@media (max-width: 900px) {
  :root { --header-height: 76px; }
  .shell, .shell-wide, .header-inner, .footer-main, .footer-base { width: min(calc(100% - 36px), var(--max)); }
  .header-inner { height: var(--header-height); grid-template-columns: 1fr auto; }
  .menu-toggle { display: block; justify-self: end; }
  .header-cta { display: none; }
  .primary-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; padding: 18px; flex-direction: column; align-items: stretch; gap: 0; color: var(--cream); background: var(--burgundy-deep); border-bottom: 1px solid var(--gold); }
  .primary-nav.is-open { display: flex; }
  .nav-link { padding: 16px 8px; border-bottom: 1px solid rgba(255,255,255,.11); }
  .nav-link::after { display: none; }
  .menu-toggle[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-of-type(3) { transform: translateY(-3.5px) rotate(-45deg); }
  .section { padding: 78px 0; }
  .home-hero { grid-template-columns: 1fr; }
  .home-hero-visual { min-height: 560px; }
  .trust-strip { grid-template-columns: 1fr 1fr; }
  .trust-strip > div:nth-child(2) { border-right: 0; }
  .trust-strip > div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
  .split-heading, .feature-split, .project-feature, .page-hero-grid, .about-intro, .story-grid, .credentials-grid, .portfolio-project, .process-section, .faq-layout, .feature-article, .article-reading-layout, .newsletter-band > .shell, .contact-layout { grid-template-columns: 1fr; gap: 48px; }
  .page-hero-grid { min-height: 400px; padding: 64px 0; }
  .page-hero h1 { font-size: 4.6rem; }
  .founder-card, .contact-aside, .article-reading-layout aside { position: static; }
  .project-feature .project-art { min-height: 420px; }
  .cta-band > .shell { grid-template-columns: 1fr; gap: 22px; }
  .route-grid, .insight-row, .article-grid, .expectation-grid, .insights-grid { grid-template-columns: 1fr; }
  .route-grid article, .insight-row article, .article-grid article, .expectation-grid article, .insights-grid article { border-right: 0; border-bottom: 1px solid var(--stone); }
  .article-grid article:nth-child(2), .article-grid article:nth-child(6) { background: transparent; }
  .article-grid article:nth-child(even) { background: var(--cream); }
  .portfolio-project.reverse .project-art { order: initial; }
  .service-card { grid-template-columns: 54px 1fr; }
  .service-side { grid-column: 2; min-height: 185px; }
  .footer-main { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 640px) {
  .shell, .shell-wide, .header-inner, .footer-main, .footer-base { width: min(calc(100% - 28px), var(--max)); }
  .brand-name { font-size: .92rem; }
  .brand-location { display: none; }
  .home-hero-copy { padding: 60px 26px; }
  .home-hero h1 { font-size: 3.25rem; }
  .hero-lede { font-size: .92rem; }
  .home-hero-visual { min-height: 500px; }
  .monogram { font-size: 9rem; }
  .visual-card-main { width: 72%; left: 6%; top: 24%; padding: 26px; }
  .visual-card-top, .visual-card-bottom { width: 54%; right: 5%; padding: 18px; }
  .trust-strip { grid-template-columns: 1fr; }
  .trust-strip > div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .trust-strip > div:last-child { border-bottom: 0; }
  .split-heading { gap: 20px; }
  .section-heading h2, .split-heading h2, .feature-split h2, .project-feature h2, .story-grid h2, .credentials-grid h2, .portfolio-note h2, .faq-layout h2, .contact-expectations h2 { font-size: 2.75rem; }
  .page-hero-grid { min-height: 360px; gap: 30px; }
  .page-hero h1 { font-size: 3.25rem; }
  .page-intro { font-size: 1.15rem; }
  .route-grid article { min-height: 240px; padding: 28px; }
  .feature-split { gap: 30px; }
  .project-art { min-height: 370px; }
  .project-art-hushri { padding: 34px; }
  .project-art-hushri img.hushri-logo { width: 120px; }
  .project-art-hushri b { font-size: 1.65rem; }
  .insights-preview > header { grid-template-columns: 1fr; }
  .principle-grid { grid-template-columns: 1fr; }
  .principle-grid article { border-right: 0; border-bottom: 1px solid var(--stone); }
  .principle-grid article:last-child { border-bottom: 0; }
  .portfolio-project { padding: 44px 0; gap: 34px; }
  .portfolio-project .project-art, .portfolio-project .project-art.large { min-height: 390px; }
  .project-copy h2 { font-size: 3.1rem; }
  .project-copy dl > div { grid-template-columns: 1fr; gap: 8px; }
  .project-art-nb { border-width: 10px; }
  .project-art-nb div { font-size: 6rem; }
  .service-card { grid-template-columns: 1fr; padding: 36px 24px; }
  .service-number { font-size: 1.4rem; }
  .service-main h2 { font-size: 3rem; }
  .service-main ul { grid-template-columns: 1fr; }
  .service-side { grid-column: auto; min-height: 180px; padding: 24px 0 0; border-left: 0; border-top: 1px solid var(--stone); }
  .service-card-dark .service-side { border-top-color: rgba(255,255,255,.15); }
  .process-list li { grid-template-columns: 42px 1fr; gap: 16px; }
  .feature-article h2 { font-size: 3.2rem; }
  .article-reading-layout aside { display: none; }
  .newsletter-form > div { grid-template-columns: 1fr; }
  .newsletter-form button { min-height: 48px; }
  .form-grid.two { grid-template-columns: 1fr; gap: 0; }
  .enquiry-form { padding: 28px 20px; }
  .footer-links { grid-template-columns: 1fr 1fr; }
  .footer-base { flex-direction: column; }
  .filter-bar { justify-content: flex-start; }
  .filter-bar > span { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* === V2 conversion extension === */
:root{--font-display:"Lora",Georgia,serif;--font-body:"Inter",Arial,sans-serif}
body,p,a,span,strong,b,small,li,dt,dd,label,input,select,textarea,button,summary{font-family:var(--font-body)!important}h1,h2,h3,h4,h5,h6{font-family:var(--font-display)!important}.brand-name,.footer-brand{font-family:var(--font-body)!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.header-inner{grid-template-columns:minmax(190px,1fr) auto minmax(100px,1fr);gap: 20px}.primary-nav{gap: 18px}.nav-link{font-size:.58rem}.header-cta{min-width:92px;text-align:center}.nav-mobile-cta{display:none}.button-ghost{color:var(--gold);border-color:rgba(200,168,106,.62);background:transparent}.button-ghost:hover{color:var(--onyx);background:var(--gold)}button.text-link{padding: 0;border:0;background:transparent}
.footer-main-v2{grid-template-columns:.95fr 1.25fr .7fr;gap: 64px;align-items:start;padding-top: 78px}.footer-intro p{max-width:420px!important}.footer-social{display:inline-flex;align-items:center;gap: 10px;margin-top: 10px;color:var(--gold);font-size:.72rem;font-weight:700}.footer-social svg{width:19px;height:19px;fill:currentColor}.footer-newsletter h2{margin: 0 0 14px;color:var(--cream);font-size:clamp(1.7rem,2.6vw,2.5rem);line-height:1.2}.footer-newsletter>p:not(.eyebrow){margin-bottom: 20px;color:#cbbdc2;font-size:.78rem}.footer-newsletter-form label{display:block;margin-bottom: 8px;color:var(--cream);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.footer-newsletter-form>div{display:grid;grid-template-columns:1fr auto}.footer-newsletter-form .nb-turnstile{grid-column:1/-1;order:3;margin-top:10px}.footer-newsletter-form input{min-width:0;padding: 14px 16px;border:1px solid rgba(255,255,255,.16);background:var(--cream)}.footer-newsletter-form button{padding: 0 20px;border:0;background:var(--gold);font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.footer-newsletter-form small{display:block;margin-top: 8px;color:#93858a;font-size:.6rem}.footer-navigation{display:grid;grid-template-columns:1fr 1fr 1fr;gap: 28px}.footer-navigation div{display:flex;flex-direction:column;align-items:flex-start;gap: 10px}.footer-navigation span{margin-bottom: 6px;color:var(--gold);font-size:.58rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.footer-navigation a,.footer-navigation button{padding: 0;color:#d6c9cd;border:0;background:transparent;font-size:.75rem;text-align:left}.footer-navigation a:hover,.footer-navigation button:hover{color:var(--gold)}
.clara-launch{position:fixed;z-index:900;right:22px;bottom:22px;display:flex;align-items:center;gap: 12px;padding: 10px 16px 10px 10px;color:var(--cream);border:1px solid rgba(200,168,106,.5);background:var(--onyx);box-shadow:var(--shadow-float)}.clara-launch>span:last-child{display:flex;flex-direction:column;align-items:flex-start}.clara-launch b{font-size:.72rem}.clara-launch small{color:#cbbdc2;font-size:.58rem}.clara-orb{width:36px;height:36px;flex:0 0 36px;overflow:hidden;border-radius:50%;box-shadow:0 0 0 2px var(--gold)}.clara-orb img{width:100%;height:100%;display:block;object-fit:cover}.clara-dialog{width:min(calc(100% - 28px),570px);max-height:calc(100vh - 40px);padding: 0;border:0;background:var(--cream);box-shadow:var(--shadow-float-lg)}.clara-dialog::backdrop{background:rgba(22,12,17,.7)}.clara-dialog-head{padding: 18px 20px;display:flex;justify-content:space-between;align-items:center;color:var(--cream);background:var(--burgundy);border-bottom:3px solid var(--gold)}.clara-identity{display:flex;align-items:center;gap: 12px}.clara-identity small,.clara-identity strong{display:block}.clara-identity small{color:var(--gold-light);font-size:.55rem;letter-spacing:.12em;text-transform:uppercase}.clara-close{width:38px;height:38px;color:var(--cream);border:1px solid rgba(255,255,255,.3);background:transparent;font-size:1.4rem}.clara-dialog-body{padding: 34px;overflow:auto}.clara-dialog-body h2{margin-bottom: 12px;font-size:2.4rem}.clara-dialog-body>p:not(.eyebrow){color:var(--graphite);font-size:.82rem}.clara-options{display:grid;gap: 10px;margin-top: 24px}.clara-options button{padding: 14px 16px;border:1px solid var(--stone);background:var(--paper);text-align:left;font-size:.75rem;font-weight:600}.clara-options button:hover{border-color:var(--burgundy);background:var(--linen)}.clara-result{margin-top: 22px;padding: 24px;color:var(--cream);background:var(--onyx);border-top:3px solid var(--gold)}.clara-result span{color:var(--gold);font-size:.55rem;font-weight:800;text-transform:uppercase}.clara-result h3{margin: 8px 0;color:var(--cream);font-size:1.8rem}.clara-result p{color:#cbbdc2;font-size:.75rem}.clara-result a{display:inline-flex;padding: 12px 14px;color:var(--onyx);background:var(--gold);font-size:.6rem;font-weight:800;text-transform:uppercase}.clara-human{margin-top: 20px;padding-top: 16px;display:flex;justify-content:space-between;border-top:1px solid var(--stone);font-size:.68rem}.clara-human a{color:var(--burgundy);font-weight:700}.clara-inline{margin-top: 28px;padding: 26px 30px;display:flex;align-items:center;justify-content:space-between;gap: 26px;border:1px solid var(--gold);background:var(--paper)}.clara-inline>div{display:flex;align-items:center;gap: 18px}.clara-inline h3{margin: 0 0 4px;font-size:1.4rem}.clara-inline p{margin-bottom: 0;color:var(--graphite);font-size:.75rem}.clara-inline .eyebrow{margin-bottom: 6px}.clara-note{margin-top: 30px;padding: 22px;display:flex;gap: 16px;color:var(--cream);background:var(--burgundy);border-top:3px solid var(--gold)}.clara-note p{margin: 4px 0 10px;color:#e0d3d7;font-size:.7rem}.clara-note button{padding: 0;color:var(--gold);border:0;background:transparent;font-size:.62rem;font-weight:800;text-transform:uppercase}
.prose p{color:var(--graphite);font-size:.9rem;line-height:1.85}.prose p:first-of-type::first-letter{float:left;padding: 4px 8px 0 0;color:var(--burgundy);font-family:var(--font-display);font-size:3.8rem;font-weight:400;line-height:.72}.credential-list{border-top:1px solid var(--gold)}.credential-list article{padding: 24px 0;display:grid;grid-template-columns:72px 1fr;gap: 24px;border-bottom:1px solid var(--stone)}.credential-list article>span{color:var(--burgundy);font-size:.66rem;font-weight:800}.credential-list h3{margin-bottom: 8px;font-size:1.35rem}.credential-list p{margin-bottom: 0;color:var(--graphite);font-size:.75rem}
.service-ladder{display:grid;gap: 44px}.service-level-head{display:grid;grid-template-columns:60px 1.2fr .8fr;gap: 28px;align-items:end}.service-level-head>span{color:var(--gold-dark);font-size:1.8rem}.service-level-head h2{margin: 0;font-size:clamp(2.8rem,4.8vw,4.5rem)}.service-level-head>p{margin-bottom: 6px;color:var(--graphite);font-size:.8rem}.service-level-head.light h2{color:var(--cream)}.service-level-head.light>p{color:#cbbdc2}.service-level-head.light>span{color:var(--gold)}.service-mini-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--burgundy);border-bottom:1px solid var(--stone)}.service-mini-grid article{min-height:250px;padding: 34px;border-right:1px solid var(--stone)}.service-mini-grid article:last-child{border-right:0;background:var(--linen)}.service-mini-grid span,.foundation-grid span{color:var(--burgundy);font-size:.62rem;font-weight:800;text-transform:uppercase}.service-mini-grid h3{margin: 28px 0 12px;font-size:1.75rem}.service-mini-grid p,.foundation-grid p{color:var(--graphite);font-size:.75rem}.service-mini-grid a,.foundation-grid a{color:var(--burgundy);font-size:.62rem;font-weight:800;text-transform:uppercase}.service-card.compact{min-height:300px}.foundation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap: 12px}.foundation-grid article{min-height:320px;padding: 34px;display:flex;flex-direction:column;align-items:flex-start;background:var(--cream)}.foundation-grid article.featured{color:var(--cream);background:var(--burgundy);border-top: 3px solid var(--gold)}.foundation-grid article.featured span,.foundation-grid article.featured a{color:var(--gold)}.foundation-grid article.featured p{color:#e0d3d7}.foundation-grid h3{margin: 30px 0 14px;font-size:2rem}.foundation-grid a{margin-top: auto}
.service-detail-hero{padding: 92px 0 72px;color:var(--cream);background:var(--burgundy)}.service-detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap: 88px;align-items:end}.service-detail-grid h1{margin-bottom: 22px;color:var(--gold);font-size:clamp(4.5rem,8vw,7.5rem)}.service-detail-lede{max-width:760px;margin-bottom: 32px;color:#e0d3d7;font-size:1.08rem}.service-detail-summary{padding: 34px;color:var(--onyx);background:var(--cream);border-top: 5px solid var(--gold)}.service-detail-summary>span{color:var(--burgundy);font-size:.58rem;font-weight:800;text-transform:uppercase}.service-detail-summary>strong{display:block;margin: 8px 0 22px;font-size:2.8rem}.service-detail-summary dl>div{padding: 12px 0;display:grid;grid-template-columns:90px 1fr;gap: 16px;border-top:1px solid var(--stone)}.service-detail-summary dt{color:var(--burgundy);font-size:.58rem;font-weight:800;text-transform:uppercase}.service-detail-summary dd{margin: 0;color:var(--graphite);font-size:.72rem}.section-nav{position:sticky;z-index:100;top:var(--header-height);background:var(--onyx)}.section-nav .shell{display:flex;justify-content:center;gap: 32px;overflow-x:auto}.section-nav a{padding: 14px 0;color:#d8cbd0;white-space:nowrap;font-size:.58rem;font-weight:700;text-transform:uppercase}.service-editorial,.scope-split{display:grid;grid-template-columns:.75fr 1.25fr;gap: 86px}.service-editorial h2,.scope-split h2{font-size:clamp(3rem,5vw,4.7rem)}.question-grid{margin-top: 32px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--burgundy)}.question-grid span{padding: 18px 14px;border-right:1px solid var(--stone);border-bottom:1px solid var(--stone);font-size:.75rem}.question-grid span:nth-child(2n){border-right:0}.deliverable-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--burgundy)}.deliverable-grid article{min-height:235px;padding: 28px;border-right:1px solid var(--stone)}.deliverable-grid article:last-child{border-right:0}.deliverable-grid span{color:var(--burgundy);font-size:.6rem;font-weight:800}.deliverable-grid h3{margin: 30px 0 12px;font-size:1.5rem}.deliverable-grid p{color:var(--graphite);font-size:.72rem}.route-cards{margin: 0;padding: 0;display:grid;grid-template-columns:repeat(3,1fr);gap: 24px;list-style:none}.route-cards li{background:var(--paper);border:1px solid var(--stone);border-top:3px solid var(--gold);box-shadow:var(--shadow);transition: box-shadow .35s ease, transform .35s ease}.route-cards li:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.route-cards a{display:block;height:100%;padding: 30px 28px;color:inherit;text-decoration:none}.route-cards a:hover strong{color:var(--burgundy)}.route-cards strong{display:block;margin-bottom: 10px;color:var(--onyx);font-family:var(--font-display);font-size:1.25rem;font-weight:400;line-height:1.3;transition: color .2s ease}.route-cards span{display:block;color:var(--graphite);font-size:.75rem;line-height:1.6}.route-cards .route-cta{display:inline-block;margin-top: 14px;color:var(--burgundy);font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;transition: text-decoration-color .2s ease}.route-cards a:hover .route-cta{text-decoration:underline}.scope-columns{display:grid;grid-template-columns:1fr 1fr;gap: 18px}.scope-columns article{padding: 30px;color:var(--onyx);background:var(--cream)}.scope-columns article:last-child{background:var(--linen)}.scope-columns ul,.fit-comparison ul,.article-detail-body ul,.article-detail-body ol{padding-left: 20px}.scope-columns li,.fit-comparison li{margin-bottom: 10px;font-size:.75rem}.article-detail-body li{margin-bottom: 12px;font-size:.97rem;line-height:1.9}.step-grid{margin: 0;padding: 0;display:grid;grid-template-columns:repeat(3,1fr);list-style:none;border-top:1px solid var(--burgundy)}.step-grid li{min-height:230px;padding: 30px;border-right:1px solid var(--stone)}.step-grid li:last-child{border-right:0}.step-grid span{color:var(--burgundy);font-size:.6rem;font-weight:800}.step-grid h3{margin: 32px 0 12px;font-size:1.6rem}.step-grid p{color:var(--graphite);font-size:.75rem}.fit-comparison{display:grid;grid-template-columns:.7fr 1.3fr;gap: 78px}.fit-comparison h2{font-size:clamp(3rem,5vw,4.6rem)}.fit-comparison>div:last-child{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--burgundy)}.fit-comparison article{padding: 28px;border-right:1px solid var(--stone)}.fit-comparison article:last-child{border-right:0}.conversion-panel{padding: 68px 0}.conversion-panel>.shell{display:grid;grid-template-columns:1fr 260px;gap: 78px;align-items:center}.conversion-panel h2{margin-bottom: 14px;color:var(--cream);font-size:clamp(3rem,5vw,4.8rem)}.conversion-panel p{color:#e0d3d7}.conversion-price{padding-left: 32px;display:flex;flex-direction:column;border-left:1px solid rgba(255,255,255,.2)}.conversion-price>span{color:var(--gold);font-size:.58rem;font-weight:800;text-transform:uppercase}.conversion-price>strong{margin: 6px 0 18px;color:var(--cream);font-size:2.7rem}.conversion-price>button{margin-top: 12px;padding: 0;color:var(--gold);border:0;background:transparent;font-size:.6rem;font-weight:800;text-transform:uppercase}
.evidence-art{padding: 48px;box-shadow:var(--shadow)}.evidence-art span{color:var(--gold);font-size:.66rem;font-weight:800}.evidence-art b{position:absolute;left:48px;right:48px;bottom:48px;font-size:2rem;font-weight:400;line-height:1.3}.art-lingerie{color:var(--cream);background:linear-gradient(140deg,#5e1a2e,#29121c)}.art-jewellery{color:var(--onyx);background:#e8ddd0}.art-hospitality{color:var(--cream);background:linear-gradient(135deg,#152f2c,#274843)}.art-care{color:var(--onyx);background:linear-gradient(135deg,#f4efe7,#d9c9b8)}.art-jewellery span,.art-care span{color:var(--burgundy)}
.article-detail-hero{padding: 92px 0 66px;color:var(--cream);background:var(--burgundy)}.article-detail-hero .shell{max-width:1120px}.article-detail-hero h1{max-width:1040px;margin-bottom: 24px;font-size:clamp(4rem,7vw,6.5rem)}.article-detail-hero>.shell>p:not(.eyebrow){max-width:800px;color:#e0d3d7;font-size:1.15rem}.article-byline{margin-top: 32px;display:flex;flex-wrap:wrap;gap: 20px;color:#d1c2c7;font-size:.62rem;font-weight:700;text-transform:uppercase}.article-rule{height:4px;background:var(--gold)}.article-detail-layout{padding-top: 70px;padding-bottom: 100px;display:grid;grid-template-columns:235px minmax(0,720px);justify-content:center;gap: 78px}.article-toc{position:sticky;top:calc(var(--header-height) + 34px);align-self:start;border-top: 1px solid var(--gold)}.article-toc>span{display:block;padding: 18px 0 10px;color:var(--burgundy);font-size:.58rem;font-weight:800;text-transform:uppercase}.article-toc>a{display:block;padding: 10px 0;color:var(--graphite);border-bottom:1px solid var(--stone);font-size:.68rem}.article-side-cta{margin-top: 28px;padding: 20px;color:var(--cream);background:var(--onyx);border-top:3px solid var(--gold)}.article-side-cta p{margin: 8px 0 14px;color:#cbbdc2;font-size:.66rem}.article-side-cta a{color:var(--gold);font-size:.6rem;font-weight:800;text-transform:uppercase}.article-detail-body{color:var(--onyx-soft);font-size:.97rem;line-height:1.9}.article-detail-body .standfirst{color:var(--onyx);font-size:1.28rem}.article-detail-body .standfirst::first-letter{float:left;padding: 4px 10px 0 0;color:var(--burgundy);font-family:var(--font-display);font-size:4.2rem;font-weight:400;line-height:.72}.article-detail-body h2{margin: 50px 0 18px;color:var(--onyx);font-size:2.7rem}.article-detail-body blockquote{margin: 42px -34px;padding: 28px 32px;color:var(--burgundy);background:var(--linen);border-left:3px solid var(--gold);font-size:1.35rem}.article-conversion{margin: 40px 0;padding: 28px;color:var(--cream);background:var(--burgundy);border-top: 3px solid var(--gold)}.article-conversion span{color:var(--gold);font-size:.58rem;font-weight:800;text-transform:uppercase}.article-conversion h3{margin: 8px 0;color:var(--cream);font-size:1.8rem}.article-conversion p{color:#e0d3d7;font-size:.78rem}.article-conversion a{color:var(--gold);font-size:.6rem;font-weight:800;text-transform:uppercase}.article-pull{margin: 44px -34px;padding: 30px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);text-align:center}.article-pull strong{display:block;color:var(--burgundy);font-size:1.22rem}.article-end-cta{margin: 88px -78px 0;padding: 40px;color:var(--cream);background:var(--onyx);border-top:5px solid var(--gold)}.article-end-cta h2{margin: 0 0 12px;color:var(--cream)}.article-end-cta p{color:#cbbdc2}.related-reading{padding: 64px 0 12px}.related-reading .eyebrow{margin: 0 0 10px}.related-reading h2{margin: 0 0 34px;font-size:clamp(2rem,3.2vw,2.6rem)}.related-reading ul{margin: 0;padding: 0;display:grid;grid-template-columns:repeat(3,1fr);gap: 24px;list-style:none}.related-reading li{background:var(--paper);border:1px solid var(--stone);border-top:3px solid var(--gold);box-shadow:var(--shadow);transition: box-shadow .35s ease, transform .35s ease}.related-reading li:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.related-reading a{display:block;height:100%;padding: 30px 28px;color:inherit;text-decoration:none}.related-reading a:hover strong{color:var(--burgundy)}.related-reading strong{display:block;margin-bottom: 10px;color:var(--onyx);font-family:var(--font-display);font-size:1.25rem;font-weight:400;line-height:1.3;transition: color .2s ease}.related-reading span{display:block;color:var(--graphite);font-size:.75rem;line-height:1.6}
.page-login .site-header{position:relative}.login-page{min-height:760px;padding: 70px 20px 90px;background:radial-gradient(circle at 85% 12%,rgba(200,168,106,.18),transparent 28%),var(--linen)}.login-shell{width:min(100%,620px);margin: auto}.login-back{display:inline-block;margin-bottom: 18px;color:var(--burgundy);font-size:.68rem;font-weight:700}.login-card{overflow:hidden;background:var(--cream);border:1px solid var(--stone);box-shadow:var(--shadow-strong)}.login-brand{padding: 22px 28px;display:flex;align-items:center;gap: 14px;color:var(--cream);background:var(--burgundy);border-bottom:3px solid var(--gold)}.login-brand>span,.login-brand>img{width:42px;height:42px;display:grid;place-items:center;color:var(--onyx);background:var(--gold);border-radius:50%;font-size:.72rem;font-weight:800}.login-brand>img{background:transparent;object-fit:contain}.login-brand small,.login-brand strong{display:block}.login-brand small{color:var(--gold-light);font-size:.55rem;text-transform:uppercase}.login-copy{padding: 40px 42px 10px}.login-copy h1{margin-bottom: 14px;font-size:3.7rem}.login-copy>p:last-child{color:var(--graphite);font-size:.8rem}.login-form{padding: 22px 42px 38px}.password-field{position:relative}.password-field input{padding-right: 70px}.password-field button{position:absolute;top:1px;right:1px;bottom:1px;width:62px;color:var(--burgundy);border:0;background:var(--linen);font-size:.6rem;font-weight:800;text-transform:uppercase}.login-options{margin: -4px 0 22px;display:flex;justify-content:space-between;color:var(--graphite);font-size:.68rem}.login-options label{display:flex;align-items:center;gap: 8px}.login-options a{color:var(--burgundy);font-weight:700}.login-message{margin: 14px 0 0;padding: 12px;color:var(--burgundy);background:var(--linen);font-size:.68rem}.login-support{padding: 24px 42px;display:flex;gap: 16px;color:var(--cream);background:var(--onyx)}.login-support p{margin: 4px 0 10px;color:#cbbdc2;font-size:.66rem}.login-support button,.login-support a{margin-right: 16px;padding: 0;color:var(--gold);border:0;background:transparent;font-size:.6rem;font-weight:800;text-transform:uppercase}.login-disclaimer{margin: 16px auto 0;max-width:540px;color:var(--graphite);font-size:.6rem;text-align:center}
@media(max-width:1160px){.primary-nav{gap: 12px}.nav-link{font-size:.53rem}.footer-main-v2{grid-template-columns:1fr 1.3fr}.footer-navigation{grid-column:1/-1}}
@media(max-width:900px){.header-inner{grid-template-columns:1fr auto}.nav-mobile-cta{display:block;color:var(--gold)}.footer-main-v2,.service-detail-grid,.service-editorial,.scope-split,.fit-comparison,.conversion-panel>.shell,.service-level-head,.article-detail-layout{grid-template-columns:1fr}.article-detail-body{min-width:0}.footer-navigation{grid-column:auto}.service-level-head>span{display:none}.foundation-grid{grid-template-columns:1fr}.deliverable-grid{grid-template-columns:1fr 1fr}.related-reading ul,.route-cards{grid-template-columns:1fr}.article-toc{position:static}.article-side-cta{display:none}.clara-inline{align-items:flex-start;flex-direction:column}.home-generator-card{align-items:flex-start;flex-direction:column;padding: 32px 30px}}
@media(max-width:640px){.footer-newsletter-form>div,.service-mini-grid,.scope-columns,.fit-comparison>div:last-child,.question-grid,.step-grid{grid-template-columns:1fr}.footer-newsletter-form button{min-height:48px}.clara-launch{right:12px;bottom:12px}.clara-launch small{display:none}.clara-dialog-body{padding: 26px 20px}.service-detail-grid h1{font-size:4rem}.section-nav .shell{justify-content:flex-start}.deliverable-grid{grid-template-columns:1fr}.deliverable-grid article,.service-mini-grid article,.scope-columns article,.fit-comparison article,.step-grid li{border-right:0;border-bottom:1px solid var(--stone)}.article-detail-hero h1{font-size:3.35rem}.article-detail-body blockquote,.article-pull,.at-a-glance-panel{margin-left: 0;margin-right: 0}.at-a-glance-panel ul{grid-template-columns:1fr}.article-end-cta{margin-left: -14px;margin-right: -14px;padding: 28px 22px}.login-copy,.login-form,.login-support{padding-left: 24px;padding-right: 24px}.login-options{align-items:flex-start;flex-direction:column}.footer-navigation{grid-template-columns:1fr}}

/* Client hub ============================================================ */
/* client-hub.html is powered by members.js (byte-identical copy of the live
   Worker-connected script). Every id/class below that members.js reads or
   writes is required for that script to function; do not rename them.
   The hidden attribute must win over any explicit "display" set by the
   panel/card classes below, otherwise toggled views would stay visible. */
[hidden] { display: none !important; }

/* Loading state, shown first while the session is checked */
.hub-checking { min-height: calc(100vh - var(--header-height)); padding: 64px 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; background: var(--linen); }
.hub-spinner { width: 32px; height: 32px; border: 2px solid var(--stone); border-top-color: var(--burgundy); border-radius: 50%; animation: hub-spin .8s linear infinite; }
@keyframes hub-spin { to { transform: rotate(360deg); } }
.hub-checking-text { margin: 0; color: var(--graphite); font-size: .68rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
@media (prefers-reduced-motion: reduce) { .hub-spinner { animation-duration: 2.4s; } }

/* Sign in / reset / set-password re-use the existing .login-page system so
   the client-hub fallback sign-in matches client-login.html exactly. */
.login-options-line { margin: -4px 0 22px; text-align: center; font-size:.68rem; }
.login-options-line a { color: var(--burgundy); font-weight: 700; }
.login-options-line a:hover { color: var(--onyx); }

/* Generic show/hide password control, used on every password field in the hub */
.cl-pw-wrap { position: relative; }
.cl-pw-wrap .cl-input { padding-right: 48px; }
.cl-pw-eye { position: absolute; top: 0; right: 0; height: 100%; width: 44px; padding: 0; display: flex; align-items: center; justify-content: center; color: var(--graphite); border: 0; background: transparent; cursor: pointer; }
.cl-pw-eye:hover { color: var(--burgundy); }
.cl-pw-eye.on { color: var(--burgundy); }
.cl-pw-eye svg { width: 20px; height: 20px; }
.cl-input:focus { border-color: var(--burgundy); }
.cl-input[aria-invalid="true"] { border-color: var(--burgundy); }
.cl-pw-tools { margin: 4px 0 22px; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.cl-pw-suggest { padding: 10px 16px; color: var(--onyx); border: 1px solid var(--stone); background: transparent; font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.cl-pw-suggest:hover { color: var(--burgundy); border-color: var(--burgundy); }
.cl-pw-hint { color: var(--graphite); font-size: .68rem; }
.cl-btn--danger { color: var(--cream); background: #9b2c2c; border-color: #9b2c2c; }
.cl-btn--danger:hover { color: #9b2c2c; background: transparent; }

/* Status / feedback message written by members.js (className is set directly
   to "cl-pw-msg ok" or "cl-pw-msg err" — both modifiers must exist). */
.cl-pw-msg { margin: 14px 0 0; padding: 12px 14px; font-size: .72rem; line-height: 1.55; background: var(--linen); }
.cl-pw-msg.ok { color: var(--green); background: rgba(47, 113, 89, .1); }
.cl-pw-msg.err { color: var(--burgundy); background: rgba(94, 26, 46, .08); }

/* Dashboard shell */
.hub-dash { padding: 56px 0 100px; background: var(--cream); }
.hub-dash-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.hub-h1 { margin: 0; font-size: clamp(2rem, 3.4vw, 2.6rem); font-weight: 400; }
.hub-h1::after { content: ""; display: block; width: 44px; height: 1px; margin: 16px 0 2px; background: var(--gold); }
.hub-welcome { margin: 8px 0 0; color: var(--graphite); font-size: .85rem; font-weight: 300; }
.hub-signout { flex: 0 0 auto; padding: 10px 18px; color: var(--onyx); border: 1px solid var(--onyx); background: transparent; font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; transition: all .35s ease; }
.hub-signout:hover { color: var(--cream); background: var(--onyx); }
.hub-preview-tag { display: inline-block; margin: 20px 0 0; padding: 6px 14px; color: var(--graphite); border: 1px solid var(--stone); border-radius: 999px; background: var(--linen); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }

.hub-shell-grid { margin-top: 36px; display: grid; grid-template-columns: 250px 1fr; gap: 48px; align-items: start; }
.hub-office-main { min-width: 0; }

/* Office navigation sidebar */
.hub-office-nav { position: sticky; top: calc(var(--header-height) + 24px); }
.hub-office-label { margin: 0 0 14px; color: var(--burgundy); font-size: .6rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.hub-office-nav nav { display: flex; flex-direction: column; border-top: 1px solid var(--stone); }
.hub-office-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 4px; color: var(--onyx); border: 0; border-bottom: 1px solid var(--stone); background: transparent; font-size: .78rem; font-weight: 500; text-align: left; }
.hub-office-link span:last-child { color: var(--gold-deep); font-size: .62rem; }
.hub-office-link:hover, .hub-office-link.is-active { color: var(--burgundy); }
.hub-office-link.is-active span:last-child { color: var(--burgundy); }
.hub-office-link--danger { color: var(--graphite); }
.hub-office-link--danger:hover { color: #9b2c2c; }
.hub-office-link:disabled, .hub-office-link.is-disabled { opacity: .5; cursor: default; }
.hub-office-link:disabled:hover, .hub-office-link.is-disabled:hover { color: var(--onyx); }
.hub-office-support { margin-top: 26px; padding: 22px; color: var(--cream); background: var(--onyx); border-top: 3px solid var(--gold); }
.hub-office-support strong { display: block; margin-bottom: 6px; font-size: 1rem; font-weight: 400; }
.hub-office-support span { display: block; margin-bottom: 14px; color: #cbbdc2; font-size: .7rem; line-height: 1.6; }
.hub-office-support button { padding: 0; color: var(--gold); border: 0; background: transparent; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }

/* Cards */
.hub-card { margin-bottom: 26px; padding: 32px 34px; background: var(--paper); border: 1px solid var(--stone); border-top: 3px solid var(--gold); box-shadow: var(--shadow); }
.hub-card:last-child { margin-bottom: 0; }
.hub-card--danger { border-top-color: var(--graphite); }
.hub-card-title { margin: 0 0 22px; color: var(--burgundy); font-size: .82rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.hub-help p, .hub-intro-text, .hub-none-text, .hub-history-intro { margin: 0; color: var(--graphite); font-size: .85rem; font-weight: 300; line-height: 1.75; }
.hub-intro-text + .hub-intro-text { margin-top: 14px; }
.hub-note-inline { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--linen); color: var(--graphite); font-size: .7rem; }
.hub-note-inline a, .hub-help a, .hub-none-text a, .hub-intro-text a { color: var(--burgundy); border-bottom: 1px solid rgba(94, 26, 46, .4); }
.hub-inline-link { padding: 0; color: var(--burgundy); border: 0; border-bottom: 1px solid rgba(94, 26, 46, .4); background: transparent; font: inherit; cursor: pointer; }
.hub-back-btn { display: inline-block; margin: 0 0 16px; padding: 6px 0; color: var(--burgundy); border: 0; background: transparent; font-size: .64rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.hub-back-btn:hover { color: var(--onyx); }

/* Details lists: client details + project details (built by members.js) */
.cl-dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 40px; }
.cl-dl > div { display: flex; flex-direction: column; gap: 6px; }
.cl-dl dt { color: var(--graphite); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.cl-dl dd { margin: 0; color: var(--onyx); font-size: .9rem; }
.cl-status { display: inline-block; padding: 4px 12px; color: var(--burgundy); background: rgba(94, 26, 46, .08); border-radius: 999px; font-size: .66rem; font-weight: 700; letter-spacing: .04em; }

/* Order tracker (stage list built by members.js) */
.cl-track { margin: 6px 0 0; padding: 0; list-style: none; display: flex; }
.cl-step { position: relative; flex: 1; padding-top: 28px; text-align: center; }
.cl-step .cl-dot { position: absolute; z-index: 1; top: 0; left: 50%; width: 14px; height: 14px; transform: translateX(-50%); border-radius: 50%; background: var(--stone); }
.cl-step::before { content: ""; position: absolute; top: 6px; right: 50%; width: 100%; height: 2px; background: var(--stone); }
.cl-step:first-child::before { display: none; }
.cl-step.is-done .cl-dot { background: var(--burgundy); }
.cl-step.is-done::before { background: var(--burgundy); }
.cl-step.is-active .cl-dot { background: var(--gold); box-shadow: 0 0 0 5px rgba(200, 168, 106, .22); }
.cl-step.is-active::before { background: linear-gradient(270deg, var(--gold), var(--burgundy)); }
.cl-step-label { display: block; padding: 0 6px; color: var(--graphite); font-size: .68rem; font-weight: 600; }
.cl-step.is-active .cl-step-label { color: var(--burgundy); }
.cl-step.is-done .cl-step-label { color: var(--onyx); }

/* Deliverables list (built by members.js) */
.cl-deliver { margin: 0; padding: 0; list-style: none; }
.cl-deliver li { position: relative; padding: 12px 0 12px 28px; border-bottom: 1px solid var(--linen); color: var(--onyx); font-size: .85rem; font-weight: 300; }
.cl-deliver li:last-child { border-bottom: 0; }
.cl-deliver li::before { content: ""; position: absolute; left: 0; top: 15px; width: 11px; height: 11px; border-radius: 50%; border: 1px solid var(--stone); }
.cl-deliver li.is-done::before { background: var(--burgundy); border-color: var(--burgundy); }
.cl-deliver li.is-progress::before { background: var(--gold); border-color: var(--gold); }
.cl-deliver .cl-tag { margin-left: 10px; color: var(--graphite); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; }
.cl-deliver li.is-progress .cl-tag { color: var(--burgundy); }

/* Project updates list (built by members.js) */
.cl-updates { margin: 0; padding: 0; list-style: none; }
.cl-updates li { padding: 12px 0; border-bottom: 1px solid var(--linen); color: var(--onyx); font-size: .82rem; font-weight: 300; line-height: 1.6; }
.cl-updates li:last-child { border-bottom: 0; }
.cl-up-date { display: block; margin-bottom: 6px; color: var(--graphite); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }

/* Previous projects list (built by members.js) */
.cl-history { margin: 0; padding: 0; list-style: none; }
.cl-history li { border-bottom: 1px solid var(--linen); }
.cl-history li:last-child { border-bottom: 0; }
.cl-hist-item { position: relative; display: block; width: 100%; padding: 16px 30px 16px 0; color: var(--onyx); border: 0; background: transparent; text-align: left; font: inherit; cursor: pointer; transition: padding-left .2s ease; }
.cl-hist-item:hover { padding-left: 6px; }
.cl-hist-item:hover .cl-hist-eng { color: var(--burgundy); }
.cl-hist-eng { display: block; font-family: var(--font-display); color: var(--onyx); font-size: .95rem; font-weight: 400; }
.cl-hist-meta { display: block; margin-top: 4px; color: var(--graphite); font-size: .7rem; }
.cl-hist-ref { color: var(--graphite); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.cl-hist-go { position: absolute; top: 50%; right: 2px; transform: translateY(-50%); color: var(--gold); font-size: 1rem; }

@media (max-width: 900px) {
  .hub-shell-grid { grid-template-columns: 1fr; gap: 30px; }
  .hub-office-nav { position: static; }
  .hub-office-nav nav { flex-direction: row; flex-wrap: wrap; border-top: 0; }
  .hub-office-link { flex: 1 1 auto; border: 1px solid var(--stone); }
}
@media (max-width: 640px) {
  .hub-dash-head { flex-direction: column; }
  .hub-signout { align-self: flex-start; }
  .cl-dl { grid-template-columns: 1fr; gap: 16px; }
  .hub-card { padding: 26px 22px; }
  .cl-track { flex-direction: column; }
  .cl-step { padding: 0 0 24px 30px; text-align: left; }
  .cl-step .cl-dot { top: 2px; left: 0; transform: none; }
  .cl-step::before { top: 2px; left: 7px; right: auto; width: 2px; height: 100%; }
  .cl-step:last-child::before { display: none; }
  .cl-step-label { padding: 0; }
}

/* === Tool hero (Positioning Generator / Workbook / Checkout intro band) === */
.tool-hero{padding: 88px 0 60px;color:var(--cream);background:var(--burgundy);border-bottom:1px solid rgba(200,168,106,.42)}
.tool-hero .shell{max-width:860px}
.tool-hero h1{margin-bottom: 20px;font-size:clamp(2.7rem,5vw,3.9rem)}
.tool-intro{max-width:780px;margin: 0;color:#e0d3d7;font-size:1rem;line-height:1.85}

/* === Positioning Statement Generator === */
.gen-section{padding: 64px 0 100px}
.gen-wrap{width:min(calc(100% - 56px),820px);margin: 0 auto}

.gen-input-card{padding: 40px;background:var(--paper);border:1px solid var(--stone);border-top:3px solid var(--gold);box-shadow:var(--shadow)}
@media(max-width:640px){.gen-input-card{padding: 30px 22px}}

.gen-progress{margin-bottom: 30px}
.gen-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom: 10px}
.gen-progress-label{color:var(--burgundy);font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.gen-progress-count{color:var(--graphite);font-size:.75rem}
.gen-progress-track{height:5px;border-radius:999px;background:var(--stone);overflow:visible}
.gen-progress-fill{position:relative;height:100%;width:0;border-radius:999px;background:var(--burgundy);transition: width .35s ease}
.gen-progress-fill::after{content:"";position:absolute;top:50%;right:0;width:9px;height:9px;border-radius:50%;background:var(--gold);border:2px solid var(--cream);transform:translate(50%,-50%);box-shadow:0 0 0 1px var(--burgundy)}

.gen-legend{display:flex;flex-wrap:wrap;gap: 10px 24px;margin-bottom: 32px;color:var(--graphite);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.gen-legend-item{display:inline-flex;align-items:center;gap: 8px}
.gen-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot-aud{background:var(--burgundy)}
.dot-offer{background:var(--rose)}
.dot-diff{background:var(--graphite)}

.gen-grid{display:grid;grid-template-columns:1fr;gap: 2px 28px}
@media(min-width:640px){.gen-grid{grid-template-columns:1fr 1fr}.gen-grid .form-field.full{grid-column:1 / -1}}
.field-hint{display:block;margin-top: 8px;color:var(--graphite);font-size:.68rem;font-weight:400;letter-spacing:normal;text-transform:none;line-height:1.55}

.gen-output{margin-top: 54px;padding: 40px;position:relative;z-index:0;overflow:hidden;background:var(--paper);border:1px solid var(--stone);border-top:3px solid var(--gold);box-shadow:var(--shadow)}
.gen-output::before{content:"\201C";position:absolute;top:14px;left:22px;z-index:-1;color:var(--gold);opacity:.22;font-family:var(--font-display);font-size:9rem;line-height:1;font-weight:400;pointer-events:none}
.gen-out-label{margin: 0 0 20px;color:var(--burgundy);font-size:.62rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.gen-variants{display:flex;flex-wrap:wrap;gap: 8px;margin-bottom: 22px}
.gen-variant{padding: 8px 18px;color:var(--graphite);border:1px solid var(--stone);background:transparent;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;transition: all .35s ease}
.gen-variant:hover{color:var(--burgundy);border-color:var(--burgundy)}
.gen-variant.is-active{color:var(--cream);background:var(--burgundy);border-color:var(--burgundy)}
.gen-statement{margin: 0;color:var(--onyx);font-family:var(--font-display);font-size:1.3rem;font-weight:300;line-height:1.7}
.gen-statement .p-aud{color:var(--burgundy);font-weight:600}
.gen-statement .p-offer{color:var(--rose);font-weight:700}
.gen-statement .p-diff{color:var(--graphite);font-weight:600}
.gen-statement .p-brand{color:var(--onyx);font-weight:700}
.gen-statement .p-ph{color:var(--graphite);font-weight:400}

.gen-strength{margin-top: 26px;padding: 22px 24px;background:var(--linen);border-left:3px solid var(--gold)}
.gen-strength-label{margin: 0 0 12px;color:var(--burgundy);font-size:.6rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.gen-tip{position:relative;margin: 0 0 10px;padding-left: 20px;color:var(--onyx);font-size:.78rem;line-height:1.65}
.gen-tip:last-child{margin-bottom: 0}
.gen-tip.warn::before{content:"→";position:absolute;left:0;color:var(--rose);font-weight:700}
.gen-tip.ok::before{content:"✓";position:absolute;left:0;color:var(--burgundy);font-weight:700}
.gen-tip.more{margin-top: 14px;padding-left: 20px;color:var(--graphite)}
.gen-tip.more::before{content:"★";position:absolute;left:0;color:var(--gold)}
.gen-tip a{color:var(--burgundy);border-bottom:1px solid var(--stone)}
.gen-tip a:hover{border-color:var(--burgundy)}

.gen-formula{margin-top: 26px;padding-top: 26px;border-top:1px solid var(--stone)}
.gen-formula-label{margin: 0 0 12px;color:var(--burgundy);font-size:.6rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.gen-formula p{margin: 0;color:var(--onyx);font-size:.82rem;line-height:1.75;font-weight:300}
.gen-slot{color:var(--burgundy);font-weight:600}
.gen-formula-help{margin-top: 12px !important;color:var(--graphite) !important}

.gen-actions{display:flex;flex-wrap:wrap;align-items:center;gap: 14px;margin-top: 28px}
.gen-copy{padding: 12px 20px;color:var(--onyx);border:1px solid var(--onyx);background:transparent;font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition: all .35s ease}
.gen-copy:hover{color:var(--cream);background:var(--onyx)}
.gen-cta-review{display:inline-flex;align-items:center;padding: 12px 20px;color:var(--cream);background:var(--burgundy);border:1px solid var(--burgundy);font-family:var(--font-display);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition: all .35s ease}
.gen-cta-review:hover{color:var(--burgundy);background:transparent}

.gen-followup{margin-top: 24px;padding-top: 24px;border-top:1px solid var(--stone);color:var(--graphite);font-size:.82rem;line-height:1.7}
.gen-followup a{color:var(--burgundy);border-bottom:1px solid var(--stone)}
.gen-followup a:hover{border-color:var(--burgundy)}
.gen-note{margin-top: 26px;color:var(--graphite);font-size:.72rem;line-height:1.65}
.gen-note a{color:var(--burgundy);border-bottom:1px solid var(--stone)}

@media print{
  .site-header,.site-footer,.clara-launch,.skip-link,.section-nav,.tool-hero,.gen-progress,.gen-legend,.gen-grid,.gen-note,.gen-variants,.gen-strength,.gen-actions,.gen-formula,.gen-faq-section,.conversion-panel{display:none !important}
  .gen-section{padding: 24px 0 0}
  .gen-output{border:0;box-shadow:none;padding: 0}
  .gen-statement{font-size:1.3rem}
  body{background:#fff}
}

/* === Checkout === */
.checkout-trust{display:flex;flex-wrap:wrap;gap: 12px 26px;margin-top: 28px}
.checkout-trust span{color:#e0d3d7;font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.checkout-trust strong{color:var(--gold);font-weight:800}
.checkout-catalogue{padding: 88px 0 20px}
.checkout-section-head{max-width:760px;margin: 0 auto 48px;text-align:center}
.checkout-section-head h2{margin: 6px 0 14px;font-size:clamp(2.6rem,4.7vw,3.8rem)}
.checkout-section-head p{margin: 0;color:var(--graphite);font-size:.9rem;line-height:1.75}
.checkout-grid{display:grid;grid-template-columns:1fr 1fr;gap: 2px;background:var(--stone)}
.checkout-card{display:flex;flex-direction:column;padding: 38px;background:var(--cream);border-top:3px solid var(--gold);transition: box-shadow .35s ease}
.checkout-card.checkout-highlight{outline:2px solid var(--gold);outline-offset:-2px;box-shadow:var(--shadow-strong)}
.checkout-price-tag{margin: 0 0 14px;color:var(--burgundy);font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.checkout-card h3{margin-bottom: 14px;font-size:1.7rem}
.checkout-card h3 a{color:var(--onyx)}
.checkout-card h3 a:hover{color:var(--burgundy)}
.checkout-card > p:not(.checkout-price-tag):not(.checkout-note){flex:1 0 auto;margin-bottom: 26px;color:var(--graphite);font-size:.82rem;line-height:1.75}
.checkout-btn{align-self:flex-start}
.checkout-note{margin: 14px 0 0;color:var(--graphite);font-size:.68rem;line-height:1.6;min-height:1em}
.checkout-process{padding: 96px 0}
.checkout-process-intro{max-width:640px;margin: 0 auto 48px;text-align:center}
.checkout-process-intro h2{margin: 6px 0 0;font-size:clamp(2.4rem,4.3vw,3.4rem)}
.checkout-decision-card{padding: 30px;color:var(--cream);background:var(--onyx);border-top: 3px solid var(--gold);box-shadow:var(--shadow)}
.checkout-decision-card strong{display:block;margin-bottom: 14px;font-family:var(--font-display);font-size:1.4rem;font-weight:400}
.checkout-decision-card p{margin: 0 0 16px;color:#cbbdc2;font-size:.82rem;line-height:1.7}
.checkout-decision-card ul{margin: 0 0 18px;padding-left: 18px;color:#cbbdc2;font-size:.78rem;line-height:1.85}
.checkout-decision-card a{color:var(--gold);font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:900px){.checkout-grid{grid-template-columns:1fr}}

/* === Legal prose pages (privacy, terms, cookies, accessibility) === */
.legal-prose{max-width:800px;margin: 0 auto}
.legal-prose .legal-updated{display:block;margin: -6px 0 40px;color:var(--graphite);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.legal-prose>p{margin-bottom: 22px;color:var(--graphite);font-size:.92rem;line-height:1.9}
.legal-prose h2{margin: 52px 0 18px;padding-top: 36px;border-top:1px solid var(--stone);font-size:1.85rem}
.legal-prose h2:first-of-type{margin-top: 0;padding-top: 0;border-top:0}
.legal-prose ul{margin: 0 0 22px;padding-left: 22px}
.legal-prose li{margin-bottom: 10px;color:var(--graphite);font-size:.92rem;line-height:1.75}
.legal-prose a{color:var(--burgundy);text-decoration:underline;text-underline-offset:3px}
.legal-prose a:hover{color:var(--burgundy-deep)}
@media(max-width:640px){.legal-prose h2{font-size:1.55rem}}

/* === 404 page === */
.notfound-panel{padding: 100px 0 130px}
@media(max-width:640px){.notfound-panel{padding: 70px 0 90px}}

/* === Premium polish: scroll progress, scroll-reveal, card motion, decorative accents (29 Jul 2026) === */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:var(--gold);z-index:2000;pointer-events:none;transition: width .12s linear}

@media (prefers-reduced-motion: reduce){
  .reveal-init{opacity:1!important;transform:none!important}
}
.reveal-init{opacity:0;transform:translateY(22px);transition: opacity .7s cubic-bezier(.16, .8, .24, 1), transform .7s cubic-bezier(.16, .8, .24, 1)}
.reveal-init.is-revealed{opacity:1;transform:translateY(0)}

/* Card grids: gold top-line reveal + link arrow slide on hover */
.route-grid article,.insight-row article,.article-grid article,.insights-grid article,.expectation-grid article,.principle-grid article{position:relative;transition: box-shadow .35s ease}
.route-grid article::before,.insight-row article::before,.article-grid article::before,.insights-grid article::before,.expectation-grid article::before,.principle-grid article::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition: transform .4s cubic-bezier(.16, .8, .24, 1);pointer-events:none}
.route-grid article:hover::before,.insight-row article:hover::before,.article-grid article:hover::before,.insights-grid article:hover::before,.expectation-grid article:hover::before,.principle-grid article:hover::before{transform:scaleX(1)}
.route-grid article:hover,.insight-row article:hover,.article-grid article:hover,.insights-grid article:hover,.expectation-grid article:hover,.principle-grid article:hover{box-shadow:var(--shadow-soft)}
.route-grid a,.insight-row a,.article-grid a,.insights-grid a{display:inline-flex;align-items:center;gap: 0;transition: gap .2s ease, color .2s ease}
.route-grid a::after,.insight-row a::after,.article-grid a::after,.insights-grid a::after{content:"\2192";display:inline-block;opacity:0;transform:translateX(-4px);transition: opacity .35s ease, transform .35s ease}
.route-grid article:hover a::after,.insight-row article:hover a::after,.article-grid article:hover a::after,.insights-grid article:hover a::after{opacity:1;transform:translateX(2px)}
.route-grid article:hover a,.insight-row article:hover a,.article-grid article:hover a,.insights-grid article:hover a{gap: 8px;color:var(--burgundy-deep)}

/* Standalone cards: lift + deepen shadow */
.service-card,.checkout-card,.hub-card,.portfolio-project{transition: box-shadow .35s ease, transform .35s ease}
.service-card:hover,.checkout-card:hover,.hub-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}
.portfolio-project:hover .project-art{box-shadow:var(--shadow-soft)}
.project-art{transition: box-shadow .35s ease, transform .35s ease}

/* Buttons: deeper lift + shadow, on top of the existing translateY */
.button-gold:hover,.button-burgundy:hover{box-shadow:var(--shadow-soft)}
.button-outline:hover,.button-ghost:hover{box-shadow:var(--shadow-soft)}

/* Decorative drop cap for long-form editorial copy (articles, About) */
.drop-cap::first-letter{float:left;padding: 6px 10px 0 0;color:var(--burgundy);font-family:var(--font-display);font-size:4.6rem;font-weight:400;line-height:.78}

/* Decorative "at a glance" summary panel (elevated card, numbered concept rows) */
.at-a-glance-panel{position:relative;margin: 40px -34px 46px;overflow:hidden;background:var(--onyx);border-top: 3px solid var(--gold);box-shadow:var(--shadow-strong)}
.at-a-glance-panel::before{content:"";position:absolute;z-index:0;width:280px;height:280px;top:-150px;right:-100px;border:1px solid rgba(200,168,106,.16);border-radius:50%}
.at-a-glance-panel::after{content:"";position:absolute;z-index:0;width:180px;height:180px;bottom:-110px;left:-70px;border:1px solid rgba(200,168,106,.1);border-radius:50%}
.at-a-glance-panel h2{position:relative;z-index:1;margin: 0;padding: 30px 36px 16px;color:var(--gold);font-family:var(--font-body);font-size:.7rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;border:0}
.at-a-glance-panel ul{position:relative;z-index:1;margin: 0;padding: 4px 20px 26px;display:grid;grid-template-columns:1fr 1fr;gap: 2px;list-style:none}
.at-a-glance-panel li{padding: 16px;display:flex;gap: 16px;align-items:flex-start;transition: background .2s ease}
.at-a-glance-panel li:hover{background:rgba(200,168,106,.1)}
.at-a-glance-panel li>span{position:relative;z-index:1;flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;background:var(--cream);border-radius:50%;box-shadow:var(--ring-gold)}
.at-a-glance-panel li>span img{width:22px;height:22px;display:block}
.at-a-glance-panel li>p{position:relative;z-index:1;margin: 2px 0 0;color:#d6c9cd;font-size:.82rem;line-height:1.6}
.home-generator-card{position:relative;overflow:hidden;max-width:920px;margin: 0 auto;padding: 42px 46px;display:flex;align-items:center;justify-content:space-between;gap: 44px;background:var(--paper);border:1px solid var(--stone);border-top:3px solid var(--gold);box-shadow:var(--shadow)}
.home-generator-card::before{content:"";position:absolute;z-index:0;width:240px;height:240px;top:-140px;right:-90px;border:1px solid rgba(200,168,106,.18);border-radius:50%}
.home-generator-card::after{content:"";position:absolute;z-index:0;width:150px;height:150px;bottom:-100px;left:80px;border:1px solid rgba(94,26,46,.08);border-radius:50%}
.home-generator-body{position:relative;z-index:1;display:flex;align-items:flex-start;gap: 22px}
.home-generator-icon{flex:0 0 52px;width:52px;height:52px;margin-top: 4px;display:grid;place-items:center;background:var(--cream);border-radius:50%;box-shadow:var(--ring-gold)}
.home-generator-icon img{width:26px;height:26px;display:block}
.home-generator-text{max-width:600px}
.home-generator-card h2{margin: 8px 0 12px;font-size:clamp(1.9rem,2.8vw,2.4rem)}
.home-generator-card p{margin: 0;color:var(--graphite);font-size:.85rem;line-height:1.7}
.home-generator-card>a{position:relative;z-index:1;flex:0 0 auto;white-space:nowrap}

/* Consistent editorial table system for in-article comparison tables (shares the
   panel's row-hover language above so the two components read as one family) */
.table-wrap{margin: 38px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--stone);box-shadow:var(--shadow)}
.table-wrap table{width:100%;min-width:520px;border-collapse:collapse}
.table-wrap thead{background:var(--burgundy)}
.table-wrap th{padding: 16px 22px;color:var(--cream);font-family:var(--font-body);font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-align:left;border-bottom:3px solid var(--gold)}
.table-wrap td{padding: 18px 22px;color:var(--onyx-soft);font-size:.85rem;line-height:1.6;vertical-align:top;border-bottom:1px solid var(--stone)}
.table-wrap tbody tr:nth-child(even) td{background:var(--linen)}
.table-wrap tbody tr:hover td{background:rgba(200,168,106,.14)}
.table-wrap tbody tr:last-child td{border-bottom:0}
.table-wrap th[scope="row"]{color:var(--burgundy);background:var(--cream);font-size:.7rem;font-weight:800;letter-spacing:.02em;text-transform:none;white-space:nowrap;border-right:1px solid var(--stone);border-bottom:1px solid var(--stone)}
.table-wrap tbody tr:last-child th[scope="row"]{border-bottom:0}
@media(max-width:640px){.table-wrap th,.table-wrap td{padding: 14px 16px;font-size:.8rem}}

/* ============================================================================
   OFFICE AREAS — client office (/client-login) and private office (/api/admin)
   Brings both signed-in areas up to the public site's editorial language:
   a burgundy hero band with the ring/grid/monogram motifs used on the home and
   service heroes, gold-hairlined card heads with brand icon badges, and the
   site's own definition-list treatment. Navigation is deliberately untouched.
   ============================================================================ */
.office-hero { position: relative; overflow: hidden; padding: 74px 0 66px; color: var(--cream); background: var(--burgundy); }
.office-hero::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px); background-size: 62px 62px; }
.office-hero::after { content: ""; position: absolute; width: 380px; height: 380px; right: -170px; bottom: -195px; border: 1px solid rgba(200,168,106,.24); border-radius: 50%; box-shadow: 0 0 0 44px rgba(200,168,106,.035), 0 0 0 88px rgba(200,168,106,.025); }
.office-monogram { position: absolute; z-index: 1; top: 44px; right: -18px; color: rgba(255,255,255,.045); font-family: var(--font-display); font-size: 13rem; line-height: 1; letter-spacing: -.09em; pointer-events: none; }
.office-hero-inner { position: relative; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 34px; }
.office-hero-copy { max-width: 720px; }
.office-hero .eyebrow { color: var(--gold); }
.office-hero .hub-h1 { color: var(--gold); font-size: clamp(2.9rem, 5vw, 4.3rem); letter-spacing: -.05em; }
.office-hero .hub-h1::after { background: rgba(200,168,106,.55); }
.office-hero .hub-welcome { max-width: 640px; color: #dfd1d5; font-size: .95rem; line-height:1.75; }
.office-hero .hub-signout { flex: 0 0 auto; color: var(--gold); border-color: rgba(200,168,106,.6); }
.office-hero .hub-signout:hover { color: var(--onyx); background: var(--gold); border-color: var(--gold); }

/* The hero band supplies the top spacing the old page head used to. */
.hub-dash { padding: 0 0 100px; }
.hub-dash .hub-preview-tag { margin: 28px 0 0; }
.hub-shell-grid { margin-top: 44px; }

/* Card heads: gold-ringed icon badge + hairline rule, matching the site's
   .at-a-glance-panel / .longform-article badge treatment. */
.hub-card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--linen); }
.hub-card-head .hub-card-title { margin: 0; }
.hub-card-icon { flex: 0 0 auto; width: 36px; height: 36px; display: grid; place-items: center; background: var(--cream); border-radius: 50%; box-shadow: var(--ring-gold); }
.hub-card-icon img { width: 19px; height: 19px; }
.hub-card--danger .hub-card-icon { box-shadow: var(--ring-graphite); }

/* Definition lists read like the site's .service-detail-summary dl. */
.cl-dl { gap: 0 44px; }
.cl-dl > div { padding: 16px 0; gap: 6px; border-top: 1px solid var(--stone); }
.cl-dl dt { color: var(--burgundy); }
.cl-dl dd { font-size: .95rem; }

@media (max-width: 900px) {
  .office-hero { padding: 56px 0 50px; }
  .office-hero-inner { align-items: flex-start; flex-direction: column; gap: 24px; }
  .office-monogram { display: none; }
}

/* ======================================================================
   Concept 4 conversion and robustness refinements — 29 July 2026
   ====================================================================== */

/* Homepage: the free tool is presented as the first strategic decision,
   not as a generic promotional card. */
.home-generator-card--strategic{
  max-width:1120px;
  display:grid;
  grid-template-columns:92px minmax(0,1fr) 300px;
  align-items:stretch;
  gap:0;
  padding:0;
  border-top:0;
  overflow:hidden;
}
.home-generator-card--strategic::before{top:-110px;right:180px}
.home-generator-card--strategic::after{left:32%;bottom:-115px}
.home-generator-marker{
  position:relative;z-index:1;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:34px 22px;
  color:var(--cream);background:var(--burgundy);
  border-top:3px solid var(--gold);
}
.home-generator-marker span{font-family:var(--font-display);font-size:2.1rem;font-weight:400}
.home-generator-marker small{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.58rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
.home-generator-card--strategic .home-generator-body{padding:42px 42px 38px;display:block}
.home-generator-card--strategic .home-generator-text{max-width:none}
.home-generator-card--strategic h2{max-width:680px;margin-top:9px}
.home-generator-structure{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:28px;border:1px solid var(--stone);background:var(--stone)}
.home-generator-structure span{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--cream);color:var(--graphite);font-size:.65rem;line-height:1.4}
.home-generator-structure b{color:var(--burgundy);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}
.home-generator-actions{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:13px;padding:34px 30px;background:var(--linen);border-left:1px solid var(--stone)}
.home-generator-actions .button{justify-content:center;text-align:center;white-space:normal;line-height:1.45}
.home-generator-actions>span{color:var(--graphite);font-size:.62rem;line-height:1.5;text-align:center}
.home-generator-review{color:var(--burgundy);font-size:.68rem;line-height:1.55;text-align:center;text-decoration:underline;text-decoration-color:var(--stone);text-underline-offset:4px}
.home-generator-review:hover{text-decoration-color:var(--burgundy)}

/* Generator hero and strategic workspace */
.tool-hero .shell{max-width:1180px}
.tool-hero-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:76px;align-items:end}
.tool-hero-grid h1{max-width:780px}
.tool-structure{display:grid;border-top:1px solid rgba(200,168,106,.65);border-bottom:1px solid rgba(200,168,106,.35)}
.tool-structure span{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:16px 2px;border-bottom:1px solid rgba(200,168,106,.24)}
.tool-structure span:last-child{border-bottom:0}
.tool-structure b{color:var(--gold);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase}
.tool-structure small{color:#e1d5d8;font-size:.72rem}
.gen-wrap{width:min(calc(100% - 56px),1180px)}
.gen-workspace{display:grid;grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);gap:28px;align-items:start}
.gen-input-card{padding:34px 36px 38px}
.gen-result-board{position:sticky;top:104px;margin-top:0;min-width:0}
.gen-save-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-10px 0 28px;padding-bottom:20px;border-bottom:1px solid var(--stone)}
.gen-save-status{margin:0;color:var(--graphite);font-size:.67rem;line-height:1.5}
.gen-reset{flex:0 0 auto;padding:8px 0;border:0;border-bottom:1px solid var(--stone);background:transparent;color:var(--burgundy);font-family:var(--font-body);font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.gen-reset:hover{border-color:var(--burgundy)}
.gen-step{padding:0 0 34px;margin:0 0 34px;border-bottom:1px solid var(--stone)}
.gen-step:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.gen-step-head{display:grid;grid-template-columns:42px 1fr;gap:16px;margin-bottom:22px;align-items:start}
.gen-step-head>span{color:var(--gold-dark);font-family:var(--font-display);font-size:1.25rem;line-height:1.2}
.gen-step-head h2{margin:0 0 6px;color:var(--onyx);font-size:1.35rem}
.gen-step-head p{margin:0;color:var(--graphite);font-size:.7rem;line-height:1.65}
.gen-step-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px}
.gen-step-grid .form-field.full{grid-column:1/-1}
.gen-step:nth-child(2) .gen-step-grid{grid-template-columns:1fr}
.gen-step-nav{display:none}
.gen-secondary-routes{display:grid;gap:9px;margin-top:25px;padding-top:22px;border-top:1px solid var(--stone)}
.gen-secondary-routes p{margin:0 0 3px;color:var(--graphite);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase}
.gen-secondary-routes a{width:fit-content;color:var(--burgundy);font-size:.72rem;line-height:1.5;border-bottom:1px solid var(--stone)}
.gen-secondary-routes a:hover{border-color:var(--burgundy)}
.gen-action-status{min-height:1.2em;margin:11px 0 0;color:var(--burgundy);font-size:.67rem}
.gen-cta-review{line-height:1.45;text-align:center}
.service-card--without-number{grid-template-columns:minmax(0,1fr) 250px}
.optional-label{color:var(--graphite);font-weight:400}
.form-context-note{display:grid;gap:4px;margin:0 0 22px;padding:16px 18px;border-left:3px solid var(--gold);background:var(--linen);color:var(--graphite);font-size:.72rem;line-height:1.55}
.form-context-note strong{color:var(--burgundy)}
.form-context-note[hidden]{display:none}

/* Comfortable targets without changing the visible editorial scale. */
.gen-variant,.gen-copy,.gen-cta-review,.gen-reset,.home-generator-review,.route-cta,.text-link{min-height:44px;display:inline-flex;align-items:center}

@media(max-width:980px){
  .home-generator-card--strategic{grid-template-columns:76px 1fr}
  .home-generator-actions{grid-column:1/-1;border-left:0;border-top:1px solid var(--stone);display:grid;grid-template-columns:minmax(220px,auto) 1fr;align-items:center}
  .home-generator-actions>span{display:none}
  .home-generator-review{text-align:left}
  .tool-hero-grid{grid-template-columns:1fr;gap:40px}
  .tool-structure{grid-template-columns:repeat(3,1fr)}
  .tool-structure span{display:flex;flex-direction:column;gap:5px;border-right:1px solid rgba(200,168,106,.24);border-bottom:0}
  .tool-structure span:last-child{border-right:0}
  .gen-workspace{grid-template-columns:1fr}
  .gen-result-board{position:static}
}

@media(max-width:760px){
  .home-generator-card--strategic{grid-template-columns:1fr}
  .home-generator-marker{min-height:66px;display:flex;flex-direction:row;align-items:center;padding:16px 22px}
  .home-generator-marker small{writing-mode:initial;transform:none}
  .home-generator-card--strategic .home-generator-body{padding:30px 24px}
  .home-generator-structure{grid-template-columns:1fr}
  .home-generator-actions{display:flex;padding:24px}
  .home-generator-actions>span{display:block}
  .home-generator-review{text-align:center}
  .tool-hero{padding-top:68px}
  .tool-structure{grid-template-columns:1fr}
  .tool-structure span{display:grid;grid-template-columns:92px 1fr;border-right:0;border-bottom:1px solid rgba(200,168,106,.24)}
  .tool-structure span:last-child{border-bottom:0}
  .gen-wrap{width:min(calc(100% - 30px),1180px)}
  .gen-input-card,.gen-output{padding:28px 22px}
  .gen-legend{display:none}
  .gen-step{display:none;padding:0;margin:0;border:0}
  .gen-step.is-active{display:block}
  .gen-step-grid{grid-template-columns:1fr}
  .gen-step-grid .form-field.full{grid-column:auto}
  .gen-step-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--stone)}
  .gen-step-back,.gen-step-next{min-height:46px;padding:12px 18px;font-family:var(--font-body);font-size:.63rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
  .gen-step-back{color:var(--burgundy);background:transparent;border:1px solid var(--burgundy)}
  .gen-step-next{margin-left:auto;color:var(--cream);background:var(--burgundy);border:1px solid var(--burgundy)}
  .gen-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
  .gen-actions>*{justify-content:center;width:100%}
  .gen-actions .gen-cta-review{grid-column:1/-1}
  .service-card--without-number{grid-template-columns:1fr}
}

@media(max-width:430px){
  .gen-actions{grid-template-columns:1fr}
  .gen-actions .gen-cta-review{grid-column:auto}
  .route-cards li,.route-cards a{min-width:0}
  .route-cards .route-cta{max-width:100%;white-space:normal}
}


/* ===== Universal hamburger navigation, all breakpoints (30 Jul 2026) =====
   Previously the collapsed/hamburger nav only applied under max-width:900px, with a
   horizontal .links-style nav and a separate gold "Start a brief" button at desktop
   widths. This block makes the same hamburger-triggered dropdown the ONE nav pattern
   at every screen size, and turns the CTA link that already sits last inside the menu
   (.nav-mobile-cta, "Start a brief") into a permanently visible, visually highlighted
   menu item instead of a separate header button. Appended last so it wins the cascade
   over the earlier width-gated rules above, regardless of viewport. */
.header-inner { grid-template-columns: 1fr auto !important; }
.menu-toggle { display: block !important; justify-self: end; }
.header-cta { display: none !important; }
.primary-nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  display: none;
  padding: 18px;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  color: var(--cream);
  background: var(--burgundy-deep);
  border-bottom: 1px solid var(--gold);
}
.primary-nav.is-open { display: flex !important; }
.nav-link { padding: 16px 8px; border-bottom: 1px solid rgba(255, 255, 255, .11); }
.nav-link::after { display: none; }
.menu-toggle[aria-expanded="true"] span:nth-of-type(2) { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-of-type(3) { transform: translateY(-3.5px) rotate(-45deg); }

/* The "Start a brief" CTA: last item in the menu, highlighted so it reads as an action
   rather than a plain link, using the site's existing gold-on-dark button language. */
.nav-link.nav-mobile-cta {
  display: block !important;
  margin-top: 12px;
  padding: 15px 18px;
  color: var(--onyx) !important;
  font-weight: 800;
  text-align: center;
  background: var(--gold);
  border: 0;
  border-radius: 2px;
}
.nav-link.nav-mobile-cta:hover,
.nav-link.nav-mobile-cta:focus-visible { background: var(--gold-light); }

@media (prefers-reduced-motion: reduce) {
  .menu-toggle span:not(.sr-only) { transition: none; }
}
