/* =====================================================================
   Atkinson Advisory: site styles
   Colours and fonts are set as variables below. To adjust them without
   editing this file, create assets/custom.css (it loads after this one).
   ===================================================================== */
:root {
  /* Brand colours (taken from the original site) */
  --navy: #162B48;
  --slate: #363B46;
  --teal: #00303D;
  --ink: #061E28;
  --gold: #F68E13;
  --amber: #F5A624;
  --sand: #E1AD6F;
  --peach: #FDC280;
  --blue-text: #092771;
  --cream: #FAF6F0;
  --sand-light: #E4D8C9;
  --text: #252525;
  --muted: #5d6573;
  --line: #e6e1d8;
  --gold-text: #A85A0B;     /* darker gold, readable on white */
  --error: #a33a2c;
  --ok: #2f6b3f;

  /* Type */
  --display: "Alegreya Sans", "Segoe UI", Arial, sans-serif;
  --serif: "Arimo", "Helvetica Neue", Arial, sans-serif; /* body text font of the original site */
  --menu: "Cormorant Garamond", Georgia, serif;
  --accent: "Cormorant Garamond", Georgia, serif;

  --radius: 10px;
  --radius-sm: 6px;
  --wrap: 1200px;
  --shadow: 0 10px 30px rgba(6, 30, 40, .10);
  --shadow-lg: 0 20px 50px rgba(6, 30, 40, .18);
  --header-h: 84px;
  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body { margin: 0; background: #fff; color: var(--text); font: 400 .9375rem/1.7 var(--serif); overflow-x: hidden; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--blue-text); text-underline-offset: 3px; text-decoration-thickness: 1px; transition: color .2s; }
a:hover { color: var(--gold-text); }
h1, h2, h3, h4 { font-family: var(--display); line-height: 1.15; margin: 0 0 .5em; color: var(--navy); letter-spacing: .01em; }
h1 { font-size: clamp(2rem, 5vw, 3.4rem); font-weight: 800; }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.6rem); font-weight: 800; }
h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); font-weight: 700; }
h4 { font-size: 1.1rem; font-weight: 700; }
p { margin: 0 0 1em; }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }
[hidden] { display: none !important; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -9999px; z-index: 100; }
.skip:focus { left: 16px; top: 16px; background: #fff; padding: 8px 14px; border-radius: var(--radius-sm); }
.hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.muted { color: var(--muted); }
.align-center { text-align: center; }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 46px; padding: 11px 26px; border: 2px solid var(--gold); border-radius: 999px; background: var(--gold); color: #1d1404; font: 700 .95rem/1.2 var(--display); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background .25s, color .25s, border-color .25s, transform .25s var(--ease), box-shadow .25s; }
.btn:hover { background: var(--amber); border-color: var(--amber); color: #1d1404; transform: translateY(-2px); box-shadow: 0 8px 20px rgba(246, 142, 19, .35); }
.btn-lg { min-height: 54px; padding: 14px 34px; font-size: 1rem; }
.btn-sm { min-height: 40px; padding: 8px 18px; font-size: .82rem; }
.btn-ghost { background: transparent; color: var(--navy); border-color: currentColor; }
.btn-ghost:hover { background: var(--navy); border-color: var(--navy); color: #fff; box-shadow: none; }
.on-dark .btn-ghost, .hero .btn-ghost { color: #fff; }
.on-dark .btn-ghost:hover { background: #fff; color: var(--navy); border-color: #fff; }
.link-arrow { font-family: var(--display); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: .85rem; text-decoration: none; color: var(--gold-text); }
.link-arrow::after { content: " →"; transition: margin .2s; }
.link-arrow:hover::after { margin-left: 4px; }
.on-dark .link-arrow { color: var(--peach); }

/* ---------- Top bar ---------- */
.topbar { background: #2b2d33; color: #d5d7db; font: 500 .9rem/1 var(--display); }
.topbar-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 42px; flex-wrap: wrap; }
.topbar a { color: #d5d7db; text-decoration: none; }
.topbar a:hover { color: var(--peach); }
.socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.socials a { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; transition: background .2s, color .2s; }
.socials a:hover { background: rgba(255, 255, 255, .1); }
.topbar-contact { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; }
.topbar-contact i { margin-right: 8px; color: var(--amber); }

/* ---------- Header & navigation ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid transparent; transition: box-shadow .3s, border-color .3s; }
.site-header.is-scrolled { box-shadow: 0 6px 24px rgba(6, 30, 40, .08); border-color: var(--line); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--header-h); transition: min-height .3s; }
.is-scrolled .header-inner { min-height: 68px; }
.brand { display: flex; flex-direction: column; text-decoration: none; color: var(--navy); line-height: 1.1; flex-shrink: 0; }
.brand-logo { height: 58px; width: auto; transition: height .3s; }
.is-scrolled .brand-logo { height: 46px; }
.brand-name { font: 800 1.45rem var(--display); letter-spacing: .06em; text-transform: uppercase; }
.brand-tag { font: 500 .85rem var(--display); color: var(--muted); letter-spacing: .04em; }

.site-nav { display: flex; align-items: center; gap: 18px; }
.menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; }
.menu > li { position: relative; display: flex; align-items: center; }
.menu > li > a { display: block; padding: 10px 10px; font: 700 1.08rem/1.2 var(--menu); letter-spacing: .02em; text-transform: uppercase; color: #252525; white-space: nowrap; text-decoration: none; position: relative; }
.menu > li > a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.menu > li:hover > a::after, .menu > li.is-active > a::after { transform: scaleX(1); }
.menu > li.is-active > a { color: var(--navy); }
.sub-toggle { display: none; }
.has-sub > a { padding-right: 22px !important; }
.has-sub > a::before { content: ""; position: absolute; right: 8px; top: 50%; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-70%) rotate(45deg); opacity: .6; }
.submenu { list-style: none; margin: 0; padding: 10px 0; position: absolute; top: 100%; left: 0; min-width: 240px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); border-top: 3px solid var(--gold); opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s, transform .25s var(--ease), visibility .25s; }
.menu > li:hover > .submenu, .menu > li:focus-within > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.submenu a { display: block; padding: 9px 22px; font: 600 1.08rem/1.35 var(--menu); color: var(--slate); text-decoration: none; transition: background .2s, color .2s, padding .2s; }
.submenu a:hover, .submenu a[aria-current] { background: var(--cream); color: var(--gold-text); padding-left: 26px; }
.nav-cta { white-space: nowrap; }

/* Animated "Let's Talk" button: a gold line runs around the border; on hover it fills with gold and glows */
.glow-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; padding: 12px 22px; margin-left: 6px;
  font: 600 1.25rem/1 var(--accent); letter-spacing: .04em; text-transform: uppercase; color: #222; text-decoration: none; background: transparent;
  transition: background .45s, color .45s, box-shadow .45s; }
.glow-btn .gb-text { position: relative; z-index: 1; padding-top: 3px; }
.glow-btn:hover, .glow-btn:focus-visible { background: #d6aa5e; color: var(--gold); box-shadow: 0 0 6px #d6aa5e, 0 0 24px rgba(214, 170, 94, .75), 0 0 60px rgba(214, 170, 94, .45); }
.gb-line { position: absolute; display: block; }
.gb-line:nth-child(1) { top: 0; left: -100%; width: 100%; height: 2px; background: linear-gradient(90deg, transparent, #c9a25e); animation: gbTop 3s linear infinite; }
.gb-line:nth-child(2) { top: -100%; right: 0; width: 2px; height: 100%; background: linear-gradient(180deg, transparent, #c9a25e); animation: gbRight 3s linear infinite .75s; }
.gb-line:nth-child(3) { bottom: 0; right: -100%; width: 100%; height: 2px; background: linear-gradient(270deg, transparent, #c9a25e); animation: gbBottom 3s linear infinite 1.5s; }
.gb-line:nth-child(4) { bottom: -100%; left: 0; width: 2px; height: 100%; background: linear-gradient(360deg, transparent, #c9a25e); animation: gbLeft 3s linear infinite 2.25s; }
@keyframes gbTop { 0% { left: -100%; } 50%, 100% { left: 100%; } }
@keyframes gbRight { 0% { top: -100%; } 50%, 100% { top: 100%; } }
@keyframes gbBottom { 0% { right: -100%; } 50%, 100% { right: 100%; } }
@keyframes gbLeft { 0% { bottom: -100%; } 50%, 100% { bottom: 100%; } }
@media (prefers-reduced-motion: reduce) {
  .cards-side .card:nth-child(2)::after { animation: none; }
  .gb-line { display: none; }
  .glow-btn { box-shadow: inset 0 0 0 1px #c9a25e; }
}
.nav-head, .nav-contact { display: none; }
.nav-toggle { display: none; background: none; border: 0; padding: 10px; cursor: pointer; color: var(--navy); }
.burger { display: grid; gap: 6px; width: 28px; }
.burger span { display: block; height: 2px; background: currentColor; border-radius: 2px; transition: transform .3s, opacity .3s; }
.nav-scrim { position: fixed; inset: 0; background: rgba(6, 30, 40, .55); z-index: 60; opacity: 0; transition: opacity .3s; }
.nav-open .nav-scrim { opacity: 1; }

/* ---------- Sections (blocks) ---------- */
.blk { position: relative; isolation: isolate; }
.sp-normal { --pad: clamp(56px, 8vw, 96px); }
.sp-compact { --pad: clamp(32px, 5vw, 52px); }
.sp-roomy { --pad: clamp(80px, 12vw, 150px); }
.sp-none { --pad: 0px; }
.blk { --cut: 0px; --cut-b: 0px; padding: calc(var(--pad, 0px) + var(--cut)) 0 calc(var(--pad, 0px) + var(--cut-b)); }
.bg-white { background: #fff; }
.bg-cream { background: var(--cream); }
.bg-sand { background: linear-gradient(248deg, #fff 55%, var(--sand-light) 100%); }
.bg-navy { background: var(--navy); }
.bg-slate { background: var(--slate); }
.bg-teal { background: var(--teal); }
.bg-ink { background: var(--ink); }
.bg-gold { background: linear-gradient(120deg, var(--amber), var(--gold)); }
.bg-wine { background: #730619; }
.bg-blush { background: #fff0f5; }
.on-dark { color: rgba(255, 255, 255, .88); }
.on-dark h1, .on-dark h2, .on-dark h3, .on-dark h4 { color: #fff; }
.on-dark .blk-title { color: var(--peach); }
.on-dark a:not(.btn) { color: var(--peach); }
.on-dark .muted { color: rgba(255, 255, 255, .65); }
.bg-gold .blk-title, .bg-gold h2, .bg-gold h3 { color: var(--ink); }
.bg-gold .btn { background: var(--ink); border-color: var(--ink); color: #fff; }

/* Photo backgrounds with optional parallax */
.has-photo::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--photo) center / cover no-repeat; }
.has-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; }
.has-photo.ov-dark::after { background: linear-gradient(180deg, rgba(6, 30, 40, .78), rgba(22, 43, 72, .72)); }
.has-photo.ov-light::after { background: rgba(255, 255, 255, .84); }
.has-photo.ov-none::after { display: none; }
.has-photo.photo-contain::before { background-size: contain; }

/* Content box inside a section (e.g. a white card floating on a photo) */
.panel { position: relative; border-radius: 20px; padding: clamp(26px, 5vw, 60px); }
.panel-white { background: #fff; box-shadow: var(--shadow-lg); color: var(--text); }
.panel-glass { background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); box-shadow: var(--shadow-lg); color: var(--text); }
.panel-teal { background: #008080; color: rgba(255, 255, 255, .92); box-shadow: var(--shadow-lg); }
.panel-wine { background: #730619; color: rgba(255, 255, 255, .92); border-radius: 16px; box-shadow: var(--shadow-lg); }
.panel-deep { background: var(--teal); color: rgba(255, 255, 255, .9); box-shadow: var(--shadow-lg); }
.panel-navy { background: var(--navy); color: rgba(255, 255, 255, .9); box-shadow: var(--shadow-lg); }
.panel-blush { background: rgba(255, 240, 245, .82); border-radius: 60px; color: var(--text); }
.panel-teal .blk-title, .panel-teal .step-title { color: #fff; }
.panel-teal .blk-title::after { background: var(--peach); }
.panel-teal .step-num { background: #fff; color: #008080; box-shadow: 0 0 0 8px rgba(255, 255, 255, .2); }
.panel-teal .step:not(:last-child)::after { border-color: rgba(255, 255, 255, .5); }

/* Slanted section edges: the section overlaps its neighbour at an angle */
.shape-slant-top, .shape-slant-bottom, .shape-slant-both { z-index: 1; }
.shape-slant-top, .shape-slant-both { --cut: clamp(36px, 7vw, 110px); margin-top: calc(-1 * var(--cut)); }
.shape-slant-bottom, .shape-slant-both { --cut-b: clamp(36px, 7vw, 110px); margin-bottom: calc(-1 * var(--cut-b)); }
.shape-slant-top { clip-path: polygon(0 var(--cut), 100% 0, 100% 100%, 0 100%); }
.shape-slant-bottom { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--cut-b)), 0 100%); }
.shape-slant-both { clip-path: polygon(0 var(--cut), 100% 0, 100% calc(100% - var(--cut-b)), 0 100%); }
.blk:first-child.shape-slant-top, .blk:first-child.shape-slant-both { margin-top: 0; }
@media (min-width: 1025px) and (hover: hover) {
  .has-photo.parallax::before { background-attachment: fixed; }
}
/* Phones and tablets ignore background-attachment: fixed, so every section photo is pinned to the screen instead
   and the section shows it through a clip (the photo stays still while the content scrolls over it). */
@media (max-width: 1024px), (hover: none) {
  section.blk.has-photo:not([class*="shape-slant"]) { clip-path: inset(0); }
  section.blk.has-photo::before { position: fixed; inset: 0; height: 100vh; height: 100lvh; background-attachment: scroll; will-change: transform; }
}

.blk-head { margin: 0 auto clamp(28px, 4vw, 48px); max-width: 820px; }
.blk-head.align-left { margin-left: 0; }
.blk-head.align-center, .align-center .blk-head { text-align: center; }
.kicker { font: italic 600 clamp(1.15rem, 2vw, 1.4rem)/1.2 var(--accent); color: var(--gold-text); margin: 0 0 .4em; letter-spacing: .02em; }
.on-dark .kicker, .hero .kicker { color: var(--peach); }
.blk-title { text-transform: uppercase; letter-spacing: .04em; margin: 0; }
.blk-title::after { content: ""; display: block; width: 64px; height: 3px; margin-top: .45em; background: var(--gold); border-radius: 2px; }
.align-center .blk-title::after, .blk-head.align-center .blk-title::after, .cta .blk-title::after { margin-left: auto; margin-right: auto; }
.cta .blk-title::after { margin-left: 0; }
.blk-intro { max-width: 760px; margin: -12px auto 40px; font-size: 1.1rem; }
.blk-intro.align-left { margin-left: 0; }
.blk-actions { margin: 36px 0 0; display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: center; }
.align-center .blk-actions, .blk-actions.align-center, .text-wrap.align-center .blk-actions { justify-content: center; }
.rich > :last-child { margin-bottom: 0; }
.rich ul, .rich ol { padding-left: 1.3em; }
.rich li { margin-bottom: .35em; }
.rich ul li::marker { color: var(--gold); }
.rich blockquote { margin: 1.5em 0; padding: .3em 0 .3em 1.2em; border-left: 3px solid var(--gold); font: italic 500 1.3rem/1.5 var(--accent); color: var(--slate); }
.on-dark .rich blockquote { color: #fff; }
.rich img { border-radius: var(--radius-sm); margin: 1em 0; }
.rich table { border-collapse: collapse; width: 100%; margin: 1.5em 0; font-size: .95rem; display: block; overflow-x: auto; }
.rich th, .rich td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }
.rich h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin-top: 1.4em; }
.rich h3 { margin-top: 1.3em; }
.rich hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.rich iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: var(--radius-sm); }

/* Elegant headings (Settings → Section heading style): italic serif in mixed case, as on the original site */
.hs-elegant .blk-title, .hs-elegant .cascade-title { font: italic 600 clamp(2rem, 4.4vw, 3.1rem)/1.15 var(--accent); text-transform: none; letter-spacing: .01em; color: #B8740C; }
.hs-elegant .on-dark .blk-title, .hs-elegant .panel-teal .blk-title, .hs-elegant .panel-deep .blk-title, .hs-elegant .panel-navy .blk-title { color: var(--sand); }
.hs-elegant .blk-title::after { width: 56px; height: 2px; margin-top: .3em; }
.hs-elegant .kicker { font-size: clamp(1.05rem, 1.7vw, 1.25rem); }
.hs-elegant .cards-lead .blk-title, .hs-elegant .text-wrap .blk-title { font-size: clamp(1.9rem, 3.8vw, 2.8rem); }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: hidden; background: var(--ink); color: #fff; display: grid; }
.hero-large { min-height: clamp(520px, 78vh, 760px); }
.hero-full { min-height: calc(100svh - var(--header-h)); }
.hero-medium { min-height: clamp(400px, 56vh, 560px); }
.hero-small { min-height: 300px; }
.hero-slide { grid-area: 1 / 1; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; position: relative; z-index: 0; }
.hero-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.08); transition: transform 8s ease-out; }
.hero-slide.is-active .hero-bg { transform: scale(1); }
.hero-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6, 30, 40, .82) 0%, rgba(6, 30, 40, .55) 45%, rgba(6, 30, 40, .05) 80%); }
.hero-slide.align-center::after { background: rgba(6, 30, 40, .55); }
.hero-inner { position: relative; z-index: 1; padding-top: 72px; padding-bottom: 88px; }
.hero-copy { max-width: 640px; }
.align-center .hero-copy { margin: 0 auto; text-align: center; }
.hero-title { font: 800 clamp(2rem, 5.2vw, 3.6rem)/1.08 var(--display); color: var(--amber); text-transform: uppercase; letter-spacing: .03em; margin: 0 0 .45em; text-shadow: 0 2px 18px rgba(0, 0, 0, .25); }
.hero .rich { font-size: clamp(1.05rem, 1.6vw, 1.22rem); color: rgba(255, 255, 255, .92); margin-bottom: 30px; max-width: 580px; }
.align-center .hero .rich, .hero .align-center .rich { margin-left: auto; margin-right: auto; }
.hero-slide .hero-copy > * { opacity: 0; transform: translateY(24px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.hero-slide.is-active .hero-copy > * { opacity: 1; transform: none; }
.hero-slide.is-active .hero-copy > :nth-child(2) { transition-delay: .15s; }
.hero-slide.is-active .hero-copy > :nth-child(3) { transition-delay: .3s; }
.hero-slide.is-active .hero-copy > :nth-child(4) { transition-delay: .45s; }
.hero-dots { position: absolute; z-index: 3; left: 0; right: 0; bottom: 26px; display: flex; justify-content: center; gap: 10px; }
.hero-dots button { width: 34px; height: 4px; padding: 0; border: 0; border-radius: 2px; background: rgba(255, 255, 255, .4); cursor: pointer; transition: background .3s, width .3s; }
.hero-dots button.is-active { background: var(--amber); width: 54px; }
.hero-dots button::before { content: ""; display: block; height: 24px; margin-top: -10px; } /* bigger tap area */

/* Bright slides: photo at full brightness, gold headline, navy text (as on the original site) */
.hero-slide.tone-light::after { background: linear-gradient(90deg, rgba(255, 255, 255, .55) 0%, rgba(255, 255, 255, .25) 40%, rgba(255, 255, 255, 0) 65%); }
.hero-slide.tone-light.align-center::after { background: rgba(255, 255, 255, .35); }
.tone-light .hero-title { color: #C9820F; text-shadow: none; font-weight: 700; }
.tone-light .rich { color: var(--blue-text); }
.tone-light .kicker { color: var(--gold-text); }
.hero:has(.hero-slide.is-active.tone-light) .hero-dots button { background: rgba(22, 43, 72, .3); }
.hero:has(.hero-slide.is-active.tone-light) .hero-dots button.is-active { background: var(--gold); }
.hero:has(.hero-slide.is-active.tone-light) { background: #f4f1ea; }

/* ---------- Page banner (inner pages) ---------- */
.page-banner { position: relative; isolation: isolate; background: var(--navy); color: #fff; padding: clamp(56px, 9vw, 110px) 0 clamp(44px, 7vw, 80px); }
.page-banner[style]::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--photo) center / cover; }
.page-banner[style]::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6, 30, 40, .78), rgba(22, 43, 72, .85)); }
.page-banner h1 { color: #fff; margin: 0; text-transform: uppercase; letter-spacing: .03em; max-width: 900px; }
.page-banner h1::after { content: ""; display: block; width: 72px; height: 3px; background: var(--gold); margin-top: .4em; }
.crumbs { margin: 0 0 .6em; font: 600 .85rem var(--display); letter-spacing: .1em; text-transform: uppercase; }
.crumbs a { color: var(--peach); text-decoration: none; }
.crumbs a::after { content: " /"; color: rgba(255, 255, 255, .5); }

/* Lists inside centred content stay left-aligned but centred as a group */
.align-center .rich ul, .align-center .rich ol, .text-wrap.align-center .rich ul { display: inline-block; text-align: left; margin-left: auto; margin-right: auto; }
.tagline { font: 800 clamp(1.1rem, 2vw, 1.35rem)/1.3 var(--display); letter-spacing: .18em; text-transform: uppercase; color: var(--gold-text); margin-top: 1.4em; }
.on-dark .tagline { color: var(--amber); }

/* ---------- Text ---------- */
.text-wrap { max-width: 1000px; margin: 0 auto; }
.text-wrap.w-narrow { max-width: 760px; }
.text-wrap.align-center { text-align: center; }
.text-wrap.align-center .blk-head { text-align: center; }
.text-wrap.align-center .blk-title::after { margin-left: auto; margin-right: auto; }
.text-wrap .blk-head { max-width: none; margin-bottom: 24px; }
.text-wrap .rich { font-size: 1rem; }

/* Text copied from the old site keeps its own fonts; these keep it tidy */
.imp-text > :last-child { margin-bottom: 0; }
.imp-text + h3, .imp-text + h4 { margin-top: 1.1em; }
.rich .imp-icon { margin-right: .45em; opacity: .7; font-size: .9em; }
.imp-boxes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; align-items: center; margin: 6px 0; }
.imp-box { padding: 16px 18px; }
.imp-box > :last-child { margin-bottom: 0; }
.imp-box h3, .imp-box h4 { margin-top: 0; }
/* Lists inside tabs get the original's check marks */
.tab-panel ul { list-style: none; padding-left: 0; }
.tab-panel ul ul { padding-left: 1.2em; }
.tab-panel li { position: relative; padding-left: 1.7em; margin-bottom: .45em; }
.tab-panel li::before { content: "\f058"; font: 900 .95em/1.5 "Font Awesome 6 Free"; color: #fbba00; position: absolute; left: 0; top: .05em; }
.tab-panel .imp-box li::before { content: "\2022"; font: inherit; color: currentColor; }
/* Text over a photo stays on the left so the photo's subject (often on the right) shows */
.has-photo .text-wrap.align-left { margin-left: 0; max-width: min(760px, 56%); }
@media (max-width: 900px) {
  .has-photo .text-wrap.align-left { max-width: none; }
  /* on small screens the photo sits behind the text: darken it slightly so the words stay readable */
  .has-photo.ov-none.on-dark::after { display: block; background: linear-gradient(90deg, rgba(0, 20, 26, .78) 0%, rgba(0, 20, 26, .55) 60%, rgba(0, 20, 26, .2) 100%); }
  .has-photo.ov-none.on-dark::before { background-position: 75% center; }
}
/* The section after a slanted bottom edge makes room for the overlap */
.shape-slant-bottom + .blk, .shape-slant-both + .blk { --cut: clamp(36px, 7vw, 110px); }
@media (min-width: 900px) { .tcols-2 .rich { columns: 2; column-gap: clamp(32px, 5vw, 64px); text-align: left; } .tcols-2 .rich > * { break-inside: avoid; } }

/* ---------- Tabs ---------- */
.tabs { max-width: 1100px; margin: 0 auto; }
.tab-list { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.tab-list button { padding: 10px; border: 1px solid #e5e5e5; border-radius: 0; background: #fff0f5; color: #734d08; font: 400 1rem/1.2 "Bona Nova SC", var(--accent); text-transform: uppercase; cursor: pointer; transition: background .25s, color .25s; }
.tab-list button:not([aria-selected="true"]):hover { background: #e4e4e4 !important; color: #222 !important; }
.tab-list button[aria-selected="true"] { background: #00404d; color: #fdfbd4; border-color: #e5e5e5; }
.tab-panel { border: 1px solid rgba(127, 127, 127, .35); padding: clamp(18px, 2.4vw, 26px); animation: fadeUp .4s var(--ease); }
.on-dark .tab-panel { border-color: rgba(255, 255, 255, .45); }
.tab-panel .rich h3, .tab-panel .rich h4 { font-size: 1.1rem; margin-bottom: .3em; }
.tab-panel .rich h3 + .imp-text, .tab-panel .rich h4 + .imp-text { padding-left: 1.6em; }
.on-dark .tab-panel .rich a { color: var(--peach); word-break: break-word; }
.bg-white .tab-list button[aria-selected="true"], .bg-cream .tab-list button[aria-selected="true"] { border-color: var(--teal); }

/* ---------- Image + text ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.split.img-right .split-media { order: 2; }
.split.no-img { grid-template-columns: 1fr; max-width: 820px; margin: 0 auto; }
.split .blk-head { margin: 0 0 22px; }
.split-media { margin: 0; position: relative; }
.split-media img { width: 100%; object-fit: cover; }
.shape-rounded img { border-radius: 18px; box-shadow: var(--shadow-lg); }
.shape-arch img { border-radius: 999px 999px 18px 18px; box-shadow: var(--shadow-lg); aspect-ratio: 4 / 5; }
.shape-circle img { border-radius: 50%; aspect-ratio: 1; max-width: 460px; margin: 0 auto; }
.shape-chevron img { clip-path: polygon(0 0, 82% 0, 100% 50%, 82% 100%, 0 100%); }
.shape-rounded::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 2px solid var(--sand); border-radius: 18px; z-index: -1; }
.img-right .shape-rounded::before { inset: 22px 22px -22px -22px; }

/* Text sections with a line down the left (copied from the old site's bordered text boxes) */
.imp-sect { border-left: 2px solid rgba(30, 30, 30, .3); padding: 2px 0 2px clamp(16px, 2.6vw, 30px); margin: 0 0 1.4em; }
.imp-sect > :last-child { margin-bottom: 0; }
.imp-sect h3, .imp-sect h4 { margin-top: 0; }

/* Photo with a deep-teal panel behind it and floating circles */
.decor-backdrop { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: stretch; }
.decor-backdrop.img-left { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.decor-backdrop .split-media { position: relative; isolation: isolate; display: flex; align-items: center; width: min(470px, 100%); justify-self: start; margin: 0; }
.decor-backdrop.img-left .split-media { justify-self: end; }
.decor-backdrop .split-media img { position: relative; z-index: 1; width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 16px; box-shadow: none; }
.deco-panel { position: absolute; z-index: 0; background: #00303d; border-radius: 0 0 0 110px; }
/* runs the full height of the section, from the top edge to the bottom edge */
.decor-backdrop .deco-panel { top: calc(-1 * (var(--pad, 0px) + var(--cut, 0px)) - 2px); bottom: calc(-1 * (var(--pad, 0px) + var(--cut-b, 0px)) - 2px); left: 59%; right: -100vw; border-radius: 0 0 0 130px; }
.decor-backdrop .split-copy { align-self: center; }
.deco-dot { position: absolute; z-index: 2; border-radius: 50%; animation: decoFloat 7s ease-in-out infinite; }
.deco-dot.d1 { width: 34px; height: 34px; bottom: 6%; left: 88%; background: rgba(200, 212, 216, .85); }
.deco-dot.d2 { width: 64px; height: 64px; bottom: 1%; left: 62%; background: rgba(255, 255, 255, .6); animation-delay: -3s; }
@keyframes decoFloat { 50% { transform: translate(8px, -12px); } }

/* Picture with a teal panel; heading inside large rings whose circles orbit as the page scrolls.
   The rings reach up over the section above, like the old site. */
.blk:has(.orbit-wrap) { z-index: 3; }
.orbit-wrap { position: relative; display: flex; align-items: center; min-height: clamp(460px, 44vw, 820px); }
.orbit-media { position: relative; isolation: isolate; flex: none; width: min(410px, 27%); margin: 9% 0 6% 1%; z-index: 1; }
.orbit-wrap.img-right .orbit-media { margin-left: auto; margin-right: 1%; }
.orbit-media img { position: relative; z-index: 1; display: block; width: 100%; border-radius: 20px; }
.orbit-media .deco-panel { background: #0d8a7c; top: -26%; bottom: -22%; left: 60%; right: -108%; border-radius: 0 0 0 120px; }
.orbit-wrap.img-right .orbit-media .deco-panel { left: -108%; right: 60%; border-radius: 0 0 120px 0; }
.orbit { position: absolute; left: 66%; top: 50%; width: 0; height: 0; z-index: 2; }
.orbit-wrap.img-right .orbit { left: 34%; }
.orbit-swing { position: absolute; left: 0; top: 0; }
.orbit-ring { position: absolute; left: 0; top: 0; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; border: 1px solid rgba(90, 40, 40, .13); pointer-events: none; }
.orbit-ring.r1 { width: min(26vw, 480px); }
.orbit-ring.r2 { width: min(39vw, 720px); }
.orbit-ring.r3 { width: min(50vw, 930px); }
.orbit-ring.r4 { width: min(72vw, 1340px); border-color: rgba(90, 40, 40, .06); }
.orbit-dot { position: absolute; inset: 0; transform: rotate(calc(var(--a, 0deg) + var(--rot, 0deg) * var(--s, 1))); transition: transform .25s linear; }
.orbit-dot::after { content: ""; position: absolute; top: 0; left: 50%; width: var(--d, 40px); height: var(--d, 40px); margin: calc(var(--d, 40px) / -2) 0 0 calc(var(--d, 40px) / -2); border-radius: 50%; background: rgba(255, 255, 255, .55); box-shadow: 0 0 22px rgba(255, 255, 255, .5); }
.orbit-dot.teal::after { background: rgba(140, 200, 195, .75); box-shadow: none; }
.orbit-copy { position: absolute; left: 0; top: 0; z-index: 2; width: min(30vw, 470px); transform: translate(-50%, -50%); text-align: center; }
.orbit-copy .blk-head { margin: 0; text-align: center; }
.orbit-copy .blk-title { font: italic 600 clamp(1.2rem, 1.75vw, 2rem)/1.3 "Alkatra", var(--display); color: #5b2b22; text-transform: none; letter-spacing: 0; }
.orbit-copy .blk-title::after { display: none; }
.hs-elegant .orbit-copy .blk-title, .blk .orbit-copy .blk-title { color: #5b2b22 !important; font-style: italic !important; font-weight: 600 !important; }
/* the rings and heading swing back and forth into place the first time they are seen */
.js [data-anim] .orbit-swing { transform: rotate(-14deg); }
.js [data-anim].in-view .orbit-swing { animation: orbitSwing 2.4s cubic-bezier(.3, .6, .3, 1) both; }
@keyframes orbitSwing { 0% { transform: rotate(-14deg); } 30% { transform: rotate(10deg); } 55% { transform: rotate(-6deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
.sec-tri { position: absolute; left: 0; z-index: -1; width: 100%; height: clamp(50px, 13vw, 250px); fill: #e3e3e3; pointer-events: none; }
.sec-tri-top { top: 0; height: clamp(24px, 5vw, 90px); }
.sec-tri-bottom { bottom: 0; }
.imp-sect h3 { font-weight: 400; margin-bottom: .35em; }
.blk:has(.decor-backdrop), .blk:has(.orbit-wrap) { overflow-x: clip; }

/* ---------- Cards ---------- */
.cards { display: grid; gap: clamp(18px, 2.5vw, 30px); grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); }
.cards.cols-2 { --cols: 2; }
.cards.cols-4 { --cols: 4; }
.card { position: relative; display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.cards.align-center .card { text-align: center; align-items: center; }
.card-body { padding: 28px 26px 30px; display: flex; flex-direction: column; flex: 1; width: 100%; }
.card-body .rich { flex: 1; }
.card-title { font-size: clamp(1.25rem, 2vw, 1.55rem); text-transform: uppercase; letter-spacing: .04em; margin-bottom: .55em; }
.card-title a { color: inherit !important; text-decoration: none; }
.card-icon { font-size: 2.6rem; line-height: 1; color: var(--gold); padding: 30px 26px 0; }
.card-icon + .card-body { padding-top: 16px; }
.card-img img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .card-img img { transform: scale(1.05); }
.card-actions { margin: 20px 0 0; }
.cs-raised .card { background: #fff; box-shadow: var(--shadow); border-bottom: 3px solid var(--gold); }
.cs-raised .card:hover, .cs-dark .card:hover, .cs-gold .card:hover, .cs-outline .card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.on-dark .cs-raised .card { color: var(--text); }
.on-dark .cs-raised .card h3 { color: var(--navy); }
.on-dark .cs-raised .card a:not(.btn) { color: var(--blue-text); }
.cs-dark .card { background: var(--navy); color: rgba(255, 255, 255, .88); border: 1px solid rgba(255, 255, 255, .08); }
.cs-dark .card h3, .cs-dark .card-title a { color: var(--sand); }
.cs-dark .card .btn { background: transparent; color: #fff; border-color: var(--sand); }
.cs-dark .card .btn:hover { background: var(--sand); color: var(--ink); }
.cs-gold .card { background: var(--navy); color: rgba(255, 255, 255, .88); }
.cs-gold .card:nth-child(3n+2) { background: var(--sand); color: var(--ink); }
.cs-gold .card h3 { color: var(--sand); }
.cs-gold .card:nth-child(3n+2) h3 { color: var(--navy); }
.cs-gold .card:nth-child(3n+2) .card-icon { color: var(--navy); }
.cs-gold .card:nth-child(3n+2) .btn { background: var(--navy); border-color: var(--navy); color: #fff; }
.cs-outline .card { border: 1px solid var(--line); background: transparent; }
.on-dark .cs-outline .card { border-color: rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .03); }
.cs-plain .card-body { padding: 12px 6px; }
.cs-plain .card-icon { padding: 0 6px; }
.card-photo { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .8s var(--ease); }

.card.has-photo { min-height: 380px; justify-content: flex-end; color: #fff; }
.card.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 30, 40, .05) 20%, rgba(6, 30, 40, .9) 100%); }
.card.has-photo .card-body { position: relative; z-index: 1; flex: 0; }
.card.has-photo h3, .card.has-photo .card-title a { color: #fff; }
.card.has-photo:hover .card-photo { transform: scale(1.06); }
.cs-glass .card { background: rgba(255, 255, 255, .62); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); box-shadow: var(--shadow); color: var(--text); }
.cs-glass .card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); background: rgba(255, 255, 255, .85); }
.cs-glass .card h3 { color: var(--gold-text); font-size: clamp(1.05rem, 1.6vw, 1.25rem); }
.cs-glass .card-body { padding: 24px 20px; }
/* Per-card colours */
.cards .card.cc-navy { background: var(--navy); color: rgba(255, 255, 255, .88); }
.cards .card.cc-sand { background: var(--sand); color: var(--ink); }
.cards .card.cc-teal { background: #008080; color: rgba(255, 255, 255, .92); }
.cards .card.cc-white { background: #fff; color: var(--text); }
.cards .card.cc-glass { background: rgba(255, 255, 255, .6); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); color: var(--text); }
.cards .card.cc-teal-glass { background: rgba(0, 128, 128, .82); color: #fff; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.cards .card.cc-dark-glass { background: rgba(41, 41, 41, .86); color: rgba(255, 255, 255, .9); }
.cards .cc-navy h3, .cards .cc-dark-glass h3 { color: var(--sand); }
.cards .cc-teal h3, .cards .cc-teal-glass h3 { color: #fff; }
.cards .cc-sand h3, .cards .cc-white h3, .cards .cc-glass h3 { color: var(--navy); }
.cards .cc-sand .card-icon, .cards .cc-white .card-icon, .cards .cc-glass .card-icon { color: var(--navy); }
.cards .cc-sand .btn { background: var(--navy); border-color: var(--navy); color: #fff; }
.cards .cc-teal-glass .btn, .cards .cc-dark-glass .btn { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }
.cards .cc-teal-glass .btn:hover, .cards .cc-dark-glass .btn:hover { background: var(--amber); border-color: var(--amber); color: var(--ink); }
.cards .cc-teal-glass .rich ul li::marker, .cards .cc-dark-glass .rich ul li::marker { color: var(--peach); }
.cards .cc-white a:not(.btn), .cards .cc-glass a:not(.btn), .cards .cc-sand a:not(.btn) { color: var(--blue-text); }
/* Intro text with a photo beside it, above the cards */
.cards-lead { display: grid; grid-template-columns: 1.35fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: center; margin-bottom: clamp(32px, 5vw, 56px); }
.cards-lead .blk-head { margin: 0 0 18px; }
.cards-lead-img { margin: 0; }
.cards-lead-img img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; object-position: top; border-radius: 18px; box-shadow: var(--shadow-lg); }
/* Large photo with the cards overlapping it */
/* Photo filling the left of the section from top to bottom, with two cards over it */
.blk:has(.cards-side) { --pad: 0px; overflow-x: clip; }
.blk:has(.cards-side) > .wrap { max-width: none; padding: 0; }
.cards-side { min-height: clamp(560px, 50vw, 880px); padding: clamp(80px, 12vw, 190px) 0 clamp(100px, 11vw, 170px); }
.cards-side-img { position: absolute; top: 0; bottom: 0; left: max(clamp(76px, 7vw, 124px), calc((100% - 1140px) / 2 - 205px)); width: min(54%, 840px); margin: 0; overflow: hidden; border-radius: 0 0 clamp(90px, 15vw, 240px) 0; transition: translate .15s linear; }
.cards-side-img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: 0; box-shadow: none; aspect-ratio: auto; }
.cards-side .cards { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; column-gap: 11%; row-gap: 70px; width: 50.1%; margin: 0 0 0 43.5%; align-items: start; }
.cards-side .cards .card:hover { transform: none; box-shadow: none; }
.cards-side .cards .card { position: relative; overflow: visible; align-items: stretch; margin: 0; text-align: left; border: 0; border-radius: 10px; box-shadow: none; padding: clamp(22px, 2.6vw, 40px) clamp(20px, 2.4vw, 36px) clamp(26px, 2.8vw, 42px); }
.cards-side .card.cc-teal-glass { background: rgba(22, 140, 122, .9); }
.cards-side .card.cc-dark-glass { background: rgba(40, 40, 40, .96); }
.cards-side .card-body { display: block; }
.cards .cards-side .card-title, .cards-side .cards .card-title, .cards-side .card-title a { font: 400 clamp(1.15rem, 1.75vw, 1.7rem)/1.3 Arial, "Helvetica Neue", sans-serif; text-transform: none; letter-spacing: 0; color: #fff; transition: color .3s ease; text-decoration: none; }
.cards-side .card-title { margin: 0 0 1.1em; padding-bottom: 1em; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.cards-side .cards .card:hover .card-title, .cards-side .cards .card:hover .card-title a,
.cards-side .cards .card-title:hover, .cards-side .cards .card-title:hover a,
.blk .cards-side .card:focus-within .card-title, .blk .cards-side .card:focus-within .card-title a { color: #f2a93b !important; }
.cards-side .card ul { list-style: none; margin: 0; padding: 0; }
.cards-side .card li { position: relative; margin: 0 0 .45em; padding-left: 24px; font: 600 clamp(.85rem, 1.05vw, 1.05rem)/1.5 Arial, "Helvetica Neue", sans-serif; color: #fff; transition: transform .25s ease; }
.cards-side .card li::before { content: ""; position: absolute; left: 0; top: .42em; width: 8px; height: 9px; border: 1.5px solid currentColor; border-radius: 1px; }
.cards-side .card.cc-dark-glass li::before { color: #e8a33d; }
.cards-side .card li:hover { transform: translateX(4px); }
.cards-side .card-actions { position: absolute; top: 100%; right: clamp(-90px, -5vw, -50px); margin: 4px 0 0; }
.cards-side .card-actions .btn, .cards .cc-teal-glass .cards-side .btn { background: transparent; color: #2ec4b6; border: 1.5px solid #2ec4b6; border-radius: 30px; padding: 5px 14px; font: 500 .82rem/1.4 Arial, "Helvetica Neue", sans-serif; text-transform: none; letter-spacing: 0; white-space: nowrap; transition: background .25s, color .25s; }
.cards-side .card-actions .btn:hover { background: #2ec4b6; color: #fff; border-color: #2ec4b6; }
.cards-side .card-actions .btn::after { display: none; }
/* dotted teal circle on the corner of the second card */
.cards-side .card:nth-child(2)::after { content: ""; position: absolute; top: 6px; right: calc(-1 * clamp(48px, 6vw, 84px) + 4px); z-index: -1; width: clamp(48px, 6vw, 84px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(rgba(0, 0, 0, .22) 1.2px, transparent 1.6px) 0 0 / 8px 8px, #1d8b77; animation: dotBob 6s ease-in-out infinite; }
@keyframes dotBob { 50% { transform: translateY(8px); } }

/* ---------- Steps ---------- */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 28px; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); counter-reset: step; }
.steps.n-2 { --n: 2; } .steps.n-3 { --n: 3; } .steps.n-5 { --n: 5; }
.step { position: relative; text-align: center; padding: 0 6px; }
.step-num { display: grid; place-items: center; width: 74px; height: 74px; margin: 0 auto 18px; border-radius: 50%; background: var(--gold); color: var(--ink); font: 800 2rem/1 var(--display); box-shadow: 0 0 0 8px rgba(246, 142, 19, .18); position: relative; z-index: 1; }
.step:not(:last-child)::after { content: ""; position: absolute; top: 37px; left: calc(50% + 50px); right: calc(-50% + 50px); border-top: 2px dashed var(--sand); }
.step-img img { width: 100%; max-width: 240px; margin: 0 auto 18px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.step-title { text-transform: uppercase; letter-spacing: .05em; }
.on-dark .step-title { color: var(--peach); }

/* ---------- Team ---------- */
.team { display: grid; gap: 34px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); max-width: 1000px; margin: 0 auto; }
.team.n-1 { max-width: 420px; }
.person { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); color: var(--text); display: flex; flex-direction: column; transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.person:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.person-photo { overflow: hidden; }
.person-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; transition: transform .8s var(--ease); }
.person:hover .person-photo img { transform: scale(1.04); }
.person-body { padding: 24px 26px 28px; }
.person-name { margin: 0 0 .15em; }
.person-name a { color: var(--navy) !important; text-decoration: none; }
.person-role { font: 600 .9rem/1.4 var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--gold-text); margin-bottom: 12px; }
.person .link-arrow { color: var(--gold-text) !important; }
.team.layout-side { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.layout-side .person { display: grid; grid-template-columns: 1fr 1.05fr; border-radius: 0; box-shadow: none; background: linear-gradient(140deg, #fff 42%, #e5e5e5 80%); }
.layout-side .person:hover { transform: none; box-shadow: none; }
.layout-side .person-photo { position: relative; min-height: 440px; }
.layout-side .person-photo img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; }
.layout-side .person-body { padding: clamp(22px, 2.6vw, 34px); font-size: .95rem; }
.layout-side .person-name { font: 600 clamp(1.3rem, 2vw, 1.6rem)/1.2 var(--accent); text-transform: uppercase; letter-spacing: .03em; }
.layout-side .person-name a { color: #C9820F !important; }
.layout-side .person-role { text-transform: none; letter-spacing: 0; color: var(--navy); font-size: .92rem; }
.person-photo-btn { position: absolute; left: 50%; bottom: 20px; transform: translate(-50%, 12px); opacity: 0; transition: opacity .35s, transform .35s var(--ease); z-index: 1; }
.person:hover .person-photo-btn, .person-photo-btn:focus-visible { opacity: 1; transform: translate(-50%, 0); }
@media (hover: none) { .person-photo-btn { opacity: 1; transform: translate(-50%, 0); } }

/* ---------- Rotating headline ---------- */
.rotating { margin: 0; text-align: center; font: 800 clamp(1.6rem, 4.4vw, 3.2rem)/1.2 var(--display); text-transform: uppercase; letter-spacing: .04em; color: var(--navy); }
.rotating.size-medium { font-size: clamp(1.3rem, 3vw, 2.2rem); }
.on-dark .rotating { color: #fff; }
.rot-prefix { display: block; font: italic 600 .6em/1.2 var(--accent); text-transform: none; letter-spacing: .01em; color: var(--gold-text); margin-bottom: .2em; }
.on-dark .rot-prefix { color: var(--peach); }
.rot-words { display: inline-grid; vertical-align: top; perspective: 600px; max-width: 100%; }
.rot-word { grid-area: 1 / 1; color: var(--gold); opacity: 0; transform: rotateX(-90deg); transform-origin: 50% 0; transition: opacity .5s, transform .6s var(--ease); white-space: nowrap; }
.rot-word.is-on { opacity: 1; transform: none; }
.rot-word.is-out { opacity: 0; transform: rotateX(90deg); transform-origin: 50% 100%; }

/* Typed headline: "The ATKINSON Advantage  SUCCESS. SIMPLIFIED…" */
.typed { margin: 0; text-align: center; font: italic 600 clamp(1.7rem, 4.4vw, 3.2rem)/1.3 var(--accent); color: #0b4f5c; }
.typed.size-medium { font-size: clamp(1.4rem, 3.2vw, 2.3rem); }
.typed-words { display: inline-block; margin-left: .3em; color: var(--amber); font-style: normal; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.typed-caret { display: inline-block; width: 2px; height: .9em; margin-left: 3px; vertical-align: -.08em; background: currentColor; animation: caret 1s steps(1) infinite; }
@keyframes caret { 50% { opacity: 0; } }
.on-dark .typed { color: #fff; }

/* Words that fly in and stay, on a rounded photo band */
.cascade { text-align: center; position: relative; }
.cascade.has-band { isolation: isolate; overflow: hidden; border-radius: 999px; padding: clamp(44px, 7vw, 90px) clamp(28px, 8vw, 110px); background: var(--band) center / cover no-repeat; box-shadow: var(--shadow-lg); max-width: 1000px; margin: 0 auto; }
/* The photo band fills its whole section, edge to edge (no rounded pill) */
.blk:has(> .wrap > .cascade.has-band) { --pad: 0px; overflow: hidden; }
.blk:has(> .wrap > .cascade.has-band) > .wrap { max-width: none; padding: 0; }
.cascade.has-band { border-radius: 0; max-width: none; box-shadow: none; padding: clamp(70px, 9vw, 140px) clamp(20px, 6vw, 110px); }
.cascade.has-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0, 0, 0, .42); }
.cascade-title { font: italic 600 clamp(1.6rem, 3.6vw, 2.7rem)/1.2 var(--accent); color: var(--navy); margin: 0 0 .5em; text-transform: none; letter-spacing: .01em; }
.cascade-words { list-style: none; margin: 0; padding: 0; display: grid; gap: .25em; font: italic 500 clamp(1.25rem, 2.6vw, 1.9rem)/1.3 var(--accent); color: var(--navy); }
.cascade.has-band .cascade-title, .cascade.has-band .cascade-words, .on-dark .cascade-title, .on-dark .cascade-words { color: #fff; text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }

/* ---------- Quote ---------- */
.quote { margin: 0 auto; max-width: 860px; text-align: center; }
.quote blockquote { margin: 0; }
.quote blockquote p { font: italic 500 clamp(1.4rem, 3vw, 2.1rem)/1.45 var(--accent); color: var(--navy); }
.quote blockquote p::before { content: "“"; display: block; font: 700 4.5rem/0.6 var(--accent); color: var(--gold); margin-bottom: .2em; }
.on-dark .quote blockquote p { color: #fff; }
.quote figcaption { display: inline-flex; align-items: center; gap: 14px; text-align: left; font-family: var(--display); }
.quote-photo { width: 58px; height: 58px; border-radius: 50%; object-fit: cover; }

/* ---------- Call to action ---------- */
.cta { display: flex; align-items: center; justify-content: space-between; gap: 28px 48px; flex-wrap: wrap; }
.cta-copy { flex: 1 1 420px; }
.cta-copy p { margin: .8em 0 0; font-size: 1.1rem; }
.cta-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Columns ---------- */
.columns { display: grid; gap: clamp(24px, 4vw, 48px); grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); align-items: start; }
.columns.n-1 { --n: 1; max-width: 860px; margin: 0 auto; }
.columns.n-3 { --n: 3; } .columns.n-4 { --n: 4; }
.columns.n-2.ratio-wide-left { grid-template-columns: 3fr 2fr; }
.columns.n-2.ratio-wide-right { grid-template-columns: 2fr 3fr; }
.column-img img { width: 100%; border-radius: var(--radius); margin-bottom: 20px; }
.column-title { text-transform: uppercase; letter-spacing: .04em; }
.on-dark .column-title { color: var(--peach); }

/* ---------- FAQ ---------- */
.faq details { border-bottom: 1px solid var(--line); }
.on-dark .faq details { border-color: rgba(255, 255, 255, .15); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 44px 20px 0; position: relative; font: 700 1.15rem/1.4 var(--display); color: var(--navy); }
.on-dark .faq summary { color: #fff; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%); font: 400 1.8rem/1 var(--display); color: var(--gold); transition: transform .3s; }
.faq details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq details .rich { padding: 0 0 22px; animation: fadeUp .4s var(--ease); }

/* ---------- Logos ---------- */
.logos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: clamp(24px, 4vw, 56px); }
.logos li { flex: 0 1 180px; }
.logos img { max-height: 90px; width: auto; margin: 0 auto; object-fit: contain; filter: grayscale(1); opacity: .8; transition: filter .3s, opacity .3s, transform .3s; }
.on-dark .logos img { filter: grayscale(1) brightness(1.8); }
.logos a:hover img, .logos li:hover img { filter: none; opacity: 1; transform: scale(1.05); }
/* Moving strip: the list is shown twice and slides left forever; it pauses while the mouse is over it */
.logo-strip { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.logo-track { list-style: none; margin: 0; padding: 6px 0; display: flex; width: max-content; animation: logoScroll calc(var(--n, 8) * 2.5s) linear infinite; }
.logo-strip:hover .logo-track, .logo-strip:focus-within .logo-track { animation-play-state: paused; }
.logo-track li { flex: 0 0 auto; margin-right: clamp(14px, 2vw, 26px); }
.logo-track img { height: clamp(84px, 9vw, 118px); width: auto; max-width: 220px; object-fit: contain; border-radius: 4px; background: #fff; transition: transform .3s var(--ease); }
.logo-track a:hover img, .logo-track li:hover img { transform: scale(1.06); }
@keyframes logoScroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  .logo-strip { -webkit-mask-image: none; mask-image: none; }
  .logo-track { animation: none !important; width: auto; flex-wrap: wrap; justify-content: center; gap: 16px; }
  .logo-track li { margin: 0; }
  .logo-track li[aria-hidden] { display: none; }
}

/* ---------- Posts ---------- */
.post-grid { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.post-card { background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; color: var(--text); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.post-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.post-card-img { display: block; overflow: hidden; aspect-ratio: 16 / 10; background: var(--navy); }
.post-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-card:hover .post-card-img img { transform: scale(1.05); }
.post-card-ph { display: grid; place-items: center; height: 100%; font: 800 4rem var(--display); color: var(--sand); background: linear-gradient(135deg, var(--navy), var(--teal)); }
.post-card-body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.post-card-body h3 { font-size: 1.3rem; }
.post-card-body h3 a { color: var(--navy) !important; text-decoration: none; }
.post-card-body h3 a:hover { color: var(--gold-text) !important; }
.post-card-body p:not(.post-meta) { font-size: .98rem; flex: 1; }
.post-card .link-arrow { color: var(--gold-text) !important; }
.post-meta { font: 600 .82rem var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .6em; }
.page-banner .post-meta { color: rgba(255, 255, 255, .75); margin: 1em 0 0; }
.post-rows { display: grid; gap: 28px; max-width: 1100px; margin: 0 auto; }
.post-row { display: grid; grid-template-columns: minmax(220px, 38%) 1fr; background: #fff; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); color: var(--text); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.post-row:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.post-row-img { display: block; overflow: hidden; background: var(--navy); min-height: 230px; }
.post-row-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-row:hover .post-row-img img { transform: scale(1.05); }
.post-row-body { padding: clamp(22px, 3vw, 36px); display: flex; flex-direction: column; justify-content: center; }
.post-row-body h3 { font-size: clamp(1.3rem, 2.2vw, 1.65rem); }
.post-row-body h3 a { color: var(--navy) !important; text-decoration: none; }
.post-row-body h3 a:hover { color: var(--gold-text) !important; }
.post-row .link-arrow { color: var(--gold-text) !important; align-self: flex-start; }
.post-list { list-style: none; margin: 0 auto; padding: 0; max-width: 860px; display: grid; gap: 12px; }
.post-list a { display: flex; align-items: center; gap: 20px; padding: 14px 18px; border-radius: var(--radius); background: rgba(255, 255, 255, .06); border: 1px solid rgba(127, 127, 127, .2); text-decoration: none; transition: background .25s, transform .25s; }
.post-list a:hover { transform: translateX(6px); background: rgba(246, 142, 19, .1); }
.post-date { display: grid; place-items: center; flex: 0 0 64px; height: 64px; border-radius: 8px; background: var(--gold); color: var(--ink); font: 700 .8rem/1 var(--display); text-transform: uppercase; }
.post-date b { font-size: 1.6rem; line-height: 1; }
.post-list-title { font: 700 1.15rem/1.35 var(--display); }
.post-list-wrap { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.post-list-wrap .post-list { margin: 0; max-width: none; }
.post-list-img { margin: 0; }
.post-list-img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; clip-path: polygon(0 0, 80% 0, 100% 50%, 80% 100%, 0 100%, 20% 50%); }
.pager { display: flex; justify-content: center; gap: 8px; margin-top: 40px; }
.pager a { display: grid; place-items: center; min-width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); text-decoration: none; font-family: var(--display); font-weight: 700; }
.pager a[aria-current] { background: var(--navy); color: #fff; border-color: var(--navy); }
.post-hero-img { margin: 0 0 32px; }
.post-hero-img img { width: 100%; border-radius: var(--radius); }
.post-body { font-size: 1.1rem; }
.post-share { display: flex; align-items: center; gap: 10px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); font-family: var(--display); font-weight: 700; }
.post-share a, .post-share .share-more { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--cream); color: var(--navy); text-decoration: none; }
.post-share .share-more { border: 0; cursor: pointer; font-size: 1rem; }
.post-share .share-more[hidden] { display: none; }
.post-share a:hover, .post-share .share-more:hover { background: var(--gold); color: var(--ink); }

/* ---------- Contact ---------- */
.contact-blk { display: grid; grid-template-columns: 2fr 3fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.contact-blk.form-only { grid-template-columns: 1fr; max-width: 760px; margin: 0 auto; }
.contact-side .blk-head { margin: 0 0 20px; }
/* Photo beside the form, with the heading next to it ("Let's talk...") */
.contact-blk.has-photo-side { align-items: stretch; }
.has-photo-side .contact-side { position: relative; min-height: 380px; display: flex; flex-direction: column; justify-content: center; padding-left: 55%; background: var(--side-photo) left bottom / contain no-repeat; }
.has-photo-side .contact-side .blk-title { font: italic 600 clamp(2rem, 4vw, 3rem)/1.1 var(--accent); text-transform: none; letter-spacing: 0; color: #fff; }
.has-photo-side .contact-side .blk-title::after { display: none; }
.has-photo-side .contact-form-wrap { align-self: center; }
.contact-lines { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 14px; font-size: 1.1rem; }
.contact-lines li { display: flex; gap: 14px; align-items: flex-start; }
.contact-lines i { flex: 0 0 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: var(--ink); font-size: 1rem; }
.contact-lines a, .contact-lines span { padding-top: 7px; word-break: break-word; }
.contact-form-wrap { background: #fff; color: var(--text); border-radius: 14px; padding: clamp(22px, 4vw, 38px); box-shadow: var(--shadow-lg); }
.contact-form label { display: block; font: 700 .9rem/1.3 var(--display); letter-spacing: .04em; color: var(--slate); margin-bottom: 16px; }
.req { color: var(--gold-text); }
.contact-form input, .contact-form textarea, .newsletter-form input { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; font: 400 1rem/1.4 var(--serif); color: var(--text); background: #fbfaf7; border: 1px solid #d8d2c6; border-radius: 8px; transition: border-color .2s, box-shadow .2s, background .2s; }
.contact-form input:focus, .contact-form textarea:focus, .newsletter-form input:focus { outline: none; background: #fff; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(246, 142, 19, .18); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field-error { display: block; color: var(--error); font-weight: 400; font-size: .9rem; margin-top: 4px; }
.form-note { font-size: .85rem; color: var(--muted); }
.notice { padding: 12px 16px; border-radius: 8px; margin-bottom: 18px; font-family: var(--display); }
.notice-success { background: #e8f2ea; color: var(--ok); }
.notice-error { background: #f7e7e4; color: var(--error); }
.notice-info { background: #e9eef5; color: var(--navy); }

/* ---------- Newsletter ---------- */
.newsletter { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; align-items: center; }
.newsletter p { margin: .7em 0 0; }
.newsletter-form { display: grid; gap: 12px; }
.nl-row { display: flex; flex-wrap: wrap; gap: 10px; }
.newsletter-form .nl-row input { flex: 1 1 240px; margin: 0; min-height: 54px; border-radius: 999px; padding: 12px 22px; }
.newsletter-form .btn { min-height: 54px; }
.nl-consent { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; line-height: 1.5; cursor: pointer; }
.nl-consent input { margin-top: 4px; width: 17px; height: 17px; flex: 0 0 auto; accent-color: var(--gold); }
.newsletter.has-logo { grid-template-columns: 1fr 1fr; gap: 18px clamp(28px, 5vw, 72px); }
.newsletter.has-logo .nl-copy { text-align: center; }
.newsletter.has-logo .newsletter-form { grid-column: 1 / -1; }
.nl-logo { margin: 0; background: #fff; display: grid; place-items: center; padding: clamp(12px, 1.8vw, 24px) clamp(16px, 2.4vw, 32px); min-height: clamp(90px, 10vw, 150px); }
.nl-logo img { width: 100%; max-width: 300px; max-height: 105px; object-fit: contain; }
/* Newsletter in a box on a coloured band (as on the original: wine-red sides, deep teal middle) */
.blk-newsletter.has-panel { --pad: 0px; }
.blk-newsletter.has-panel > .wrap { max-width: none; padding: 0 clamp(14px, 9vw, 180px); }
.blk-newsletter .panel { border-radius: 0; box-shadow: none; padding: clamp(24px, 3.2vw, 44px) clamp(20px, 4vw, 60px) clamp(20px, 2.4vw, 32px); }
.blk-newsletter.has-panel .blk-title { color: #fff; font: italic 300 clamp(1.75rem, 3.6vw, 2.8rem)/1.15 var(--display); text-transform: none; letter-spacing: 0; }
.blk-newsletter.has-panel .blk-title::after { display: none; }
.blk-newsletter.has-panel .nl-copy p { font: italic 400 1.05rem/1.4 var(--accent); color: #fff; margin-top: .5em; }
.blk-newsletter.has-panel .nl-row { gap: 0; }
.blk-newsletter.has-panel .nl-row input { border-radius: 4px 0 0 4px; background: #fff; border: 0; min-height: 42px; padding: 8px 18px; font-size: .95rem; }
.blk-newsletter.has-panel .nl-btn { border-radius: 0 4px 4px 0; background: #AB1642; border-color: #AB1642; color: #fff; min-height: 42px; padding: 8px 22px; font: italic 700 1rem/1 var(--accent); text-transform: none; letter-spacing: 0; }
.blk-newsletter.has-panel .nl-btn:hover { background: #c41b4d; border-color: #c41b4d; transform: none; }
.blk-newsletter.has-panel .nl-consent { color: rgba(255, 255, 255, .85); justify-content: center; font-size: .82rem; }
.bg-wine.blk-newsletter { overflow: hidden; }
.bg-wine.blk-newsletter::before { content: ""; position: absolute; z-index: -1; right: -12vw; top: -40%; width: 34vw; height: 80%; border-radius: 50%; background: #B00020; }
.nl-msg { flex-basis: 100%; margin: 4px 0 0; font-family: var(--display); font-weight: 700; }
.nl-error { color: #ffb3a6; }
.bg-white .nl-error, .bg-cream .nl-error, .bg-sand .nl-error { color: var(--error); }
.nl-ok { color: var(--ok); }
.on-dark .nl-ok { color: #9fe0b0; }

/* ---------- Image / video ---------- */
.single-img { margin: 0 auto; }
.single-img.w-contained { max-width: 1000px; }
.single-img.w-small { max-width: 560px; }
.single-img.w-icon { max-width: 120px; }
.single-img.w-icon img { border-radius: 0; }
.single-img img { width: 100%; border-radius: var(--radius); }
.single-img.w-full { max-width: none; margin: 0 -20px; }
.single-img.w-full img { border-radius: 0; }
.single-img figcaption, .video figcaption { text-align: center; color: var(--muted); font-size: .95rem; margin-top: 10px; }
.video { margin: 0 auto; max-width: 960px; }
.video-frame { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-lg); background: #000; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: rgba(255, 255, 255, .72); font-size: .98rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 40px; padding-top: 72px; padding-bottom: 56px; }
.footer-logo { max-height: 64px; width: auto; margin-bottom: 18px; }
.footer-name { display: block; font: 800 1.4rem var(--display); letter-spacing: .06em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.footer-title { font: 700 1rem var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--sand); margin: 0 0 18px; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.footer-col li { margin-bottom: 9px; }
.site-footer a { color: rgba(255, 255, 255, .8); text-decoration: none; }
.site-footer a:hover { color: var(--peach); }
.footer-contact li { display: flex; gap: 12px; align-items: baseline; }
.footer-contact i { color: var(--amber); width: 16px; }
.footer-contact + .btn { margin-top: 18px; }
.site-footer .socials { margin-top: 18px; gap: 8px; }
.site-footer .socials a { border: 1px solid rgba(255, 255, 255, .2); }
.site-footer .socials a:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); font-size: .88rem; }
.footer-bottom-inner { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 20px; padding-bottom: 20px; }

/* ---------- Search ---------- */
.hdr-search { position: relative; }
.search-toggle { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--navy); cursor: pointer; font-size: 1rem; transition: background .2s, color .2s, border-color .2s; }
.search-toggle:hover, .search-toggle[aria-expanded="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.search-panel { position: absolute; right: 0; top: calc(100% + 14px); width: min(420px, 80vw); display: flex; gap: 8px; padding: 12px; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); border-top: 3px solid var(--gold); animation: fadeUp .25s var(--ease); z-index: 5; }
.search-panel input, .nav-search input, .search-big input { flex: 1; min-width: 0; padding: 10px 14px; font: 400 1rem/1.4 var(--serif); color: var(--text); background: #fbfaf7; border: 1px solid #d8d2c6; border-radius: 999px; }
.search-panel input:focus, .nav-search input:focus, .search-big input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(246, 142, 19, .18); background: #fff; }
.nav-search { display: none; }
.search-big { display: flex; gap: 10px; margin-top: 22px; max-width: 640px; }
.search-big input { padding: 14px 20px; font-size: 1.05rem; }
.search-results { max-width: 860px; margin: 0 auto; }
.search-count { font-size: 1.3rem; text-transform: none; letter-spacing: 0; margin-bottom: 18px; }
.search-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.search-list li { background: #fff; border-radius: var(--radius); padding: 20px 24px; box-shadow: var(--shadow); }
.search-list h3 { margin: 0 0 .35em; font-size: 1.3rem; }
.search-list h3 a { color: var(--navy); text-decoration: none; }
.search-list h3 a:hover { color: var(--gold-text); }
.search-list p:last-child { margin: 0; }
.search-list mark, .search-results mark { background: rgba(245, 166, 36, .32); color: inherit; padding: 0 2px; border-radius: 3px; }

/* ---------- Visitor accounts ---------- */
.tb-account a { font-weight: 700; }
.tb-sep { margin: 0 8px; opacity: .5; }
.nav-account { display: none; }
.auth-wrap { background: var(--cream); padding: clamp(40px, 7vw, 90px) 20px; }
.auth-card { max-width: 460px; margin: 0 auto; background: #fff; border-radius: 14px; box-shadow: var(--shadow-lg); padding: clamp(24px, 5vw, 44px); border-top: 4px solid var(--gold); }
.auth-card.wide { max-width: 880px; }
.auth-card h1 { font-size: clamp(1.6rem, 3.4vw, 2.1rem); text-transform: uppercase; letter-spacing: .03em; }
.auth-card h2 { font-size: 1.2rem; text-transform: uppercase; letter-spacing: .05em; }
.btn-block { width: 100%; margin-top: 6px; }
.btn-ghost.btn-block { margin-top: 10px; }
.auth-links { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 20px 0 0; font-size: .95rem; }
.check-line { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 500 !important; }
.check-line input { width: auto !important; margin-top: 4px !important; }
.account-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin: 20px 0; }
.account-box { border: 1px solid var(--line); border-radius: 10px; padding: 22px; }
.inline-logout { margin: 10px 0 24px; }
.danger-zone { border-top: 1px solid var(--line); padding-top: 14px; }
.danger-zone summary { cursor: pointer; color: var(--error); font-family: var(--display); font-weight: 700; }
.btn-danger { background: #fff; color: var(--error); border-color: var(--error); }
.btn-danger:hover { background: var(--error); color: #fff; border-color: var(--error); box-shadow: none; }

/* ---------- Floating buttons ---------- */
.whatsapp, .to-top { position: fixed; bottom: 20px; z-index: 40; display: grid; place-items: center; border-radius: 50%; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); transition: transform .25s, opacity .3s; }
.whatsapp { left: 20px; width: 58px; height: 58px; background: #25D366; color: #fff; font-size: 1.9rem; text-decoration: none; }
.whatsapp:hover { transform: scale(1.08); color: #fff; }
.to-top { right: 20px; width: 46px; height: 46px; border: 0; background: var(--navy); color: #fff; cursor: pointer; }
.to-top:hover { background: var(--gold); color: var(--ink); }

/* ---------- Admin helpers on public pages ---------- */
.preview-bar { background: #fff4d6; color: #6b4e00; text-align: center; padding: 10px; font: 600 .95rem var(--display); }
.edit-fab { position: fixed; right: 20px; bottom: 80px; z-index: 45; background: var(--ink); color: #fff; text-decoration: none; padding: 10px 18px; border-radius: 999px; font: 700 .9rem var(--display); box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.edit-fab:hover { color: var(--ink); background: var(--amber); }

/* ---------- Scroll animations ---------- */
/* Each section picks an entrance (fade, left, right, zoom, tilt); boxes inside it follow one after another. */
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.js [data-anim] .blk-head, .js [data-anim] .blk-intro, .js [data-anim] .text-wrap, .js [data-anim] .split-copy,
.js [data-anim] [data-anim-child], .js [data-anim] .rotating, .js [data-anim] .typed, .js [data-anim] .cascade-title, .js [data-anim] .quote, .js [data-anim] .cta,
.js [data-anim] .contact-blk, .js [data-anim] .newsletter, .js [data-anim] .single-img, .js [data-anim] .video, .js [data-anim] .cards-lead-copy, .js [data-anim] .cards-side-img {
  opacity: 0; transform: translateY(40px);
  transition: opacity 1s var(--ease), transform 1.1s var(--ease);
  transition-delay: calc(var(--i, 0) * .22s);
}
.js [data-anim="left"] :is(.blk-head, .blk-intro, .text-wrap, .split-copy, [data-anim-child], .rotating, .typed, .cascade-title, .quote, .cta, .contact-blk, .newsletter, .single-img, .video, .cards-lead-copy, .cards-side-img) { transform: translateX(-90px); }
.js [data-anim="right"] :is(.blk-head, .blk-intro, .text-wrap, .split-copy, [data-anim-child], .rotating, .typed, .cascade-title, .quote, .cta, .contact-blk, .newsletter, .single-img, .video, .cards-lead-copy, .cards-side-img) { transform: translateX(90px); }
.js [data-anim="zoom"] :is([data-anim-child], .single-img, .cascade-title, .typed) { transform: scale(.82); }
.js [data-anim="tilt"] :is([data-anim-child], .cascade-title, .typed, .single-img) { transform: rotate(-12deg) translate(-30px, -30px); transform-origin: 0 100%; }
.js [data-anim] .split-media[data-anim-child] { transform: translateX(-40px); }
.js [data-anim] .img-right .split-media[data-anim-child] { transform: translateX(40px); }
.js [data-anim].in-view .split-media[data-anim-child], .js [data-anim].in-view .img-right .split-media[data-anim-child] { transform: none; }
.js [data-anim].in-view :is(.blk-head, .blk-intro, .text-wrap, .split-copy, [data-anim-child], .rotating, .typed, .cascade-title, .quote, .cta, .contact-blk, .newsletter, .single-img, .video, .cards-lead-copy, .cards-side-img) {
  opacity: 1; transform: none;
}
.js [data-anim] .blk-intro { --i: 1; }
/* Cascade words fly in from different sides and stay */
.js [data-anim] .cascade-words li { opacity: 0; transition: opacity 1.2s var(--ease), transform 1.4s var(--ease); transition-delay: calc(.4s + var(--i, 0) * .3s); }
.js [data-anim] .cascade-words .cw-0 { transform: translateY(-70px); }
.js [data-anim] .cascade-words .cw-1 { transform: translateX(-120px); }
.js [data-anim] .cascade-words .cw-2 { transform: translateX(120px); }
.js [data-anim] .cascade-words .cw-3 { transform: translateY(70px); }
.js [data-anim].in-view .cascade-words li { opacity: 1; transform: none; }
/* Gentle swing for a band of words */
.js [data-anim="tilt"].in-view .cascade.has-band { animation: none; }
@keyframes swing { 20% { transform: rotate(4deg); } 40% { transform: rotate(-3deg); } 60% { transform: rotate(1.5deg); } 80% { transform: rotate(-.8deg); } to { transform: none; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
  .hero-bg { transform: none !important; }
  .orbit-dot { transform: rotate(var(--a, 0deg)) !important; }
  .js [data-anim] .orbit-swing, .js [data-anim].in-view .orbit-swing { transform: none; animation: none; }
  .deco-dot { animation: none !important; }
}

/* =====================================================================
   Tablet & mobile
   ===================================================================== */
@media (max-width: 1100px) {
  .menu > li > a { padding: 10px 9px; font-size: .86rem; letter-spacing: .04em; }
  .nav-cta.btn { padding: 9px 16px; font-size: .8rem; }
  .glow-btn { font-size: 1.1rem; padding: 10px 14px; }
}

@media (max-width: 1024px) {
  :root { --header-h: 70px; }
  /* backdrop-filter would trap the fixed slide-out menu inside the header */
  .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; }
  .brand-logo { height: 48px; }
  .nav-toggle { display: block; }
  .site-nav { position: fixed; top: 0; right: 0; bottom: 0; z-index: 70; width: min(380px, 88vw); flex-direction: column; align-items: stretch; gap: 0; background: #fff; overflow-y: auto; overscroll-behavior: contain; transform: translateX(100%); visibility: hidden; transition: transform .4s var(--ease), visibility .4s; box-shadow: -20px 0 60px rgba(0, 0, 0, .2); padding-bottom: 28px; }
  .nav-open .site-nav { transform: none; visibility: visible; }
  .nav-head { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--line); background: var(--navy); color: #fff; }
  .nav-head-title { font: 700 1rem var(--display); letter-spacing: .14em; text-transform: uppercase; }
  .nav-close { background: none; border: 0; color: #fff; font-size: 1.5rem; width: 44px; height: 44px; cursor: pointer; }
  .menu { flex-direction: column; align-items: stretch; padding: 8px 0; }
  .menu > li { flex-wrap: wrap; border-bottom: 1px solid var(--line); }
  .menu > li > a { flex: 1; padding: 16px 22px; font-size: 1rem; }
  .menu > li > a::after, .has-sub > a::before { display: none; }
  .has-sub > a { padding-right: 8px !important; }
  .sub-toggle { display: grid; place-items: center; width: 56px; align-self: stretch; background: none; border: 0; border-left: 1px solid var(--line); color: var(--navy); cursor: pointer; }
  .sub-toggle i { transition: transform .3s; }
  .sub-open > .sub-toggle i { transform: rotate(180deg); }
  .submenu { position: static; flex-basis: 100%; min-width: 0; padding: 0; box-shadow: none; border: 0; border-radius: 0; background: var(--cream); opacity: 1; visibility: visible; transform: none; display: none; }
  .sub-open > .submenu { display: block; animation: fadeUp .3s var(--ease); }
  .menu > li:hover > .submenu { transform: none; }
  .submenu a { padding: 13px 22px 13px 38px; font-size: 1rem; }
  .submenu a:hover { padding-left: 42px; }
  .nav-cta { margin: 22px 22px 0; }
  .glow-btn { display: flex; margin: 22px 22px 0; font-size: 1.3rem; padding: 14px; }
  .hdr-search { display: none; }
  .nav-search { display: flex; gap: 8px; padding: 16px 20px 6px; }
  .nav-search button { flex: 0 0 46px; height: 46px; border-radius: 50%; border: 0; background: var(--gold); color: var(--ink); cursor: pointer; font-size: 1rem; }
  .nav-contact { display: grid; gap: 12px; padding: 22px; font-family: var(--display); }
  .nav-account { display: grid; gap: 4px; padding: 18px 22px 0; font-family: var(--display); font-weight: 700; }
  .nav-account a { color: var(--navy); text-decoration: none; padding: 6px 0; display: flex; gap: 12px; align-items: center; }
  .nav-account i { color: var(--gold); width: 18px; }
  .nav-contact a { color: var(--slate); text-decoration: none; display: flex; gap: 12px; align-items: center; }
  .nav-contact i { color: var(--gold); width: 18px; }
  .nav-open { overflow: hidden; }
  .nav-open .site-header { z-index: 80; }

  .split { grid-template-columns: 1fr; }
  .split.img-right .split-media { order: 0; }
  .split-media { max-width: 560px; margin: 0 auto 8px; width: 100%; }
  .cards.cols-4 { --cols: 2; }
  .cards.cols-3 { --cols: 2; }
  .steps { --n: 2 !important; row-gap: 40px; }
  .step::after { display: none; }
  .columns.n-3, .columns.n-4 { --n: 2; }
  .columns.n-2.ratio-wide-left, .columns.n-2.ratio-wide-right { grid-template-columns: 1fr 1fr; }
  .contact-blk, .newsletter { grid-template-columns: 1fr; }
  .newsletter.has-logo { grid-template-columns: 1fr; }
  .newsletter.has-logo .nl-logo { width: 100%; max-width: none; justify-self: stretch; box-sizing: border-box; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .team.layout-side { grid-template-columns: 1fr; max-width: 820px; gap: 24px; }
  .cards-side { min-height: 0; padding: 0 0 70px; }
  .cards-side-img { position: relative; left: 0; width: 100%; height: 72vw; border-radius: 0 0 clamp(70px, 20vw, 160px) 0; }
  .cards-side .cards { width: auto; margin: -90px 20px 0; column-gap: 24px; }
  .cards-side .card-actions { right: 0; }
  .cards-side .cards .card { padding: 26px 24px 30px; }
  .post-list-wrap { grid-template-columns: 1fr; }
  .post-list-img { max-width: 520px; }
}

@media (max-width: 720px) {
  body { font-size: 1rem; }
  .topbar-inner { justify-content: center; min-height: 38px; }
  .topbar .socials { display: none; }
  .topbar-contact { gap: 16px; font-size: .85rem; }
  .topbar .tb-account { display: none; }
  .topbar .tb-account.tb-me { display: block; }
  .topbar-contact a { white-space: nowrap; }
  .tb-me .me-name { display: none; }
  .topbar-contact li:nth-child(2) a { max-width: 52vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; vertical-align: bottom; }
  .hero-large, .hero-medium { min-height: 520px; }
  .hero-slide::after { background: linear-gradient(180deg, rgba(6, 30, 40, .35) 0%, rgba(6, 30, 40, .8) 55%, rgba(6, 30, 40, .92) 100%); }
  /* Bright slides on phones: photo on top, text underneath (so text never covers a face) */
  .hero-slide.m-stack.tone-light { flex-direction: column; align-items: stretch; justify-content: flex-start; background: #fbfaf7; }
  .hero-slide.m-stack.tone-light::after { display: none; }
  .m-stack.tone-light .hero-bg { position: relative; inset: auto; flex: 0 0 auto; height: 58vw; min-height: 230px; max-height: 360px; }
  .tone-light.focus-right .hero-bg { background-position: 80% 18%; }
  .tone-light.focus-left .hero-bg { background-position: 20% 18%; }
  .tone-light.focus-center .hero-bg { background-position: 50% 18%; }
  .m-stack.tone-light .hero-inner { align-self: stretch; padding-top: 26px; padding-bottom: 72px; }
  .hero:has(.m-stack) { min-height: 0; }
  .hero-inner { padding-top: 120px; padding-bottom: 76px; align-self: flex-end; }
  .hero-slide { align-items: flex-end; }
  .hero .btn-lg { width: 100%; }
  .cards.cols-2, .cards.cols-3, .cards.cols-4 { --cols: 1; }
  .card.has-photo { min-height: 300px; }
  .steps { --n: 1 !important; }
  .columns, .columns.n-2.ratio-wide-left, .columns.n-2.ratio-wide-right { grid-template-columns: 1fr !important; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .account-grid { grid-template-columns: 1fr; }
  .search-big { flex-direction: column; }
  .shape-rounded::before { inset: 14px -10px -14px 10px; }
  .img-right .shape-rounded::before { inset: 14px 10px -14px -10px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding-top: 56px; }
  .cta { text-align: left; }
  .cta-actions, .cta-actions .btn { width: 100%; }
  .post-list a { gap: 14px; padding: 12px; }
  .post-row { grid-template-columns: 1fr; }
  .post-row-img { min-height: 0; aspect-ratio: 16 / 9; }
  .post-date { flex-basis: 56px; height: 56px; }
  .single-img.w-full { margin: 0 -20px; }
  .whatsapp { width: 52px; height: 52px; font-size: 1.7rem; left: 14px; bottom: 14px; }
  .to-top { right: 14px; bottom: 14px; }
  .edit-fab { bottom: 72px; right: 14px; }
  .logos li { flex-basis: 40%; }
  .rot-word { white-space: normal; }
  .orbit-wrap { flex-direction: column; align-items: stretch; min-height: 0; }
  .orbit-wrap.img-right .orbit-media, .orbit-media { width: min(240px, 60%); margin: 70px auto 40px 8%; }
  .orbit-media .deco-panel { right: -60%; }
  .orbit, .orbit-wrap.img-right .orbit { position: relative; left: auto; top: auto; width: 100%; height: 108vw; }
  .orbit-swing { left: 50%; top: 50%; }
  .orbit-ring.r1 { width: 54vw; } .orbit-ring.r2 { width: 76vw; } .orbit-ring.r3 { width: 98vw; } .orbit-ring.r4 { width: 130vw; }
  .orbit-copy { width: 52vw; }
  .decor-backdrop { grid-template-columns: 1fr !important; }
  .decor-backdrop .split-media { justify-self: center !important; margin: 50px auto 40px; order: 2 !important; }
  .decor-backdrop .deco-panel { top: -8%; bottom: -10%; right: -6%; }
  .decor-backdrop .split-media { width: min(300px, 80%); }
  .has-photo-side .contact-side { min-height: 0; padding: 230px 0 0; background-size: auto 220px; background-position: left top; }
  .tab-list button { flex: 1 1 auto; }
  .blk-newsletter.has-panel .nl-row { gap: 8px; }
  .blk-newsletter.has-panel .nl-row input, .blk-newsletter.has-panel .nl-btn { border-radius: 4px; flex-basis: 100%; }
  .cards-lead { grid-template-columns: 1fr; }
  .cards-lead-img { max-width: 380px; }
  .cards-side .cards { grid-template-columns: 1fr; margin: -60px 16px 0; }
  .cards-side-img { height: 96vw; }
  .layout-side .person { grid-template-columns: 1fr; }
  .layout-side .person-photo { min-height: 0; aspect-ratio: 4 / 4.2; }
  .cascade.has-band { padding: 56px 20px; }
  .typed-words { white-space: normal; display: block; margin: .15em 0 0; }
  .panel { border-radius: 14px; }
  .panel-blush { border-radius: 36px; }
  .js [data-anim="left"] :is([data-anim-child], .blk-head, .text-wrap), .js [data-anim="right"] :is([data-anim-child], .blk-head, .text-wrap) { transform: translateX(0) translateY(40px); }
  .rotating { overflow-wrap: anywhere; }
  .blk-head { margin-bottom: 26px; }
}

/* ----- Article categories ----- */
.post-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 24px; max-width: 1100px; margin: 0 auto clamp(24px, 4vw, 40px); }
.cat-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 10px; margin: 0; flex: 1 1 520px; }
.post-sort { margin: 0; flex: 0 0 auto; }
.post-sort label { display: flex; align-items: center; gap: 8px; margin: 0; font: 600 .85rem/1 Arial, sans-serif; color: var(--navy); text-transform: uppercase; letter-spacing: .06em; }
.post-sort select { padding: 8px 34px 8px 14px; border: 1.5px solid rgba(23, 41, 72, .25); border-radius: 999px; background: #fff; font: 600 .9rem/1.2 Arial, sans-serif; color: var(--navy); cursor: pointer; text-transform: none; letter-spacing: 0; }
.post-sort select:focus { outline: 2px solid var(--gold); outline-offset: 2px; }
.on-dark .post-sort label { color: #fff; }
.cat-filter a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 16px; border: 1.5px solid rgba(23, 41, 72, .25); border-radius: 999px; font: 600 .9rem/1.2 var(--sans, Arial), sans-serif; color: var(--navy); text-decoration: none; background: rgba(255, 255, 255, .6); transition: background .25s, color .25s, border-color .25s; }
.cat-filter a:hover { border-color: var(--gold); color: var(--gold-text, #9a5b00); }
.cat-filter a[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: #fff; }
.cat-count { font-size: .75em; font-weight: 700; opacity: .65; }
.on-dark .cat-filter a { color: #fff; border-color: rgba(255, 255, 255, .35); background: transparent; }
.on-dark .cat-filter a[aria-current="page"] { background: #fff; color: var(--navy); }
.cat-intro { max-width: 760px; margin: -10px auto clamp(24px, 4vw, 40px); text-align: center; }
.cat-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.cat-tag { display: inline-block; padding: 2px 10px; border-radius: 999px; background: rgba(0, 128, 128, .1); color: #0b6b63; font: 700 .72rem/1.6 var(--sans, Arial), sans-serif; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.cat-tag:hover { background: #0b6b63; color: #fff; }
.post-cats { justify-content: flex-start; margin-top: 12px; }
.post-banner .cat-tag { background: rgba(255, 255, 255, .16); color: #fff; }
.post-banner .cat-tag:hover { background: #fff; color: var(--navy); }

/* ----- Signed-in account menu with profile photo ----- */
.avatar { display: inline-block; flex: none; border-radius: 50%; object-fit: cover; background: #e9eef5; }
.avatar-ini { display: inline-grid; place-items: center; font: 700 1em/1 var(--display); color: #fff; background: linear-gradient(135deg, var(--navy), #0b6b63); letter-spacing: .02em; }
.tb-me { position: relative; }
.me-menu { position: relative; }
.me-menu summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; padding: 3px 4px; border-radius: 999px; color: #fff; font-weight: 700; user-select: none; }
.me-menu summary::-webkit-details-marker { display: none; }
.me-menu summary:hover .avatar, .me-menu[open] summary .avatar { box-shadow: 0 0 0 2px var(--amber); }
.me-menu summary:focus-visible { outline: 2px solid var(--amber); outline-offset: 2px; }
.me-menu .avatar { box-shadow: 0 0 0 2px rgba(255, 255, 255, .35); transition: box-shadow .2s; }
.me-caret { font-size: .65rem; opacity: .8; transition: transform .2s; margin: 0 !important; color: inherit !important; }
.me-menu[open] .me-caret { transform: rotate(180deg); }
.me-pop { position: absolute; right: 0; top: calc(100% + 10px); z-index: 1200; width: 264px; padding: 8px; background: #fff; color: var(--text); border-radius: 14px; box-shadow: 0 18px 50px rgba(10, 20, 40, .22); font: 500 .95rem/1.3 var(--display); animation: mePop .18s ease-out; }
@keyframes mePop { from { opacity: 0; transform: translateY(-6px); } }
.me-pop::before { content: ""; position: absolute; right: 18px; top: -6px; width: 12px; height: 12px; background: #fff; transform: rotate(45deg); }
.me-head { display: flex; align-items: center; gap: 12px; padding: 10px 10px 12px; margin-bottom: 6px; border-bottom: 1px solid #eceae4; }
.me-head strong { display: block; color: var(--navy); font-size: 1rem; }
.me-head small { display: block; color: #6b6f78; font-size: .8rem; overflow-wrap: anywhere; margin-top: 2px; }
.me-head .me-role { display: block; margin-top: 3px; color: var(--gold-text); font-weight: 700; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.me-pop a, .me-pop button { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px; border: 0; border-radius: 8px; background: none; color: var(--navy) !important; text-decoration: none; font: inherit; text-align: left; cursor: pointer; }
.me-pop a:hover, .me-pop button:hover, .me-pop a:focus-visible, .me-pop button:focus-visible { background: #f4f1ea; color: var(--gold-text) !important; outline: none; }
.me-pop i { width: 18px; text-align: center; color: var(--gold) !important; margin: 0 !important; }
.me-pop form { margin: 4px 0 0; padding-top: 4px; border-top: 1px solid #eceae4; }
.nav-me { align-items: center; }
.nav-me > .avatar { margin-bottom: 2px; }
.nav-me > strong { color: var(--navy); margin-bottom: 4px; }
.nav-me form { margin: 0; }
.nav-me .linkish { display: flex; gap: 12px; align-items: center; padding: 6px 0; border: 0; background: none; font: inherit; color: var(--navy); cursor: pointer; }
.nav-me .linkish i { color: var(--gold); width: 18px; }
/* My account page photo */
.account-photo { display: flex; gap: 22px; align-items: center; margin-bottom: 22px; }
.account-photo h2 { margin: 0 0 4px; }
.account-photo .form-note { margin: 0 0 12px; }
.avatar-lg { box-shadow: 0 6px 20px rgba(10, 20, 40, .15); }
.file-pick { display: inline-flex !important; align-items: center; padding: 8px 18px; border: 1.5px solid var(--navy); border-radius: 999px; color: var(--navy); font-weight: 700; cursor: pointer; margin: 0 8px 0 0 !important; position: relative; }
.file-pick:hover { background: var(--navy); color: #fff; }
.file-pick input { position: absolute; opacity: 0; width: 1px; height: 1px; }
@media (max-width: 560px) { .account-photo { flex-direction: column; text-align: center; } }

/* ----- Article author ----- */
.post-byline { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.post-byline > div { display: flex; flex-direction: column; gap: 2px; line-height: 1.3; }
.byline-photo { box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); }
.byline-name { font: 700 1.05rem/1.3 var(--display); color: #fff; }
.byline-title { font: italic 400 .95rem/1.3 var(--accent, Georgia), serif; color: rgba(255, 255, 255, .85); }
.byline-date { font: 600 .78rem/1.4 var(--display); letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.author-box { display: flex; align-items: center; gap: 22px; margin: 44px 0 10px; padding: 24px 26px; background: #f7f4ee; border-left: 4px solid var(--gold); border-radius: 0 14px 14px 0; }
.author-box p { margin: 0; }
.author-kicker { font: 700 .72rem/1.4 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--gold-text); }
.author-name { font: 700 1.25rem/1.3 var(--display); color: var(--navy); margin-top: 2px !important; }
.author-title { font: italic 400 1rem/1.4 var(--accent, Georgia), serif; color: #555a63; margin-top: 2px !important; }
.author-photo { box-shadow: 0 6px 18px rgba(10, 20, 40, .15); }
@media (max-width: 560px) { .author-box { flex-direction: column; text-align: center; border-left: 0; border-top: 4px solid var(--gold); border-radius: 0 0 14px 14px; } }

/* Author on article cards */
.card-author { display: flex; align-items: center; gap: 10px; margin: 2px 0 12px; }
.card-author-photo { box-shadow: 0 0 0 2px #fff, 0 2px 6px rgba(10, 20, 40, .15); }
.card-author-text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.card-author-name { font: 700 .88rem/1.3 var(--display); color: var(--navy); }
.card-author-title { font: italic 400 .82rem/1.3 var(--accent, Georgia), serif; color: #6b6f78; }
.post-list-author { display: block; font-size: .8rem; opacity: .75; margin-top: 2px; font-weight: 400; }


/* ----- Hero like the original site: slides move up, square arrows, light gold capitals ----- */
.hero-large { min-height: clamp(520px, calc(100svh - var(--header-h) - 42px), 980px); }
.hero-slide, .hero-slide.is-active { opacity: 1; }
.hero-slide { transform: translateY(100%); transition: transform 1.1s cubic-bezier(.77, 0, .18, 1), visibility 1.1s; }
.hero-slide.is-active { transform: none; visibility: visible; z-index: 2; }
.hero-slide.is-leaving { transform: translateY(-100%); visibility: visible; z-index: 1; }
.hero[data-dir="down"] .hero-slide:not(.is-active):not(.is-leaving) { transform: translateY(-100%); }
.hero[data-dir="down"] .hero-slide.is-leaving { transform: translateY(100%); }
.hero-slide:not(.is-active):not(.is-leaving) { transition: none; }
.hero-title { font-weight: 400; color: #e9b46c; font-size: clamp(1.9rem, 3vw, 3.5rem); line-height: 1.22; letter-spacing: .02em; text-shadow: 0 1px 12px rgba(0, 0, 0, .25); }
.tone-light .hero-title { color: #c98a2e; font-weight: 400; }
.hero-dots { display: none; }
.hero-arrow { position: absolute; z-index: 5; top: 50%; width: clamp(40px, 3.3vw, 62px); aspect-ratio: 1; margin-top: calc(clamp(40px, 3.3vw, 62px) / -2); display: grid; place-items: center; padding: 0; border: 1px solid rgba(255, 255, 255, .18); border-radius: 0; background: rgba(20, 20, 20, .55); color: #fff; cursor: pointer; transition: background .25s, border-color .25s; }
.hero-arrow span { width: 28%; height: 28%; border-top: 2.5px solid currentColor; border-right: 2.5px solid currentColor; }
.hero-prev { left: clamp(14px, 2.4vw, 46px); }
.hero-prev span { transform: translateX(20%) rotate(-135deg); }
.hero-next { right: clamp(14px, 2.4vw, 46px); }
.hero-next span { transform: translateX(-20%) rotate(45deg); }
.hero-arrow:hover, .hero-arrow:focus-visible { background: rgba(20, 20, 20, .85); border-color: rgba(255, 255, 255, .45); outline: none; }
.hero:has(.hero-slide.is-active.tone-light) .hero-arrow { background: rgba(60, 60, 60, .55); }
.hero-inner { padding-left: clamp(0px, 3vw, 60px); padding-right: clamp(0px, 3vw, 60px); }
/* Buttons: plain white capitals with a small book icon (grey box on bright slides) */
.hero .hero-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 0; padding: 6px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #fff; font: 600 clamp(.82rem, .9vw, .98rem)/1.2 var(--display); letter-spacing: .04em; text-transform: uppercase; transition: color .25s; }
.hero .hero-btn::before { content: "\f518"; font: 900 .95em/1 "Font Awesome 6 Free"; }
.hero .hero-btn::after { display: none; }
.hero .hero-btn:hover, .hero .hero-btn:focus-visible { background: transparent; color: #e9b46c; transform: none; box-shadow: none; }
.tone-light .hero-btn { padding: 9px 16px !important; background: rgba(90, 90, 90, .78) !important; color: #fff !important; }
.tone-light .hero-btn::before { content: "\f0c0"; }
.tone-light .hero-btn:hover { background: rgba(40, 40, 40, .9) !important; color: #fff !important; }
@media (prefers-reduced-motion: reduce) {
  .hero-slide, .hero-slide.is-leaving { transition: none !important; }
}
@media (max-width: 720px) {
  .hero-arrow { top: 120px; }
  .hero:has(.hero-slide.is-active.m-stack) .hero-arrow { top: calc(var(--m-ph) / 2); }
  .hero .hero-btn { width: auto !important; }
}

/* Slide colours as on the old site (each slide can override them in the editor) */
.hero-slide { --hero-title-auto: #F7BE82; --hero-text-auto: #FCFDE8; }
.hero-slide.tone-light { --hero-title-auto: #C98407; --hero-text-auto: #0C246E; }
.hero .hero-title, .tone-light .hero-title { color: var(--hero-title, var(--hero-title-auto)); }
.hero .rich, .hero .rich p, .tone-light .rich { color: var(--hero-text, var(--hero-text-auto)); }
.hero .rich { font-family: Merriweather, Georgia, serif; }
.hero-slide.tone-dark .hero-btn { color: #fff; }

/* Hero background video (uploaded MP4/WebM or YouTube/Vimeo) */
.hero-video { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.hero-embed { overflow: hidden; }
.hero-embed iframe { position: absolute; top: 50%; left: 50%; width: max(100%, 177.78vh); height: max(100%, 56.25vw); transform: translate(-50%, -50%); border: 0; pointer-events: none; }
.hero-slide.has-playing-video .hero-bg { opacity: 0; transition: opacity .8s; }
.hero-slide::after { z-index: 0; }
@media (max-width: 720px) {
  .m-stack .hero-video { position: absolute; inset: 0 0 auto; height: var(--m-ph); }
}

/* Chosen shade over the hero photo/video: a little stronger behind the text, lighter across the rest */
.hero-slide.has-shade::after, .hero-slide.has-shade.tone-light::after, .hero-slide.has-shade.align-center::after {
  display: block;
  background: linear-gradient(90deg, rgba(var(--shade-c), calc(var(--shade-a) * 1.15)) 0%, rgba(var(--shade-c), var(--shade-a)) 45%, rgba(var(--shade-c), calc(var(--shade-a) * .8)) 100%);
}
.hero-slide.has-shade.align-center::after { background: rgba(var(--shade-c), var(--shade-a)); }
@media (max-width: 720px) {
  .hero-slide.has-shade::after { background: rgba(var(--shade-c), var(--shade-a)); }
  .hero .hero-slide.m-stack.has-shade::after { display: block; inset: 0 0 auto; height: var(--m-ph); }
}
@media (min-width: 721px) {
  .hero-inner { padding-left: max(clamp(0px, 3vw, 60px), calc(clamp(14px, 2.4vw, 46px) + clamp(40px, 3.3vw, 62px) + 14px - (100vw - min(100vw, var(--wrap))) / 2)); padding-right: max(clamp(0px, 3vw, 60px), calc(clamp(14px, 2.4vw, 46px) + clamp(40px, 3.3vw, 62px) + 14px - (100vw - min(100vw, var(--wrap))) / 2)); }
}

/* ----- Navy / gold service cards (Mediation · Early Neutral Evaluation · Business Advisory), as on the old site ----- */
.cards.cs-gold { perspective: 1200px; }
.cards.cs-gold .card { border-radius: 0; box-shadow: none; transform-style: preserve-3d; will-change: transform;
  transition: transform .9s cubic-bezier(.03, .98, .52, .99), box-shadow .6s ease; }
.cards.cs-gold .card:hover { transform: scale(1.05); box-shadow: 0 18px 40px rgba(0, 0, 0, .28); } /* without the pointer tilt */
.cards.cs-gold .card.is-tilting { box-shadow: 0 18px 40px rgba(0, 0, 0, .28); }
.cards.cs-gold .card.cc-navy, .cards.cs-gold .card:not(.cc-sand):not([class*="cc-"]) { background: #152847; color: #fff; }
.cards.cs-gold .card.cc-sand { background: #E0AC6E; color: #000; }
.cards.cs-gold .card .card-title, .cards.cs-gold .card .card-title a { transition: color .35s ease; }
.cards.cs-gold .card.cc-navy .card-title, .cards.cs-gold .card.cc-navy .card-title a, .cards.cs-gold .card.cc-navy .card-icon { color: #E0AC6E; }
.cards.cs-gold .card.cc-sand .card-title, .cards.cs-gold .card.cc-sand .card-title a, .cards.cs-gold .card.cc-sand .card-icon { color: #456598 !important; } /* icon blue, even when the section sets a title colour */
.cards.cs-gold .card.cc-navy .rich, .cards.cs-gold .card.cc-navy .rich p { color: #fff; }
.cards.cs-gold .card.cc-sand .rich, .cards.cs-gold .card.cc-sand .rich p { color: #000; }
.cards.cs-gold .card.cc-navy:hover .card-title, .cards.cs-gold .card.cc-navy:hover .card-title a { color: #fff !important; }
.cards.cs-gold .card.cc-sand:hover .card-title, .cards.cs-gold .card.cc-sand:hover .card-title a { color: #000 !important; }
/* buttons: blue pill → gold on navy cards; outlined → blue on the gold card */
.cards.cs-gold .card .btn { border-radius: 999px; text-transform: none; letter-spacing: 0; font: 400 clamp(.95rem, 1.05vw, 1.15rem)/1.2 Arial, "Helvetica Neue", sans-serif; padding: .7em 1.6em; box-shadow: none; transition: background .35s ease, border-color .35s ease, color .35s ease; }
.cards.cs-gold .card .btn::after { display: none; }
.cards.cs-gold .card.cc-navy .btn { background: #456598 !important; border: 1px solid #456598 !important; color: #fff !important; }
.cards.cs-gold .card.cc-navy .btn:hover, .cards.cs-gold .card.cc-navy .btn:focus-visible { background: #E0AC6E !important; border-color: #E0AC6E !important; color: #fff !important; transform: none; }
.cards.cs-gold .card.cc-sand .btn { background: transparent !important; border: 1px solid #7A450E !important; color: #fff !important; }
.cards.cs-gold .card.cc-sand .btn:hover, .cards.cs-gold .card.cc-sand .btn:focus-visible { background: #2B619A !important; border-color: #2B619A !important; color: #fff !important; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .cards.cs-gold .card, .cards.cs-gold .card:hover { transform: none !important; }
}

/* ---------- Text "Statement" look (From Impasse to Resolution) ---------- */
.blk-text .statement { max-width: 980px; margin: 0 auto; text-align: center; }
.blk-text .statement .st-title { margin: 0 0 clamp(.9rem, 4vw, 4.5rem); font: 500 clamp(2.1rem, 3.75vw, 4.6rem)/1.15 Arimo, Arial, "Helvetica Neue", sans-serif; color: #C2A96E; letter-spacing: 0; text-transform: none; font-style: normal; }
.blk-text .statement .st-sub { margin: 0 0 clamp(1.4rem, 2.6vw, 2.5rem); font: 700 clamp(1.3rem, 1.45vw, 1.7rem)/1.4 Amarna, "Alegreya Sans", "Segoe UI", Arial, sans-serif; color: #466999; letter-spacing: 0; text-transform: uppercase; font-style: normal; }
.blk-text .statement .st-title::after, .blk-text .statement .st-sub::after { display: none; }
.blk-text .statement .rich { max-width: none; margin: 0 auto; }
.blk-text .statement .rich p { max-width: 46em; margin-left: auto; margin-right: auto; } /* three lines on a computer screen, like the old site */
.blk-text .statement .st-sub, .blk-text .statement .rich p { -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto; } /* full-weight text, as on the old site */
.blk-text .statement .rich, .blk-text .statement .rich p { font: 400 clamp(1rem, 1.05vw, 1.15rem)/1.65 Asap, "Segoe UI", Arial, sans-serif; color: #466999; }
.blk-text .statement .blk-actions { justify-content: center; margin-top: clamp(1.8rem, 5vw, 6rem); }
.btn.btn-teal-line { min-height: 0; padding: .95em 2.4em; border: 1px solid #0AC9C9; background: transparent; color: #0AC9C9; font: 400 clamp(1rem, 1.4vw, 1.6rem)/1.2 Arimo, Arial, "Helvetica Neue", sans-serif; letter-spacing: 0; text-transform: none; box-shadow: none; transition: background .15s ease-in-out, color .15s ease-in-out, border-color .15s ease-in-out; }
.btn.btn-teal-line::after { display: none; }
.btn.btn-teal-line:hover, .btn.btn-teal-line:focus-visible { background: #0AC9C9; border-color: #0AC9C9; color: #fff; transform: none; box-shadow: none; }
.blk-text .statement .tagline { margin: .9em 0 0; font: italic 600 clamp(1.4rem, 2.3vw, 2.8rem)/1.2 "Alegreya Sans", "Segoe UI", Arial, sans-serif; letter-spacing: 0; text-transform: uppercase; color: #496897; }
.sec-rise { height: clamp(40px, 11.4vw, 260px); fill: #e5e5e5; }
.blk-text:has(.statement) { padding-bottom: clamp(2.5rem, 3.5vw, 4rem); }
/* "SUCCESS. SIMPLIFIED" leans toward the pointer (see site.js) */
.blk-text .statement .tagline { display: inline-block; padding: .35em .8em; cursor: default; transform-style: preserve-3d; will-change: transform; transition: transform .2s ease-out, color .2s ease; }
.blk-text .statement .tagline.is-tilting { color: #2B4F80; }
@media (prefers-reduced-motion: reduce) { .blk-text .statement .tagline { transition: none; } }

/* ---------- Soft cards (Our Philosophy) ---------- */
.lead-soft { grid-template-columns: 1.5fr 1fr; align-items: start; gap: clamp(24px, 3vw, 40px); margin-bottom: clamp(24px, 3vw, 36px); }
.lead-soft .blk-head.align-right { text-align: right; margin: 0 0 clamp(16px, 2vw, 24px); }
.lead-soft .blk-head .kicker { margin: clamp(0px, 3vw, 40px) 0 .2em; font: 700 clamp(1.05rem, 1.25vw, 1.3rem)/1.3 Amarna, "Alegreya Sans", sans-serif; color: #734D08; font-style: normal; letter-spacing: 0; text-transform: none; }
.lead-soft .blk-head .blk-title { margin: 0; font: 700 clamp(2rem, 2.9vw, 2.8rem)/1.15 Amarna, "Alegreya Sans", sans-serif; color: #C6A96B; font-style: normal; letter-spacing: 0; text-transform: none; }
.lead-soft .blk-head .blk-title::after { display: none; }
.lead-soft-side { display: flex; flex-direction: column; align-items: stretch; }
.lead-soft-side .blk-actions { justify-content: center; margin: 22px 0 0; }
.soft-box, .cs-soft .card { background: rgba(255, 255, 255, .5); border: 1px solid rgba(255, 255, 255, .4); border-radius: 20px; padding: clamp(24px, 2.6vw, 40px) clamp(22px, 2.6vw, 40px) clamp(22px, 2.3vw, 35px);
  box-shadow: 5px 5px 10px 0 rgba(166, 189, 169, .5); transition: box-shadow .3s; }
.soft-box:hover, .cs-soft .card:hover { box-shadow: 12px 12px 20px 0 rgba(163, 198, 168, .5); transform: none; background: rgba(255, 255, 255, .5); }
.soft-box .rich h3 { margin: 0 0 .3em; font: italic 700 clamp(1.05rem, 1.15vw, 1.25rem)/1.6 Cabin, "Alegreya Sans", sans-serif; color: #466999; text-transform: none; letter-spacing: 0; }
.soft-box .rich p, .cs-soft .card .rich p { font: 400 clamp(.9rem, .95vw, 1rem)/1.75 Inter, "Segoe UI", Arial, sans-serif; color: rgba(10, 10, 10, .85); }
.soft-photo { margin: 0; }
.soft-photo img { display: block; width: 100%; height: auto; aspect-ratio: auto; border-radius: 0; box-shadow: none; object-fit: cover; }
.cards.cs-soft { gap: 20px; align-items: start; }
.cards.cs-soft .card { text-align: left; }
.cards.cs-soft .card-body { padding: 0; }
.cards.cs-soft .card .card-title { margin: 0 0 8px; font: 600 clamp(1.05rem, 1.15vw, 1.25rem)/1.6 Arimo, Arial, sans-serif; color: #734D08; text-transform: none; letter-spacing: 0; }
.cards.cs-soft .card .card-title::after { display: none; }
.cards.cs-soft .card .rich p:last-child { margin-bottom: 0; }
/* Philosophy: heading on its own row; the text box and the photo card start level below it.
   "Meet Joy" sits on the photo like the team photos (shows on hover; always shown on touch screens). */
.lead-soft { grid-template-areas: "head ." "box photo"; row-gap: 0; }
.lead-soft .cards-lead-copy, .lead-soft .lead-soft-side { display: contents; }
.lead-soft .blk-head { grid-area: head; }
.lead-soft .soft-box:not(.soft-photo) { grid-area: box; }
.lead-soft .soft-photo { grid-area: photo; align-self: stretch; display: flex; flex-direction: column; }
/* Both cards share one height: the text card sets it and the photo fills its card (cropped from the top edge down if needed) */
.lead-soft .soft-box:not(.soft-photo) { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.lead-soft .soft-photo-frame { flex: 1 1 auto; min-height: 280px; }
.lead-soft .soft-photo-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.soft-photo-frame { position: relative; overflow: hidden; }
.soft-photo-frame > a:first-child { display: block; }
.soft-photo-frame img { transition: transform .7s ease; }
.soft-photo:hover .soft-photo-frame img { transform: scale(1.06); }
.soft-photo .soft-photo-btn { top: 50%; bottom: auto; transform: translate(-50%, -30%); min-height: 0; padding: 6px 14px; border: 1px solid #fff; border-radius: 4px; background: rgba(0, 0, 0, .15);
  color: #fff; font: 400 15px/1.4 Arimo, Arial, sans-serif; letter-spacing: 0; text-transform: none; box-shadow: none; }
.soft-photo .soft-photo-btn::after { display: none; }
.soft-photo:hover .soft-photo-btn, .soft-photo .soft-photo-btn:focus-visible { opacity: 1; transform: translate(-50%, -50%); }
.soft-photo .soft-photo-btn:hover { background: #fff; color: #363B46; }
@media (hover: none) { .soft-photo .soft-photo-btn { opacity: 1; transform: translate(-50%, -50%); } }
@media (max-width: 760px) {
  /* Phones: heading, then the photo, then the text box */
  .lead-soft { display: flex; flex-direction: column; align-items: stretch; row-gap: 24px; }
  .lead-soft .cards-lead-copy, .lead-soft .lead-soft-side { display: contents; }
  .lead-soft .blk-head { order: 1; margin-bottom: 0; }
  .lead-soft .blk-head.align-right { text-align: left; }
  .lead-soft .soft-photo { order: 2; width: 100%; max-width: 420px; align-self: center; }
  .lead-soft .soft-photo-frame { min-height: 0; }
  .lead-soft .soft-photo-frame img { position: relative; height: auto; }
  .lead-soft .soft-box:not(.soft-photo) { order: 4; }
}
.js [data-anim] .cs-soft [data-anim-child] { transition: opacity 1s var(--ease), transform 1.1s var(--ease), box-shadow .3s; transition-delay: calc(var(--i, 0) * .22s), calc(var(--i, 0) * .22s), 0s; }

/* ---------- Featured Articles: shaped photo + scrolling list ---------- */
.blk-posts:has(.ticker-wrap) { background: #061E28; }
.ticker-wrap { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(20px, 3vw, 40px); align-items: start; max-width: 1180px; margin: 0 auto; }
.ticker-media { display: flex; flex-direction: column; align-items: flex-end; }
.ticker-title { position: relative; z-index: 2; width: min(100%, 560px); margin: 0 0 -.55em; text-align: center; transform: translateX(10%); pointer-events: none;
  font: italic 100 clamp(2.4rem, 5vw, 4.4rem)/1.2 Amarna, "Alegreya Sans", sans-serif; color: #fff; letter-spacing: 0; text-transform: none; }
.ticker-title::after { display: none; }
.ticker-img { position: relative; z-index: 1; width: min(100%, 560px); margin: 0; }
.ticker-img img { display: block; width: 100%; aspect-ratio: 513 / 440; object-fit: cover; clip-path: polygon(0 0, 77.5% 0, 100% 50%, 77.5% 100%, 0 100%, 25% 50%); }
.ticker { overflow: hidden; transition: height .5s ease; margin-top: clamp(0px, 3vw, 40px); }
.ticker.is-static { height: auto !important; }
.ticker-track { list-style: none; margin: 0; padding: 0; will-change: transform; }
.ticker-item a { display: flex; padding-bottom: 1px; text-decoration: none; color: #fff; }
.ticker-date { flex: 0 0 15%; min-width: 58px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: #008080; color: #fff;
  font: 700 clamp(.75rem, .9vw, .875rem)/1 Arimo, Arial, sans-serif; text-transform: uppercase; }
.ticker-date b { display: block; margin-bottom: 5px; font-size: clamp(1.9rem, 2.6vw, 2.625rem); line-height: 1; }
.ticker-text { flex: 1; background: #212125; padding: 25px 25px 38px; color: #fff; font: 400 clamp(1.05rem, 1.5vw, 1.5rem)/1 Content, "Times New Roman", Times, serif; }
.ticker-item a:focus-visible { outline: 2px solid #0AC9C9; outline-offset: -2px; }
@media (max-width: 860px) {
  .ticker-wrap { grid-template-columns: 1fr; }
  .ticker-media { align-items: center; }
  .ticker-title { transform: none; }
}

/* ---------- Background video behind a section ---------- */
.sec-video { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .sec-video { display: none; } }

/* ---------- Contact "Consult" look (Book your Free Consult Today...) ---------- */
.blk-contact:has(.consult) { --pad: clamp(18px, 2.2vw, 30px); }
.blk-contact.has-photo:has(.consult)::after { background: rgba(0, 0, 0, .6); }
.consult { display: flex; flex-direction: column; align-items: center; }
.consult-box { width: min(100%, 860px); background: #E5E5E5; border-radius: 8px; padding: clamp(22px, 3.2vw, 42px) clamp(18px, 3.4vw, 45px) clamp(24px, 3.6vw, 48px); color: #464855; }
.blk .consult .consult-title { margin: 0 0 clamp(16px, 2.2vw, 28px); text-align: center; font: 400 clamp(1.6rem, 2.3vw, 2rem)/1.25 "Jim Nightshade", "Caveat", cursive; color: #D67703 !important; letter-spacing: 0; text-transform: none; font-style: normal; }
.consult-title::after { display: none; }
.consult .contact-form-wrap, .consult .contact-form { max-width: none; margin: 0; padding: 0; background: none; box-shadow: none; border: 0; }
.consult .contact-form { display: grid; gap: 12px; }
.consult .contact-form .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 22px; margin: 0; }
.consult .contact-form .field-row.field-stack { grid-template-columns: 1fr; }
.consult .contact-form label { margin: 0; }
.consult .contact-form input:not([type=checkbox]), .consult .contact-form textarea { width: 100%; margin: 0; padding: 6px 11px; background: #fff; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; box-shadow: none;
  font: 400 15px/19px Arimo, Arial, sans-serif; color: #D77D0F; }
.consult .contact-form input::placeholder, .consult .contact-form textarea::placeholder { color: #D77D0F; opacity: 1; }
.consult .contact-form input:focus, .consult .contact-form textarea:focus { outline: 2px solid rgba(214, 119, 3, .45); outline-offset: 0; border-color: #D67703; }
.consult .contact-form textarea { height: 76px; min-height: 60px; resize: vertical; }
.consult .contact-form .form-agree { display: block; margin: 4px 0 0; text-align: center; font: 400 12px/20px Arimo, Arial, sans-serif; letter-spacing: 0; text-transform: none; color: #464855; }
.consult .contact-form .form-agree span { display: inline; font: inherit; color: inherit; }
.consult .contact-form .form-agree input { display: inline-block; width: auto; margin: 0 6px 0 0; vertical-align: -2px; }
.consult .form-submit { margin: 4px 0 0; text-align: center; }
.consult .btn.btn-consult { min-height: 0; padding: 8px 12px; border: 1px solid transparent; border-radius: 4px; background: #fff; color: #222; box-shadow: none;
  font: 400 15px/19px Arimo, Arial, sans-serif; letter-spacing: 0; text-transform: none; transition: background .2s, color .2s; }
.consult .btn.btn-consult::after { display: none; }
.consult .btn.btn-consult:hover, .consult .btn.btn-consult:focus-visible { background: #E4D8C9; color: #02193C; transform: none; box-shadow: none; }
.consult .field-error { color: #9b1c1c; }
.consult-bar { display: grid; grid-template-columns: 1fr 1fr; width: min(100%, 860px); margin: clamp(16px, 2.2vw, 28px) 0 0; padding: 0; list-style: none; border-radius: 10px; overflow: hidden; }
.consult-bar li { display: flex; align-items: center; gap: 12px; padding: 13px 18px; background: rgba(56, 40, 3, .8); font: 400 16px/22px Lora, Georgia, serif; color: #fff; }
.consult-bar li + li { border-left: 1px solid rgba(255, 255, 255, .08); }
.consult-bar i { font-size: 22px; color: #fff; }
.blk .consult-bar a { color: #fff; text-decoration: none; }
.blk .consult-bar a:hover, .blk .consult-bar a:focus-visible { color: #D77D0F; }
@media (max-width: 640px) {
  .consult .contact-form .field-row { grid-template-columns: 1fr; }
  .consult-bar { grid-template-columns: 1fr; }
  .consult-bar li + li { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .08); }
}

/* ---------- Icon features (Anywhere, Anytime ...) ---------- */
.blk-cards:has(.cs-features) { background: #00303D; }
.sec-gs { fill: #E5E5E5; height: clamp(36px, 7.5vw, 140px); }
.blk.has-tri:has(.sec-gs) { padding-top: calc(var(--pad, 0px) + clamp(20px, 4vw, 70px)); padding-bottom: calc(var(--pad, 0px) + clamp(20px, 4vw, 70px)); }
.cards.cs-features { max-width: 1100px; margin: 0 auto; gap: clamp(8px, 2vw, 24px) clamp(12px, 2vw, 24px); }
.cards.cs-features .card { background: none; border: 0; box-shadow: none; padding: 20px; text-align: center; transition: color .3s; }
.cards.cs-features .card:hover { transform: none; box-shadow: none; background: none; }
.cards.cs-features .card-icon { margin: 0 auto 10px; padding: 10px; font-size: 48px; line-height: 1; color: #B2C1CD; }
.cards.cs-features .card-icon i { font-size: 48px; width: 48px; height: 48px; line-height: 48px; color: #B2C1CD; }
.cards.cs-features .card-body { padding: 0; }
.blk .cards.cs-features .card .card-title { margin: 10px 0; font: 400 clamp(1.4rem, 1.9vw, 1.875rem)/1.2 Cabin, "Alegreya Sans", sans-serif; color: #FDFBD4; letter-spacing: 0; text-transform: none; transition: color .3s; }
.blk .cards.cs-features .card:hover .card-title, .blk .cards.cs-features .card:hover .card-title a { color: #E1AD6F; }
.cards.cs-features .card .card-title::after { display: none; }
.cards.cs-features .card .rich, .cards.cs-features .card .rich p { font: 400 clamp(.8rem, .85vw, .8125rem)/1.56 Arimo, Arial, sans-serif; color: #E5E5E5; }
.sec-gs.sec-tri-top { height: clamp(24px, 5vw, 90px); }

/* Navy / gold service cards: wide rectangles close together, like the old site */
.blk-cards:has(.cards.cs-gold) .wrap { max-width: min(1760px, 100%); }
.cards.cs-gold { gap: clamp(10px, 1.2vw, 16px); }
.cards.cs-gold .card-icon { margin: clamp(18px, 1.8vw, 26px) auto 0; }
.cards.cs-gold .card-body { padding: clamp(10px, 1.1vw, 16px) clamp(22px, 2.4vw, 40px) clamp(20px, 2vw, 30px); }
.cards.cs-gold .card .card-title { margin-bottom: .45em; }
.cards.cs-gold .card .card-actions { margin-top: clamp(12px, 1.2vw, 18px); }

/* Icon features: the title turns gold wherever the pointer is on the item (beats any title colour set on the section) */
.cards.cs-features .card { height: 100%; }
.blk .cards.cs-features .card:hover .card-title, .blk .cards.cs-features .card:hover .card-title a,
.blk .cards.cs-features .card:focus-within .card-title, .blk .cards.cs-features .card:focus-within .card-title a { color: #E1AD6F !important; }

/* Step pictures shaped as arrows */
.step-img.shape-chevron img { aspect-ratio: 3 / 2; border-radius: 0; clip-path: polygon(75% 0, 100% 50%, 75% 100%, 0 100%, 25% 50%, 0 0); box-shadow: none; }

/* Team members' social media icons (only the ones with a link show) */
.person-social { display: flex; flex-wrap: wrap; gap: 14px; margin: 18px 0 0; padding: 0; list-style: none; }
.person-social a { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; color: #8A8F99; font-size: 15px; text-decoration: none; transition: color .25s, transform .25s; }
.person-social a:hover, .person-social a:focus-visible { color: #C6A96B; transform: translateY(-2px); }
.on-dark .person-social a { color: rgba(255, 255, 255, .7); }

/* Steps with hand-drawn number circles and curved arrows (the old site's look) */
.steps-hand .step-num { width: 52px; height: 48px; margin: 0 auto 6px; border-radius: 0; background: url(/assets/steps/circle.png) center / contain no-repeat !important; box-shadow: none !important;
  font: 700 clamp(1.25rem, 1.6vw, 1.5rem)/1 Caveat, "Comic Sans MS", cursive; color: #E1AD6F !important; margin-bottom: 14px; transform: translateX(clamp(20px, 3vw, 52px)); }
.steps-hand .step:not(:last-child)::after { border: 0 !important; top: -22px; left: calc(50% + clamp(56px, 6vw, 100px)); right: auto; width: clamp(70px, 8vw, 134px); height: clamp(55px, 6.3vw, 106px);
  background: url(/assets/steps/arrow-down.svg) center / contain no-repeat; }
.steps-hand .step:nth-child(2n):not(:last-child)::after { background-image: url(/assets/steps/arrow-up.svg); top: -30px; }
@media (max-width: 1000px) { .steps-hand .step::after { display: none; } .steps-hand .step-num { transform: none; } }

/* ---------- Text "Right-aligned intro" look (Our Expertise) ---------- */
.blk-text:has(.expertise) { --pad: clamp(36px, 5vw, 64px); }
.blk-text:has(.expertise) .wrap { max-width: none; }
.expertise { width: min(100%, max(71%, 760px)); max-width: 1180px; margin: 0 auto 0 0; text-align: right; }
.blk .expertise .ex-title { margin: 0; font: italic 700 clamp(2.3rem, 3.4vw, 3.4rem)/1.15 Amarna, "Alegreya Sans", sans-serif; color: #C6A96B; letter-spacing: 0; text-transform: none; }
.blk .expertise .ex-sub { margin: 0 0 8px; font: 400 clamp(.8rem, .9vw, .875rem)/1.2 Arimo, Arial, sans-serif; color: #B2C1CD; letter-spacing: 0; text-transform: uppercase; }
.expertise .ex-title::after, .expertise .ex-sub::after { display: none; }
.expertise .rich, .expertise .rich p { font: 400 clamp(.9rem, .98vw, 1rem)/1.5 Arimo, Arial, sans-serif; color: #fff; text-align: right; }
.expertise .blk-actions { justify-content: flex-end; }
@media (max-width: 760px) { .expertise { width: 100%; } }

/* Dispute Resolution / Corporate Advisory cards: less empty space above and below */
.cards-side .cards .card { padding: clamp(16px, 1.7vw, 26px) clamp(24px, 3vw, 50px); }
.cards-side .card-body { padding: 0; }
.cards-side .card .rich > :last-child, .cards-side .card ul li:last-child { margin-bottom: 0; }

/* ---------- Text "Photo banner" look (From the Blog) ---------- */
.blk-text:has(.banner-strip) { --pad: 0px; }
.banner-strip { display: flex; flex-direction: column; justify-content: center; align-items: flex-end; min-height: clamp(247px, 20.9vw, 380px); max-width: 1140px; margin: 0 auto; padding: clamp(28px, 3vw, 48px) 0 clamp(36px, 3.6vw, 70px); text-align: right; }
.blk .banner-strip .banner-title { margin: 0; font: 700 clamp(1.75rem, 2.6vw, 2.8rem)/1.25 Lora, Georgia, serif; color: #008080; letter-spacing: 0; text-transform: none; }
.banner-strip .banner-title::after { display: none; }
.banner-strip .banner-kicker { margin: 0 0 .3em; font: 400 clamp(1.2rem, 1.8vw, 2rem)/1.3 "Great Vibes", cursive; color: #061E28; }
@media (max-width: 1199px) { .banner-strip { align-items: center; text-align: center; } }

/* ---------- Finer animation settings (Section style → Animation) ----------
   The section's inline style sets --at / --ai (where text and cards start), --ato / --aio (start opacity),
   --atf / --aif (start blur), --a-dur, --a-stag (gap between cards) and --a-delay. */
.js [data-anim].anim-custom :is(.blk-head, .blk-intro, .text-wrap, .split-copy, .rotating, .typed, .cascade-title, .quote, .cta, .contact-blk, .newsletter, .cards-lead-copy,
  .statement, .expertise, .banner-strip, .consult-box, .ticker-media) {
  opacity: var(--ato, 0); transform: var(--at, translateY(40px)); filter: var(--atf, none);
  transition: opacity var(--a-dur, 1s) var(--ate, var(--ease)), transform calc(var(--a-dur, 1s) * 1.1) var(--ate, var(--ease)), filter var(--a-dur, 1s) ease;
  transition-delay: calc(var(--a-delay, 0s) + var(--i, 0) * var(--a-stag, .22s));
}
.js [data-anim].anim-custom :is([data-anim-child], .single-img, .video, .cards-side-img, .ticker, .consult-bar) {
  opacity: var(--aio, 0); transform: var(--ai, translateY(40px)); filter: var(--aif, none);
  transition: opacity var(--a-dur, 1s) var(--aie, var(--ease)), transform calc(var(--a-dur, 1s) * 1.1) var(--aie, var(--ease)), filter var(--a-dur, 1s) ease, box-shadow .3s;
  transition-delay: calc(var(--a-delay, 0s) + var(--i, 0) * var(--a-stag, .22s)), calc(var(--a-delay, 0s) + var(--i, 0) * var(--a-stag, .22s)), calc(var(--a-delay, 0s) + var(--i, 0) * var(--a-stag, .22s)), 0s;
}
.js [data-anim].anim-custom.in-view :is(.blk-head, .blk-intro, .text-wrap, .split-copy, .rotating, .typed, .cascade-title, .quote, .cta, .contact-blk, .newsletter, .cards-lead-copy,
  .statement, .expertise, .banner-strip, .consult-box, .ticker-media, [data-anim-child], .single-img, .video, .cards-side-img, .ticker, .consult-bar) {
  opacity: 1; transform: none; filter: none;
}
@media (prefers-reduced-motion: reduce) {
  .js [data-anim].anim-custom * { transition: none !important; }
}

/* ---------- Testimonials (sliding, inside a pink oval with grey dots — the old site's testimonial carousel) ---------- */
.blk-testimonials { overflow-x: clip; }
.tst { max-width: 1280px; margin: 0 auto; padding: clamp(10px, 2vw, 30px) 0; }
.tst-oval { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: clamp(520px, 52vw, 860px);
  padding: clamp(40px, 6vw, 110px) clamp(48px, 7vw, 120px); border: clamp(34px, 6.5vw, 100px) dotted #E5E5E5; border-radius: 50%;
  background: rgba(255, 240, 245, .7); box-shadow: 4px 4px 20px #E4E4E4; }
.tst-icon { margin: 0 0 clamp(18px, 4vw, 70px); }
.tst-icon img { display: block; width: clamp(110px, 12vw, 190px); height: auto; margin: 0 auto; }
.tst-viewport { width: 100%; overflow: hidden; transition: height .6s ease; }
.tst-track { display: flex; align-items: flex-start; transition: transform .7s cubic-bezier(.45, .05, .25, 1); will-change: transform; }
.tst-slide { flex: 0 0 100%; margin: 0; padding: 0 clamp(6px, 1.5vw, 20px); text-align: center; }
.blk .tst-title { margin: 0 0 .9em; font: 700 clamp(1.05rem, 1.45vw, 1.45rem)/1.3 "Alegreya Sans", "Segoe UI", sans-serif; color: #5E5035; letter-spacing: 0; text-transform: none; }
.tst-title::after { display: none; }
.tst-quote { margin: 0 auto; max-width: 1010px; padding: 0; border: 0; font: 400 clamp(1rem, 1.35vw, 1.35rem)/1.6 "Alegreya Sans", "Segoe UI", sans-serif; color: #746750; quotes: none; }
.tst-quote::before, .tst-quote::after { content: none; }
.tst-slide figcaption { margin-top: clamp(14px, 1.6vw, 24px); }
.tst-name { display: block; font: 400 clamp(1.6rem, 2.4vw, 2.4rem)/1.15 Lora, Georgia, serif; color: #D07A14; }
.tst-role { display: block; margin-top: 4px; font: 400 clamp(.82rem, .95vw, 1rem)/1.3 Arial, "Helvetica Neue", sans-serif; color: #111; }
.tst-arrow { position: absolute; top: 58%; width: 18px; height: 52px; padding: 0; border: 0; border-radius: 3px; background: #5B4A35; color: #fff; font-size: 13px; cursor: pointer;
  display: grid; place-items: center; transition: background .2s, transform .2s; }
.tst-arrow:hover, .tst-arrow:focus-visible { background: #3c2f20; transform: scale(1.1); }
.tst-prev { left: clamp(4px, 1.4vw, 24px); }
.tst-next { right: clamp(4px, 1.4vw, 24px); }
@media (max-width: 760px) {
  .tst-oval { border-radius: 40px; border-width: 18px; padding: 28px 22px 74px; min-height: 0; }
  .tst-arrow { top: auto; bottom: 14px; width: 36px; height: 36px; }
  .tst-prev { left: calc(50% - 46px); } .tst-next { right: calc(50% - 46px); }
}

/* ---------- Meet the Team, side-by-side layout (the old site's look) ---------- */
.blk-team:has(.layout-side) { background: #363B46; --pad: 0px; }
.blk-team:has(.layout-side) > .wrap { max-width: 1440px; padding: 0; }
.blk-team:has(.layout-side) .blk-head { margin: 0; padding: clamp(40px, 5.5vw, 80px) 20px; }
.blk .blk-team .blk-head .blk-title, .blk-team:has(.layout-side) .blk-head .blk-title { margin: 0; font: italic 700 clamp(2.4rem, 4.4vw, 4rem)/1.15 Amarna, "Alegreya Sans", sans-serif; color: #C6A96B; letter-spacing: 0; text-transform: none; }
.team.layout-side { gap: 0; }
.layout-side .person { grid-template-columns: 1fr 1fr; align-items: center; overflow: visible; background: radial-gradient(at right bottom, #fff 0%, #E4D8C9 100%); }
.layout-side .person:nth-child(even) { background: linear-gradient(45deg, #fff 0%, #E4D8C9 100%); }
.layout-side .person-photo { align-self: stretch; min-height: clamp(420px, 44vw, 632px); overflow: hidden; }
.layout-side .person-photo img { transition: transform .7s ease; }
.layout-side .person:hover .person-photo img { transform: scale(1.12) translateX(-4%); }
.layout-side .person:nth-child(even):hover .person-photo img { transform: scale(1.12) translateX(4%); }
.layout-side .person-photo-btn { top: 50%; bottom: auto; transform: translate(-50%, -30%); min-height: 0; padding: 5px 10px; border: 1px solid #fff; border-radius: 4px; background: transparent; color: #fff;
  font: 600 15px/1.3 Muli, Mulish, Arial, sans-serif; letter-spacing: 0; text-transform: uppercase; box-shadow: none; }
.layout-side .person-photo-btn::after { display: none; }
.layout-side .person:hover .person-photo-btn, .layout-side .person-photo-btn:focus-visible { transform: translate(-50%, -50%); }
.layout-side .person-photo-btn:hover { background: #fff; color: #363B46; }
.layout-side .person-body { position: relative; padding: 20px clamp(18px, 2.4vw, 40px) 20px clamp(26px, 4.3vw, 62px); background: linear-gradient(140deg, #fff 42%, #e5e5e5 80%); font: 400 15px/24px Muli, Mulish, Arial, sans-serif; color: #424B6A; }
.layout-side .person:nth-child(even) .person-body { padding-left: clamp(26px, 4.8vw, 70px); background: linear-gradient(45deg, #fff 0%, #e5e5e5 100%); }
.layout-side .person-body::before { content: ""; position: absolute; z-index: 10; top: 50%; left: -20px; width: 40px; height: 40px; background: #fff; transform: translateY(-50%) rotate(45deg); transition: .3s ease-in-out; }
.layout-side .person-body:hover::before { left: -13px; border-radius: 3px; }
.blk .layout-side .person-name, .blk .layout-side .person-name a { margin: 0; font: 600 clamp(1.2rem, 1.75vw, 1.5625rem)/1.4 Merriweather, Georgia, serif; text-transform: uppercase; letter-spacing: 0; color: #E1AD6F !important; }
.layout-side .person-name::after { display: none; }
.blk .layout-side .person-role { margin: 0 0 24px; font: 700 15px/24px Muli, Mulish, Arial, sans-serif; text-transform: none; letter-spacing: 0; color: #162B48; }
.layout-side .person-body .rich, .layout-side .person-body .rich p { font: 400 15px/24px Muli, Mulish, Arial, sans-serif; color: #424B6A; }
.layout-side .person-body .link-arrow { display: none; }
.layout-side .person-social a { color: #8A8F99; font-size: 13px; }
@media (max-width: 1000px) {
  .layout-side .person-body::before { display: none; }
}
.blk-team:has(.layout-side) .blk-head { text-align: center; }
@media (max-width: 700px) {
  .layout-side .person, .layout-side .person:nth-child(even) { grid-template-columns: 1fr; }
  /* Phones: the photo sits in normal flow so Safari can't collapse its box to zero height */
  .layout-side .person-photo { min-height: 0; height: auto; aspect-ratio: auto; align-self: start; width: 100%; }
  .layout-side .person-photo > a { display: block; }
  .layout-side .person-photo img { position: relative; inset: auto; display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.4; object-fit: cover; object-position: top; }
  .layout-side .person-body, .layout-side .person:nth-child(even) .person-body { padding: 24px 22px 28px; }
}

/* Phones: hero layout chosen in the editor (Hero slider → Phone layout; each slide can override it).
   m-stack = photo on top, text underneath on a plain background; m-over = text over the photo. */
.hero { --m-ph: clamp(230px, 58vw, 360px); }
.hero-mh-short { --m-ph: clamp(180px, 45vw, 300px); }
.hero-mh-tall { --m-ph: clamp(300px, 82vw, 540px); }
@media (max-width: 720px) {
  .hero:has(.m-stack) { min-height: 0 !important; }
  .hero .hero-slide.m-stack { flex-direction: column; align-items: stretch; justify-content: flex-start; background: var(--m-bg, var(--ink)); }
  .hero .hero-slide.m-stack:not(.has-shade)::after { display: none; }
  .hero .m-stack .hero-bg { position: relative; inset: auto; flex: 0 0 auto; height: var(--m-ph); min-height: 0; max-height: none; }
  .hero .m-stack.focus-right .hero-bg { background-position: 80% 18%; }
  .hero .m-stack.focus-left .hero-bg { background-position: 20% 18%; }
  .hero .m-stack.focus-center .hero-bg { background-position: 50% 18%; }
  .hero .m-stack .hero-inner { align-self: stretch; padding-top: 26px; padding-bottom: 72px; }
  .hero-slide.m-stack.mbg-cream { --m-bg: #fbfaf7; }
  .hero-slide.m-stack.mbg-white { --m-bg: #fff; }
  .hero-slide.m-stack.mbg-navy { --m-bg: var(--ink); }
  .hero-slide.m-stack.mbg-black { --m-bg: #111; }
  /* text colours follow the background behind the text */
  .hero-slide.m-stack.mbg-cream, .hero-slide.m-stack.mbg-white { --hero-title-auto: #C98407; --hero-text-auto: #0C246E; }
  .hero-slide.m-stack.mbg-navy, .hero-slide.m-stack.mbg-black { --hero-title-auto: #F7BE82; --hero-text-auto: #FCFDE8; }
  .hero-slide.m-stack:is(.mbg-cream, .mbg-white) .kicker { color: var(--gold-text); }
  .hero-slide.m-stack:is(.mbg-navy, .mbg-black) .kicker { color: var(--peach); }
  .hero-slide.m-stack:is(.mbg-cream, .mbg-white) .hero-btn { padding: 9px 16px !important; background: rgba(90, 90, 90, .78) !important; color: #fff !important; }
  .hero-slide.m-stack:is(.mbg-navy, .mbg-black) .hero-btn { padding: 6px 0 !important; background: transparent !important; color: #fff !important; }
  .hero-slide.m-stack .hero-title { text-shadow: none; }
  /* text-over-photo slides: keep the photo behind everything */
  .hero .hero-slide.m-over .hero-bg { position: absolute; inset: 0; height: auto; }
}

/* Sections set to show only on computers or only on phones (Section style → Show this section on) */
@media (max-width: 720px) { .hide-phone { display: none !important; } }
@media (min-width: 721px) { .hide-desktop { display: none !important; } }

/* =====================================================================
   Looks from the original "Joy Atkinson" page
   ===================================================================== */

/* Introduction: Joy's full photo, text low on the left, outlined round buttons */
.blk.look-intro { --pad: 0px; display: flex; align-items: flex-start; min-height: min(calc(100vw / var(--ar, 2.15)), 780px); background-color: #00404D;
  padding: clamp(150px, 19.8vw, 380px) 0 clamp(50px, 7.8vw, 150px); }
.blk.look-intro.has-photo::before { background-position: center; }
.look-intro > .wrap { max-width: none; padding-left: clamp(20px, 10.4vw, 200px); padding-right: 20px; }
.intro-hello { max-width: min(930px, 50vw); }
.intro-hi { margin: 0; font: 400 clamp(20px, 1.46vw, 28px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #C6A96B; }
.blk .intro-name { margin: 0; font: 400 clamp(20px, 1.56vw, 30px)/1.56 Amarna, "Alegreya Sans", sans-serif; color: rgba(255, 255, 255, .8); text-transform: uppercase; letter-spacing: 0; }
.intro-name::after { display: none; }
.intro-hello .rich, .intro-hello .rich p { margin: 14px 0 0; max-width: 830px; font: 100 16px/1.56 Amarna, "Alegreya Sans", sans-serif; color: rgba(255, 255, 255, .8); }
.intro-actions { display: flex; flex-wrap: wrap; gap: 14px 28px; margin: 30px 0 0 14px; }
.btn-pill-line { display: inline-flex; align-items: center; gap: 6px; padding: 14px; border: 1px solid #008080; border-radius: 100px; color: #fff !important; text-decoration: none;
  font: 400 16px/20px Arimo, Arial, sans-serif; transition: background .25s, border-color .25s; }
.btn-pill-first { font-family: Alkatra, Arimo, sans-serif; }
.btn-pill-line:hover, .btn-pill-line:focus-visible { background: #008080; border-color: #008080; }
.btn-pill-line i { font-size: .8em; }
@media (max-width: 767px) {
  /* phones: the whole photo first, the words underneath on deep teal */
  .blk.look-intro { min-height: 0; padding: calc(100vw / var(--ar, 2.15) + 26px) 0 40px; }
  section.blk.look-intro.has-photo::before { position: absolute; inset: 0 0 auto; height: calc(100vw / var(--ar, 2.15)); background-size: cover; background-position: center top; }
  section.blk.look-intro.has-photo:not([class*="shape-slant"]) { clip-path: none; }
  .look-intro > .wrap { padding-left: 20px; }
  .intro-hello { max-width: none; }
  .intro-actions { margin-left: 0; }
}

/* Quote band: one gold italic line on the darkest teal, no big quotation mark */
.blk.look-band.blk-quote, .blk-quote.look-band { --pad: clamp(26px, 2.1vw, 40px); background: #00303D; }
.look-band .quote { max-width: 1210px; }
.blk .look-band .quote blockquote p, .look-band .quote blockquote p { margin: 0; font: italic 500 clamp(20px, 1.46vw, 28px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #C6A96B; }
.look-band .quote blockquote p::before { content: "“"; display: inline; font: inherit; color: inherit; margin: 0; }
.look-band .quote blockquote p::after { content: "”"; }

/* Title band ("Practice Areas", "Professional Background") */
.blk-text.look-band { --pad: clamp(44px, 5.2vw, 100px); }
.blk-text.look-band.bg-teal:not(.has-photo) { background: #00303D; }
.blk-text.look-band.has-photo::before { background-position: center; }
.blk.look-band .blk-head { margin: 0 auto clamp(0px, 1.8vw, 34px); text-align: center; }
.blk.look-band .blk-title { margin: 0; font: 900 clamp(25px, 2.1vw, 40px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #fff; text-transform: uppercase; text-align: center; }
.look-band .text-wrap { max-width: none; text-align: center; }

/* Lined text ("Cross-Cultural Insight"): thin line beside the text, the two paragraphs side by side */
.blk-text.look-lined { --pad: 60px; }
.blk-text.look-lined:not(.shape-none) { padding-bottom: 100px; }
.look-lined .text-wrap { max-width: 1210px; }
.look-lined .text-wrap .blk-head { margin: 0 0 24px 17px; max-width: none; }
.look-lined .rich { columns: auto !important; }
.look-lined .rich > h3, .look-lined .rich > h4, .look-lined .rich > .imp-text, .look-lined .rich > p { border-left: 1px solid rgba(30, 30, 30, .3); padding-left: clamp(14px, 1.4vw, 20px); margin: 0 0 24px; }
.look-lined .tcols-2 .rich > .imp-text { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.look-lined .rich > .imp-text p { margin: 0; }
.look-lined .blk-actions { justify-content: center; text-align: center; margin-top: 0; }
@media (max-width: 760px) { .look-lined .tcols-2 .rich > .imp-text { grid-template-columns: 1fr; gap: 12px; } }

/* Staggered image + text ("Thought Leadership & Community") */
.blk-image_text.look-stagger.bg-sand { background: radial-gradient(at 50% 0%, #fff 70%, #E4D8C9 100%); }
.stagger { display: grid; grid-template-columns: minmax(0, 1.17fr) minmax(0, 1fr); column-gap: clamp(28px, 2.3vw, 44px); row-gap: clamp(40px, 6.5vw, 126px); align-items: start; max-width: 1290px; margin: 0 auto; }
.stagger-lead { grid-column: 1; grid-row: 1; text-align: right; }
.stagger-lead .blk-head { margin: 0 0 8px; max-width: none; text-align: right; }
.stagger-lead .rich, .stagger-lead .rich p { text-align: right; }
.stagger-media { grid-column: 1; grid-row: 2; margin: clamp(0px, 4.8vw, 93px) 0 0; }
.stagger-media img { display: block; width: 100%; height: auto; border-radius: 0; box-shadow: none; }
.stagger-copy { grid-column: 2; grid-row: 2; max-width: 560px; }
.stagger.img-right .stagger-lead, .stagger.img-right .stagger-media { grid-column: 2; }
.stagger.img-right .stagger-copy { grid-column: 1; }
.stagger-copy .rich h3 { margin: 0; }
@media (max-width: 860px) {
  .stagger { grid-template-columns: 1fr; row-gap: 24px; }
  .stagger-lead, .stagger-media, .stagger-copy, .stagger.img-right .stagger-lead, .stagger.img-right .stagger-media, .stagger.img-right .stagger-copy { grid-column: 1; grid-row: auto; }
  .stagger-lead, .stagger-lead .blk-head, .stagger-lead .rich, .stagger-lead .rich p { text-align: left; }
  .stagger-media { margin: 0; }
  .stagger-copy { max-width: none; }
}

/* Staggered columns ("Dispute Resolution" / "Corporate Advisory") */
.look-stagger .columns { grid-template-columns: repeat(2, minmax(0, 445px)); column-gap: clamp(32px, 6.3vw, 120px); max-width: 1010px; margin: 0; }
.look-stagger .columns .column:nth-child(even) { margin-top: clamp(40px, 6.6vw, 127px); }
.look-stagger .columns .imp-sect { margin-left: clamp(16px, 2.2vw, 42px); border-left-width: 1px; padding-left: clamp(16px, 1.7vw, 32px); }
.look-stagger .columns .rich ul li::marker { color: #382803; }
.look-stagger .columns .rich ul { list-style: disc; }
@media (max-width: 700px) { .look-stagger .columns { grid-template-columns: 1fr; } .look-stagger .columns .column:nth-child(even) { margin-top: 0; } }

/* Tabs in a deep-teal square box */
.look-box .tabs { max-width: 1290px; margin: 0 auto; padding: clamp(36px, 4.8vw, 92px) clamp(16px, 1.6vw, 30px) 20px; background: #00404D; color: rgba(253, 251, 212, .85); }
.look-box .tab-list { gap: 10px 20px; margin-bottom: 10px; }
.look-box .tab-list button { padding: 10px; font-size: 16px; }
.look-box .tab-panel { padding: 10px; border: 1px solid #E5E5E5; min-height: 120px; }
.look-box .tab-panel li::before { content: "\2022"; font: inherit; color: rgba(253, 251, 212, .85); left: .6em; top: 0; }
.look-box .tab-panel .rich h3 + .imp-text, .look-box .tab-panel .rich h4 + .imp-text { padding-left: 1.4em; }
.look-box .tab-panel a { color: rgba(255, 255, 255, .6); }

/* "Let's talk..." wine card: photo and heading on the left, short form in a white card */
.blk-contact.look-cta { --pad: 20px; }
.blk-contact.look-cta.bg-teal { background: #00404D; }
.cta-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 500px); align-items: center; gap: 24px; max-width: 1290px; min-height: 426px; margin: 60px auto;
  padding: 68px clamp(20px, 3.9vw, 75px) 60px; border-radius: 15px; overflow: hidden; color: #222;
  background: url("/images/politic/background/cta-path1.png") right top / min(521px, 45%) auto no-repeat,
              linear-gradient(118deg, transparent 0 52%, rgba(196, 18, 48, .55) 52% 64%, transparent 64%),
              linear-gradient(118deg, transparent 0 70%, rgba(214, 26, 56, .7) 70%),
              #730619; }
.cta-photo { position: relative; align-self: stretch; display: flex; align-items: center; justify-content: flex-end; min-height: 300px; margin: -68px 0 -60px; padding: 0; }
.cta-photo::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: min(456px, 66%); background: var(--side-photo) center bottom / cover no-repeat; }
.cta-photo.no-photo::before { display: none; }
.blk .cta-card-title { position: relative; margin: 0 clamp(0px, 4vw, 70px) 0 0; font: 700 clamp(30px, 2.5vw, 48px)/1.4 Merriweather, Georgia, serif !important; color: #000 !important; text-transform: none; letter-spacing: 0; text-align: left; }
.cta-card-title::after { display: none; }
.cta-photo .rich { position: relative; }
.cta-form { background: #fff; border-radius: 15px; padding: clamp(28px, 3vw, 58px) clamp(22px, 2.4vw, 45px); }
.cta-form .contact-form-wrap, .cta-form .contact-form { max-width: none; margin: 0; padding: 0; background: none; box-shadow: none; border: 0; }
.cta-form .contact-form { display: grid; gap: 20px; }
.cta-form .contact-form .field-row { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 0; }
.cta-form .contact-form label { margin: 0; }
.cta-form .contact-form input:not([type=checkbox]) { margin: 0; padding: 8px; height: 37px; border: 1px solid rgba(30, 30, 30, .3); border-radius: 7px; background: #fff; font: 400 15px Arimo, Arial, sans-serif; box-shadow: none; }
.cta-form .contact-form input::placeholder { color: rgba(30, 30, 30, .4); }
.cta-form .form-submit { margin: 20px 0 0; }
.cta-form .btn.btn-consult { width: 100%; min-height: 48px; padding: 13px 20px; border: 1px solid transparent; border-radius: 4px; background: #FA5555; color: #fff; box-shadow: none;
  font: 700 16px/20px Manrope, Arimo, sans-serif; text-transform: uppercase; letter-spacing: 0; }
.cta-form .btn.btn-consult:hover, .cta-form .btn.btn-consult:focus-visible { background: #e03e3e; transform: none; }
.cta-form .btn.btn-consult::after { display: none; }
.cta-form .form-agree { font-size: 12px; line-height: 1.5; }
@media (max-width: 860px) {
  .cta-card { grid-template-columns: 1fr; padding: 0 0 24px; margin: 30px auto; }
  .cta-photo { margin: 0; min-height: 320px; justify-content: flex-end; align-items: flex-end; padding: 0 20px 18px; }
  .cta-photo::before { width: 100%; }
  .blk .cta-card-title { margin: 0; text-shadow: 0 1px 10px rgba(255, 255, 255, .6); }
  .cta-form { margin: 0 16px; }
}

.look-box > .wrap, .look-cta > .wrap { max-width: 1330px; }
.look-lined .rich > h3, .look-lined .rich > h4 { text-align: left !important; }
@media (max-width: 860px) { .blk .stagger-lead .blk-title { text-align: left !important; } }

/* Background photos stay still while the page moves over them (computers; phones are handled above).
   A section can opt out with "Photo scrolls with the page". */
@media (min-width: 1025px) and (hover: hover) {
  section.blk.has-photo:not(.photo-scroll):not(.photo-contain)::before { background-attachment: fixed; }
}
section.blk.has-photo.photo-scroll::before { position: absolute !important; background-attachment: scroll !important; height: auto !important; inset: 0 !important; }
section.blk.has-photo.photo-scroll { clip-path: none; }

/* Imported sub-headings use the original site's regular weight unless they say otherwise */
.rich h3[style], .rich h4[style] { font-weight: 400; }
.look-lined .btn.btn-teal-line { font-size: clamp(1rem, 1.15vw, 22px); }
.look-box .tab-panel .rich h3:not([style*="color"]), .look-box .tab-panel .rich h4:not([style*="color"]) { color: rgba(255, 240, 245, .8); }
.look-box .tab-panel .rich h3, .look-box .tab-panel .rich h4 { transition: color .35s ease; }
.look-box .tab-panel .rich > h3:first-child:hover { color: #F5A624 !important; }
.title-tilt .blk-title { display: inline-block; will-change: transform; }

/* Intro photo: keep the words clear of the person on the right */
.intro-hello { max-width: min(830px, 38vw); }
@media (max-width: 767px) { .intro-hello { max-width: none; } }

/* ---------- Picture effects (Settings → Pictures, or Section style → Pictures) ---------- */
img[class*="pic-in-"] { transition: opacity .9s ease, transform 1s cubic-bezier(.2, .7, .2, 1), filter .9s ease, clip-path 1s cubic-bezier(.65, 0, .35, 1); }
.js img.pic-wait.pic-in-fade { opacity: 0 !important; }
.js img.pic-wait.pic-in-up { opacity: 0 !important; transform: translateY(50px) !important; }
.js img.pic-wait.pic-in-down { opacity: 0 !important; transform: translateY(-50px) !important; }
.js img.pic-wait.pic-in-left { opacity: 0 !important; transform: translateX(-70px) !important; }
.js img.pic-wait.pic-in-right { opacity: 0 !important; transform: translateX(70px) !important; }
.js img.pic-wait.pic-in-zoom { opacity: 0 !important; transform: scale(.8) !important; }
.js img.pic-wait.pic-in-shrink { opacity: 0 !important; transform: scale(1.2) !important; }
.js img.pic-wait.pic-in-blur { opacity: 0 !important; filter: blur(14px) !important; }
.js img.pic-wait.pic-in-flip { opacity: 0 !important; transform: perspective(900px) rotateY(70deg) !important; }
.js img.pic-wait.pic-in-turn { opacity: 0 !important; transform: rotate(-8deg) scale(.88) !important; }
.js img.pic-wait.pic-in-reveal { clip-path: inset(0 100% 0 0) !important; }
.js img.pic-wait.pic-in-curtain { clip-path: inset(100% 0 0 0) !important; }

img[class*="pic-hover-"]:not(.pic-wait) { transition: transform .6s cubic-bezier(.2, .7, .2, 1), filter .5s ease, box-shadow .5s ease, clip-path .6s cubic-bezier(.2, .7, .2, 1), opacity .9s ease; }
img.pic-hover-zoom:not(.pic-wait):not(.pic-shaped):hover { transform: scale(1.08) !important; clip-path: inset(3.7% round calc(var(--pic-r, 0px) / 1.08)); }
img.pic-hover-zoom-out:not(.pic-wait):not(.pic-shaped) { transform: scale(1.1) !important; clip-path: inset(4.55% round calc(var(--pic-r, 0px) / 1.1)); }
img.pic-hover-zoom-out:not(.pic-wait):not(.pic-shaped):hover { transform: scale(1) !important; clip-path: inset(0 round var(--pic-r, 0px)); }
img.pic-hover-lift:not(.pic-wait):hover { transform: translateY(-8px) !important; box-shadow: 0 18px 34px rgba(0, 0, 0, .28); }
img.pic-hover-tilt:not(.pic-wait):hover { transform: var(--pic-tilt, none) !important; transition-duration: .2s, .5s, .5s, .6s, .9s; }
img.pic-hover-gray:not(.pic-wait) { filter: grayscale(1); }
img.pic-hover-gray:not(.pic-wait):hover { filter: grayscale(0); }
img.pic-hover-bright:not(.pic-wait):hover { filter: brightness(1.12) saturate(1.15); }
img.pic-hover-rotate:not(.pic-wait):not(.pic-shaped):hover { transform: scale(1.12) rotate(2deg) !important; clip-path: inset(5.4% round calc(var(--pic-r, 0px) / 1.12)); }
img.pic-hover-glow:not(.pic-wait):hover { filter: drop-shadow(0 0 14px rgba(246, 168, 60, .75)); }
@media (prefers-reduced-motion: reduce) { img[class*="pic-hover-"]:hover { transform: none !important; } }

/* arrow-shaped pictures keep their shape: they grow a little instead of being cropped */
img.pic-shaped:is(.pic-hover-zoom, .pic-hover-rotate, .pic-hover-zoom-out):not(.pic-wait):hover { transform: scale(1.04) !important; }

/* =====================================================================
   Looks from the original Contact page
   ===================================================================== */
/* Title strip at the top of inner pages (page setting "Show title banner at top") */
.page-banner { padding: 30px 0 28px; background: #3a2412; }
.page-banner[style]::after { background: linear-gradient(90deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .12)); }
.page-banner h1 { margin: 0 0 6px; font: 500 24px/1.3 Arimo, Arial, sans-serif; text-transform: none; letter-spacing: 0; color: #fff; }
.page-banner h1::after { display: none; }
.page-banner .crumbs { margin: 0; padding: 4px 16px; font: 400 16px/1.5 Arimo, Arial, sans-serif; letter-spacing: 0; text-transform: none; color: #fff; }
.page-banner .crumbs a { color: #fff; text-decoration: none; transition: color .25s; }
.page-banner .crumbs a::after { content: none; }
.page-banner .crumbs a:hover { color: #E1AD6F; }
.crumbs-here { margin-right: 6px; }
.crumbs-sep { margin: 0 4px; opacity: .8; }

/* Contact intro: centred title, then a tall photo with a details box beside it */
.blk-columns.look-contact.bg-teal { background: #00404D; }
.blk-columns.look-contact { --pad: clamp(40px, 3.7vw, 70px); }
.ct-head { max-width: 1260px; margin: 0 auto clamp(48px, 7.5vw, 145px); text-align: center; }
.blk .ct-title { margin: 0; font: italic 700 clamp(20px, 1.56vw, 30px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #C6A96B; text-transform: uppercase; letter-spacing: 0; transition: color .35s ease; }
.ct-title::after { content: ""; display: block; width: 60px; height: 1px; margin: 22px auto 20px; background: rgba(10, 201, 201, .45); transition: width .45s ease; }
.ct-head:hover .ct-title { color: #FDFBD4; }
.ct-head:hover .ct-title::after { width: 140px; }
.ct-head .rich, .ct-head .rich h4, .ct-head .rich p { margin: 0; font: 400 clamp(15px, .94vw, 18px)/1.6 "Work Sans", Arimo, sans-serif; color: rgba(243, 240, 244, .8); text-transform: none; letter-spacing: 0; }
.ct-row { display: grid; grid-template-columns: minmax(0, 651px) minmax(0, 550px); gap: 30px; align-items: center; max-width: 1260px; margin: 0 auto; }
.ct-photo { margin: 0; overflow: hidden; }
.ct-photo img { display: block; width: 100%; height: auto; }
.ct-box { padding: clamp(28px, 2.6vw, 50px) 30px; background: rgba(0, 48, 61, .8); text-align: center; transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease, background .45s ease; }
.ct-box::before { content: ""; display: block; width: 60px; height: 1px; margin: 0 auto 26px; background: rgba(243, 240, 244, .35); transition: width .45s ease, background .45s ease; }
.ct-box:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(0, 0, 0, .35); background: rgba(0, 48, 61, 1); }
.ct-box:hover::before { width: 120px; background: #C6A96B; }
.blk .ct-box .ct-label, .ct-box .rich h3, .ct-box .rich h4 { margin: 0 0 6px; font: 500 clamp(15px, .94vw, 18px)/1.6 "Work Sans", Arimo, sans-serif; color: rgba(198, 169, 107, .6); text-transform: none; letter-spacing: 0; transition: color .35s ease; }
.ct-box:hover .ct-label, .ct-box:hover .rich h4 { color: #C6A96B; }
.ct-box .rich p { margin: 0 0 18px; font: 400 clamp(15px, .94vw, 18px)/1.5 "Work Sans", Arimo, sans-serif; color: rgba(243, 240, 244, .75); }
.ct-box .rich p:last-child { margin-bottom: 0; font-size: 15px; font-weight: 300; }
@media (max-width: 860px) { .ct-row { grid-template-columns: 1fr; } .ct-photo { max-width: 520px; margin: 0 auto; } }

/* Pricing box and form card on the still photo */
.blk-contact.look-pricing { --pad: clamp(40px, 4.2vw, 80px); }
.blk-contact.look-pricing > .wrap { max-width: 1464px; }
.pr-wrap { max-width: 1424px; margin: 0 auto; }
.pr-box { padding: 60px clamp(18px, 2.1vw, 40px); background: #00404D; color: rgba(243, 240, 244, .8); text-align: center; }
.pr-head { margin-bottom: 26px; }
.blk .pr-title { margin: 0 0 10px; font: 400 clamp(28px, 2.1vw, 40px)/1.45 Cormorant, "Cormorant Garamond", Georgia, serif; color: #E1AD6F; text-transform: none; letter-spacing: 0; }
.pr-title::after { display: none; }
.pr-head .rich p { margin: 0; font: italic 400 14px/1.6 Arimo, Arial, sans-serif; color: rgba(243, 240, 244, .8); }
.pr-card { padding: 18px 20px 22px; background: #00303D; border-radius: 20px; box-shadow: 2px 2px 8px #AAA; transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease; position: relative; z-index: 0; }
.pr-card:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(225, 173, 111, .55), 0 14px 30px rgba(0, 0, 0, .35); z-index: 1; }
.blk .pr-card-title { margin: 0 0 8px; font: italic 100 clamp(28px, 2.1vw, 40px)/1.45 Cormorant, "Cormorant Garamond", Georgia, serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; transition: color .35s ease; }
.pr-card-title::after { display: none; }
.pr-card:hover .pr-card-title { color: #E1AD6F; }
.pr-card .rich p { margin: 0 0 16px; font: 400 16px/1.56 Arimo, Arial, sans-serif; color: #F3F0F4; }
.pr-card .rich p:last-child { margin-bottom: 0; }
.pr-plain { margin-top: 40px; }
.blk .pr-sub { margin: 0 0 18px; font: 300 24px/1.2 "Work Sans", Arimo, sans-serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; transition: color .35s ease; cursor: default; }
.pr-sub::after { display: none; }
.pr-plain:hover .pr-sub { color: #E1AD6F; }
.pr-plain .rich p { margin: 0 0 16px; font: 300 15px/1.6 "Work Sans", Arimo, sans-serif; color: rgba(243, 240, 244, .8); }
.pr-statement { position: relative; margin: clamp(40px, 5vw, 90px) auto 0; max-width: 1000px; padding-top: 22px; font: italic 400 clamp(24px, 2.1vw, 40px)/1.2 "Work Sans", Arimo, sans-serif; color: #F3F0F4; transition: color .35s ease, letter-spacing .45s ease; }
.pr-statement::before { content: ""; position: absolute; left: 0; top: 0; width: 60px; height: 1px; background: rgba(243, 240, 244, .4); transition: width .5s ease; }
.pr-statement:hover { color: #FDFBD4; }
.pr-statement:hover::before { width: 160px; }
.pr-after { margin: 40px auto 20px; text-align: center; }
.blk .pr-after-title { margin: 0 0 10px; font: 500 20px/1.2 "Work Sans", Arimo, sans-serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; text-shadow: 0 1px 10px rgba(0, 0, 0, .6); }
.pr-after-title::after { display: none; }
.pr-after .rich p { margin: 0; font: 300 15px/1.6 "Work Sans", Arimo, sans-serif; color: #fff; text-shadow: 0 1px 10px rgba(0, 0, 0, .7); }
.pr-form { padding: clamp(28px, 3.1vw, 60px); background: #F3F0F4; border-radius: 7px; box-shadow: 0 20px 30px rgba(0, 0, 0, .6); color: #464855; }
.blk .pr-form-title { margin: 0 0 30px; text-align: center; font: 600 clamp(28px, 2.1vw, 40px)/1.4 Arimo, Arial, sans-serif; color: #008080; text-transform: none; letter-spacing: 0; }
.pr-form-title::after { display: none; }
.pr-form .contact-form-wrap, .pr-form .contact-form { max-width: none; margin: 0; padding: 0; background: none; box-shadow: none; border: 0; }
.pr-form .contact-form { display: grid; gap: 20px; }
.pr-form .contact-form .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 30px; margin: 0; }
.pr-form .contact-form .field-row.field-stack { grid-template-columns: 1fr; }
.pr-form .contact-form label { margin: 0; }
.pr-form .contact-form input:not([type=checkbox]), .pr-form .contact-form textarea { margin: 0; padding: 8px; background: #fff; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; box-shadow: none; font: 400 16px/1.3 Arimo, Arial, sans-serif; transition: border-color .25s, box-shadow .25s; }
.pr-form .contact-form input:not([type=checkbox]):hover, .pr-form .contact-form textarea:hover { border-color: rgba(10, 201, 201, .6); }
.pr-form .contact-form input:focus, .pr-form .contact-form textarea:focus { outline: none; border-color: #0AC9C9; box-shadow: 0 0 0 3px rgba(10, 201, 201, .18); }
.pr-form .contact-form textarea { height: 117px; }
.pr-form .form-agree { display: block; margin: 0; text-align: center; font: 400 13px/1.5 Arimo, Arial, sans-serif; color: #464855; letter-spacing: 0; text-transform: none; }
.pr-form .form-agree span { display: inline; font: inherit; color: inherit; }
.pr-form .form-agree input { display: inline-block; width: auto; margin: 0 8px 0 0; vertical-align: -2px; }
.pr-form .form-submit { margin: 0; }
.pr-form .btn.btn-consult { width: 100%; min-height: 37px; padding: 8px 12px; border: 1px solid #0AC9C9; border-radius: 4px; background: transparent; color: #0AC9C9; box-shadow: none;
  font: 400 14px/1.2 Alkatra, Arimo, sans-serif; letter-spacing: 0; text-transform: none; transition: background .3s, color .3s, letter-spacing .3s; }
.pr-form .btn.btn-consult::after { display: none; }
.pr-form .btn.btn-consult:hover, .pr-form .btn.btn-consult:focus-visible { background: #0AC9C9; color: #fff; letter-spacing: .04em; transform: none; }
.pr-details { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 80px; margin: 34px 0 0; padding: 0; list-style: none; }
.pr-details li { display: flex; align-items: center; gap: 12px; font: 400 15px/1.3 "Work Sans", Arimo, sans-serif; text-shadow: 0 1px 8px rgba(0, 0, 0, .8); }
.pr-details i { font-size: 18px; color: #fff; transition: transform .3s ease, color .3s ease; }
.blk .pr-details a { color: #fff; text-decoration: none; transition: color .3s ease; }
.pr-details li:hover i { transform: scale(1.2) rotate(-8deg); color: #E1AD6F; }
.blk .pr-details li:hover a { color: #E1AD6F; }
@media (max-width: 700px) { .pr-form .contact-form .field-row { grid-template-columns: 1fr; } .pr-details { gap: 12px 30px; } }

/* =====================================================================
   Looks from the original About page
   ===================================================================== */
/* Picture banner with a see-through caption bar */
.img-tab { position: relative; max-width: 1290px; margin: 0 auto; overflow: hidden; }
.img-tab img { display: block; width: 100%; height: clamp(260px, 31.4vw, 600px); object-fit: cover; object-position: center; }
.img-tab figcaption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; }
.img-tab figcaption > * { display: block; padding: 18px 10px; border: 1px solid rgba(255, 255, 255, .5); border-bottom: 0; border-radius: 4px 4px 0 0; background: rgba(0, 28, 68, .5); color: #fff;
  font: 700 14px/22px Arimo, Arial, sans-serif; text-align: center; text-transform: uppercase; text-decoration: none; transition: background .3s ease, letter-spacing .4s ease; }
.img-tab:hover figcaption > * { background: rgba(0, 28, 68, .7); letter-spacing: .08em; }

/* Our Work: heading over the card, photo slides in, pink card */
.it-work .blk-head, .it-approach .blk-head { max-width: none; margin: 0 0 clamp(30px, 4vw, 60px); }
.it-work .blk-head.align-right { text-align: right; padding-right: clamp(0px, 5.2vw, 100px); }
.blk .it-work .blk-title, .blk .it-approach .blk-title { margin: 0; font: 600 clamp(32px, 2.5vw, 48px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #fff; text-transform: uppercase; letter-spacing: 0; transition: color .35s ease; }
.it-work .blk-title::after, .it-approach .blk-title::after { display: none; }
.it-work .blk-head:hover .blk-title, .it-approach .blk-head:hover .blk-title { color: #E1AD6F; }
.it-work .it-row { display: grid; grid-template-columns: minmax(0, 624px) minmax(0, 557px); gap: clamp(24px, 3.1vw, 60px); align-items: start; max-width: 1290px; }
.it-work.img-right .it-row { grid-template-columns: minmax(0, 557px) minmax(0, 624px); }
.it-work.img-right .it-photo { order: 2; }
.it-photo { margin: 0; will-change: transform; }
.it-work .it-photo img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 15px; box-shadow: 5px 12px 24px -5px rgba(2, 18, 59, .26); }
.it-work .it-card { margin-top: 20px; padding: 60px 20px 60px; background: #FFF0F5; border-radius: 14px; text-align: center; color: #382803; transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease; }
.it-work .it-card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(0, 0, 0, .3); }
.blk .it-card-title { margin: 0 0 20px; font: 400 clamp(24px, 1.7vw, 32px)/1.3 "Playfair Display", Georgia, serif; color: #382803; text-transform: none; letter-spacing: 0; }
.it-card-title::after { display: none; }
.it-work .it-card .rich p { margin: 0 0 16px; font: 400 16px/1.7 "Open Sans", Arimo, sans-serif; color: #382803; }
.it-work .it-card .blk-actions { justify-content: center; margin: 30px 0 0; }
.btn.btn-pill-outline { min-height: 0; padding: 12px 30px; border: 1px solid #4D4D4D; border-radius: 100px; background: transparent; color: #008080; box-shadow: none;
  font: 400 16px/1.3 Alkatra, Arimo, sans-serif; letter-spacing: 0; text-transform: none; transition: background .3s, color .3s, border-color .3s; }
.btn.btn-pill-outline::after { display: none; }
.btn.btn-pill-outline:hover, .btn.btn-pill-outline:focus-visible { background: #E1AD6F; border-color: #E1AD6F; color: #fff; transform: none; }

/* Our Approach: gold box, photo overlapping it and straightening as you scroll */
.it-approach .it-row { position: relative; display: grid; grid-template-columns: minmax(0, 630px) minmax(0, 1fr); max-width: 1290px; }
.it-approach .it-card { grid-column: 1; grid-row: 1; padding: 16px 48px 40px; background: #E1AD6F; color: #02193C; transition: box-shadow .45s ease; }
.it-approach .it-card:hover { box-shadow: 0 16px 34px rgba(0, 0, 0, .3); }
.it-approach .it-photo { grid-column: 2; grid-row: 1; align-self: start; margin: 100px 0 -100px -11px; position: relative; z-index: 1; }
.it-approach.img-left .it-card { grid-column: 2; } .it-approach.img-left .it-photo { grid-column: 1; margin: 100px -11px -100px 0; }
.it-approach .it-photo img { display: block; width: 100%; max-width: 704px; border-radius: 14px; box-shadow: 0 18px 40px rgba(0, 0, 0, .3); }
.it-approach .rich h3, .it-approach .rich h4 { margin: 20px 0 8px; font: 500 clamp(22px, 1.5vw, 28px)/1.2 Amarna, "Alegreya Sans", sans-serif; color: #02193C; text-transform: uppercase; letter-spacing: 0; transition: color .3s ease, transform .3s ease; }
.it-approach .rich h3:first-child { margin-top: 10px; font-size: clamp(24px, 1.6vw, 30px); font-weight: 700; font-style: italic; text-decoration: underline; }
.it-approach .rich h3:nth-of-type(3) { font-style: italic; }
.it-approach .rich h3:hover { color: #fff; transform: translateX(6px); }
.it-approach .rich p { margin: 0 0 12px; font: 400 16px/1.6 Cabin, Arimo, sans-serif; color: #02193C; }
.blk-image_text:has(.it-approach) { padding-bottom: clamp(60px, 10.5vw, 200px); }
@media (max-width: 860px) {
  .it-work .it-row, .it-work.img-right .it-row, .it-approach .it-row { grid-template-columns: 1fr; }
  .it-work .blk-head.align-right { text-align: left; padding: 0; }
  .it-work .it-card { margin-top: 0; padding: 36px 18px; }
  .it-approach .it-card, .it-approach.img-left .it-card { grid-column: 1; grid-row: 1; padding: 16px 22px 30px; }
  .it-approach .it-photo, .it-approach.img-left .it-photo { grid-column: 1; grid-row: 2; margin: -20px 10px 0; }
}

/* Our Values: dark heading bar, blue-grey columns */
.values { max-width: 1290px; margin: 0 auto; }
.values-bar { display: grid; place-items: center; min-height: clamp(90px, 7vw, 134px); margin-bottom: 0; background: #00303D; }
.blk .values .values-title { margin: 0; font: 600 clamp(32px, 2.5vw, 48px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #B2C1CD; text-transform: uppercase; letter-spacing: 0; transition: color .35s ease; }
.values-title::after { display: none; }
.values-bar:hover .values-title { color: #FDFBD4; }
.values-cols { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: clamp(14px, 1.5vw, 29px); padding: 0 10px; }
.values-cols.n-2 { --n: 2; } .values-cols.n-4 { --n: 4; }
.value-col { display: flex; flex-direction: column; padding: 0 0 25px; background: #B2C1CD; transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease; }
.value-col:hover { transform: translateY(-8px); box-shadow: 0 18px 34px rgba(0, 0, 0, .35); }
.blk .value-col .value-title { display: grid; place-items: center; min-height: 94px; margin: 0 0 16px; padding: 0 20px; font: italic 400 clamp(22px, 1.5vw, 28px)/1.2 Georgia, serif; color: #05265D; text-transform: none; letter-spacing: 0; transition: color .35s ease; }
.value-title::after { display: none; }
.value-col:hover .value-title { color: #8A5A12; }
.value-text { padding: 10px; background: #F8F8F8; text-align: center; }
.value-text .rich p, .value-text p { margin: 0; padding: clamp(14px, 2vw, 40px) 10px; font: 400 clamp(17px, 1.05vw, 20px)/1.55 "Bona Nova SC", Georgia, serif; color: #382803; }
@media (max-width: 760px) { .values-cols { grid-template-columns: 1fr; } }

/* Title bands on photos (About page): large cream title, right or centred */
.blk-text.look-band .text-wrap.align-right { text-align: right; padding-right: clamp(0px, 5.2vw, 100px); }
.blk.look-band .align-right .blk-title, .blk.look-band .align-right .blk-head { text-align: right; }


/* Rotating headline, italic look */
.blk-rotating.look-script.bg-teal { background: #00404D; }
.look-script .rotating { font: italic 400 clamp(26px, 2.1vw, 40px)/1.4 "Alegreya Sans", Arimo, sans-serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; }
.look-script .rot-words { font: italic 500 clamp(30px, 2.5vw, 48px)/1.3 Amarna, "Alegreya Sans", sans-serif; color: #F5A624; }
.look-script .rot-word { text-decoration: underline; text-decoration-color: #0AC9C9; text-decoration-thickness: 2px; text-underline-offset: 8px; }

/* Picture cards in columns ("services") */
.masonry-intro { max-width: 1050px; margin: 0 auto clamp(40px, 5.5vw, 105px); }
.masonry-intro .rich h3 { margin: 0 0 22px; font: 400 clamp(18px, 1.05vw, 20px)/1.2 Cormorant, "Cormorant Garamond", Georgia, serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; }
.masonry-intro .rich p { font: 400 16px/1.56 Arimo, Arial, sans-serif; color: rgba(255, 255, 255, .8); }
.masonry { display: grid; grid-template-columns: repeat(var(--mc, 4), minmax(0, 1fr)); gap: 30px; max-width: 1290px; margin: 0 auto; }
.masonry.cols-3 { --mc: 3; } .masonry.cols-2 { --mc: 2; }
.masonry-col { display: flex; flex-direction: column; gap: 32px; padding: 10px 0 80px; background: #00303D; }
.m-card { position: relative; padding: 0 0 10px; background: #FFF0F5; border-radius: 20px; box-shadow: 5px 5px 10px rgba(166, 189, 169, .5); text-align: center; overflow: hidden; transition: box-shadow .4s ease; will-change: transform; }
.m-card:hover { box-shadow: 12px 12px 20px rgba(163, 198, 168, .5); }
.m-card-img { overflow: hidden; }
.m-card-img img { display: block; width: 100%; height: auto; transition: transform .7s ease; }
.m-card:hover .m-card-img img { transform: scale(1.06); }
.blk .m-card .m-card-title, .m-card .m-card-title a { margin: 0; padding: 20px 10px 8px; font: 600 clamp(17px, 1.05vw, 20px)/1.6 Arimo, Arial, sans-serif; color: #02193C; text-transform: none; letter-spacing: 0; text-decoration: none; transition: color .3s ease; }
.m-card-title::after { display: none; }
.m-card:hover .m-card-title, .m-card:hover .m-card-title a { color: #B5701A; }
.m-card .rich, .m-card .rich p { margin: 0; padding: 0 10px; font: 400 16px/1.75 Inter, Arimo, sans-serif; color: rgba(10, 10, 10, .85); text-align: center; }
.m-more { padding: 40px 30px 35px; border: 1px solid rgba(255, 255, 255, .4); border-radius: 20px; box-shadow: 5px 5px 10px rgba(166, 189, 169, .5); text-align: center; font: 400 clamp(22px, 1.5vw, 28px)/1.2 Alkatra, Arimo, sans-serif; color: #FDFBD4; transition: box-shadow .4s ease, color .3s ease, background .3s ease; }
.m-more a { color: inherit; text-decoration: none; }
.m-more:hover { color: #E1AD6F; background: rgba(255, 255, 255, .06); box-shadow: 12px 12px 20px rgba(163, 198, 168, .5); }
@media (max-width: 1000px) { .masonry { --mc: 2 !important; } }
@media (max-width: 600px) { .masonry { --mc: 1 !important; } .masonry-col { padding-bottom: 20px; } }

/* Team photos with a name bar that slides up under the mouse */
.team-overlay { display: flex; flex-wrap: wrap; justify-content: center; gap: 29px; }
.to-person { position: relative; margin: 0; overflow: hidden; height: clamp(300px, 27.7vw, 531px); }
.to-person img { display: block; height: 100%; width: auto; max-width: 100%; object-fit: cover; transition: transform .7s ease; }
.to-person:hover img { transform: scale(1.04); }
.to-info { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px 20px 26px; background: #0B1D42; color: #fff;
  transform: translateY(100%); transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
.to-person:hover .to-info, .to-person:focus-within .to-info { transform: none; }
.to-name, .to-name a { font: 500 16px/1.4 Poppins, Arimo, sans-serif; color: #fff; text-decoration: none; }
.to-role { font: 300 12px/1.4 Poppins, Arimo, sans-serif; color: #F8F8FA; }
.to-social { display: flex; gap: 14px; margin-top: 6px; }
.to-social a { color: #EFEFEF; font-size: 14px; transition: color .25s, transform .25s; }
.to-social a:hover { color: #E1AD6F; transform: translateY(-2px); }
@media (hover: none) { .to-info { transform: none; position: static; } .to-person { height: auto; } .to-person img { width: 100%; height: auto; } }
.team-tagline { margin: 25px 0 0; text-align: center; }
.team-tagline .tagline { display: inline-block; font: 400 clamp(26px, 2vw, 38.4px)/1.3 Alkatra, Arimo, sans-serif; color: #02193C; cursor: default; }

/* Grey map-like edges (Section edge: "Grey map-like edges at the top and bottom") */
.sec-map { position: absolute; left: 0; right: 0; z-index: -1; height: clamp(60px, 8vw, 150px); background: url("/assets/shapes/map-edge.svg") center / 100% 100% no-repeat; pointer-events: none; }
.sec-map-top { top: 0; }
.sec-map-bottom { bottom: 0; transform: scaleY(-1); }
.blk:has(> .sec-map) { padding-top: calc(var(--pad, 0px) + clamp(20px, 3vw, 50px)); padding-bottom: calc(var(--pad, 0px) + clamp(20px, 3vw, 50px)); }
.blk.bg-teal:has(> .wrap > :is(.values, .it-work, .it-approach, .img-tab, .masonry, .masonry-intro)) { background: #00404D; }
.blk-text.look-band .text-wrap.align-right .blk-head { margin-left: auto; margin-right: 0; }
.look-script .rot-prefix { font: italic 400 clamp(26px, 2.1vw, 40px)/1.4 "Alegreya Sans", Arimo, sans-serif; color: #FDFBD4; text-transform: none; letter-spacing: 0; margin-right: .3em; }

/* Contact page "Let's Talk" card: same size as the home page's "Book your Free Consult" form */
.pr-form { width: min(100%, 860px); margin-left: auto; margin-right: auto; padding: clamp(22px, 3.2vw, 42px) clamp(18px, 3.4vw, 45px) clamp(24px, 3.6vw, 48px); }
.blk .pr-form-title { margin-bottom: clamp(16px, 2.2vw, 28px); font-size: clamp(1.6rem, 2.3vw, 2rem); line-height: 1.25; }
.pr-form .contact-form { gap: 12px; }
.pr-form .contact-form .field-row { gap: 12px 22px; }
.pr-form .contact-form input:not([type=checkbox]), .pr-form .contact-form textarea { padding: 6px 11px; }
.pr-form .contact-form textarea { height: 76px; min-height: 60px; }
.pr-after { max-width: 860px; }

/* =====================================================================
   Dispute Resolution page: tab bar on a photo, turquoise looks
   ===================================================================== */
.bg-tan { background: #E1AD6F; }
.bg-dusk { background: #45556D; }
.bg-aqua { background: #02D4D4; }
.bg-aqua-glow { background: radial-gradient(ellipse at 100% 50%, #FFFAFA 60%, #02D4D4 100%); }
.bg-aqua-fade { background: linear-gradient(45deg, #fff 60%, #02D4D4 100%); }
.bg-aqua .blk-title, .bg-dusk .blk-title { color: #fff; }

/* sections that belong to a tab: only the open tab's sections show */
.js section[data-tab-pane]:not(.tab-on) { display: none !important; }
section[data-tab-pane].tab-in { animation: tabPaneIn .6s var(--ease) both; }
@keyframes tabPaneIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { section[data-tab-pane].tab-in { animation: none; } }

/* Tabs, "Photo with tab buttons" look */
.blk-tabs.look-photo { padding-bottom: 0; }
.blk-tabs.look-photo > .wrap { max-width: none; padding: 0; }
.tabs-photo .tp-head { max-width: var(--wrap); margin: 0 auto clamp(28px, 3.4vw, 60px); padding: 0 20px; }
.tabs-photo .blk-title { margin: 0 0 8px; font: 600 clamp(32px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); color: #008080; text-transform: uppercase; transition: color .3s ease; }
.tabs-photo .blk-title::after { display: none; }
.tabs-photo .tp-head:hover .blk-title { color: #734D08; }
.tabs-photo .tp-sub { margin: 0; font: italic 400 clamp(15px, .9vw, 17px)/1.5 Alkatra, var(--accent); color: #162B48; }
.tp-photo { position: relative; display: flex; align-items: flex-end; min-height: clamp(420px, 41.7vw, 800px); background: #8a8f96 var(--tp-photo, none) center top / cover no-repeat; }
.tp-photo.no-photo { min-height: 0; }
.tabs-photo .tp-list { display: flex; flex-wrap: nowrap; gap: 0; width: 100%; margin: 0; }
.tabs-photo .tp-list button { flex: 1 1 0; min-width: 0; margin: 0; padding: 18px 10px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 0; background: #808080; color: #fff;
  font: 700 clamp(11px, .74vw, 14px)/20px Arimo, var(--serif); text-transform: uppercase; letter-spacing: 0; transition: all .25s ease; }
.tabs-photo .tp-list button:not([aria-selected="true"]):hover { background: rgba(0, 28, 68, .7) !important; color: #fff !important; border-color: rgba(255, 255, 255, .5); }
.tabs-photo .tp-list button[aria-selected="true"] { background: rgba(0, 28, 68, .5); color: #fff; border-color: rgba(255, 255, 255, .5); }
.tabs-photo .tp-list button:focus-visible { outline: 2px solid #02D4D4; outline-offset: -4px; }
.tabs-photo .tp-panel { border: 0; padding: 0; animation: none; }
.tabs-photo .tp-panel.is-empty { display: none; }
.tabs-photo .tp-panel:not(.is-empty) { max-width: var(--wrap); margin: 0 auto; padding: clamp(30px, 4vw, 60px) 20px; color: var(--text); }
@media (max-width: 767px) {
  .tp-photo { display: block; min-height: 0; padding-top: 200px; }
  .tabs-photo .tp-list { flex-direction: column; }
  .tabs-photo .tp-list button { flex: none; width: 100%; margin-top: -1px; background: rgba(0, 28, 68, .9); font-size: 14px; }
  .tabs-photo .tp-list button[aria-selected="true"] { background: rgba(0, 28, 68, .5); }
}

/* Text, "Turquoise box" look */
.blk-text.look-aqua > .wrap { max-width: min(1460px, 100%); }
.look-aqua .text-wrap { max-width: min(1416px, 100%); padding: clamp(30px, 3.2vw, 60px) clamp(22px, 3.4vw, 64px); background: radial-gradient(ellipse at 100% 50%, #FFFAFA 60%, #02D4D4 100%); }
.look-aqua .text-wrap.w-wide { max-width: none; background: radial-gradient(ellipse at 0% 50%, #fff 60%, #02D4D4 100%); }
.blk-text.look-aqua:has(.w-wide) > .wrap { max-width: none; padding: 0; }
.blk-text.look-aqua:has(.w-wide) .text-wrap.w-wide { padding-left: max(20px, 12.5vw); padding-right: max(20px, 12.5vw); }
.look-aqua .blk-head { margin-bottom: 18px; }
.look-aqua .blk-title { font: 600 clamp(30px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); color: #E1AD6F; text-transform: uppercase; transition: color .3s ease; }
.look-aqua .blk-title::after, .look-boxed .blk-title::after, .look-rule .blk-title::after { display: none; }
.look-aqua .rich { color: #734D08; font-size: clamp(16px, .95vw, 18px); line-height: 1.56; }
.look-aqua .rich p { margin: 0 0 1em; }
.look-aqua .rich h2, .look-aqua .rich h3 { margin: .9em 0 .45em; font: 500 clamp(22px, 1.67vw, 32px)/1.2 Arimo, var(--serif); color: #162B88; text-align: center; transition: color .3s ease; }
.look-aqua .rich h4 { margin: .9em 0 .4em; font: 500 clamp(19px, 1.25vw, 24px)/1.2 Arimo, var(--serif); color: #162B88; text-align: center; transition: color .3s ease; }
.look-aqua .rich :is(h2, h3, h4):hover { color: #E1AD6F; }
.look-aqua .rich .lead-in { font: italic 600 clamp(20px, 1.46vw, 28px)/1.2 Cormorant, var(--accent); color: #000; }
.look-aqua .rich ul { padding-left: 1.3em; }
.look-aqua .rich li { margin-bottom: .2em; }

/* Text, "Boxed" look: title above, text in a see-through white box */
.blk-text.look-boxed > .wrap { max-width: min(1460px, 100%); }
.look-boxed .text-wrap { max-width: min(1416px, 100%); }
.look-boxed .blk-head { margin-bottom: clamp(24px, 2.4vw, 40px); }
.look-boxed .blk-title { transition: color .3s ease; }
.look-boxed .rich { padding: clamp(22px, 2vw, 36px) clamp(18px, 2vw, 34px); background: rgba(255, 255, 255, .8); color: #000; }
.look-boxed .rich :is(h3, h4) { margin: 0 0 .7em; font: italic 600 clamp(22px, 1.46vw, 28px)/1.2 Cormorant, var(--accent); color: #003C9E; }

/* Text, "Turquoise rule" look */
.look-rule .text-wrap { position: relative; padding: 18px clamp(22px, 2.4vw, 40px) 10px clamp(30px, 3.1vw, 60px); border-left: 7px solid rgba(2, 212, 212, .6); }
.look-rule .text-wrap::before { content: ""; position: absolute; left: -7px; top: -22px; width: min(560px, 100%); height: 8px; background: rgba(2, 212, 212, .6); }
.blk.look-rule .text-wrap .blk-title { font: 700 clamp(19px, 1.15vw, 22px)/1.5 Merriweather, Georgia, serif; color: #734D08; text-transform: none; transition: color .3s ease; }
.look-rule .blk-head { margin-bottom: 10px; }
.look-rule .rich { color: #734D08; font-size: clamp(16px, .95vw, 18px); }
.look-rule .rich p { margin: 0 0 .7em; }
.look-rule .rich strong a, .look-rule .rich u { text-underline-offset: 3px; }

/* Image + text, "Turquoise box" and "Turquoise rule" looks */
.blk-image_text.look-aqua > .wrap, .blk-image_text.look-rule > .wrap { max-width: min(1500px, 100%); }
.look-aqua .split { grid-template-columns: 1fr 1fr; gap: clamp(20px, 1.6vw, 30px); align-items: start; }
.look-aqua .split-media img { border-radius: 15px; box-shadow: 5px 12px 24px -5px rgba(2, 18, 59, .26); aspect-ratio: auto; }
.look-aqua .split-copy { padding: 20px clamp(20px, 4.2vw, 80px); background: linear-gradient(45deg, #fff 0%, #02D4D4 100%); text-align: center; color: #734D08; margin-top: clamp(20px, 2.6vw, 50px); }
.look-aqua .split-copy .rich { color: #734D08; font-size: clamp(16px, .95vw, 18px); }
.look-aqua.blk-image_text .blk-head { text-align: center; }
.blk-image_text.look-rule { padding-top: 0; }
.look-rule .split { grid-template-columns: 1fr 1fr; gap: clamp(20px, 1.6vw, 30px); align-items: start; }
.look-rule .split-media img { border-radius: 0; box-shadow: none; aspect-ratio: 5 / 6; object-fit: cover; }
.look-rule .split-copy { padding: 0 clamp(20px, 2.1vw, 40px) 0 clamp(26px, 3.1vw, 60px); border-left: 7px solid rgba(2, 212, 212, .6); margin-top: clamp(16px, 2vw, 40px); }
.look-rule.blk-image_text .blk-title { font: 700 clamp(19px, 1.15vw, 22px)/1.5 Merriweather, Georgia, serif; color: #734D08; text-transform: none; transition: color .3s ease; }
.look-rule.blk-image_text .rich { color: #734D08; font-size: clamp(16px, .95vw, 18px); }
.blk-image_text.look-rule > .wrap { padding-left: 0; }
@media (max-width: 900px) {
  .look-aqua .split, .look-rule .split { grid-template-columns: 1fr; }
  .look-aqua .split-copy { margin-top: 0; }
  .look-rule .split-copy { margin: 10px 20px 0; }
  .blk-image_text.look-rule > .wrap { padding-left: 20px; }
}

/* Columns, "Box and bars" look */
.blk-columns.look-bars > .wrap { max-width: min(1500px, 100%); }
.look-bars .columns { grid-template-columns: 1fr 1fr; gap: 0 clamp(24px, 1.6vw, 30px); align-items: start; }
.look-bars .column { grid-column: 2; }
.look-bars .column:first-child { grid-column: 1; grid-row: 1 / span 20; margin: clamp(40px, 6vw, 120px) clamp(0px, 5.2vw, 100px) 0; padding: clamp(20px, 1.6vw, 30px); background: rgba(22, 43, 72, .8); color: #fff; }
.look-bars .column:not(:first-child) { margin: 0 clamp(0px, 5.2vw, 100px); }
.look-bars .column-title { margin: 0; text-transform: none; letter-spacing: 0; font: italic 400 clamp(21px, 1.46vw, 28px)/1.4 Cormorant, var(--accent); color: #E1AD6F; transition: color .3s ease; }
.look-bars .column:first-child .column-title { margin-bottom: 18px; }
.look-bars .column:first-child .rich { color: #fff; font-weight: 300; font-size: clamp(14px, .84vw, 16px); text-align: center; }
.look-bars .column:not(:first-child) .column-title { padding: clamp(12px, .9vw, 16px) 20px; background: #061E28; text-align: center; }
.look-bars .column:not(:first-child) .column-title:hover { color: rgba(255, 255, 255, .8); }
.look-bars .column:not(:first-child) .rich { padding: 20px; color: #162B48; font-size: 15px; line-height: 1.73; }
.look-bars .column:not(:first-child) .rich ul { list-style: disc; padding-left: 1.4em; }
.look-bars .column:not(:first-child) .rich li { margin-bottom: .45em; }
.look-bars .column:not(:first-child) .rich p:first-child strong { font-size: clamp(16px, 1.05vw, 20px); line-height: 1.2; }
@media (max-width: 900px) {
  .look-bars .columns { grid-template-columns: 1fr !important; }
  .look-bars .column, .look-bars .column:first-child { grid-column: 1; grid-row: auto; margin: 0 0 24px; }
}

/* Columns, "Turquoise rule" look: white boxes, two per row */
.blk-columns.look-rule > .wrap { max-width: min(1900px, 100%); padding: 0; }
.look-rule .columns { grid-template-columns: 1fr 1fr !important; gap: 20px clamp(16px, 1.6vw, 30px); }
.look-rule .column { height: 100%; padding: clamp(28px, 5.2vw, 100px); background: #fff; border-left: 7px solid rgba(2, 212, 212, .6); }
.look-rule .column-title { margin: 0 0 .7em; text-transform: none; letter-spacing: 0; font: 700 clamp(19px, 1.25vw, 24px)/1.4 Merriweather, Georgia, serif; color: #734D08; transition: color .3s ease; }
.look-rule .column-title:hover { color: #003C9E; }
.look-rule .column .rich { color: #734D08; font-size: clamp(15px, .95vw, 18px); line-height: 1.78; }
.look-rule .cols-actions { justify-content: flex-end; margin: 30px 0 0; }
.btn-aqua { min-height: 0; padding: 12px 22px; border: 0; border-radius: 0; background: #17E3C8; color: #fff; font: italic 500 15px/1.4 Arimo, var(--serif); letter-spacing: .02em; }
.btn-aqua:hover { background: #0D2752; color: #fff; box-shadow: none; }
@media (max-width: 767px) {
  .look-rule .columns { grid-template-columns: 1fr !important; }
  .blk-columns.look-rule > .wrap { padding: 0 12px; }
}

/* Questions & answers, "Teal heading box" look */
.blk-faq.look-teal > .wrap { max-width: min(1340px, 100%); }
.faq-teal { max-width: 1290px; margin: 0 auto; }
.faq-teal .faq-head { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: clamp(150px, 15.2vw, 291px); padding: 30px 40px; text-align: center;
  background: radial-gradient(ellipse at 0% 100%, #26878C 60%, #B2C1CD 100%); }
.faq-teal .blk-title { margin: 0; font: 600 clamp(30px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); color: #fff; text-transform: none; transition: color .3s ease; }
.faq-teal .blk-title::after { display: none; }
.faq-teal .faq-head:hover .blk-title { color: #000; }
.faq-teal .faq-sub { margin: clamp(14px, 1.8vw, 34px) 0 0; font: italic 700 clamp(14px, .95vw, 18px)/1.3 Arimo, var(--serif); color: #F5A624; letter-spacing: .01em; transition: color .3s ease; }
.faq-teal .faq-head:hover .faq-sub { color: #FDFBD4; }
.faq-teal .faq-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(14px, 1.6vw, 30px); margin-top: clamp(30px, 5.2vw, 100px); }
.faq-teal .faq-col { padding: clamp(14px, 1.1vw, 20px) clamp(14px, 1.1vw, 20px) 0; background: radial-gradient(ellipse at center, #E4D8C4 0%, #fff 100%); }
.faq-teal details { margin: 0 0 clamp(16px, 1.4vw, 27px); border: 1px solid transparent; background: #FFFCF7; transition: border-color .3s, box-shadow .3s; }
.faq-teal details:hover { border-color: rgba(38, 135, 140, .35); box-shadow: 0 6px 18px rgba(6, 30, 40, .08); }
.faq-teal summary { padding: 17px 44px 17px 24px; font: 600 clamp(15px, .9vw, 17px)/1.6 "Open Sans", Arimo, var(--serif); color: #003C9E; transition: color .25s; }
.faq-teal summary:hover { color: #26878C; }
.faq-teal summary::after { right: 18px; font-size: 1.3rem; color: #003C9E; }
.faq-teal details .rich { padding: 0 24px 20px; color: #252525; font-size: 15px; }
@media (max-width: 767px) {
  .faq-teal .faq-cols { grid-template-columns: 1fr; }
  .faq-teal .faq-col + .faq-col { padding-top: 0; }
}
.tabs.tabs-photo { max-width: none; }
.look-aqua .text-wrap.w-narrow { max-width: min(1416px, 75vw); }
.look-aqua .w-narrow .blk-head { text-align: center; }
.look-aqua .align-left .rich > p { text-align: justify; }
@media (max-width: 900px) { .look-aqua .text-wrap.w-narrow { max-width: 100%; } .look-aqua .align-left .rich > p { text-align: left; } }

/* =====================================================================
   Corporate Advisory page
   ===================================================================== */
.bg-petrol { background: #00404D; }
.bg-teal-slant { background: linear-gradient(160deg, #fff 48%, #09A8A8 48.2%); }
.bg-ember { background: linear-gradient(45deg, #000 0%, #3B1208 100%); }

/* tabs: split photo panel and see-through buttons */
.tabs-photo.tp-split { padding: 0 clamp(0px, 2.1vw, 40px); }
.tp-panel-box { position: relative; display: grid; grid-template-columns: 1fr 1fr; min-height: clamp(300px, 32.5vw, 624px); background: #000; overflow: hidden; }
.tp-words { display: flex; align-items: flex-end; justify-content: center; padding: 0 20px clamp(40px, 9vw, 170px); }
.tp-text { margin: 0; font: italic 600 clamp(24px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); color: #fff; text-align: center; transition: color .35s ease; }
.tp-panel-box:hover .tp-text, .tp-photo:hover .tp-text { color: #E1AD6F; }
.tp-pic { margin: 0; height: 81%; }
.tp-pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tp-text-over { position: absolute; left: 6%; bottom: 140px; text-shadow: 0 2px 14px rgba(0, 0, 0, .5); }
.tabs-photo.tp-split .tp-photo.no-photo { display: block; }
.tabs-photo.btns-clear .tp-list button { background: transparent; border: 1px solid rgba(255, 255, 255, .25); color: #fff; font: 600 clamp(13px, .95vw, 18px)/26px "Open Sans", Arimo, var(--serif); padding: 18px 10px; text-transform: uppercase; }
.tabs-photo.btns-clear .tp-list button:not([aria-selected="true"]):hover { background: rgba(0, 28, 68, .7) !important; }
.tabs-photo.btns-clear .tp-list button[aria-selected="true"] { background: #0D2752; border-color: rgba(255, 255, 255, .5); }
.on-dark .tabs-photo .tp-sub { color: #FDFBD4; }
@media (max-width: 767px) {
  .tp-panel-box { grid-template-columns: 1fr; min-height: 0; }
  .tp-pic { order: -1; height: 240px; }
  .tp-words { padding: 24px 16px 30px; }
  .tabs-photo.btns-clear .tp-list button { background: rgba(0, 28, 68, .9); }
  .tabs-photo.btns-clear .tp-list button[aria-selected="true"] { background: #0D2752; }
  .tp-text-over { bottom: auto; top: 40px; }
}

/* Text, "Labels" look */
.blk-text.look-labels .text-wrap { max-width: min(970px, 100%); }
.look-labels .blk-head { text-align: center; }
.look-labels .blk-title { font: 600 clamp(28px, 2.3vw, 44px)/1.2 "Cormorant Garamond", var(--accent); color: #003C9E; text-transform: uppercase; transition: color .3s ease; }
.look-labels .blk-title::after { display: none; }
.look-labels .blk-head:hover .blk-title { color: #734D08; }
.look-labels .rich h3 { margin: 1.2em 0 .9em; padding: .45em 1em; font: italic 300 clamp(26px, 2.1vw, 40px)/1.2 "Cormorant Garamond", var(--accent); color: #003C9E; text-transform: uppercase; text-align: center;
  background: linear-gradient(168deg, #fff 42%, #008080 100%); transition: color .3s ease, box-shadow .3s ease; }
.look-labels .rich h3:first-child { margin-top: 0; }
.look-labels .rich h3:hover { color: #734D08; box-shadow: 0 20px 40px rgba(132, 133, 151, .2); }
.look-labels .rich h3.small { font-size: clamp(20px, 1.46vw, 28px); text-transform: none; }
.look-labels .rich h4 { margin: 0; padding: 0 clamp(16px, 2.1vw, 40px) 4px clamp(20px, 3.1vw, 60px); border-left: 1.5px solid rgba(30, 30, 30, .3); font: 700 clamp(17px, 1.15vw, 22px)/1.5 Merriweather, Georgia, serif; color: #1E1E1E; }
.look-labels .rich p { margin: 0 0 16px; padding: 0 clamp(16px, 2.1vw, 40px) 0 clamp(20px, 3.1vw, 60px); border-left: 1.5px solid rgba(30, 30, 30, .3); font: italic 300 clamp(15px, .95vw, 18px)/1.75 Merriweather, Georgia, serif; color: #1E1E1E; }
.look-labels .rich h4 + p { padding-top: 4px; }
.look-labels .rich ul { list-style: none; margin: 0 0 10px; padding: 0 clamp(10px, 2vw, 40px); background: radial-gradient(ellipse at center, #fff 86%, #008080 100%); }
.look-labels .rich li { position: relative; margin: 0; padding: 10px 0 10px 32px; font: italic 500 clamp(14px, .85vw, 16px)/1.85 "Charis SIL", Georgia, serif; color: #734D08; }
.look-labels .rich li::before { content: "\f061"; position: absolute; left: 0; top: 10px; font: 900 .95em/1.85 "Font Awesome 6 Free"; color: #b5543a; }

/* Columns, "Titled" look */
.blk-columns.look-titled > .wrap { max-width: min(1860px, 100%); }
.look-titled .columns { gap: 0 clamp(16px, 1.6vw, 30px); align-items: start; }
.look-titled .column-title { display: flex; align-items: center; justify-content: center; min-height: clamp(110px, 10.6vw, 204px); margin: 0 0 clamp(20px, 2.2vw, 42px); padding: 16px; background: #00404D;
  font: 600 clamp(28px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); color: #FDFBD4; text-transform: uppercase; letter-spacing: 0; text-align: center; transition: color .3s ease; }
.look-titled .column-title:hover { color: #C6A96B; }
.look-titled .column:nth-child(2n) .column-title { margin-top: clamp(0px, 1.6vw, 30px); }
.look-titled .column .rich { padding: 0 clamp(16px, 2.1vw, 40px) 0 clamp(20px, 3.1vw, 60px); }
.look-titled .rich h4, .look-titled .rich h3 { margin: 1.4em 0 .8em; font: 600 clamp(21px, 1.46vw, 28px)/1.2 Cormorant, var(--accent); color: #FFF0F4; transition: color .3s ease; }
.look-titled .rich :is(h3, h4):first-child { margin-top: 0; }
.look-titled .rich :is(h3, h4):hover { color: #C6A96B; }
.look-titled .rich p, .look-titled .rich li { font: italic 400 clamp(14px, .9vw, 17px)/1.65 "Open Sans", Arimo, var(--serif); color: #FDFBD4; }
.look-titled .rich ul { list-style: disc; padding-left: 1.3em; }
.look-titled .rich li::before { display: none; }
.look-titled .rich li { padding-left: 0; margin-bottom: .1em; }

/* Questions & answers, "Wide rows" look */
.blk-faq.look-rows .text-wrap { max-width: min(1700px, 100%); }
.look-rows .blk-head { margin-bottom: 24px; }
.look-rows .blk-title { font: 600 clamp(30px, 2.5vw, 48px)/1.2 Cormorant, var(--accent); transition: color .3s ease; }
.look-rows .blk-title::after { display: none; }
.look-rows .blk-head:hover .blk-title { color: #C6A96B; }
.look-rows .faq { padding: 0 clamp(0px, 3.1vw, 60px); }
.look-rows .faq details { margin: 0 0 clamp(14px, 1.5vw, 28px); border: 1px solid transparent; background: #FFFCF7; transition: box-shadow .3s; }
.look-rows .faq details:hover { box-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.look-rows .faq summary { padding: 17px 44px 17px 24px; font: 600 clamp(15px, .9vw, 17px)/1.6 "Open Sans", Arimo, var(--serif); color: #003C9E; }
.on-dark .look-rows .faq summary, .look-rows.on-dark .faq summary { color: #003C9E; }
.look-rows .faq summary::after { right: 18px; font-size: 1.3rem; color: #003C9E; }
.look-rows .faq details .rich { padding: 0 24px 20px; }
.look-rows .faq details .rich p { font: italic 400 16px/1.5 Roboto, Arimo, var(--serif); color: rgba(9, 48, 112, .8); }

/* Cards, "Circle" style */
.blk-cards:has(.circle-cards) > .wrap { max-width: min(1500px, 100%); }
.circle-cards { display: grid; grid-template-columns: minmax(0, 548px) minmax(0, 1fr); gap: clamp(28px, 2.4vw, 46px) clamp(30px, 3vw, 60px); align-items: center; }
.cc-circle { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; aspect-ratio: 548 / 593; padding: clamp(30px, 4vw, 77px); background: #FFF0F5; border-radius: 700px; text-align: center; transition: transform .5s var(--ease); }
.cc-circle:hover { transform: scale(1.03); }
.cc-ring { position: absolute; inset: clamp(26px, 4vw, 77px); border: 1px solid rgba(13, 39, 82, .07); border-radius: 50%; pointer-events: none; }
.cc-title { position: relative; margin: 0; font: italic 400 clamp(28px, 2.5vw, 48px)/1.55 Alkatra, var(--accent); color: rgba(59, 18, 8, .8); text-transform: none; }
.cc-title::after { display: none; }
.cc-item { margin-bottom: 14px; }
.cc-item .card-title { margin: 0 0 12px; font: italic 600 clamp(21px, 1.46vw, 28px)/1.2 Cormorant, var(--accent); color: #FDFBD4; transition: color .3s ease; }
.cc-item:hover .card-title { color: #E1AD6F; }
.cc-item .rich, .cc-item .rich p { font: italic 400 clamp(14px, .84vw, 16px)/1.56 Arimo, var(--serif); color: #fff; }
.cc-foot { grid-column: 1 / -1; text-align: center; }
.cc-foot .rich h4, .cc-foot .rich h3 { margin: 0 0 6px; font: italic 600 clamp(22px, 1.46vw, 28px)/1.2 Cormorant, var(--accent) !important; color: #C6A96B !important; }
.cc-foot .rich p, .cc-foot .imp-text { color: #fff; }
.btn-dark-pill { min-height: 0; padding: 20px 24px; border: 1px solid #080808; border-radius: 0; background: #080808; color: #fff; font: italic 600 clamp(15px, .9vw, 17px)/1.25 "Open Sans", Arimo, var(--serif); letter-spacing: 0; text-transform: none; box-shadow: 0 6px 16px rgba(48, 40, 19, .3); }
.btn-dark-pill:hover { background: #E1AD6F; border-color: #E1AD6F; color: #1d1404; }
@media (max-width: 900px) {
  .circle-cards { grid-template-columns: 1fr; }
  .cc-circle { width: min(420px, 100%); margin: 0 auto; }
}

.tp-photo.no-photo { background: none; }
.circle-cards { grid-template-columns: minmax(0, min(548px, 32vw)) minmax(0, 1fr); }
.circle-cards .cc-title { color: rgba(59, 18, 8, .8); }
.circle-cards .cc-item .card-title { text-transform: none; letter-spacing: 0; }
@media (max-width: 900px) { .circle-cards { grid-template-columns: 1fr; } }
.blk-faq.look-rows > .wrap { max-width: min(1780px, 100%); }
@media (max-width: 767px) { .tp-photo.no-photo { padding-top: 0; } }
.blk .circle-cards h2.cc-title.blk-title { color: rgba(59, 18, 8, .8); }

/* Footer logo size (Settings → Footer logo size: 100–400% of the normal 64px) */
.footer-logo { max-height: calc(64px * var(--flogo, 1)); max-width: 100%; height: auto; }
.footer-grid.flogo-wide .footer-about { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.footer-grid.flogo-wide .footer-about .social, .footer-grid.flogo-wide .footer-about ul { justify-content: center; }
@media (max-width: 767px) { .footer-logo { max-height: min(calc(64px * var(--flogo, 1)), 60vw); } }
@media (min-width: 1025px) { .footer-grid.flogo-wide { grid-template-columns: repeat(3, 1fr); } }

/* Footer: a menu with more than 4 links (e.g. Dispute Resolution) shows them in two short columns */
.footer-col ul.footer-split { columns: 2; column-gap: 28px; }
.footer-col ul.footer-split li { break-inside: avoid; }
@media (min-width: 1025px) {
  .footer-grid:has(.two-col) { grid-template-columns: 1.2fr .85fr 1.95fr 1.15fr; }
  .footer-col ul.footer-split li { white-space: nowrap; }
  .footer-grid.flogo-wide:has(.two-col) { grid-template-columns: 1fr 1.6fr 1fr; }
}
@media (max-width: 480px) { .footer-col ul.footer-split { columns: 1; } }

/* Slimmer footer */
.site-footer .footer-grid { padding-top: 26px; padding-bottom: 18px; row-gap: 22px; }
.site-footer .footer-title { margin-bottom: 10px; }
.site-footer .footer-col li { margin-bottom: 5px; }
.site-footer .footer-logo { margin-bottom: 8px; }
.site-footer .footer-bottom-inner { padding-top: 10px; padding-bottom: 10px; }
@media (max-width: 767px) { .site-footer .footer-grid { padding-top: 24px; gap: 22px; } }
.site-footer .footer-socials { display: flex; flex-wrap: wrap; margin: 10px 0 0 -6px; }

/* Smaller footer text */
.site-footer { font-size: .86rem; }
.site-footer .footer-title { font-size: .84rem; }
.site-footer .footer-name { font-size: 1.1rem; }
.site-footer .footer-bottom { font-size: .78rem; }
.site-footer .btn-sm { min-height: 34px; padding: 6px 16px; font-size: .72rem; }
.site-footer .socials a { width: 30px; height: 30px; font-size: .88rem; }
.site-footer .footer-contact i { font-size: .82rem; }
.site-footer .footer-col li { line-height: 1.45; }


/* ---------- Article likes, ratings, visits and comments ---------- */
.post-react { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 22px; padding: 18px 0 4px; font-family: var(--display); }
.post-react form { margin: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.post-react .is-busy { opacity: .7; pointer-events: none; }
.react-msg { flex-basis: 100%; margin: 0; color: var(--error); font-size: .92rem; }
.like-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 18px; border: 1.5px solid #d8d2c6; border-radius: 999px; background: #fff; color: var(--navy); font: 700 .95rem/1 var(--display); cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.like-btn:hover { border-color: #c4473a; color: #c4473a; }
.like-btn.is-on { background: #fdeceb; border-color: #e7a59e; color: #b8372b; }
.like-btn i { font-size: 1.05rem; }
.like-btn.pop i { animation: like-pop .45s var(--ease); }
@keyframes like-pop { 0% { transform: scale(1); } 40% { transform: scale(1.4); } 100% { transform: scale(1); } }
.like-count:empty { display: none; }
.like-count { padding-left: 8px; border-left: 1px solid currentColor; }
.rate-label { font-weight: 700; color: var(--slate); font-size: .95rem; }
.rate-stars { display: inline-flex; }
.rate-stars button { border: 0; background: none; padding: 4px 3px; font-size: 1.35rem; line-height: 1; color: #d9d3c7; cursor: pointer; transition: color .15s, transform .15s; }
.rate-stars button.is-on { color: var(--amber); }
/* hovering a star lights it and the ones before it */
.rate-stars:hover button { color: var(--amber); }
.rate-stars button:hover ~ button { color: #d9d3c7; }
.rate-stars button:hover { transform: scale(1.15); }
.rate-stars button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; border-radius: 4px; }
.rate-avg { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: .92rem; }
.rate-avg[hidden] { display: none; }
.avg-stars { color: var(--amber); font-size: .85rem; letter-spacing: 1px; }
.avg-num { color: var(--text); }
.react-facts { display: inline-flex; gap: 18px; margin-left: auto; color: var(--muted); font-size: .95rem; }
.react-facts a { color: inherit; text-decoration: none; }
.react-facts a:hover { color: var(--gold-text); }
.react-facts i { margin-right: 4px; }

.post-comments { border-top: 1px solid var(--line); }
.comments-title { font: 700 clamp(1.5rem, 3vw, 2rem)/1.2 var(--display); color: var(--navy); margin: 0 0 22px; }
.comment-flash { padding: 12px 16px; border-radius: 8px; background: #e8f2ea; color: var(--ok); font-family: var(--display); }
.comment-list, .comment-replies { list-style: none; margin: 0; padding: 0; }
.comment-list > .comment { padding: 20px 0; border-bottom: 1px solid var(--line); }
.comment-replies { margin: 14px 0 0 58px; padding-left: 18px; border-left: 3px solid var(--line); }
.comment-replies .comment + .comment { margin-top: 14px; }
.comment-card { display: flex; gap: 14px; align-items: flex-start; }
.comment-photo { flex: 0 0 auto; border-radius: 50%; object-fit: cover; }
.comment-main { min-width: 0; flex: 1; }
.comment-head { margin: 0 0 4px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-family: var(--display); }
.comment-head b { color: var(--navy); font-size: 1.02rem; }
.comment-head time { color: var(--muted); font-size: .85rem; }
.comment-badge { padding: 2px 8px; border-radius: 999px; background: var(--gold); color: var(--ink); font-size: .7rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.comment-body { line-height: 1.65; overflow-wrap: anywhere; }
.comment-body a { color: var(--gold-text); }
.comment-none { margin: 0 0 8px; }
.comment-form { margin-top: 30px; padding: clamp(20px, 4vw, 30px); background: var(--cream); border-radius: 14px; }
.comment-form h3 { margin: 0 0 16px; font: 700 1.3rem/1.2 var(--display); color: var(--navy); }
.comment-form label { display: block; font: 700 .9rem/1.3 var(--display); letter-spacing: .03em; color: var(--slate); margin-bottom: 16px; }
.comment-form label small { font-weight: 400; color: var(--muted); }
.comment-form input, .comment-form textarea { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; font: 400 1rem/1.5 var(--serif); color: var(--text); background: #fff; border: 1px solid #d8d2c6; border-radius: 8px; }
.comment-form input:focus, .comment-form textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 4px rgba(246, 142, 19, .18); }
.comment-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.comment-submit .small { font-size: .88rem; }
.comment-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.comment-as { margin: 0 0 14px; }
.comment-login { margin-top: 26px; }
@media (max-width: 640px) {
  .comment-fields { grid-template-columns: 1fr; }
  .comment-replies { margin-left: 18px; padding-left: 12px; }
  .react-facts { margin-left: 0; }
}

/* Article cards: star rating, visits and share icons */
.card-foot { display: grid; gap: 12px; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); font-family: var(--display); font-size: .88rem; }
.card-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.card-stats:empty { display: none; }
.card-rating { display: inline-flex; align-items: center; gap: 6px; color: var(--text); text-decoration: none; white-space: nowrap; }
.card-rating .avg-stars { color: var(--amber); font-size: .85rem; letter-spacing: 1px; }
.card-rating.no-rating .avg-stars { color: #cfc8bb; }
.card-rating.no-rating:hover .muted { color: var(--gold-text); }
.card-views { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); white-space: nowrap; }
.card-share { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.card-share-label { margin-right: 4px; font-weight: 700; color: var(--slate); }
.card-share a, .card-share button { display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--cream); color: var(--navy); font-size: .85rem; text-decoration: none; cursor: pointer; transition: background .2s, color .2s; }
.card-share a:hover, .card-share button:hover { background: var(--gold); color: var(--ink); }
.card-share button.is-done { background: #e8f2ea; color: var(--ok); }
.post-row .card-foot { margin-top: 20px; }
