/* RGC theme — layout & section styles built on the design-system tokens.
   Components (buttons, cards, forms, nav, footer, CTA, divider, growth) live in
   assets/css/tokens/components.css. This file adds page/section layout only. */

/* Skip link */
.rgc-skip { position:absolute; left:-9999px; top:0; z-index:1000; background:var(--rgc-navy-primary); color:#fff; padding:10px 16px; }
.rgc-skip:focus { left:16px; top:16px; }

/* Header extras */
.rgc-header__actions { display:flex; align-items:center; gap:12px; flex:none; }
.rgc-callchip { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 14px; border:1px solid var(--rgc-muted); font:600 var(--fs-small)/1 var(--font-sans); color:var(--text-heading); text-decoration:none; white-space:nowrap; }
.rgc-callchip:hover { border-color:var(--rgc-navy-primary); background:var(--rgc-grey); color:var(--text-heading); }
.rgc-burger { display:none; width:44px; height:44px; align-items:center; justify-content:center; background:var(--rgc-navy-primary); border:0; cursor:pointer; }
.rgc-burger span { display:block; width:20px; height:2px; background:#fff; margin:3px 0; }
.rgc-burger span:last-child { background:var(--rgc-gold); }

/* Off-canvas drawer */
.rgc-drawer { position:fixed; inset:0; z-index:900; visibility:hidden; }
.rgc-drawer.is-open { visibility:visible; }
.rgc-drawer__backdrop { position:absolute; inset:0; background:rgba(16,31,58,.62); opacity:0; transition:opacity var(--duration-base) var(--ease-standard); }
.rgc-drawer.is-open .rgc-drawer__backdrop { opacity:1; }
.rgc-drawer__panel { position:absolute; top:0; right:0; height:100%; width:85%; max-width:360px; background:#fff; transform:translateX(100%); transition:transform var(--duration-base) var(--ease-standard); display:flex; flex-direction:column; padding:16px 20px; overflow-y:auto; gap:4px; }
.rgc-drawer.is-open .rgc-drawer__panel { transform:translateX(0); }
.rgc-drawer__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.rgc-drawer__close { width:44px; height:44px; background:none; border:0; font-size:24px; color:var(--text-heading); cursor:pointer; }
.rgc-drawer a.rgc-drawer__link { display:flex; align-items:center; min-height:52px; border-bottom:1px solid var(--rgc-tint); font:600 17px/1.3 var(--font-sans); color:var(--text-heading); text-decoration:none; }
.rgc-drawer__foot { margin-top:auto; padding-top:16px; display:flex; flex-direction:column; gap:12px; }
@media (prefers-reduced-motion: reduce){ .rgc-drawer__panel{ transition:none } .rgc-drawer__backdrop{ transition:none } }

@media (max-width: 900px){
  .rgc-header .rgc-nav, .rgc-header .rgc-callchip { display:none; }
  .rgc-burger { display:flex; }
}
@media (min-width: 901px){ .rgc-drawer { display:none; } }

/* Hero */
.rgc-hero-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap:64px; align-items:center; }
.rgc-hero-copy { display:flex; flex-direction:column; gap:20px; }
.rgc-hero-sub { font:600 var(--fs-h3)/1.5 var(--font-sans); color:var(--rgc-navy-primary); margin:0; }
.rgc-hero-media { min-height:0; }
.rgc-media { overflow:hidden; }
.rgc-media__img { display:block; }
.rgc-hero-center { padding-bottom:32px; }
.rgc-btn-row { display:flex; flex-wrap:wrap; gap:16px; margin-top:8px; }

/* Prose blocks */
.rgc-prose-center { max-width:820px; margin:0 auto; text-align:center; display:flex; flex-direction:column; gap:16px; align-items:center; }
.rgc-prose-wide { max-width:900px; margin:0 auto; }
.rgc-lead { font:500 var(--fs-h3)/1.7 var(--font-serif); color:var(--text-heading); margin:0; }
.rgc-section-head { max-width:760px; margin:0 auto 32px; text-align:center; display:flex; flex-direction:column; gap:12px; align-items:center; }

/* Card grids */
.rgc-cards { display:grid; gap:24px; }
.rgc-cards--2 { grid-template-columns: repeat(2, 1fr); }
.rgc-cards--3 { grid-template-columns: repeat(3, 1fr); }
.rgc-cards--4 { grid-template-columns: repeat(4, 1fr); }
.rgc-card__num { font:600 30px/1 var(--font-serif); color:var(--rgc-navy-link); margin:0; }
.rgc-card__media { margin:-32px -32px 8px; }
.rgc-card__media .rgc-placeholder, .rgc-card__media .rgc-media__img { width:100%; height:100%; min-height:180px; }

/* Tiles */
.rgc-tile { background:#fff; border:1px solid var(--border-subtle); padding:28px 24px; display:flex; flex-direction:column; gap:10px; }
.rgc-tile--gold { border-top:3px solid var(--rgc-gold); }
.rgc-tile__text { font:600 var(--fs-body)/1.5 var(--font-sans); color:var(--text-heading); margin:0; }

/* Steps */
.rgc-steps { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; counter-reset:none; }
.rgc-step { background:#fff; border:1px solid var(--border-subtle); padding:28px 24px; display:flex; flex-direction:column; gap:10px; }
.rgc-step__num { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:var(--rgc-navy-primary); color:#fff; font:600 22px/1 var(--font-serif); }
.rgc-steps--mini { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; }
.rgc-step-mini { background:#fff; border:1px solid var(--border-subtle); padding:18px 14px; display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
.rgc-step-mini__num { font:600 26px/1 var(--font-serif); color:var(--rgc-gold-dark); }
.rgc-step-mini__title { font:700 14px/1.3 var(--font-sans); color:var(--text-heading); }

/* Reasons / values / leader */
.rgc-reasons { list-style:none; margin:0 auto; padding:0; max-width:1000px; display:flex; flex-direction:column; gap:16px; }
.rgc-reason { display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--border-subtle); padding:20px 22px; }
.rgc-reason__check { flex:none; width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center; background:var(--rgc-tint); color:var(--rgc-navy-primary); font-weight:700; }
.rgc-leader { display:grid; grid-template-columns:380px 1fr; gap:40px; align-items:center; }
.rgc-leader__body { display:flex; flex-direction:column; gap:8px; }

/* Contact */
.rgc-contact-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:48px; align-items:start; }
.rgc-contact-details { display:flex; flex-direction:column; gap:8px; }

/* Service detail bits */
.rgc-group-label { font:700 var(--fs-eyebrow)/1.4 var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--rgc-gold-dark); margin:0 0 10px; }
.rgc-checklist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.rgc-checklist li { position:relative; padding-left:26px; font:400 15px/1.6 var(--font-sans); color:var(--text-body); }
.rgc-checklist li::before { content:"✓"; position:absolute; left:0; color:var(--rgc-navy-link); font-weight:700; }
.rgc-outcome { max-width:1100px; margin:0 auto; border-left:4px solid var(--rgc-gold); padding:8px 0 8px 24px; }
.rgc-note { border-left:4px solid var(--rgc-gold); background:var(--rgc-grey); padding:16px 20px; max-width:1000px; margin:0 auto; }

/* Chips line */
.rgc-chips-line { font:500 var(--fs-small)/1.8 var(--font-sans); color:var(--rgc-navy-primary); margin:0; }

/* Article / legal */
.rgc-article, .rgc-legal { max-width:720px; margin:0 auto; }
.rgc-legal { max-width:820px; }
.rgc-article__meta { padding-bottom:16px; border-bottom:1px solid var(--border-subtle); margin-bottom:16px; }
.rgc-article__body p, .rgc-legal__body p { font:400 17px/1.85 var(--font-sans); color:var(--text-body); margin:0 0 16px; }
.rgc-article__body h2, .rgc-legal__body h2 { margin:28px 0 12px; }
.rgc-pullquote { border-left:4px solid var(--rgc-gold); margin:24px 0; padding:4px 0 4px 20px; font:500 22px/1.5 var(--font-serif); color:var(--text-heading); }
.rgc-author { margin-top:24px; padding-top:16px; border-top:1px solid var(--border-subtle); }

/* 404 */
.rgc-404__num { font:600 96px/1 var(--font-serif); color:var(--text-heading); margin:0; }

/* Accessibility FAB */
.rgc-a11y-fab { position:fixed; right:20px; bottom:20px; z-index:800; width:56px; height:56px; border-radius:50%; background:var(--rgc-navy-primary); border:2px solid #fff; box-shadow:0 8px 20px rgba(16,31,58,.28); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.rgc-a11y-fab svg { width:26px; height:26px; }

/* Responsive */
@media (max-width: 1024px){
  .rgc-cards--4 { grid-template-columns:repeat(2,1fr); }
  .rgc-steps, .rgc-steps--mini { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 767px){
  .rgc-hero-grid { grid-template-columns:1fr; gap:32px; }
  .rgc-hero-media { order:2; }
  .rgc-cards--2, .rgc-cards--3, .rgc-cards--4 { grid-template-columns:1fr; }
  .rgc-steps, .rgc-steps--mini { grid-template-columns:1fr; }
  .rgc-leader { grid-template-columns:1fr; gap:24px; }
  .rgc-contact-grid { grid-template-columns:1fr; gap:32px; }
  .rgc-contact-details { order:-1; }
}

/* ============================================================
   Header fixes (v1.0.1) — nav underline, logo size, burger, mobile
   ============================================================ */
/* Logo sizing */
.rgc-header .rgc-wordmark img { height:56px; width:auto; }
.rgc-wordmark__name { font-size:1.6rem; }
.rgc-wordmark__sub { display:block; }

/* Nav links: kill the global underline, use the gold-underline-on-hover pattern */
.rgc-header .rgc-nav { display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.rgc-header .rgc-nav li { margin:0; }
.rgc-header .rgc-nav a {
  position:relative; display:inline-flex; align-items:center; min-height:44px; padding:0 2px;
  font:500 var(--fs-ui)/1.2 var(--font-sans); color:var(--text-body);
  text-decoration:none; box-shadow:none;
}
.rgc-header .rgc-nav a:hover { color:var(--text-heading); text-decoration:none; box-shadow:inset 0 -2px 0 var(--rgc-gold); }
.rgc-header .rgc-nav .current-menu-item > a,
.rgc-header .rgc-nav .current_page_item > a { color:var(--text-heading); font-weight:600; box-shadow:inset 0 -2px 0 var(--rgc-gold); }
.rgc-header .rgc-nav a:focus-visible { outline:var(--focus-width) solid var(--focus-ring); outline-offset:var(--focus-offset); }

/* Burger: stack the three bars vertically */
.rgc-burger { flex-direction:column; gap:4px; }
.rgc-burger span { margin:0; }

/* Mobile header: logo left + burger only (no Book button, no call chip) */
@media (max-width: 900px){
  .rgc-header__inner { min-height:68px; }
  .rgc-header .rgc-header__actions .rgc-btn--primary { display:none; }
  .rgc-header .rgc-wordmark img { height:40px; }
  .rgc-wordmark__name { font-size:1.25rem; }
  .rgc-header .rgc-wordmark { flex-direction:column; align-items:flex-start; gap:0; }
}

/* ============================================================
   Header fixes (v1.0.2) — bigger logo + bulletproof mobile header
   These use !important and a 1024px breakpoint to override any
   cached/earlier rules and cover tablets + phones.
   ============================================================ */
.rgc-header__inner { min-height:88px; }
.rgc-header .rgc-wordmark img { height:72px !important; width:auto !important; }
.rgc-wordmark__name { font-size:1.75rem; }

@media (max-width: 1024px){
  /* Show ONLY logo (left) + burger (right) on mobile/tablet */
  .rgc-header__inner { min-height:64px; }
  .rgc-header .rgc-nav-wrap,
  .rgc-header .rgc-nav,
  .rgc-header .rgc-callchip,
  .rgc-header .rgc-header__actions .rgc-btn { display:none !important; }
  .rgc-burger { display:flex !important; }
  .rgc-header .rgc-wordmark { flex-direction:column; align-items:flex-start; gap:0; }
  .rgc-header .rgc-wordmark img { height:48px !important; }
  .rgc-wordmark__name { font-size:1.25rem; }
}
@media (min-width: 1025px){
  .rgc-drawer { display:none; }
  .rgc-burger { display:none !important; }
}

/* ============================================================
   v1.0.3 — footer link underlines + mobile drawer close glitch
   ============================================================ */
/* Footer: no underline by default; underline only on hover for affordance */
.rgc-footer a { text-decoration:none !important; }
.rgc-footer a:hover { text-decoration:underline !important; color:#fff; }

/* Off-canvas drawer: clip the parked panel so it never creates horizontal
   scroll / page shift when closed. */
html, body { overflow-x:hidden; }
.rgc-drawer { overflow:hidden; }
.rgc-drawer:not(.is-open) { pointer-events:none; }

/* ============================================================
   v1.0.4 — Process steps with a photo per step (mobile responsive)
   Image sits at the top of each step card (16:9), the numbered
   badge straddles the image's bottom-left corner.
   ============================================================ */
.rgc-step--photo { padding:0; gap:0; overflow:hidden; }
.rgc-step__media { width:100%; aspect-ratio:16/9; overflow:hidden; background:var(--rgc-tint); }
.rgc-step__media .rgc-media__img { width:100%; height:100%; object-fit:cover; }
.rgc-step__media .rgc-placeholder { width:100%; height:100%; min-height:0 !important; }
.rgc-step--photo .rgc-step__num { margin:-28px 24px 12px; border:3px solid #fff; position:relative; z-index:1; }
.rgc-step--photo .rgc-h3 { margin:0 24px; }
.rgc-step--photo .rgc-body { margin:6px 24px 28px; }
@media (max-width: 767px){
  .rgc-step--photo .rgc-step__num { margin:-26px 20px 12px; }
  .rgc-step--photo .rgc-h3 { margin:0 20px; }
  .rgc-step--photo .rgc-body { margin:6px 20px 24px; }
}
