:root {
      --navy:       #0A2342;
      --navy-dark:  #061529;
      --cream:      #F8F5F0;
      --cream-dark: #EDE8E0;
      --charcoal:   #3A3A3A;
      --orange:     #D85C43;
      --orange-dark:#bf4d36;
      --green:      #2E5C3D;
      --gold:       #D4AF37;
      --gold-light: #e8c94a;
      --white:      #ffffff;
      --shadow-sm:  0 2px 8px rgba(10,35,66,0.08);
      --shadow-md:  0 8px 32px rgba(10,35,66,0.12);
      --shadow-lg:  0 20px 60px rgba(10,35,66,0.18);
      --radius:     4px;
      --radius-lg:  10px;
      --transition: 0.25s cubic-bezier(0.4,0,0.2,1);
      --font-serif: 'Cormorant Garamond', Georgia, serif;
      --font-sans:  'DM Sans', 'Helvetica Neue', Arial, sans-serif;
    }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
      font-family: var(--font-sans);
      color: var(--charcoal);
      background: var(--cream);
      line-height: 1.6;
      overflow-x: hidden;
    }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: var(--font-sans); }
.serif { font-family: var(--font-serif); }
.section-label {
      font-size: 0.7rem;
      font-weight: 600;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--orange);
      display: block;
      margin-bottom: 0.75rem;
    }
.section-title {
      font-family: var(--font-serif);
      font-size: clamp(2rem, 4vw, 3.2rem);
      font-weight: 600;
      line-height: 1.15;
      color: var(--navy);
    }
.section-subtitle {
      font-size: 1.05rem;
      color: #666;
      line-height: 1.7;
      max-width: 560px;
    }
.btn {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      padding: 0.85rem 2rem;
      font-family: var(--font-sans);
      font-size: 0.875rem;
      font-weight: 600;
      letter-spacing: 0.05em;
      border-radius: var(--radius);
      transition: all var(--transition);
      text-align: center;
      white-space: nowrap;
    }
.btn-primary {
      background: var(--orange);
      color: var(--white);
    }
.btn-primary:hover { background: var(--orange-dark); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(216,92,67,0.4); }
.btn-secondary {
      background: transparent;
      color: var(--navy);
      border: 1.5px solid var(--navy);
    }
.btn-secondary:hover { background: var(--navy); color: var(--white); }
.btn-white {
      background: var(--white);
      color: var(--navy);
    }
.btn-white:hover { background: var(--cream); transform: translateY(-1px); }
.btn-lg { padding: 1rem 2.5rem; font-size: 1rem; }
.container {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 1.5rem;
    }
.section-pad { padding: 6rem 0; }
.section-pad-sm { padding: 4rem 0; }
.text-center { text-align: center; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
#cookie-banner {
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      background: var(--navy-dark);
      color: var(--cream);
      padding: 1rem 1.5rem;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      flex-wrap: wrap;
      font-size: 0.85rem;
      border-top: 2px solid var(--orange);
    }
#cookie-banner a { color: var(--gold); text-decoration: underline; }
#cookie-banner .btn { padding: 0.5rem 1.5rem; font-size: 0.8rem; }
#cookie-banner.hidden { display: none; }
#hero {
      position: relative;
      min-height: calc(100vh - 72px);
      display: flex;
      align-items: center;
      overflow: hidden;
      background: var(--navy-dark);
    }
.hero-slides {
      position: absolute;
      inset: 0;
    }
.hero-slide {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
      opacity: 0;
      transition: opacity 1.2s ease;
    }
.hero-slide.active { opacity: 1; }
.hero-slide::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(
        105deg,
        rgba(6,21,41,0.82) 0%,
        rgba(6,21,41,0.55) 50%,
        rgba(6,21,41,0.25) 100%
      );
    }
.slide-1 { background-image: url('../../images/home1.jpg'); }
.slide-2 { background-image: url('../../images/home2.jpg'); }
.slide-3 { background-image: url('../../images/home3.jpg'); }
.slide-4 { background-image: url('../../images/home4.png'); }
.slide-dots {
      position: absolute;
      bottom: 2rem;
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      gap: 0.5rem;
      z-index: 5;
    }
.slide-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: rgba(255,255,255,0.4);
      cursor: pointer;
      transition: all var(--transition);
      border: none;
    }
.slide-dot.active { background: var(--orange); width: 24px; border-radius: 4px; }
.hero-content {
      position: relative;
      z-index: 2;
      max-width: 680px;
    }
.hero-eyebrows {
      padding-top: 2rem;
      display: flex;
      align-items: center;
      gap: 0.75rem;
      margin-bottom: 1.75rem;
    }
.hero-eyebrows .hero-eyebrow { margin-bottom: 0; }
.hero-eyebrows a.hero-eyebrow { text-decoration: none; }
.hero-eyebrows a.hero-eyebrow:hover { background: rgba(212,175,55,0.25); }
.hero-eyebrows a.hero-eyebrow:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.hero-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      background: rgba(212,175,55,0.15);
      border: 1px solid rgba(212,175,55,0.3);
      border-radius: 100px;
      padding: 0.35rem 1rem;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 1.75rem;
    }
.hero-eyebrow::before {
      content: '';
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--gold);
      animation: pulse-dot 2s infinite;
    }
@keyframes pulse-dot {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.5; transform: scale(0.7); }
    }
.hero-title {
      font-family: var(--font-serif);
      font-size: clamp(2.8rem, 5.5vw, 4.8rem);
      font-weight: 700;
      line-height: 1.05;
      color: var(--white);
      margin-bottom: 1.25rem;
    }
.hero-title em {
      font-style: italic;
      color: var(--gold);
    }
.hero-subtitle {
      font-size: 1.1rem;
      color: rgba(248,245,240,0.8);
      line-height: 1.7;
      margin-bottom: 2.5rem;
      max-width: 520px;
    }
.postcode-checker {
      background: rgba(255,255,255,0.1);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,0.15);
      border-radius: var(--radius-lg);
      padding: 1.5rem;
      max-width: 560px;
      margin-bottom: 1.75rem;
    }
.postcode-checker-label {
      font-size: 0.8rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(248,245,240,0.7);
      margin-bottom: 0.75rem;
      display: block;
    }
.postcode-row {
      display: flex;
      gap: 0.5rem;
    }
.postcode-row select, .postcode-row input {
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: var(--radius);
      color: var(--white);
      font-family: var(--font-sans);
      font-size: 0.95rem;
      padding: 0.8rem 1rem;
      outline: none;
      transition: border-color var(--transition);
    }
.postcode-row select { flex: 0 0 auto; min-width: 50px; cursor: pointer; }
.postcode-row select option { background: var(--navy); color: var(--white); }
.postcode-row input {
      flex: 1;
      min-width: 0;
    }
.postcode-row input::placeholder { color: rgba(255,255,255,0.45); }
.postcode-row input:focus, .postcode-row select:focus { border-color: var(--gold); }
.postcode-row .btn { flex-shrink: 0; }
.postcode-result {
      margin-top: 0.75rem;
      font-size: 0.9rem;
      display: none;
    }
.postcode-result.success { color: #6ee7a0; display: block; }
.postcode-result.waitlist { color: #ffd48a; display: block; }
.waitlist-form { margin-top: 0.75rem; display: none; }
.waitlist-form.visible { display: flex; gap: 0.5rem; }
.waitlist-form input {
      flex: 1;
      background: rgba(255,255,255,0.12);
      border: 1px solid rgba(255,255,255,0.2);
      border-radius: var(--radius);
      color: var(--white);
      font-family: var(--font-sans);
      font-size: 0.9rem;
      padding: 0.7rem 1rem;
      outline: none;
    }
.waitlist-form input::placeholder { color: rgba(255,255,255,0.45); }
.hero-meta {
      display: flex;
      align-items: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
.hero-meta-item {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.82rem;
      color: rgba(248,245,240,0.7);
    }
.hero-meta-item strong { color: var(--white); }
.hero-meta-sep { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.3); }
.currency-flag {
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      font-size: 0.9rem;
    }
#trust-bar {
      background: var(--navy);
      padding: 1rem 0;
      overflow: hidden;
    }
.trust-bar-inner {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 2.5rem;
      flex-wrap: wrap;
    }
.trust-item {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.82rem;
      color: rgba(248,245,240,0.8);
      white-space: nowrap;
    }
.trust-item .stars { color: var(--gold); letter-spacing: -1px; }
.trust-sep { width: 1px; height: 20px; background: rgba(255,255,255,0.15); }
#ticker {
      background: var(--orange);
      overflow: hidden;
      padding: 0.6rem 0;
    }
.ticker-track {
      display: flex;
      width: max-content;
      animation: ticker-scroll 28s linear infinite;
    }
.ticker-track:hover { animation-play-state: paused; }
@keyframes ticker-scroll {
      from { transform: translateX(0); }
      to { transform: translateX(-50%); }
    }
.ticker-item {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      font-size: 0.8rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      color: var(--white);
      padding: 0 2rem;
      white-space: nowrap;
    }
.ticker-item a { color: var(--white); text-decoration: underline; text-underline-offset: 3px; }
.ticker-dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,0.5); }
#how-it-works { background: var(--white); }
.steps-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1px;
      background: var(--cream-dark);
      border: 1px solid var(--cream-dark);
      border-radius: var(--radius-lg);
      overflow: hidden;
      margin-top: 3.5rem;
    }
.step-card {
      background: var(--white);
      padding: 2.5rem 2rem;
      position: relative;
    }
.step-number {
      font-family: var(--font-serif);
      font-size: 4rem;
      font-weight: 700;
      color: var(--cream-dark);
      line-height: 1;
      margin-bottom: 1rem;
      transition: color var(--transition);
    }
.step-card:hover .step-number { color: var(--orange); }
.step-icon {
      color: var(--navy);
      border: 1px solid #e8e2d9;
      width: 48px;
      height: 48px;
      background: var(--cream);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 1.25rem;
      font-size: 1.3rem;
    }
.step-icon svg { display: block; flex-shrink: 0; }
.step-card:hover .step-icon { color: var(--orange); }
.step-card h3 {
      font-family: var(--font-serif);
      font-size: 1.4rem;
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 0.6rem;
    }
.step-card p {
      font-size: 0.9rem;
      color: #777;
      line-height: 1.65;
    }
.step-tag {
      display: inline-block;
      margin-top: 1rem;
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--green);
      background: rgba(46,92,61,0.08);
      padding: 0.25rem 0.7rem;
      border-radius: 100px;
    }
.how-cta { text-align: center; margin-top: 2.5rem; }
#gallery { background: var(--navy-dark); }
.gallery-intro { margin-bottom: 3rem; }
.gallery-intro .section-title { color: var(--white); }
.gallery-intro .section-subtitle { color: rgba(248,245,240,0.65); }
.before-after-wrapper {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 2rem;
      align-items: start;
    }
.ba-main { grid-column: 1 / 2; }
.ba-thumbs { grid-column: 2 / 3; display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.ba-slider-container {
      position: relative;
      width: 100%;
      aspect-ratio: 4/3;
      border-radius: var(--radius-lg);
      overflow: hidden;
      cursor: col-resize;
      user-select: none;
    }
.ba-before, .ba-after {
      position: absolute;
      inset: 0;
      background-size: cover;
      background-position: center;
    }
.ba-after { clip-path: inset(0 50% 0 0); transition: clip-path 0.05s; }
.ba-divider {
      position: absolute;
      top: 0;
      bottom: 0;
      left: 50%;
      width: 3px;
      background: var(--white);
      transform: translateX(-50%);
      pointer-events: none;
      z-index: 3;
    }
.ba-handle {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 44px;
      height: 44px;
      background: var(--white);
      border-radius: 50%;
      z-index: 4;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: var(--shadow-md);
      pointer-events: none;
    }
.ba-handle svg { width: 20px; height: 20px; fill: var(--navy); }
.ba-label {
      position: absolute;
      top: 1rem;
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 0.3rem 0.7rem;
      border-radius: 100px;
      z-index: 5;
      pointer-events: none;
    }
.ba-label-before { left: 1rem; background: rgba(10,35,66,0.75); color: var(--cream); }
.ba-label-after { right: 1rem; background: var(--orange); color: var(--white); }
.ba-quote {
      margin-top: 1.25rem;
      padding: 1.25rem 1.5rem;
      background: rgba(255,255,255,0.05);
      border-left: 3px solid var(--gold);
      border-radius: 0 var(--radius) var(--radius) 0;
    }
.ba-quote p { font-size: 0.9rem; color: rgba(248,245,240,0.8); font-style: italic; line-height: 1.6; }
.ba-quote cite { font-size: 0.78rem; color: var(--gold); font-style: normal; margin-top: 0.5rem; display: block; }
.ba-thumb {
      aspect-ratio: 1;
      border-radius: var(--radius);
      overflow: hidden;
      cursor: pointer;
      position: relative;
      border: 2px solid transparent;
      transition: border-color var(--transition);
    }
.ba-thumb.active { border-color: var(--orange); }
.ba-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.ba-thumb:hover img { transform: scale(1.05); }
.ba-thumb-label {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      background: linear-gradient(transparent, rgba(6,21,41,0.85));
      padding: 1.5rem 0.75rem 0.5rem;
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--white);
      text-align: center;
    }
#membership { background: var(--cream); }
.plans-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 2rem;
      max-width: 860px;
      margin: 3.5rem auto 0;
    }
.plan-card {
      background: var(--white);
      border-radius: var(--radius-lg);
      padding: 2.5rem 2rem;
      border: 2px solid transparent;
      position: relative;
      transition: transform var(--transition), box-shadow var(--transition);
    }
.plan-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.plan-card.popular { border-color: var(--gold); }
.plan-badge {
      position: absolute;
      top: -14px;
      left: 50%;
      transform: translateX(-50%);
      background: var(--gold);
      color: var(--navy-dark);
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 0.3rem 1rem;
      border-radius: 100px;
      white-space: nowrap;
    }
.plan-name {
      font-family: var(--font-serif);
      font-size: 0.85rem;
      font-weight: 600;
      letter-spacing: 0.15em;
      text-transform: uppercase;
      color: var(--orange);
      margin-bottom: 0.5rem;
    }
.plan-price {
      font-family: var(--font-serif);
      font-size: 3.5rem;
      font-weight: 700;
      color: var(--navy);
      line-height: 1;
    }
.plan-price sup { font-size: 1.5rem; vertical-align: top; margin-top: 0.5rem; }
.plan-price-sub {
      font-size: 0.82rem;
      color: #999;
      margin-top: 0.25rem;
      margin-bottom: 1.5rem;
    }
.plan-desc {
      font-size: 0.9rem;
      color: #666;
      margin-bottom: 1.75rem;
      line-height: 1.65;
      padding-bottom: 1.75rem;
      border-bottom: 1px solid var(--cream-dark);
    }
.plan-features { margin-bottom: 2rem; }
.plan-feature {
      display: flex;
      align-items: flex-start;
      gap: 0.75rem;
      margin-bottom: 0.75rem;
      font-size: 0.88rem;
      color: var(--charcoal);
    }
.plan-feature::before {
      content: '✓';
      width: 20px;
      height: 20px;
      background: rgba(46,92,61,0.1);
      color: var(--green);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.7rem;
      font-weight: 700;
      flex-shrink: 0;
      margin-top: 1px;
    }
.plan-feature strong { color: var(--navy); }
.plan-cta { width: 100%; text-align: center; padding: 0.9rem; }
.plan-note {
      text-align: center;
      margin-top: 0.75rem;
      font-size: 0.75rem;
      color: #999;
    }
.plans-compare-link {
      text-align: center;
      margin-top: 2rem;
      font-size: 0.88rem;
      color: var(--navy);
    }
.plans-compare-link a {
      color: var(--orange);
      font-weight: 600;
      border-bottom: 1px solid var(--orange);
      padding-bottom: 1px;
    }
#features { background: var(--white); }
.features-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
      margin-top: 3.5rem;
    }
.feature-card {
      padding: 2rem 1.75rem;
      border-radius: var(--radius-lg);
      background: var(--cream);
      border: 1px solid var(--cream-dark);
      transition: transform var(--transition), box-shadow var(--transition);
      cursor: pointer;
    }
.feature-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.feature-icon-wrap {
      width: 56px;
      height: 56px;
      border-radius: var(--radius-lg);
      background: var(--navy);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.5rem;
      margin-bottom: 1.25rem;
    }
.feature-card h3 {
      font-family: var(--font-serif);
      font-size: 1.3rem;
      font-weight: 600;
      color: var(--navy);
      margin-bottom: 0.6rem;
    }
.feature-card p {
      font-size: 0.88rem;
      color: #777;
      line-height: 1.65;
      margin-bottom: 1.25rem;
    }
.feature-link {
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--orange);
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      transition: gap var(--transition);
    }
.feature-card:hover .feature-link { gap: 0.6rem; }
.gpa-mini {
      display: none;
      margin-top: 1rem;
      padding: 1rem;
      background: var(--white);
      border-radius: var(--radius);
      border: 1px solid var(--cream-dark);
    }
.gpa-mini.visible { display: block; }
.gpa-mini select, .gpa-mini input {
      width: 100%;
      padding: 0.5rem 0.75rem;
      border: 1px solid var(--cream-dark);
      border-radius: var(--radius);
      font-family: var(--font-sans);
      font-size: 0.85rem;
      color: var(--charcoal);
      background: var(--white);
      margin-bottom: 0.5rem;
      outline: none;
    }
.gpa-result {
      display: none;
      text-align: center;
      padding: 0.75rem;
      background: var(--navy);
      color: var(--white);
      border-radius: var(--radius);
      font-family: var(--font-serif);
      font-size: 1.2rem;
      margin-top: 0.5rem;
    }
.gpa-result.visible { display: block; }
.gpa-score { font-size: 2rem; color: var(--gold); font-weight: 700; }
#reviews { background: var(--cream); }
.reviews-header {
      display: flex;
      align-items: flex-end;
      justify-content: space-between;
      margin-bottom: 3rem;
      flex-wrap: wrap;
      gap: 1rem;
    }
.trustpilot-score {
      display: flex;
      align-items: center;
      gap: 0.75rem;
    }
.trustpilot-stars { color: var(--gold); font-size: 1.5rem; letter-spacing: -2px; }
.trustpilot-info { font-size: 0.85rem; color: #777; }
.trustpilot-info strong { color: var(--navy); display: block; font-size: 1.1rem; }
.reviews-carousel {
      position: relative;
    }
.reviews-track {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5rem;
    }
.review-card {
      background: var(--white);
      border-radius: var(--radius-lg);
      padding: 2rem;
      border: 1px solid var(--cream-dark);
      transition: transform var(--transition), box-shadow var(--transition);
    }
.review-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.review-stars { color: var(--gold); font-size: 1rem; letter-spacing: -1px; margin-bottom: 1rem; }
.review-text {
      font-size: 0.92rem;
      color: var(--charcoal);
      line-height: 1.7;
      margin-bottom: 1.25rem;
      font-style: italic;
    }
.review-text::before { content: '\201C'; font-size: 2rem; font-family: var(--font-serif); color: var(--cream-dark); line-height: 0; vertical-align: -0.5rem; margin-right: 0.25rem; }
.reviewer {
      display: flex;
      align-items: center;
      gap: 0.75rem;
    }
.reviewer-avatar {
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: var(--navy);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-serif);
      font-size: 1.1rem;
      font-weight: 600;
      color: var(--white);
      flex-shrink: 0;
    }
.reviewer-name { font-size: 0.88rem; font-weight: 600; color: var(--navy); }
.reviewer-location { font-size: 0.78rem; color: #999; }
.reviews-cta { text-align: center; margin-top: 2.5rem; }
#corporate-teaser {
      background: var(--navy);
      position: relative;
      overflow: hidden;
    }
#corporate-teaser::before {
      content: '';
      position: absolute;
      top: -100px;
      right: -100px;
      width: 400px;
      height: 400px;
      background: radial-gradient(circle, rgba(212,175,55,0.08) 0%, transparent 70%);
      pointer-events: none;
    }
.corporate-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }
.corporate-content .section-title { color: var(--white); }
.corporate-content .section-subtitle { color: rgba(248,245,240,0.65); margin: 1.25rem 0 2rem; }
.corporate-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1.25rem;
      margin-bottom: 2rem;
    }
.corp-stat {
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--radius);
      padding: 1.25rem;
    }
.corp-stat-num {
      font-family: var(--font-serif);
      font-size: 2rem;
      font-weight: 700;
      color: var(--gold);
      line-height: 1;
    }
.corp-stat-label { font-size: 0.78rem; color: rgba(248,245,240,0.6); margin-top: 0.25rem; }
.corporate-plans-preview { }
.plan-preview-card {
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.1);
      border-radius: var(--radius-lg);
      padding: 1.5rem;
      margin-bottom: 1rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 1rem;
      transition: border-color var(--transition);
    }
.plan-preview-card:hover { border-color: rgba(212,175,55,0.4); }
.plan-preview-card:last-child { margin-bottom: 0; }
.ppc-name { font-family: var(--font-serif); font-size: 1.15rem; font-weight: 600; color: var(--white); }
.ppc-desc { font-size: 0.8rem; color: rgba(248,245,240,0.55); margin-top: 0.15rem; }
.ppc-price { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; color: var(--gold); white-space: nowrap; }
.ppc-price span { font-size: 0.75rem; font-family: var(--font-sans); color: rgba(212,175,55,0.7); }
#areas { background: var(--white); }
.areas-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 3rem;
      margin-top: 3rem;
      align-items: start;
    }
.areas-list-section h3 {
      font-family: var(--font-serif);
      font-size: 1.2rem;
      color: var(--navy);
      margin-bottom: 1.25rem;
      display: flex;
      align-items: center;
      gap: 0.5rem;
    }
.areas-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem;
      margin-bottom: 2rem;
    }
.area-chip {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      padding: 0.4rem 0.9rem;
      border-radius: 100px;
      font-size: 0.82rem;
      font-weight: 500;
      transition: all var(--transition);
      cursor: default;
    }
.area-chip.active {
      background: rgba(46,92,61,0.1);
      color: var(--green);
      border: 1px solid rgba(46,92,61,0.2);
    }
.area-chip.active::before { content: '●'; font-size: 0.5rem; }
.area-chip.soon {
      background: rgba(212,175,55,0.1);
      color: #b8960e;
      border: 1px solid rgba(212,175,55,0.25);
    }
.area-chip.soon::before { content: '○'; font-size: 0.6rem; }
.waitlist-section {
      background: var(--cream);
      border-radius: var(--radius-lg);
      padding: 2rem;
      border: 1px solid var(--cream-dark);
    }
.waitlist-section h3 {
      font-family: var(--font-serif);
      font-size: 1.4rem;
      color: var(--navy);
      margin-bottom: 0.5rem;
    }
.waitlist-section p { font-size: 0.88rem; color: #777; margin-bottom: 1.25rem; line-height: 1.6; }
.waitlist-inline {
      display: flex;
      gap: 0.5rem;
      margin: 0;
    }
.waitlist-inline input {
      flex: 1;
      min-width: 0;
      padding: 0.75rem 1rem;
      border: 1.5px solid var(--cream-dark);
      border-radius: var(--radius);
      font-family: var(--font-sans);
      font-size: 0.9rem;
      color: var(--charcoal);
      outline: none;
      transition: border-color var(--transition);
    }
.waitlist-inline input:focus { border-color: var(--orange); }
.areas-legend {
      display: flex;
      gap: 1.5rem;
      flex-wrap: wrap;
      margin-top: 1.5rem;
    }
.legend-item {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.78rem;
      color: #777;
    }
.legend-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
    }
.legend-dot.active { background: var(--green); }
.legend-dot.soon { background: var(--gold); }
#final-cta {
      background: var(--navy);
      text-align: center;
      position: relative;
      overflow: hidden;
    }
#final-cta::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url(../../"data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
.final-cta-inner { position: relative; z-index: 1; max-width: 620px; margin: 0 auto; }
.final-cta-inner .section-title { color: var(--white); font-size: clamp(2rem, 4vw, 3rem); }
.final-cta-inner p {
      color: rgba(248,245,240,0.7);
      font-size: 1.05rem;
      line-height: 1.7;
      margin: 1.25rem 0 2.5rem;
    }
.final-cta-buttons {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
    }
.final-cta-meta {
      margin-top: 1.75rem;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 1.5rem;
      flex-wrap: wrap;
    }
.final-cta-meta span {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      font-size: 0.78rem;
      color: rgba(248,245,240,0.5);
    }
.final-cta-meta span::before { content: '✓'; color: var(--green); }
.other-services-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); align-items:center; gap:24px; text-align:center; opacity:.8; }
.other-services-grid > span { min-width:0; overflow-wrap:break-word; }
@media (max-width: 1024px) {
.other-services-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.before-after-wrapper { grid-template-columns: 1fr; }
.ba-main, .ba-thumbs { grid-column: 1; }
.ba-thumbs { grid-template-columns: repeat(4, 1fr); }
.corporate-grid { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 768px) {
.other-services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
#press-strip .container { padding:0 20px; }
#press-strip .other-services-grid > span { min-width:0; max-width:100%; font-size:16px !important; line-height:1.4; overflow-wrap:break-word; text-align:center; }
#hero { min-height:0; padding:28px 0 64px; }
#hero > .container { width:100%; min-width:0; padding:0 20px; }
#hero .hero-content { width:100%; max-width:100%; min-width:0; }
.hero-eyebrows { flex-direction: column; align-items: flex-start; padding-top:0; gap:10px; margin-bottom:22px; }
#hero .hero-eyebrow { max-width:100%; font-size:11px; letter-spacing:0; padding:7px 12px; }
#hero .hero-title { font-size:38px; line-height:1.08; margin-bottom:16px; overflow-wrap:break-word; }
#hero .hero-subtitle { font-size:16px; line-height:1.6; margin-bottom:24px; }
#hero .postcode-checker { width:100%; max-width:100%; padding:16px; border-radius:8px; margin-bottom:22px; }
#hero .postcode-checker-label { font-size:12px; letter-spacing:0; line-height:1.5; }
#hero .postcode-row { display:grid; grid-template-columns:100px minmax(0,1fr); gap:10px; }
#hero .postcode-row input, #hero .postcode-row select { width:100%; min-width:0; height:48px; font-size:16px; padding:10px 12px; }
#hero .postcode-row .btn { grid-column:1 / -1; width:100%; min-height:48px; justify-content:center; }
#hero .waitlist-form.visible { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
#hero .waitlist-form input { width:100%; min-width:0; font-size:16px; min-height:48px; }
#hero .waitlist-form .btn { width:100%; min-height:48px; justify-content:center; }
#hero .postcode-result { overflow-wrap:anywhere; }
#hero .hero-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
#hero .hero-meta-item { min-width:0; flex-wrap:wrap; gap:4px; font-size:12px; line-height:1.5; }
#hero .hero-meta-sep { display:none; }
#hero .slide-dots { bottom:24px; }
.steps-grid { grid-template-columns: 1fr; }
.plans-grid { grid-template-columns: 1fr; max-width: 420px; }
.features-grid { grid-template-columns: 1fr; }
.reviews-track { grid-template-columns: 1fr; }
.areas-grid { grid-template-columns: minmax(0,1fr); }
.areas-grid > * { min-width:0; }
.waitlist-inline { flex-direction:column; }
.waitlist-inline input, .waitlist-inline .btn { width:100%; }
.corporate-stats { grid-template-columns: 1fr 1fr; }
.ba-thumbs { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 480px) {
#hero .hero-title { font-size:34px; }
.btn { max-width:100%; white-space:normal; text-align:center; }
.ba-thumbs { grid-template-columns: repeat(2, 1fr); }
.trust-bar-inner { gap: 1rem; }
.trust-sep { display: none; }
}
@media (max-width:360px) {
#hero > .container { padding:0 16px; }
#hero .hero-title { font-size:30px; }
#hero .postcode-row { grid-template-columns:88px minmax(0,1fr); }
#hero .hero-meta { column-gap:8px; }
}
.fade-up {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.6s ease, transform 0.6s ease;
    }
.fade-up.visible {
      opacity: 1;
      transform: translateY(0);
    }
.fade-up:nth-child(2) { transition-delay: 0.1s; }
.fade-up:nth-child(3) { transition-delay: 0.2s; }
.fade-up:nth-child(4) { transition-delay: 0.3s; }
#cc-ai-widget {position:fixed;bottom:1.5rem;right:1.5rem;z-index:9998;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;}
#cc-ai-btn {width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#0A2342 0%,#1a3f6f 100%);border:2px solid rgba(212,175,55,.4);box-shadow:0 4px 24px rgba(10,35,66,.4),0 0 0 0 rgba(212,175,55,.3);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);animation:cc-pulse 3s infinite;}
#cc-ai-btn:hover {transform:scale(1.08);box-shadow:0 8px 32px rgba(10,35,66,.5),0 0 0 8px rgba(212,175,55,.15);}
#cc-ai-btn svg {width:28px;height:28px;transition:transform .3s;}
#cc-ai-btn.open svg {transform:rotate(45deg);}
@keyframes cc-pulse {0%,100%{box-shadow:0 4px 24px rgba(10,35,66,.4),0 0 0 0 rgba(212,175,55,.3);}50%{box-shadow:0 4px 24px rgba(10,35,66,.4),0 0 0 10px rgba(212,175,55,.0);}}
#cc-ai-badge {position:absolute;top:-4px;right:-4px;width:18px;height:18px;background:#D85C43;border-radius:50%;border:2px solid #fff;font-size:.65rem;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;}
#cc-chat-window {width:380px;height:560px;background:#ffffff;border-radius:16px;box-shadow:0 24px 80px rgba(10,35,66,.25),0 0 0 1px rgba(10,35,66,.08);display:none;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(.97);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);}
#cc-chat-window.open {display:flex;transform:translateY(0) scale(1);opacity:1;}
.cc-chat-header {background:linear-gradient(135deg,#0A2342 0%,#162d50 100%);padding:1.1rem 1.25rem;display:flex;align-items:center;gap:.85rem;flex-shrink:0;}
.cc-chat-avatar {width:38px;height:38px;border-radius:50%;background:rgba(212,175,55,.2);border:1.5px solid rgba(212,175,55,.4);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.cc-chat-avatar svg {width:20px;height:20px;fill:#D4AF37;}
.cc-chat-info {flex:1;}
.cc-chat-name {font-family:"DM Sans",sans-serif;font-size:.88rem;font-weight:700;color:#fff;}
.cc-chat-status {font-size:.7rem;color:rgba(248,245,240,.5);margin-top:.1rem;display:flex;align-items:center;gap:.35rem;}
.cc-status-dot {width:6px;height:6px;border-radius:50%;background:#6ee7a0;animation:cc-pulse-dot 2s infinite;}
@keyframes cc-pulse-dot {0%,100%{opacity:1;}50%{opacity:.4;}}
.cc-close-btn {color:rgba(248,245,240,.5);cursor:pointer;padding:.25rem;transition:color .2s;}
.cc-close-btn:hover {color:#fff;}
.cc-messages {flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.85rem;scroll-behavior:smooth;}
.cc-messages::-webkit-scrollbar {width:4px;}
.cc-messages::-webkit-scrollbar-track {background:transparent;}
.cc-messages::-webkit-scrollbar-thumb {background:#e0ddd8;border-radius:2px;}
.cc-msg {max-width:85%;display:flex;flex-direction:column;gap:.25rem;}
.cc-msg.ai {align-self:flex-start;}
.cc-msg.user {align-self:flex-end;}
.cc-msg-bubble {padding:.75rem 1rem;border-radius:14px;font-size:.85rem;line-height:1.55;font-family:"DM Sans",sans-serif;}
.cc-msg.ai .cc-msg-bubble {background:#f4f2ef;color:#3A3A3A;border-radius:4px 14px 14px 14px;}
.cc-msg.user .cc-msg-bubble {background:#0A2342;color:#fff;border-radius:14px 4px 14px 14px;}
.cc-msg-time {font-size:.65rem;color:#bbb;padding:0 .25rem;}
.cc-msg.user .cc-msg-time {text-align:right;}
.cc-typing {display:flex;align-items:center;gap:.4rem;padding:.75rem 1rem;background:#f4f2ef;border-radius:4px 14px 14px 14px;width:fit-content;}
.cc-typing-dot {width:7px;height:7px;border-radius:50%;background:#bbb;animation:cc-typing-bounce 1.4s infinite;}
.cc-typing-dot:nth-child(2) {animation-delay:.2s;}
.cc-typing-dot:nth-child(3) {animation-delay:.4s;}
@keyframes cc-typing-bounce {0%,80%,100%{transform:translateY(0);}40%{transform:translateY(-6px);}}
.cc-quick-replies {display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 1.25rem 0;}
.cc-qr-btn {padding:.4rem .9rem;border:1.5px solid #e0ddd8;border-radius:100px;font-size:.75rem;font-family:"DM Sans",sans-serif;font-weight:600;color:#3A3A3A;cursor:pointer;background:#fff;transition:all .2s;white-space:nowrap;}
.cc-qr-btn:hover {border-color:#D85C43;color:#D85C43;background:rgba(216,92,67,.04);}
.cc-input-area {padding:1rem 1.25rem;border-top:1px solid #f0ede8;display:flex;align-items:center;gap:.65rem;flex-shrink:0;}
.cc-input {flex:1;padding:.65rem .9rem;border:1.5px solid #e8e5e0;border-radius:100px;font-family:"DM Sans",sans-serif;font-size:.85rem;color:#3A3A3A;outline:none;transition:border-color .2s;}
.cc-input:focus {border-color:#D85C43;}
.cc-send-btn {width:36px;height:36px;border-radius:50%;background:#D85C43;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;}
.cc-send-btn:hover {background:#bf4d36;transform:scale(1.05);}
.cc-send-btn svg {width:16px;height:16px;fill:#fff;}
.cc-powered {text-align:center;padding:.5rem;font-size:.62rem;color:#ccc;flex-shrink:0;}
.cc-powered a {color:#D4AF37;text-decoration:none;}
@media(max-width:480px) {
#cc-chat-window {width:calc(100vw - 2rem);right:0;bottom:0;border-radius:16px 16px 0 0;height:70vh;}
}
#cc-whatsapp-btn {width:54px;height:54px;border-radius:50%;background:#25D366;box-shadow:0 4px 20px rgba(37,211,102,.4);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s;text-decoration:none;}
#cc-whatsapp-btn:hover {transform:scale(1.08);box-shadow:0 6px 28px rgba(37,211,102,.5);}
#cc-whatsapp-btn svg {width:28px;height:28px;fill:#fff;}
#cc-promo-banner {position:relative;background:linear-gradient(90deg,#D85C43 0%,#bf4d36 100%);color:#fff;text-align:center;padding:.6rem 3rem;font-family:"DM Sans",sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:1rem;}
#cc-promo-banner a {color:rgba(255,255,255,.9);text-decoration:underline;text-underline-offset:2px;}
#cc-promo-banner a:hover {color:#fff;}
#cc-promo-close {position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:rgba(255,255,255,.7);cursor:pointer;font-size:1.1rem;padding:.25rem;line-height:1;}
#cc-promo-close:hover {color:#fff;}
#cc-mobile-sticky-cta {display:none;position:fixed;bottom:0;left:0;right:0;background:#0A2342;padding:.75rem 1rem;z-index:9996;box-shadow:0 -4px 20px rgba(10,35,66,.3);border-top:1px solid rgba(212,175,55,.3);}
#cc-mobile-sticky-cta-inner {display:flex;align-items:center;gap:.75rem;max-width:520px;margin:0 auto;}
#cc-mobile-sticky-cta-price {flex:0 0 auto;}
#cc-mobile-sticky-cta-price .from {font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(248,245,240,.5);}
#cc-mobile-sticky-cta-price .val {font-family:"Cormorant Garamond",Georgia,serif;font-size:1.45rem;font-weight:700;color:#D4AF37;line-height:1;margin-top:.1rem;}
#cc-mobile-sticky-cta-btn {flex:1;background:#D85C43;color:#fff;padding:.85rem 1rem;border:none;border-radius:6px;font-family:"DM Sans",sans-serif;font-weight:700;font-size:.88rem;text-align:center;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:background .2s;}
#cc-mobile-sticky-cta-btn:hover {background:#bf4d36;}
@media (max-width:768px) {
#cc-mobile-sticky-cta {display:block;}
body {padding-bottom:72px;}
#cc-ai-widget {bottom:88px;}
}
#cc-online-tooltip {position:fixed;bottom:100px;right:100px;background:#0A2342;color:#fff;padding:.7rem 1rem;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:.78rem;font-weight:500;box-shadow:0 8px 24px rgba(10,35,66,.25);z-index:9999;max-width:220px;display:none;animation:cc-bounce-in .4s ease;}
#cc-online-tooltip::after {content:"";position:absolute;right:-8px;bottom:24px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:8px solid #0A2342;}
#cc-online-tooltip strong {color:#D4AF37;display:block;margin-bottom:.15rem;}
#cc-online-tooltip .online-dot {display:inline-block;width:7px;height:7px;border-radius:50%;background:#6ee7a0;margin-right:.4rem;animation:cc-pulse-dot 2s infinite;vertical-align:middle;}
#cc-online-tooltip-close {position:absolute;top:4px;right:6px;background:none;border:none;color:rgba(255,255,255,.5);cursor:pointer;font-size:.95rem;padding:0;line-height:1;}
#cc-online-tooltip-close:hover {color:#fff;}
@keyframes cc-bounce-in {0%{opacity:0;transform:translateY(10px) scale(.95);}100%{opacity:1;transform:translateY(0) scale(1);}}
@media(max-width:480px) {
#cc-online-tooltip {right:16px;bottom:160px;}
}
#cc-exit-intent {position:fixed;inset:0;background:rgba(10,35,66,.85);z-index:9995;display:none;align-items:center;justify-content:center;padding:1.5rem;animation:cc-fade-in .3s ease;}
#cc-exit-intent.visible {display:flex;}
#cc-exit-box {background:#fff;border-radius:16px;max-width:440px;width:100%;padding:3rem 2.5rem;text-align:center;position:relative;box-shadow:0 24px 80px rgba(10,35,66,.4);animation:cc-pop-in .4s cubic-bezier(.4,0,.2,1);}
#cc-exit-close {position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;background:none;border:1px solid #EDE8E0;color:#999;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;}
#cc-exit-close:hover {background:#F8F5F0;color:#3A3A3A;border-color:#3A3A3A;}
#cc-exit-box h3 {font-family:'Cormorant Garamond',Georgia,serif;font-size:1.8rem;font-weight:700;color:#0A2342;line-height:1.2;margin-bottom:.75rem;}
#cc-exit-box h3 em {font-style:italic;color:#D85C43;}
#cc-exit-box p {font-size:.9rem;color:#777;line-height:1.7;margin-bottom:1.5rem;}
#cc-exit-offer {background:linear-gradient(135deg,#D85C43 0%,#bf4d36 100%);color:#fff;padding:1.25rem;border-radius:10px;margin-bottom:1.5rem;}
#cc-exit-offer .big {font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:700;line-height:1;margin-bottom:.25rem;}
#cc-exit-offer .code {font-size:.78rem;opacity:.9;}
#cc-exit-offer code {background:rgba(0,0,0,.2);padding:.15rem .5rem;border-radius:4px;font-family:'Courier New',monospace;font-weight:700;letter-spacing:.1em;}
#cc-exit-input {width:100%;padding:.85rem 1rem;border:1.5px solid #EDE8E0;border-radius:6px;font-family:'DM Sans',sans-serif;font-size:.9rem;color:#3A3A3A;outline:none;transition:border-color .2s;margin-bottom:.75rem;}
#cc-exit-input:focus {border-color:#D85C43;}
#cc-exit-btn {width:100%;background:#0A2342;color:#fff;border:none;padding:.95rem;border-radius:6px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .2s;}
#cc-exit-btn:hover {background:#061529;}
#cc-exit-decline {margin-top:.75rem;font-size:.75rem;color:#bbb;background:none;border:none;cursor:pointer;text-decoration:underline;font-family:'DM Sans',sans-serif;}
#cc-exit-success {display:none;}
#cc-exit-success.visible {display:block;}
@keyframes cc-fade-in {from{opacity:0;}to{opacity:1;}}
@keyframes cc-pop-in {from{opacity:0;transform:scale(.9);}to{opacity:1;transform:scale(1);}}
