/* Concept 2 theme for the inner pages (loaded after ../assets/styles.css).
   Calmia style: Newsreader serif headings, small uppercase Inter labels, cream + ink, purple accents. */
:root {
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --display: "Newsreader", Georgia, "Times New Roman", serif;
  --sans: "Inter", "Helvetica Neue", Arial, sans-serif;
  --ink: #1b1814;
  --ink-soft: #5e574c;
  --cream: #f7f2e3;
  --sand: #ead8bb;
  --lavender: #ebe5f6;
  --lavender-2: #f3eff9;
  --violet: #6a3fd8;
  --line: rgba(27, 24, 20, .14);
  --radius: 16px;
  --radius-sm: 12px;
}
body.v2 { background: var(--cream); color: var(--ink); font-family: var(--sans); font-size: 16px; }

/* Type */
.v2 h1, .v2 h2, .v2 h3, .v2 h4, .v2 .price, .v2 .step-num, .v2 .acc-btn, .v2 .service-block .num, .v2 .quote-chip {
  font-family: var(--serif); font-weight: 400; letter-spacing: -0.01em;
}
.v2 h1 { font-size: clamp(2.6rem, 5.4vw, 5rem); line-height: 1.03; }
.v2 h2 { font-size: clamp(2rem, 3.6vw, 3.4rem); line-height: 1.06; }
.v2 h3 { font-weight: 500; letter-spacing: 0; }
.v2 em.accent, .v2 h1 em, .v2 h2 em { font-style: italic; color: var(--violet); }
.v2 .band-dark em.accent, .v2 .band-dark h2 em, .v2 .band-purple em.accent, .v2 .cta-band em.accent { color: #b9acff; }
.v2 .lead { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: var(--ink-soft); }
.v2 .eyebrow { font-family: var(--sans); font-size: 11.5px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); }
.v2 .eyebrow::before { background: var(--violet); }
.v2 .band-dark .eyebrow, .v2 .band-purple .eyebrow, .v2 .cta-band .eyebrow { color: rgba(255,255,255,.72); }
.v2 .band-dark .eyebrow::before, .v2 .band-purple .eyebrow::before { background: #b9acff; }

/* Buttons: Calmia pills */
.v2 .btn { font-family: var(--sans); font-weight: 500; font-size: 14px; letter-spacing: 0; border-radius: 999px; padding: 13px 22px; box-shadow: none; }
.v2 .btn-primary { background: var(--ink); color: var(--cream); border: 1px solid var(--ink); }
.v2 .btn-primary:hover { background: #000; }
.v2 .btn-ghost { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.v2 .btn-light { background: #fff; color: var(--ink); }
.v2 .btn-outline-light { border: 1px solid rgba(255,255,255,.8); color: #fff; background: transparent; }

/* Bands */
.v2 .band-sand { background: var(--sand); }
.v2 .band-lavender { background: var(--lavender-2); }
.v2 .band-dark, .v2 .cta-band.band-dark { background: #1d1430; }
.v2 .band-purple { background: linear-gradient(120deg, #1d1430 0%, #3a2a5a 60%, #5a4580 100%); }
.v2 .page-hero { padding-top: clamp(48px, 7vw, 96px); }

/* Cards: lighter, squarer */
.v2 .card, .v2 .price-card, .v2 .pk-card, .v2 .meet-card, .v2 .notice, .v2 .acc-item, .v2 .cal, .v2 .bk { border-radius: var(--radius); }
.v2 .card, .v2 .price-card:not(.featured), .v2 .pk-card:not(.featured) { background: #fffdf8; border-color: var(--line); }
.v2 .price-card.featured, .v2 .pk-card.featured, .v2 .meet-card.dark { background: #1d1430; }
.v2 .pill-list li, .v2 .spec-pills li a { font-family: var(--sans); }
.v2 .form input, .v2 .form select, .v2 .form textarea { font-family: var(--sans); border-radius: 12px; background: #fffdf8; }

/* ---------- Header (Calmia style) ---------- */
.v2 .proto-banner.v2b { position: fixed; z-index: 90; top: auto; left: 50%; bottom: 14px; transform: translateX(-50%); width: auto; padding: 7px 14px; border-radius: 999px; background: rgba(27,24,20,.82); color: rgba(255,255,255,.85); font: 500 11px var(--sans); white-space: nowrap; backdrop-filter: blur(6px); }
.v2 .site-header.v2h { position: sticky; top: 0; z-index: 80; left: auto; right: auto; transform: none; width: auto; max-width: none; margin: 0; padding: 0; background: rgba(247,242,227,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; opacity: 1; }
.v2 .v2h .nav { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: min(94%, 1320px); max-width: none; margin: 0 auto; padding: 12px 0; background: none; border: 0; box-shadow: none; border-radius: 0; height: auto; }
.v2 .v2h .brand img { height: 52px; width: auto; display: block; }
.v2 .v2h .nav-links { position: static; display: flex; flex: 1; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 0 clamp(24px, 6vw, 96px); padding: 0; list-style: none; background: none; box-shadow: none; transform: none; opacity: 1; visibility: visible; width: auto; }
.v2 .v2h .nav-links li { margin: 0; }
.v2 .v2h .nav-links a { font: 500 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink); text-decoration: none; padding: 6px 0; background: none; border-radius: 0; display: inline-block; }
.v2 .v2h .nav-links a:hover, .v2 .v2h .nav-links a.active { text-decoration: underline; text-underline-offset: 5px; color: var(--ink); background: none; }
.v2 .v2h .nav-links a.nav-cta { padding: 9px 16px; border: 1px solid var(--ink); border-radius: 999px; text-decoration: none; }
.v2 .v2h .nav-links a.nav-cta:hover, .v2 .v2h .nav-links a.nav-cta.active { background: var(--ink); color: var(--cream); }
.v2 .v2h .menu-toggle { display: none; }
@media (max-width: 960px) {
  .v2 .v2h .brand img { height: 44px; }
  .v2 .v2h .menu-toggle { display: inline-flex; align-items: center; position: relative; z-index: 2; font: 500 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink); background: none; border: 1px solid var(--ink); border-radius: 999px; padding: 8px 15px; width: auto; height: auto; }
  .v2 .v2h .nav-links { position: fixed; inset: 0; z-index: 1; margin: 0; flex-direction: column; justify-content: center; align-items: flex-start; gap: 14px; padding: 90px 28px 40px; background: #1d1430; opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s; }
  .v2 .v2h .nav-links.open { opacity: 1; visibility: visible; }
  .v2 .v2h .nav-links a { font: 400 2.2rem/1.1 var(--serif); letter-spacing: -0.01em; text-transform: none; color: #fff; }
  .v2 .v2h .nav-links a:hover, .v2 .v2h .nav-links a.active { color: #b9acff; }
  .v2 .v2h .nav-links a.nav-cta { margin-top: 14px; font: 500 15px var(--sans); text-transform: none; border-color: #fff; color: #fff; padding: 13px 22px; }
  .v2 .v2h .nav.menu-open .menu-toggle, .v2 .v2h .nav-links.open ~ .menu-toggle { color: #fff; border-color: #fff; }
}

/* Ministry page: the old header floated over the hero photo; the new one sits above it */
.v2.hero-page .site-header.v2h { position: sticky; }

/* ---------- Footer (same as the Concept 2 homepage) ---------- */
.v2 .site-footer.v2f { background: var(--ink); color: var(--cream); padding: 0; margin: 0; border: 0; }
.v2 .v2f-wrap { width: min(92%, 1240px); margin: 0 auto; padding: clamp(56px, 10vh, 96px) 0 calc(24px + 44px); }
.v2 .v2f-top { display: grid; grid-template-columns: 1fr 1.2fr; gap: 40px; }
.v2 .v2f-line { font-family: var(--serif); font-size: clamp(1.8rem, 3.4vw, 3.2rem); line-height: 1.1; max-width: 12em; margin: 0 0 26px; color: var(--cream); }
.v2 .v2f-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.v2 .v2f-cols div { display: grid; gap: 10px; align-content: start; }
.v2 .v2f-cols a { color: var(--cream); text-decoration: none; font-size: .95rem; }
.v2 .v2f-cols a:hover { text-decoration: underline; text-underline-offset: 4px; }
.v2 .v2-caps { font: 500 11.5px/1.6 var(--sans); letter-spacing: .03em; text-transform: uppercase; color: rgba(247,242,227,.55); }
.v2 .v2f-muted { font-size: .95rem; color: rgba(247,242,227,.6); }
.v2 .v2f-note { margin: clamp(28px, 6vh, 56px) 0 0; max-width: 760px; }
.v2 .v2f-word { font-family: var(--serif); font-size: clamp(3rem, 11.5vw, 11rem); line-height: .9; letter-spacing: -0.03em; margin-top: clamp(20px, 5vh, 48px); white-space: nowrap; color: var(--cream); }
.v2 .v2f-bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(247,242,227,.18); flex-wrap: wrap; }
.v2 .v2-pill { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border-radius: 999px; font: 500 14px var(--sans); text-decoration: none; }
.v2 .v2-pill.light { background: #fff; color: var(--ink); }
@media (max-width: 960px) { .v2 .v2f-top { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .v2 .v2f-cols { grid-template-columns: 1fr 1fr; } .v2 .v2f-bottom { flex-direction: column; gap: 6px; } .v2 .v2f-wrap { padding-bottom: 90px; } }

/* WhatsApp bubble: sit above the bottom banner on phones */
@media (max-width: 560px) { .v2 .wa-float { bottom: 56px; } }
/* Ministry (hero-page): keep the plain cream header, not the old floating dark pill */
.v2.hero-page .site-header.v2h { position: sticky; top: 0; left: auto; right: auto; }
.v2.hero-page .site-header.v2h .nav { background: none; border: 0; box-shadow: none; }
.v2.hero-page .site-header.v2h .nav-links a { color: var(--ink); background: none; }
.v2.hero-page .site-header.v2h .nav-links a.active { background: none; color: var(--ink); }
.v2.hero-page .site-header.v2h .nav-links a.nav-cta { color: var(--ink) !important; border-color: var(--ink); }
.v2.hero-page .site-header.v2h .nav-links a.nav-cta:hover { background: var(--ink) !important; color: var(--cream) !important; }
@media (max-width: 960px) {
  .v2.hero-page .site-header.v2h .nav-links a, .v2.hero-page .site-header.v2h .nav-links a.active { color: #fff; }
  .v2.hero-page .site-header.v2h .nav-links a.nav-cta { color: #fff !important; border-color: #fff; }
}
/* Phones: no blur on the header (blur traps the full-screen menu inside the header bar) */
@media (max-width: 960px) {
  .v2 .site-header.v2h { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--cream); }
  .v2 .v2h .nav-links.open + .menu-toggle, .v2 .v2h .menu-toggle[aria-expanded="true"] { color: #fff; border-color: #fff; }
}
@media (max-width: 960px) {
  .v2 .v2h, .v2 .v2h .nav { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; filter: none !important; transform: none !important; contain: none !important; }
  .v2 .v2h .nav-links { inset: 0 !important; top: 0 !important; left: 0 !important; right: 0 !important; width: 100% !important; height: 100vh; height: 100dvh; max-height: none !important; border-radius: 0 !important; border: 0 !important; box-shadow: none !important; overflow-y: auto; }
}

/* Newsreader: lock to its steady text design (the automatic large-size design looks thin and uneven) */
body.v2, .v2 h1, .v2 h2, .v2 h3, .v2 h4, .v2 p, .v2 .price, .v2 .step-num, .v2 .acc-btn, .v2 .v2f-word, .v2 .v2f-line, .v2 .v2h .nav-links a { font-optical-sizing: none; font-variation-settings: "opsz" 16; }

/* Header = the Concept 2 homepage menu (plum bar, white logo, white caps links, outline Book pill) */
.v2 .site-header.v2h, .v2.hero-page .site-header.v2h { background: #1d1430; border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: none; -webkit-backdrop-filter: none; }
.v2 .v2h .nav { padding: 14px 0; }
.v2 .v2h .brand img { height: 66px; }
.v2 .v2h .nav-links a, .v2.hero-page .site-header.v2h .nav-links a { color: #fff; opacity: .92; }
.v2 .v2h .nav-links a:hover, .v2 .v2h .nav-links a.active, .v2.hero-page .site-header.v2h .nav-links a.active { color: #fff; opacity: 1; text-decoration: underline; text-underline-offset: 5px; }
.v2 .v2h .nav-links a.nav-cta, .v2.hero-page .site-header.v2h .nav-links a.nav-cta { color: #fff !important; border: 1px solid rgba(255,255,255,.85); padding: 8px 14px; text-decoration: none; opacity: 1; }
.v2 .v2h .nav-links a.nav-cta:hover, .v2 .v2h .nav-links a.nav-cta.active, .v2.hero-page .site-header.v2h .nav-links a.nav-cta:hover { background: #fff !important; color: var(--ink) !important; }
.v2 .v2h .m-only { display: none; }
@media (max-width: 960px) {
  .v2 .site-header.v2h { background: #1d1430; }
  .v2 .v2h .brand img { height: 44px; }
  .v2 .v2h .menu-toggle { color: #fff; border-color: rgba(255,255,255,.8); }
  .v2 .v2h .m-only { display: block; }
  .v2 .v2h .nav-links a { opacity: 1; text-decoration: none !important; }
  .v2 .v2h .nav-links a.active { color: #b9acff !important; }
  .v2 .v2h .nav-links a.nav-cta { margin-top: 18px; font: 500 15px var(--sans); padding: 14px 22px; }
}

/* ===== Colour scheme 1: Plum and gold =====
   Plum #1D1430 / #3A2A5A · Gold #C8A067 · Soft gold #EAD8BB · Cream #F7F2E3 · Deep gold #3a2a5a for gold text on cream */
:root { --ink: #1d1430; --plum-900: #1d1430; --plum-700: #3a2a5a; --violet: #3a2a5a; --violet-soft: #c8a067; --gold: #c8a067; --gold-soft: #ead8bb; --lavender: #ead8bb; --lavender-2: #f7f2e3; --cream: #f7f2e3; }
.v2 .eyebrow::before, .v2 .band-dark .eyebrow::before, .v2 .band-purple .eyebrow::before { background: var(--gold); }
.v2 em.accent, .v2 h1 em, .v2 h2 em { color: var(--violet); }
.v2 .band-dark em.accent, .v2 .band-dark h2 em, .v2 .band-purple em.accent, .v2 .cta-band em.accent, .v2 .band-purple h2 em { color: var(--gold); }
.v2 .band-dark, .v2 .cta-band.band-dark { background: #1d1430; }
.v2 .band-purple { background: linear-gradient(120deg, #1d1430 0%, #2b1f46 55%, #3a2a5a 100%); }
/* Buttons: plum on light, gold on dark */
.v2 .btn-primary { background: #1d1430; border-color: #1d1430; color: var(--cream); }
.v2 .btn-light { background: var(--gold); color: #1d1430; }
.v2 .btn-light:hover { background: #ead8bb; }
.v2 .v2-pill.light { background: var(--gold); color: #1d1430; }
/* Header Book pill in gold, like the homepage */
.v2 .v2h .nav-links a.nav-cta, .v2.hero-page .site-header.v2h .nav-links a.nav-cta { color: var(--gold) !important; border-color: var(--gold); }
.v2 .v2h .nav-links a.nav-cta:hover, .v2 .v2h .nav-links a.nav-cta.active, .v2.hero-page .site-header.v2h .nav-links a.nav-cta:hover { background: var(--gold) !important; color: #1d1430 !important; }
.v2 .v2h .menu-toggle { color: var(--gold) !important; border-color: var(--gold) !important; }
.v2 .site-footer.v2f { background: #1d1430; }
@media (max-width: 960px) { .v2 .v2h .nav-links a.active { color: var(--gold) !important; } }

/* Services page cards: plum and gold instead of purple shades */
.v2 .svc-feature { --c: #1d1430; --bg: #f7f2e3; }
.v2 .svc-feature:nth-child(2) { --c: #3a2a5a; --bg: #ead8bb; }
.v2 .svc-feature:nth-child(3) { --c: #3a2a5a; --bg: #f7f2e3; }
.v2 .svc-feature:nth-child(4) { --c: #3a2a5a; --bg: #ead8bb; }
.v2 .svc-feature:nth-child(5) { --c: #2b1f46; --bg: #f7f2e3; }
.v2 .svc-feature:nth-child(6) { --c: #c8a067; --bg: #ead8bb; }
.v2 .svc-feature:nth-child(7) { --c: #1d1430; --bg: #ead8bb; }
.v2 .svc-feature { border: 1px solid rgba(29,20,48,.08); }

/* Credentials / qualification icons */
.v2 .quals-list > div:nth-child(1) .ql-ic { background: #1d1430; color: #fff; }
.v2 .quals-list > div:nth-child(2) .ql-ic { background: #c8a067; color: #1d1430; }
.v2 .quals-list > div:nth-child(3) .ql-ic { background: #3a2a5a; color: #fff; }
.v2 .quals-list > div:nth-child(4) .ql-ic { background: #3a2a5a; color: #fff; }
.v2 .quals-list > div:nth-child(5) .ql-ic { background: #2b1f46; color: #fff; }
.v2 .quals-list > div:nth-child(6) .ql-ic { background: #ead8bb; color: #1d1430; }

/* About: approach icons on the plum band, credentials line */
.v2 .approach-grid .card:nth-child(1) .icon-badge { background: #ead8bb; color: #1d1430; }
.v2 .approach-grid .card:nth-child(2) .icon-badge { background: #c8a067; color: #1d1430; }
.v2 .approach-grid .card:nth-child(3) .icon-badge { background: #c8a067; color: #fff; }
.v2 .approach-grid .card:nth-child(4) .icon-badge { background: #3a2a5a; color: #fff; }
.v2 .about-cred { color: #3a2a5a; }
.v2 .page-hero::before { background: radial-gradient(circle, rgba(200,160,103,.22), transparent 65%); }

/* ===== About page (Concept 2, editorial) ===== */
.about-v2 .ab-wrap { width: min(92%, 1240px); margin: 0 auto; }
/* 1. Hero */
.about-v2 .ab-hero { background: radial-gradient(ellipse 55% 80% at 78% 45%, #3a2a5a 0%, #2b1f46 45%, #1d1430 100%); color: #fff; padding: clamp(56px, 8vw, 110px) 0; overflow: hidden; }
.about-v2 .ab-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.about-v2 .ab-hero .eyebrow { color: rgba(255,255,255,.72); }
.about-v2 .ab-hero h1 { color: #fff; font-size: clamp(3rem, 7vw, 6.4rem); line-height: 1; margin: 0 0 22px; }
.about-v2 .ab-hero h1 em { color: var(--gold); }
.about-v2 .ab-cred { font-family: var(--sans); font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; line-height: 1.7; color: rgba(255,255,255,.8); max-width: 34em; margin: 0; }
.about-v2 .ab-hero-actions { display: flex; align-items: center; gap: 22px; margin-top: 34px; flex-wrap: wrap; }
.about-v2 .ab-link { color: #fff; font: 500 14px var(--sans); text-decoration: underline; text-underline-offset: 5px; }
.about-v2 .ab-portrait { position: relative; margin: 0; justify-self: end; width: min(100%, 460px); }
.about-v2 .ab-portrait::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 1px solid var(--gold); border-radius: 4px; }
.about-v2 .ab-portrait img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 20%; border-radius: 4px; }
/* 2. Opening statement */
.about-v2 .ab-quote { background: var(--cream); padding: clamp(64px, 9vw, 130px) 0 clamp(40px, 5vw, 64px); }
.about-v2 .ab-greet { font-family: "Caveat", cursive; font-size: clamp(1.8rem, 2.6vw, 2.4rem); color: var(--violet); margin: 4px 0 10px; }
.about-v2 .ab-pull { margin: 0; font-family: var(--serif); font-size: clamp(2rem, 4.2vw, 4rem); line-height: 1.12; letter-spacing: -0.015em; max-width: 20em; color: var(--ink); }
/* 3. Story: sticky portrait + text */
.about-v2 .ab-story { background: var(--cream); padding: 0 0 clamp(64px, 9vw, 120px); }
.about-v2 .ab-story-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 7vw, 110px); align-items: start; padding-top: clamp(24px, 4vw, 48px); border-top: 1px solid var(--line); }
.about-v2 .ab-sticky { position: sticky; top: 120px; margin: 0; }
.about-v2 .ab-sticky img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; border-radius: 4px; }
.about-v2 .ab-sticky figcaption { margin-top: 12px; font: 500 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); }
.about-v2 .ab-text { max-width: 36em; }
.about-v2 .ab-text p { font-family: var(--serif); font-size: clamp(1.1rem, 1.35vw, 1.28rem); line-height: 1.65; color: var(--ink); margin: 0 0 1.1em; }
.about-v2 .ab-text p:first-child::first-letter { float: left; font-size: 3.6em; line-height: .85; padding: .06em .1em 0 0; color: var(--violet); }
.about-v2 .ab-sign { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--line); }
.about-v2 .ab-sign .signature { display: block; font-family: "Caveat", cursive; font-size: 3rem; line-height: 1; color: var(--violet); }
.about-v2 .ab-sign-name { display: block; margin-top: 8px; font: 500 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-soft); }
/* 4. Numbers */
.about-v2 .ab-numbers { background: #1d1430; color: #fff; padding: clamp(48px, 7vw, 88px) 0; }
.about-v2 .ab-num-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.about-v2 .ab-num-grid div { display: grid; gap: 10px; padding-left: 22px; border-left: 1px solid rgba(234,216,187,.3); }
.about-v2 .ab-num-grid strong { font-family: var(--serif); font-weight: 400; font-size: clamp(3rem, 6vw, 5.4rem); line-height: 1; color: var(--gold); font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.about-v2 .ab-num-grid span:not([data-count]) { font: 500 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.75); max-width: 22em; }
/* 5. Approach */
.about-v2 .ab-approach { background: var(--cream); padding: clamp(64px, 9vw, 120px) 0; }
.about-v2 .ab-approach-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.about-v2 .ab-sub { color: var(--ink-soft); margin-top: 14px; }
.about-v2 .ab-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.about-v2 .ab-rows li { display: grid; grid-template-columns: 54px 1fr; column-gap: 12px; padding: clamp(18px, 2.4vw, 26px) 0; border-bottom: 1px solid var(--line); }
.about-v2 .ab-rows em { grid-row: span 2; font: 500 11.5px var(--sans); font-style: normal; letter-spacing: .04em; color: var(--violet); padding-top: .55em; }
.about-v2 .ab-rows strong { font-family: var(--serif); font-weight: 400; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; }
.about-v2 .ab-rows span { margin-top: 4px; color: var(--ink-soft); }
/* 6. Training: keep the existing list, on soft gold */
.about-v2 main > section.section:last-of-type { background: var(--lavender-2); }
/* Phones */
@media (max-width: 860px) {
  .about-v2 .ab-hero-grid, .about-v2 .ab-story-grid, .about-v2 .ab-approach-grid { grid-template-columns: 1fr; }
  .about-v2 .ab-portrait { justify-self: start; width: min(88%, 380px); margin-top: 8px; }
  .about-v2 .ab-sticky { position: static; width: min(80%, 340px); }
  .about-v2 .ab-num-grid { grid-template-columns: 1fr; gap: 26px; }
}
/* Book page: pricing and packages closer together */
.v2 #pricing { padding-bottom: clamp(16px, 2.5vw, 32px); }
.v2 #packages { padding-top: clamp(16px, 2.5vw, 32px); }
/* Headings that should stay on one line on desktop */
@media (min-width: 900px) {
  .v2 .one-line { max-width: none !important; white-space: nowrap; }
  .v2 .sh-l:has(.one-line) { max-width: none; flex: 1 1 auto; }
}

/* ===== Contact page (Concept 2) ===== */
.contact-v2 .ct-wrap { width: min(92%, 1240px); margin: 0 auto; }
/* 1. Hero */
.contact-v2 .ct-hero { position: relative; background: radial-gradient(ellipse 60% 90% at 20% 30%, #3a2a5a 0%, #2b1f46 45%, #1d1430 100%); color: #fff; padding: clamp(56px, 8vw, 110px) 0 0; margin-bottom: clamp(90px, 10vw, 140px); }
.contact-v2 .ct-hero-grid { display: grid; grid-template-columns: 1fr minmax(0, 520px); gap: clamp(32px, 6vw, 96px); align-items: start; }
.contact-v2 .ct-hero .eyebrow { color: rgba(255,255,255,.72); }
.contact-v2 .ct-hero h1 { color: #fff; font-size: clamp(3.6rem, 9vw, 8rem); line-height: .95; margin: 0 0 22px; }
.contact-v2 .ct-hero h1 em { color: var(--gold); }
.contact-v2 .ct-lead { color: rgba(255,255,255,.78); font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 30em; margin: 0; }
.contact-v2 .ct-rows { list-style: none; margin: clamp(36px, 5vw, 56px) 0 0; padding: 0 0 clamp(56px, 7vw, 96px); border-top: 1px solid rgba(200,160,103,.35); }
.contact-v2 .ct-rows li { border-bottom: 1px solid rgba(200,160,103,.35); }
.contact-v2 .ct-rows a, .contact-v2 .ct-rows li > div { display: grid; grid-template-columns: 130px 1fr auto; align-items: baseline; gap: 16px; padding: clamp(16px, 2vw, 22px) 0; color: #fff; text-decoration: none; }
.contact-v2 .ct-label { font: 500 11.5px var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--gold); }
.contact-v2 .ct-value { font-family: var(--serif); font-size: clamp(1.15rem, 1.9vw, 1.6rem); line-height: 1.25; overflow-wrap: anywhere; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.contact-v2 .ct-arrow { color: var(--gold); font-size: 1.2rem; transition: transform .25s ease; }
.contact-v2 .ct-rows a:hover .ct-arrow { transform: translateX(6px); }
.contact-v2 .ct-rows a:hover .ct-value { color: var(--gold-soft); }
/* Form card overlapping the bottom of the hero */
.contact-v2 .ct-form { position: relative; margin-bottom: calc(-1 * clamp(90px, 10vw, 140px)); background: #fffdf8; color: var(--ink); border-radius: 6px; padding: clamp(26px, 3vw, 40px); box-shadow: 0 30px 70px -30px rgba(10,6,20,.55); border: 0; }
.contact-v2 .ct-form-eyebrow { display: block; font: 500 11.5px var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--violet); }
.contact-v2 .ct-form-title { font-family: var(--serif); font-size: clamp(1.5rem, 2.2vw, 1.9rem); line-height: 1.15; margin: 8px 0 22px; color: var(--ink); }
.contact-v2 .ct-form label { font: 500 11px var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); }
.contact-v2 .ct-form input, .contact-v2 .ct-form textarea { background: transparent; border: 0; border-bottom: 1px solid rgba(29,20,48,.25); border-radius: 0; padding: 10px 0; font-size: 1rem; box-shadow: none; }
.contact-v2 .ct-form input:focus, .contact-v2 .ct-form textarea:focus { outline: none; border-bottom-color: var(--gold); box-shadow: none; }
.contact-v2 .ct-form textarea { min-height: 110px; resize: vertical; }
.contact-v2 .ct-form .btn { width: 100%; justify-content: center; margin-top: 6px; }
.contact-v2 .ct-form .form-hint { font-size: .82rem; }
/* 2. Community strip */
.contact-v2 .ct-community { padding: 0 0 clamp(56px, 7vw, 96px); }
.contact-v2 .ct-com-card { display: grid; grid-template-columns: 120px 1fr auto; gap: clamp(18px, 3vw, 36px); align-items: center; padding: 18px; background: #fffdf8; border: 1px solid rgba(200,160,103,.45); border-radius: 6px; }
.contact-v2 .ct-com-card img { width: 120px; height: 120px; object-fit: cover; border-radius: 4px; }
.contact-v2 .ct-com-card .eyebrow { margin-bottom: 6px; }
.contact-v2 .ct-com-title { font-family: var(--serif); font-size: clamp(1.4rem, 2.2vw, 2rem); line-height: 1.15; margin: 0 0 6px; }
.contact-v2 .ct-com-title em { color: var(--violet); }
.contact-v2 .ct-com-sub { color: var(--ink-soft); margin: 0; font-size: .95rem; }
/* 3. FAQ */
.contact-v2 .ct-faq { background: var(--sand); padding: clamp(64px, 9vw, 120px) 0; }
.contact-v2 .ct-faq-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.contact-v2 .ct-faq-side { position: sticky; top: 130px; }
.contact-v2 .ct-faq-sub { color: var(--ink-soft); margin: 14px 0 26px; }
.contact-v2 .accordion { counter-reset: faq; border-top: 1px solid rgba(29,20,48,.18); display: block; gap: 0; }
.contact-v2 .acc-item { counter-increment: faq; background: none; border: 0; border-bottom: 1px solid rgba(29,20,48,.18); border-radius: 0; box-shadow: none; margin: 0; }
.contact-v2 .acc-btn { display: grid; grid-template-columns: 44px 1fr 22px; align-items: baseline; width: 100%; padding: clamp(16px, 2vw, 22px) 0; background: none; border: 0; text-align: left; font-family: var(--serif); font-size: clamp(1.15rem, 1.7vw, 1.5rem); color: var(--ink); cursor: pointer; }
.contact-v2 .acc-btn::before { content: counter(faq, decimal-leading-zero); font: 500 11.5px var(--sans); letter-spacing: .04em; color: var(--violet); }
.contact-v2 .acc-btn:hover, .contact-v2 .acc-item.open .acc-btn { color: var(--violet); }
.contact-v2 .acc-panel p { padding-left: 44px; color: var(--ink-soft); max-width: 36em; }
/* 4. Privacy on plum */
.contact-v2 .ct-privacy { background: #1d1430; color: #fff; padding: clamp(64px, 9vw, 120px) 0; }
.contact-v2 .ct-privacy .eyebrow { color: rgba(255,255,255,.72); }
.contact-v2 .ct-privacy h2 { color: #fff; }
.contact-v2 .ct-privacy h2 em { color: var(--gold); }
.contact-v2 .ct-priv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: clamp(32px, 5vw, 56px); border-top: 1px solid rgba(200,160,103,.35); }
.contact-v2 .ct-priv-grid .notice { display: block; background: none; border: 0; border-radius: 0; padding: 28px 28px 8px 0; margin: 0; color: #fff; box-shadow: none; }
.contact-v2 .ct-priv-grid .notice + .notice { padding-left: 28px; border-left: 1px solid rgba(200,160,103,.35); }
.contact-v2 .ct-priv-grid .notice > svg { width: 30px; height: 30px; color: var(--gold); margin-bottom: 16px; display: block; }
.contact-v2 .ct-priv-grid .notice h4 { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; color: #fff; margin: 0 0 8px; }
.contact-v2 .ct-priv-grid .notice p { color: rgba(255,255,255,.72); font-size: .95rem; line-height: 1.6; }
.contact-v2 .ct-priv-grid .notice p b { color: var(--gold); }
.contact-v2 .ct-priv-grid .notice.alert > svg { color: #c8a067; }
.contact-v2 .ct-priv-grid .notice.alert h4 { color: #ead8bb; }
/* Phones */
@media (max-width: 900px) {
  .contact-v2 .ct-hero-grid, .contact-v2 .ct-faq-grid { grid-template-columns: 1fr; }
  .contact-v2 .ct-hero { margin-bottom: 56px; padding-bottom: 0; }
  .contact-v2 .ct-rows { padding-bottom: 32px; }
  .contact-v2 .ct-form { margin-bottom: -56px; }
  .contact-v2 .ct-community { padding-top: 0; }
  .contact-v2 .ct-faq-side { position: static; }
  .contact-v2 .ct-priv-grid { grid-template-columns: 1fr; }
  .contact-v2 .ct-priv-grid .notice + .notice { padding-left: 0; border-left: 0; border-top: 1px solid rgba(200,160,103,.35); }
}
@media (max-width: 600px) {
  .contact-v2 .ct-rows a, .contact-v2 .ct-rows li > div { grid-template-columns: 1fr auto; row-gap: 4px; }
  .contact-v2 .ct-label { grid-column: 1 / -1; }
  .contact-v2 .ct-com-card { grid-template-columns: 72px 1fr; }
  .contact-v2 .ct-com-card img { width: 72px; height: 72px; }
  .contact-v2 .ct-com-card .btn { grid-column: 1 / -1; justify-content: center; }
}

/* About: How my sessions work (plum, gold numbers) */
.about-v2 .ab-steps { background: #1d1430; color: #fff; padding: clamp(64px, 9vw, 120px) 0; }
.about-v2 .ab-steps .eyebrow { color: rgba(255,255,255,.72); }
.about-v2 .ab-steps h2 { color: #fff; margin: 0; }
.about-v2 .ab-steps h2 em { color: var(--gold); }
.about-v2 .ab-steps-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.about-v2 .ab-steps-cta { max-width: 360px; }
.about-v2 .ab-steps-cta p { color: rgba(255,255,255,.75); margin: 0 0 16px; }
.about-v2 .ab-step-list { list-style: none; margin: clamp(40px, 6vw, 72px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(200,160,103,.35); }
.about-v2 .ab-step-list li { padding: 30px 28px 6px 0; }
.about-v2 .ab-step-list li + li { padding-left: 28px; border-left: 1px solid rgba(200,160,103,.35); }
.about-v2 .ab-step-num { display: block; font-family: var(--serif); font-size: clamp(3rem, 5vw, 4.4rem); line-height: 1; color: var(--gold); margin-bottom: 18px; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.about-v2 .ab-step-list h3 { color: #fff; font-size: clamp(1.3rem, 1.8vw, 1.6rem); margin: 0 0 10px; font-weight: 400; }
.about-v2 .ab-step-list p { color: rgba(255,255,255,.72); line-height: 1.6; margin: 0; }
@media (max-width: 860px) {
  .about-v2 .ab-step-list { grid-template-columns: 1fr; }
  .about-v2 .ab-step-list li, .about-v2 .ab-step-list li + li { padding: 24px 0; border-left: 0; border-bottom: 1px solid rgba(200,160,103,.35); }
}
/* About numbers strip: cream, so it separates from the plum sessions section */
.about-v2 .ab-numbers { background: var(--cream); color: var(--ink); border-top: 1px solid var(--line); padding-bottom: clamp(56px, 8vw, 100px); }
.about-v2 .ab-num-grid div { border-left-color: rgba(200,160,103,.35); }
.about-v2 .ab-num-grid strong { color: #3a2a5a; }
.about-v2 .ab-num-grid span:not([data-count]) { color: var(--ink-soft); }
/* Swap: stats strip purple again, "How my sessions work" on beige */
.about-v2 .ab-numbers { background: #1d1430; color: #fff; border-top: 0; padding-bottom: clamp(48px, 7vw, 88px); }
.about-v2 .ab-num-grid div { border-left-color: rgba(234,216,187,.3); }
.about-v2 .ab-num-grid strong { color: var(--gold); }
.about-v2 .ab-num-grid span:not([data-count]) { color: rgba(255,255,255,.75); }
.about-v2 .ab-steps { background: var(--sand); color: var(--ink); }
.about-v2 .ab-steps .eyebrow { color: var(--ink-soft); }
.about-v2 .ab-steps h2 { color: var(--ink); }
.about-v2 .ab-steps h2 em { color: var(--violet); }
.about-v2 .ab-steps-cta p { color: var(--ink-soft); }
.about-v2 .ab-steps .btn-light { background: #1d1430; color: var(--cream); }
.about-v2 .ab-steps .btn-light:hover { background: #000; }
.about-v2 .ab-step-list, .about-v2 .ab-step-list li + li { border-color: rgba(200,160,103,.35); }
.about-v2 .ab-step-num { color: #3a2a5a; }
.about-v2 .ab-step-list h3 { color: var(--ink); }
.about-v2 .ab-step-list p { color: var(--ink-soft); }
@media (max-width: 860px) { .about-v2 .ab-step-list li, .about-v2 .ab-step-list li + li { border-bottom-color: rgba(200,160,103,.35); } }

/* About: "A clear path to healing" as a drawn path */
.about-v2 .ab-steps { position: relative; overflow: hidden; }
.about-v2 .ab-steps::before { content: ""; position: absolute; width: 760px; height: 760px; right: -260px; top: -320px; border-radius: 50%; background: radial-gradient(circle, rgba(200,160,103,.22), transparent 62%); pointer-events: none; }
.about-v2 .ab-path { margin-top: clamp(40px, 6vw, 72px); opacity: 1 !important; transform: none !important; }
.about-v2 .ab-path-line { position: relative; height: clamp(120px, 14vw, 200px); }
.about-v2 .ab-path-line svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.about-v2 .ab-path-line path { fill: none; stroke: #c8a067; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s cubic-bezier(.45,0,.2,1) .2s; }
.about-v2 .ab-path.in .ab-path-line path { stroke-dashoffset: 0; }
.about-v2 .ab-node { position: absolute; transform: translate(-50%, -50%) scale(.4); opacity: 0; transition: transform .6s cubic-bezier(.2,1.4,.4,1), opacity .4s ease; }
.about-v2 .ab-node.n1 { left: 16.667%; top: 65%; transition-delay: .7s; }
.about-v2 .ab-node.n2 { left: 50%; top: 30%; transition-delay: 1.3s; }
.about-v2 .ab-node.n3 { left: 83.333%; top: 65%; transition-delay: 1.9s; }
.about-v2 .ab-path.in .ab-node { transform: translate(-50%, -50%) scale(1); opacity: 1; }
.about-v2 .ab-node b, .about-v2 .ab-node-m b { display: grid; place-items: center; width: clamp(64px, 6vw, 84px); height: clamp(64px, 6vw, 84px); border-radius: 50%; background: #1d1430; color: #c8a067; font: 400 clamp(1.4rem, 2vw, 1.9rem) var(--serif); box-shadow: 0 0 0 8px var(--sand), 0 0 0 9px rgba(200,160,103,.55); font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.about-v2 .ab-stops { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 40px); margin-top: clamp(24px, 3vw, 40px); }
.about-v2 .ab-stop { text-align: center; padding: 0 clamp(4px, 1.5vw, 24px); opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .8s cubic-bezier(.16,1,.3,1); }
.about-v2 .ab-stop.s1 { transition-delay: .9s; } .about-v2 .ab-stop.s2 { transition-delay: 1.5s; } .about-v2 .ab-stop.s3 { transition-delay: 2.1s; }
.about-v2 .ab-path.in .ab-stop { opacity: 1; transform: none; }
.about-v2 .ab-stop h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem, 2vw, 1.8rem); line-height: 1.15; color: var(--ink); margin: 0 0 10px; }
.about-v2 .ab-stop p { color: var(--ink-soft); line-height: 1.6; margin: 0 auto; max-width: 26em; }
.about-v2 .ab-node-m { display: none; }
/* Phones: vertical path down the left */
@media (max-width: 860px) {
  .about-v2 .ab-path-line { display: none; }
  .about-v2 .ab-stops { position: relative; grid-template-columns: 1fr; gap: 34px; padding-left: 0; }
  .about-v2 .ab-stops::before { content: ""; position: absolute; left: 31px; top: 20px; bottom: 20px; width: 2px; background: #c8a067; transform-origin: top; transform: scaleY(0); transition: transform 1.8s cubic-bezier(.45,0,.2,1) .2s; }
  .about-v2 .ab-path.in .ab-stops::before { transform: scaleY(1); }
  .about-v2 .ab-stop { position: relative; text-align: left; padding: 0 0 0 92px; min-height: 64px; }
  .about-v2 .ab-node-m { display: block; position: absolute; left: 0; top: 0; }
  .about-v2 .ab-node-m b { width: 64px; height: 64px; font-size: 1.4rem; }
  .about-v2 .ab-stop p { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .about-v2 .ab-path-line path { stroke-dashoffset: 0; transition: none; }
  .about-v2 .ab-node, .about-v2 .ab-stop { opacity: 1; transform: translate(-50%, -50%); transition: none; }
  .about-v2 .ab-stop { transform: none; }
}
.about-v2 .ab-portrait img { object-position: 50% 15%; }

/* About hero: stage photo baked into the hero (no frame), fading into the plum */
.about-v2 .ab-hero { position: relative; min-height: min(86vh, 820px); display: flex; align-items: center; background: #1d1430; }
.about-v2 .ab-hero-grid { position: relative; z-index: 2; grid-template-columns: minmax(0, 1fr); }
.about-v2 .ab-hero-text { max-width: min(46%, 620px); }
.about-v2 .ab-portrait { position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; width: 58%; margin: 0; justify-self: auto; }
.about-v2 .ab-portrait::before { display: none; }
.about-v2 .ab-portrait img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 18%; border-radius: 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 34%); mask-image: linear-gradient(to right, transparent 0%, #000 34%); }
.about-v2 .ab-portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(29,20,48,.55) 0%, rgba(29,20,48,0) 30%); pointer-events: none; }
@media (max-width: 860px) {
  .about-v2 .ab-hero { flex-direction: column; align-items: stretch; min-height: 0; padding-top: 0; }
  .about-v2 .ab-portrait { position: relative; width: 100%; height: 62vh; max-height: 520px; order: -1; }
  .about-v2 .ab-portrait img { object-position: 50% 12%; -webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 100%); mask-image: linear-gradient(to bottom, #000 62%, transparent 100%); }
  .about-v2 .ab-portrait::after { display: none; }
  .about-v2 .ab-hero-grid { margin-top: -40px; }
  .about-v2 .ab-hero-text { max-width: none; }
}
@media (min-width: 861px) {
  .about-v2 .ab-hero { padding: 0; }
  .about-v2 .ab-hero-grid { position: static; padding: clamp(56px, 8vw, 110px) 0; }
  .about-v2 .ab-hero-text { position: relative; z-index: 2; }
  .about-v2 .ab-portrait { width: 60%; max-width: none; }
}
@media (min-width: 861px) {
  .about-v2 .ab-portrait img { -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 18%, #000 48%); mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.35) 18%, #000 48%); }
}
.about-v2 .ab-steps, .about-v2 .ab-hero { overflow: clip; }

/* Ministry hero: worship photo blended into the plum (like the About hero) */
.v2 .ministry-hero { background: #1d1430; }
.v2 .ministry-hero .hero-bg { object-position: 70% 40%; }
.v2 .ministry-hero .hero-shade { background:
  linear-gradient(90deg, #1d1430 0%, rgba(29,20,48,.92) 22%, rgba(29,20,48,.55) 42%, rgba(29,20,48,.08) 64%, rgba(29,20,48,0) 78%),
  linear-gradient(0deg, rgba(29,20,48,.75) 0%, rgba(29,20,48,0) 38%); }
.v2 .ministry-hero .hero-accent { color: var(--gold); }
@media (max-width: 760px) {
  .v2 .ministry-hero .hero-bg-mobile { object-position: 66% 30%; }
  .v2 .ministry-hero .hero-shade { background: linear-gradient(0deg, #1d1430 0%, rgba(29,20,48,.88) 36%, rgba(29,20,48,.25) 62%, rgba(29,20,48,.1) 100%); }
}

/* ---- Contact: form centred against the left column, no overlap ---- */
@media (min-width: 901px) {
  .contact-v2 .ct-hero { margin-bottom: 0; padding-bottom: clamp(56px, 7vw, 96px); }
  .contact-v2 .ct-hero-grid { align-items: center; }
  .contact-v2 .ct-form { margin-bottom: 0; }
  .contact-v2 .ct-rows { padding-bottom: 0; }
  .contact-v2 .ct-community { padding-top: clamp(56px, 7vw, 96px); }
}

/* ---- Contact: privacy redesign ---- */
.contact-v2 .ct-privacy { position: relative; overflow: clip; }
.contact-v2 .ct-privacy::before { content: ""; position: absolute; width: 900px; height: 900px; left: -380px; top: -420px; border-radius: 50%; background: radial-gradient(circle, rgba(200,160,103,.16), transparent 62%); pointer-events: none; }
.contact-v2 .ct-priv-top { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.contact-v2 .ct-priv-lead h2 { font-size: clamp(2.4rem, 4.6vw, 4.4rem); line-height: 1.02; }
.contact-v2 .ct-seal { margin-top: clamp(28px, 4vw, 48px); width: clamp(110px, 12vw, 160px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; color: var(--gold); border: 1px solid rgba(200,160,103,.45); box-shadow: 0 0 0 14px rgba(200,160,103,.06), 0 0 0 28px rgba(200,160,103,.03); }
.contact-v2 .ct-seal svg { width: 44%; height: 44%; }
.contact-v2 .ct-promises { list-style: none; margin: 0; padding: 0; }
.contact-v2 .ct-promises li { display: grid; grid-template-columns: auto 1fr; gap: clamp(18px, 2.5vw, 32px); padding: clamp(24px, 3vw, 36px) 0; border-bottom: 1px solid rgba(200,160,103,.3); }
.contact-v2 .ct-promises li:first-child { border-top: 1px solid rgba(200,160,103,.3); }
.contact-v2 .ct-pn { font-family: var(--serif); font-size: clamp(3rem, 5vw, 4.6rem); line-height: .9; color: var(--gold); font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.contact-v2 .ct-promises h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.4rem, 2.1vw, 1.9rem); color: #fff; margin: 0 0 8px; }
.contact-v2 .ct-promises p { color: rgba(255,255,255,.72); line-height: 1.65; margin: 0; max-width: 34em; }
/* Crisis card */
.contact-v2 .ct-crisis { position: relative; margin-top: clamp(48px, 6vw, 80px); display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(24px, 4vw, 56px); align-items: center; padding: clamp(28px, 4vw, 48px); border-radius: 6px; background: linear-gradient(120deg, rgba(200,160,103,.14), rgba(200,160,103,.04)); border: 1px solid rgba(200,160,103,.4); }
.contact-v2 .ct-crisis-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: rgba(200,160,103,.18); color: #ead8bb; margin-bottom: 14px; }
.contact-v2 .ct-crisis-ic svg { width: 24px; height: 24px; }
.contact-v2 .ct-crisis h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(1.8rem, 2.8vw, 2.6rem); color: #ead8bb; margin: 0 0 10px; }
.contact-v2 .ct-crisis p { color: rgba(255,255,255,.78); margin: 0; line-height: 1.6; }
.contact-v2 .ct-numbers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.contact-v2 .ct-numbers li { padding: 16px 18px; border-radius: 4px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); display: grid; gap: 2px; align-content: start; }
.contact-v2 .ct-numbers span { font: 500 11px var(--sans); letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.contact-v2 .ct-numbers b { font-family: var(--serif); font-weight: 400; font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.05; color: #fff; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.contact-v2 .ct-numbers b.ct-local { font-size: 1.15rem; line-height: 1.3; margin-top: 6px; }
.contact-v2 .ct-numbers small { color: var(--gold); font-size: .85rem; }
@media (max-width: 900px) {
  .contact-v2 .ct-priv-top, .contact-v2 .ct-crisis { grid-template-columns: 1fr; }
  .contact-v2 .ct-seal { display: none; }
}

/* ---- Ministry: Visit us on purple ---- */
.v2 #visit { background: #1d1430; color: #fff; }
.v2 #visit .map-wrap { background: none; border: 0; box-shadow: none; }
.v2 #visit .eyebrow { color: rgba(255,255,255,.72); }
.v2 #visit h2 { color: #fff; }
.v2 #visit h2 em { color: var(--gold); }
.v2 #visit .map-address strong { color: #fff; }
.v2 #visit .map-address span, .v2 #visit .check-list li { color: rgba(255,255,255,.78); }
.v2 #visit .map-address svg, .v2 #visit .check-list li::before { color: var(--gold); }
.v2 #visit .btn-primary { background: var(--gold); border-color: var(--gold); color: #1d1430; }
.v2 #visit .btn-ghost { color: #fff; border-color: rgba(255,255,255,.7); background: transparent; }
.v2 #visit .btn-ghost:hover { background: #fff; color: #1d1430; }
.v2 #visit .map-frame { border-radius: 6px; overflow: hidden; box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); }

/* ---- Ministry: Speaking on beige ---- */
.v2.hero-page .cta-band { background: var(--sand) !important; color: var(--ink); }
.v2.hero-page .cta-band::before, .v2.hero-page .cta-band::after { display: none; }
.v2.hero-page .cta-band .eyebrow { color: var(--ink-soft); }
.v2.hero-page .cta-band h2 { color: var(--ink); }
.v2.hero-page .cta-band h2 em { color: var(--violet); }
.v2.hero-page .cta-band .lead { color: var(--ink-soft); }
.v2.hero-page .cta-band .btn-light { background: #1d1430; color: var(--cream); }
/* Strict palette: plum #1D1430/#3A2A5A, gold #C8A067, soft gold #EAD8BB, cream #F7F2E3 */
:root { --sand: #ead8bb; --violet: #3a2a5a; --lavender: #ead8bb; --lavender-2: #f7f2e3; }
.v2 .t-stars, .v2 .pk-badge { color: #1d1430; }
.v2 .proto-note { color: #3a2a5a; background: #ead8bb; border-color: #c8a067; }
.v2 .icon-badge.gold { background: #ead8bb; color: #3a2a5a; }

/* Ministry hero: text block centred vertically on the left, buttons under the text (desktop) */
@media (min-width: 761px) {
  .v2 .ministry-hero { align-items: center; }
  .v2 .ministry-hero .hero-content { padding-top: clamp(40px, 6vh, 80px); padding-bottom: clamp(40px, 6vh, 80px); }
  .v2 .ministry-hero .hero-row { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 30px; }
}
/* Visit us: address on purple (no light box) */
.v2 #visit .map-address { background: rgba(247,242,227,.06); border: 1px solid rgba(200,160,103,.4); }
.v2 #visit .map-address svg { color: #c8a067; }

/* ---- Ministry: Visit us (redesign) ---- */
.v2 .vs { background: #1d1430; color: #f7f2e3; padding: clamp(64px, 9vw, 120px) 0; position: relative; overflow: clip; }
.v2 .vs::before { content: ""; position: absolute; width: 800px; height: 800px; left: -340px; bottom: -420px; border-radius: 50%; background: radial-gradient(circle, rgba(200,160,103,.14), transparent 62%); pointer-events: none; }
.v2 .vs-wrap { position: relative; width: min(92%, 1240px); margin: 0 auto; display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(32px, 6vw, 96px); align-items: stretch; }
.v2 .vs .eyebrow { color: rgba(247,242,227,.72); }
.v2 .vs h2 { color: #f7f2e3; font-size: clamp(2.4rem, 4.6vw, 4.4rem); line-height: 1.02; margin: 0 0 clamp(28px, 4vw, 44px); }
.v2 .vs h2 em { color: #c8a067; }
.v2 .vs-rows { list-style: none; margin: 0 0 14px; padding: 0; border-top: 1px solid rgba(200,160,103,.35); }
.v2 .vs-rows li { display: grid; grid-template-columns: 110px 1fr; gap: 16px; align-items: baseline; padding: clamp(14px, 1.8vw, 20px) 0; border-bottom: 1px solid rgba(200,160,103,.35); }
.v2 .vs-label { font: 500 11.5px var(--sans); letter-spacing: .05em; text-transform: uppercase; color: #c8a067; }
.v2 .vs-value { font-family: var(--serif); font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.3; color: #f7f2e3; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.v2 .vs-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.v2 .vs-links { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 22px; }
.v2 .vs-links a { color: #f7f2e3; font: 500 14px var(--sans); text-decoration: underline; text-underline-offset: 5px; text-decoration-color: rgba(200,160,103,.6); cursor: pointer; }
.v2 .vs-links a:hover { color: #c8a067; }
/* Map: dark, tinted to the palette, with a pin card */
.v2 .vs-map { position: relative; min-height: 460px; border-radius: 6px; overflow: hidden; border: 1px solid rgba(200,160,103,.35); background: #3a2a5a; }
.v2 .vs-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: invert(.9) hue-rotate(205deg) saturate(.55) brightness(.95) contrast(.95); }
.v2 .vs-pin { position: absolute; left: 20px; bottom: 20px; display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 6px; background: #f7f2e3; color: #1d1430; box-shadow: 0 20px 40px -20px rgba(0,0,0,.6); }
.v2 .vs-pin strong { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.15rem; }
.v2 .vs-pin span:not(.vs-pin-dot) { font-size: .85rem; color: #3a2a5a; }
.v2 .vs-pin-dot { width: 14px; height: 14px; border-radius: 50%; background: #c8a067; box-shadow: 0 0 0 6px rgba(200,160,103,.3); flex: none; }
@media (max-width: 900px) {
  .v2 .vs-wrap { grid-template-columns: 1fr; }
  .v2 .vs-map { min-height: 340px; }
  .v2 .vs-rows li { grid-template-columns: 1fr; gap: 4px; }
}

/* Footer: emergency strip */
.em-strip { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(16px, 2.5vw, 32px); margin-top: clamp(32px, 6vh, 56px); padding: clamp(18px, 2.4vw, 26px) clamp(18px, 2.6vw, 30px); border: 1px solid rgba(200,160,103,.45); border-radius: 6px; background: rgba(200,160,103,.07); }
.em-strip-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #c8a067; color: #1d1430; }
.em-strip-ic svg { width: 22px; height: 22px; }
.em-strip-text strong { display: block; font-family: "Newsreader", Georgia, serif; font-weight: 400; font-size: clamp(1.25rem, 1.8vw, 1.55rem); color: #f7f2e3; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.em-strip-text span { display: block; margin-top: 2px; font-size: .92rem; color: rgba(247,242,227,.7); }
.em-strip-nums { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.em-strip-nums li { display: grid; justify-items: center; gap: 2px; min-width: 88px; padding: 10px 16px; border-radius: 4px; background: rgba(247,242,227,.06); border: 1px solid rgba(247,242,227,.12); }
.em-strip-nums b { font-family: "Newsreader", Georgia, serif; font-weight: 400; font-size: 1.5rem; line-height: 1.1; color: #c8a067; white-space: nowrap; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.em-strip-nums span { font: 500 10.5px "Inter", sans-serif; letter-spacing: .06em; text-transform: uppercase; color: rgba(247,242,227,.6); }
@media (max-width: 860px) { .em-strip { grid-template-columns: auto 1fr; } .em-strip-nums { grid-column: 1 / -1; } .em-strip-nums li { flex: 1; min-width: 0; } }
/* Book page: smaller gap between the intro line and the pricing cards */
.v2 .page-hero:has(+ #pricing) { padding-bottom: 12px; }
.v2 .page-hero:has(+ #pricing) .lead { margin-bottom: 0; }
.v2 #pricing { padding-top: 18px !important; }
.v2 .site-footer .em-strip-nums { display: flex !important; flex-direction: row; gap: 10px; margin: 0; padding: 0; }
.v2 .site-footer .em-strip-nums li { margin: 0; }
/* Ministry hero: text block further left on wide screens */
@media (min-width: 761px) { .v2 .ministry-hero .hero-content { width: min(92%, 1560px); max-width: none; } }
/* Privacy lock: big, faint, behind the heading, with pulsing rings */
.contact-v2 .ct-priv-lead { position: relative; z-index: 0; }
.contact-v2 .ct-priv-lead > :not(.ct-seal) { position: relative; z-index: 1; }
.contact-v2 .ct-seal { position: absolute; z-index: 0; left: 0; top: 50%; width: clamp(300px, 30vw, 460px); margin: 0; transform: translate(10%, -42%); border: 1px solid rgba(200,160,103,.2); box-shadow: none; color: rgba(200,160,103,.14); pointer-events: none; }
.contact-v2 .ct-seal svg { width: 46%; height: 46%; animation: sealBreathe 4s ease-in-out infinite; }
.contact-v2 .ct-seal::before, .contact-v2 .ct-seal::after { content: ""; position: absolute; inset: -1px; border-radius: 50%; border: 1px solid rgba(200,160,103,.35); animation: sealPulse 4s ease-out infinite; }
.contact-v2 .ct-seal::after { animation-delay: 2s; }
@keyframes sealPulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(1.55); opacity: 0; } }
@keyframes sealBreathe { 0%, 100% { opacity: .75; transform: scale(1); } 50% { opacity: 1; transform: scale(1.04); } }
@media (max-width: 900px) { .contact-v2 .ct-seal { display: grid; width: 280px; left: auto; right: -60px; transform: translateY(-50%); } }
@media (prefers-reduced-motion: reduce) { .contact-v2 .ct-seal svg, .contact-v2 .ct-seal::before, .contact-v2 .ct-seal::after { animation: none; } }

/* My story: newspaper proportions */
.about-v2 .ab-quote .ab-wrap, .about-v2 .ab-story-grid { width: min(92%, 1080px); }
.about-v2 .ab-quote { padding: clamp(56px, 7vw, 96px) 0 clamp(28px, 3vw, 40px); }
.about-v2 .ab-greet { font-size: clamp(1.6rem, 2.2vw, 2rem); margin: 6px 0 6px; }
.about-v2 .ab-pull { font-size: clamp(1.7rem, 2.7vw, 2.5rem); line-height: 1.22; max-width: 24em; }
.about-v2 .ab-story-grid { grid-template-columns: minmax(0, 320px) minmax(0, 620px); justify-content: space-between; gap: clamp(32px, 6vw, 80px); padding-top: clamp(28px, 3.4vw, 44px); }
.about-v2 .ab-sticky { top: 110px; }
.about-v2 .ab-sticky img { aspect-ratio: 4 / 5; object-position: 50% 18%; border-radius: 4px; }
.about-v2 .ab-text { max-width: none; }
.about-v2 .ab-text p { font-size: clamp(1.05rem, 1.2vw, 1.15rem); line-height: 1.7; margin-bottom: 1em; }
.about-v2 .ab-text p:first-child::first-letter { font-size: 3.35em; line-height: .78; padding: .1em .1em 0 0; margin-top: .02em; color: #3a2a5a; }
@media (max-width: 860px) { .about-v2 .ab-story-grid { grid-template-columns: 1fr; } .about-v2 .ab-sticky { width: min(80%, 320px); } }

/* Footer link columns: three across on phones */
@media (max-width: 760px) {
  .foot-cols, .v2 .v2f-cols { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; }
  .foot-cols a, .foot-muted, .v2 .v2f-cols a, .v2 .v2f-muted { font-size: .86rem !important; }
  .foot-cols div, .v2 .v2f-cols div { gap: 9px !important; }
}

/* About hero photo: edge to edge on phones */
@media (max-width: 860px) {
  .about-v2 .ab-portrait { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
}

/* Numbers: country list (desktop reads "Countries: Nigeria, USA, …") */
.about-v2 .ab-cty { display: inline; }
.about-v2 .ab-cty::before { content: ": "; }
.about-v2 .ab-cty i { font-style: normal; }
.about-v2 .ab-cty i + i::before { content: ", "; }

/* Numbers on phones: bento cards instead of a plain stack */
@media (max-width: 760px) {
  .about-v2 .ab-numbers { padding: 44px 0 48px; }
  .about-v2 .ab-num-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .about-v2 .ab-num-grid > div { position: relative; overflow: hidden; gap: 12px; align-content: space-between; min-height: 150px; padding: 22px 18px 20px; border: 1px solid rgba(200,160,103,.24); border-radius: 18px; background: linear-gradient(155deg, #3a2a5a 0%, #2a1f45 100%); }
  .about-v2 .ab-num-grid > div::after { content: ""; position: absolute; left: 18px; top: 0; width: 34px; height: 2px; background: var(--gold); }
  .about-v2 .ab-num-grid strong { font-size: 2.9rem; }
  /* 1,000+ leads, full width, numbers big */
  .about-v2 .ab-num-grid > div:nth-child(3) { order: -1; grid-column: 1 / -1; min-height: 0; padding: 26px 22px 24px; background: radial-gradient(ellipse 90% 120% at 100% 0%, rgba(200,160,103,.22) 0%, rgba(200,160,103,0) 60%), linear-gradient(155deg, #3a2a5a 0%, #2a1f45 100%); }
  .about-v2 .ab-num-grid > div:nth-child(3) strong { font-size: 4.4rem; }
  /* Countries as small pills */
  .about-v2 .ab-num-grid > div:nth-child(2) { min-height: 0; }
  .about-v2 .ab-cty { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
  .about-v2 .ab-cty::before { display: none; }
  .about-v2 .ab-cty i + i::before { content: none; }
  .about-v2 .ab-cty i { font: 500 10px var(--sans); letter-spacing: .03em; color: #EAD8BB; padding: 4px 8px; border: 1px solid rgba(234,216,187,.28); border-radius: 99px; text-transform: none; }
}

/* Story photo: full content width on phones */
@media (max-width: 860px) {
  .about-v2 .ab-sticky { width: 100% !important; max-width: none; }
  .about-v2 .ab-sticky img { aspect-ratio: 4 / 4.4; object-position: 50% 20%; }
}

/* "Dear Friend," bigger */
.about-v2 .ab-greet { font-size: clamp(2.6rem, 4vw, 3.6rem); line-height: 1.1; margin: 10px 0 12px; }

/* Custom session card: soft gold so it stands apart from the cream section */
.v2 .price-card.price-custom { background: #EAD8BB !important; border-color: rgba(200,160,103,.55) !important; }

/* Footer columns centred on phones */
@media (max-width: 760px) {
  .foot-cols > div, .v2 .v2f-cols > div { text-align: center; justify-items: center; align-items: center; }
}

/* Mobile menu (Concept 2): numbered rows, gold accents, quick contact */
.mm2 { position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column; overflow-y: auto; overscroll-behavior: contain; padding: 18px 22px calc(26px + env(safe-area-inset-bottom)); color: #F7F2E3;
  background: radial-gradient(ellipse 80% 45% at 100% 0%, rgba(58,42,90,.95) 0%, rgba(58,42,90,0) 70%), radial-gradient(ellipse 70% 40% at 0% 100%, rgba(200,160,103,.14) 0%, rgba(200,160,103,0) 70%), #1D1430;
  animation: mm2-fade .35s ease both; }
.mm2[hidden] { display: none !important; }
.mm2-top { display: flex; align-items: center; justify-content: space-between; min-height: 52px; }
.mm2-logo img { height: 44px; width: auto; display: block; }
.mm2-close { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(200,160,103,.6); background: none; color: #C8A067; display: grid; place-items: center; padding: 0; cursor: pointer; }
.mm2-close svg { width: 18px; height: 18px; }
.mm2-kicker { margin: 34px 0 10px; font: 500 11px "Inter", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: rgba(234,216,187,.6); }
.mm2-nav { display: grid; border-top: 1px solid rgba(234,216,187,.14); position: relative; z-index: 1; }
.mm2-nav a { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; padding: 15px 2px; border-bottom: 1px solid rgba(234,216,187,.14); color: #F7F2E3; text-decoration: none; animation: mm2-row .55s cubic-bezier(.2,.7,.2,1) both; }
.mm2-nav a:nth-child(1) { animation-delay: .06s; } .mm2-nav a:nth-child(2) { animation-delay: .12s; } .mm2-nav a:nth-child(3) { animation-delay: .18s; } .mm2-nav a:nth-child(4) { animation-delay: .24s; } .mm2-nav a:nth-child(5) { animation-delay: .30s; }
.mm2-nav i { font: 500 11px "Inter", sans-serif; font-style: normal; letter-spacing: .08em; color: #C8A067; align-self: start; padding-top: .7em; }
.mm2-nav span { font: 400 2.15rem/1.05 "Newsreader", Georgia, serif; letter-spacing: -.01em; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.mm2-nav svg { width: 20px; height: 20px; color: rgba(200,160,103,.75); transition: transform .25s ease; }
.mm2-nav a:active svg, .mm2-nav a:hover svg { transform: translateX(4px); }
.mm2-nav a.on span { color: #C8A067; font-style: italic; }
.mm2-nav a.on svg { color: #C8A067; }
.mm2-foot { margin-top: auto; padding-top: 30px; display: grid; gap: 16px; position: relative; z-index: 1; animation: mm2-row .55s cubic-bezier(.2,.7,.2,1) .36s both; }
.mm2-book { display: flex; align-items: center; justify-content: space-between; padding: 17px 22px; border-radius: 999px; background: #C8A067; color: #1D1430; font: 500 15px "Inter", sans-serif; text-decoration: none; }
.mm2-book svg { width: 20px; height: 20px; }
.mm2-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mm2-quick a { display: grid; justify-items: center; gap: 6px; padding: 12px 4px; border: 1px solid rgba(234,216,187,.18); border-radius: 14px; color: #EAD8BB; font: 500 11.5px "Inter", sans-serif; letter-spacing: .03em; text-decoration: none; background: rgba(58,42,90,.35); }
.mm2-quick svg { width: 19px; height: 19px; color: #C8A067; }
.mm2-note { margin: 2px 0 0; text-align: center; font: 500 10.5px "Inter", sans-serif; letter-spacing: .12em; text-transform: uppercase; color: rgba(234,216,187,.5); }
.mm2-word { position: absolute; right: -6px; top: 92px; z-index: 0; pointer-events: none; font: 400 9.5rem/1 "Newsreader", Georgia, serif; font-optical-sizing: none; font-variation-settings: "opsz" 16; color: transparent; -webkit-text-stroke: 1px rgba(200,160,103,.13); writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
@keyframes mm2-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mm2-row { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mm2, .mm2-nav a, .mm2-foot { animation: none !important; } }
html.mm2-lock, html.mm2-lock body { overflow: hidden !important; }

/* ===== Invite page redesign ===== */
.inv { --pl: #1D1430; --pl2: #3A2A5A; --gd: #C8A067; --bg: #EAD8BB; --cr: #F7F2E3; }
.inv-wrap { width: min(92%, 1240px); margin: 0 auto; }
.inv h1, .inv h2, .inv h3 { font-family: var(--serif); font-weight: 400; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.inv h2 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1.05; margin: 14px 0 0; color: var(--pl); }
.inv h2 em { color: var(--pl2); }
.inv-head { margin-bottom: clamp(32px, 5vw, 56px); }
.inv-head.center { text-align: center; }
.inv-lead { font-size: 1.05rem; line-height: 1.65; max-width: 34em; }
/* Hero */
.inv-hero { position: relative; overflow: clip; color: var(--cr); padding: clamp(64px, 9vw, 130px) 0 clamp(64px, 8vw, 110px);
  background: radial-gradient(ellipse 60% 70% at 80% 40%, rgba(58,42,90,.95) 0%, rgba(58,42,90,0) 70%), radial-gradient(ellipse 50% 50% at 0% 100%, rgba(200,160,103,.12) 0%, rgba(200,160,103,0) 70%), var(--pl); }
.inv-route { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.inv-hero-grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(40px, 6vw, 96px); align-items: center; }
.inv-hero .eyebrow { color: rgba(234,216,187,.75); }
.inv-hero h1 { font-size: clamp(3rem, 7vw, 6.2rem); line-height: 1; margin: 18px 0 22px; color: #fff; }
.inv-hero h1 em { color: var(--gd); }
.inv-hero .inv-lead { color: rgba(247,242,227,.78); }
.inv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 34px; }
.inv-link { color: var(--cr); font: 500 14px var(--sans); text-decoration: none; border-bottom: 1px solid rgba(247,242,227,.5); padding-bottom: 3px; }
/* Ticket */
.inv-ticket { position: relative; background: var(--cr); color: var(--pl); border-radius: 22px; padding: 26px 28px 24px; box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); transform: rotate(-2deg); max-width: 440px; justify-self: end; width: 100%; }
.tk-caps { font: 500 10.5px var(--sans); letter-spacing: .14em; text-transform: uppercase; color: rgba(29,20,48,.55); }
.tk-gold { color: #a07d45; }
.tk-head { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid rgba(29,20,48,.1); }
.tk-route { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; padding: 22px 0 20px; }
.tk-route div { display: grid; gap: 2px; }
.tk-route strong { font: 400 clamp(2.6rem, 4.5vw, 3.4rem)/1 var(--serif); font-variation-settings: "opsz" 16; color: var(--pl); }
.tk-route small { font: 400 13px var(--sans); color: rgba(29,20,48,.65); }
.tk-to { text-align: right; justify-items: end; }
.tk-to strong { color: #a07d45; font-style: italic; }
.tk-plane { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: var(--pl); color: var(--gd); position: relative; }
.tk-plane svg { width: 22px; height: 22px; }
.tk-plane::before, .tk-plane::after { content: ""; position: absolute; top: 50%; width: 26px; border-top: 1px dashed rgba(29,20,48,.3); }
.tk-plane::before { right: 100%; margin-right: 6px; } .tk-plane::after { left: 100%; margin-left: 6px; }
.tk-cut { position: relative; height: 0; border-top: 2px dashed rgba(29,20,48,.16); margin: 0 -28px; }
.tk-cut::before, .tk-cut::after { content: ""; position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--pl); }
.tk-cut::before { left: -12px; } .tk-cut::after { right: -12px; }
.tk-meta { margin: 0; padding-top: 18px; display: grid; gap: 12px; }
.tk-meta div { display: grid; grid-template-columns: 92px 1fr; gap: 12px; align-items: baseline; }
.tk-meta dd { margin: 0; font: 400 14.5px/1.45 var(--sans); color: var(--pl); }
/* Ways */
.inv-ways { background: var(--cr); padding: clamp(72px, 9vw, 130px) 0; }
.inv-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.inv-card { position: relative; background: #fffdf8; border: 1px solid rgba(29,20,48,.08); border-radius: 22px; padding: clamp(28px, 3vw, 40px); overflow: hidden; transition: transform .35s ease, box-shadow .35s ease; }
.inv-card::before { content: ""; position: absolute; left: clamp(28px, 3vw, 40px); top: 0; width: 44px; height: 2px; background: var(--gd); }
.inv-card:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -30px rgba(29,20,48,.4); }
.ic-num { font: 400 3.4rem/1 var(--serif); font-variation-settings: "opsz" 16; color: transparent; -webkit-text-stroke: 1px var(--gd); display: block; margin-bottom: 18px; }
.inv-card h3 { font-size: clamp(1.6rem, 2.4vw, 2rem); line-height: 1.1; margin: 0 0 10px; color: var(--pl); }
.inv-card p { margin: 0 0 20px; color: rgba(29,20,48,.72); line-height: 1.6; }
.ic-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.ic-tags li { font: 500 12px var(--sans); padding: 7px 12px; border-radius: 99px; background: rgba(234,216,187,.55); color: var(--pl); }
.ic-feature { background: linear-gradient(155deg, var(--pl2) 0%, var(--pl) 100%); border-color: transparent; color: var(--cr); }
.ic-feature h3 { color: #fff; } .ic-feature p { color: rgba(247,242,227,.75); }
.ic-feature .ic-num { -webkit-text-stroke-color: var(--gd); }
.ic-feature .ic-tags li { background: rgba(200,160,103,.16); color: var(--bg); border: 1px solid rgba(200,160,103,.3); }
.inv-dots { display: none; }
/* How it works */
.inv-how { background: var(--bg); padding: clamp(72px, 9vw, 130px) 0; }
.inv-path { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 4vw, 56px); position: relative; }
.inv-path::before { content: ""; position: absolute; top: 31px; left: 8%; right: 8%; border-top: 2px dotted rgba(58,42,90,.35); }
.inv-path li { position: relative; text-align: center; }
.ip-dot { position: relative; z-index: 1; display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 22px; border-radius: 50%; background: var(--cr); border: 1px solid var(--gd); font: 500 13px var(--sans); letter-spacing: .06em; color: var(--pl2); box-shadow: 0 0 0 8px var(--bg); }
.ip-end { background: var(--pl); color: var(--gd); border-color: var(--pl); }
.ip-end svg { width: 24px; height: 24px; }
.inv-path h3 { font-size: 1.6rem; margin: 0 0 10px; color: var(--pl); }
.inv-path p { margin: 0 auto; max-width: 22em; color: rgba(29,20,48,.72); line-height: 1.6; }
/* Request */
.inv-req { background: var(--pl); color: var(--cr); padding: clamp(72px, 9vw, 130px) 0; }
.inv-req-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.inv-req .eyebrow { color: rgba(234,216,187,.75); }
.inv-req h2 { color: #fff; } .inv-req h2 em { color: var(--gd); }
.inv-req .inv-lead { color: rgba(247,242,227,.75); margin: 18px 0 30px; }
.inv-notes { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid rgba(234,216,187,.14); }
.inv-notes li { display: grid; grid-template-columns: 44px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(234,216,187,.14); }
.inv-notes li > span { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: rgba(200,160,103,.14); color: var(--gd); }
.inv-notes svg { width: 20px; height: 20px; }
.inv-notes b { font: 400 1.25rem var(--serif); color: #fff; display: block; margin-bottom: 4px; }
.inv-notes p { margin: 0; color: rgba(247,242,227,.68); line-height: 1.55; font-size: .95rem; }
.v2 .inv-form { background: var(--cr); color: var(--pl); border: 0; border-radius: 24px; padding: clamp(24px, 3vw, 40px); box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); }
.v2 .inv-form label { color: var(--pl); }
.v2 .inv-form input, .v2 .inv-form select, .v2 .inv-form textarea { background: #fffdf8; border: 1px solid rgba(29,20,48,.14); border-radius: 12px; }
.v2 .inv-form input:focus, .v2 .inv-form select:focus, .v2 .inv-form textarea:focus { border-color: var(--gd); outline: none; box-shadow: 0 0 0 3px rgba(200,160,103,.25); }
.v2 .inv-submit { background: var(--pl); color: var(--cr); border: 0; cursor: pointer; width: 100%; justify-content: center; padding: 16px 22px; font-size: 15px; }
/* Tablet / phone */
@media (max-width: 900px) {
  .inv-hero-grid, .inv-req-grid { grid-template-columns: 1fr; }
  .inv-ticket { justify-self: start; transform: rotate(-1.5deg); max-width: 420px; }
}
@media (max-width: 760px) {
  .inv-hero { padding: 48px 0 64px; }
  .inv-hero h1 { font-size: 3.2rem; }
  .inv-actions { margin-top: 26px; }
  .inv-ticket { padding: 22px 20px 20px; border-radius: 18px; }
  .tk-cut { margin: 0 -20px; }
  .tk-meta div { grid-template-columns: 78px 1fr; }
  /* Ways: swipe cards */
  .inv-cards { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -4.35vw; padding: 4px 4.35vw 8px; scrollbar-width: none; overscroll-behavior-x: contain; }
  .inv-cards::-webkit-scrollbar { display: none; }
  .inv-card { flex: 0 0 84%; scroll-snap-align: center; }
  .inv-card:hover { transform: none; box-shadow: none; }
  .inv-dots { display: flex; justify-content: center; gap: 7px; margin-top: 18px; }
  .inv-dots i { width: 7px; height: 7px; border-radius: 99px; background: rgba(58,42,90,.22); transition: width .3s ease, background .3s ease; }
  .inv-dots i.on { width: 22px; background: var(--gd); }
  /* How: vertical path */
  .inv-head.center { text-align: left; }
  .inv-path { grid-template-columns: 1fr; gap: 30px; }
  .inv-path::before { top: 32px; bottom: 32px; left: 31px; right: auto; border-top: 0; border-left: 2px dotted rgba(58,42,90,.35); }
  .inv-path li { text-align: left; display: grid; grid-template-columns: 64px 1fr; column-gap: 18px; }
  .ip-dot { margin: 0; grid-row: span 2; }
  .inv-path h3 { margin: 6px 0 6px; align-self: end; }
  .inv-path p { margin: 0; }
}
/* Invite: gold accents in the plum sections */
.inv .inv-hero h1 em.accent, .inv .inv-req h2 em.accent { color: #C8A067 !important; }
.inv .inv-ways h2 em.accent, .inv .inv-how h2 em.accent { color: #3A2A5A !important; }
/* Contact (phones): form overlaps the hero edge, then clear space before the community card */
@media (max-width: 860px) {
  .contact-v2 .ct-hero { margin-bottom: 0 !important; padding-bottom: 0 !important; }
  .contact-v2 .ct-form { margin-bottom: -48px !important; }
  .contact-v2 .ct-community { padding-top: 84px !important; }
}

/* ===== Services page redesign ===== */
.sv { --pl: #1D1430; --pl2: #3A2A5A; --gd: #C8A067; --bg: #EAD8BB; --cr: #F7F2E3; }
.sv-wrap { width: min(92%, 1240px); margin: 0 auto; }
.sv h1, .sv h2, .sv h3 { font-family: var(--serif); font-weight: 400; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
/* Hero */
.sv-hero { background: radial-gradient(ellipse 60% 80% at 15% 30%, rgba(58,42,90,.9) 0%, rgba(58,42,90,0) 70%), var(--pl); color: var(--cr); padding: clamp(56px, 8vw, 110px) 0; overflow: clip; }
.sv-hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(36px, 6vw, 90px); align-items: center; }
.sv-hero .eyebrow { color: rgba(234,216,187,.75); }
.sv-hero h1 { font-size: clamp(2.8rem, 5.6vw, 5rem); line-height: 1.02; color: #fff; margin: 18px 0 22px; }
.sv .sv-hero h1 em.accent { color: var(--gd) !important; }
.sv-lead { font-size: 1.05rem; line-height: 1.65; color: rgba(247,242,227,.78); max-width: 32em; margin: 0; }
.sv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 32px; }
.sv-link { color: var(--cr); font: 500 14px var(--sans); text-decoration: none; border-bottom: 1px solid rgba(247,242,227,.5); padding-bottom: 3px; }
.sv-hero-photo { position: relative; margin: 0; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); }
.sv-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-hero-photo figcaption { position: absolute; left: 16px; right: 16px; bottom: 16px; display: grid; gap: 2px; padding: 16px 18px; border-radius: 14px; background: rgba(247,242,227,.94); color: var(--pl); }
.sv-hero-photo b { font: 400 1.5rem var(--serif); }
.sv-hero-photo span { font: 400 13px var(--sans); color: rgba(29,20,48,.7); }
/* Services list */
.sv-list { background: var(--cr); padding: clamp(64px, 9vw, 120px) 0; }
.sv-list-grid { display: grid; grid-template-columns: 260px 1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.sv-index { position: sticky; top: 110px; }
.sv-index nav { display: grid; margin-top: 18px; border-top: 1px solid rgba(29,20,48,.1); }
.sv-index a { display: grid; grid-template-columns: 30px 1fr; padding: 11px 0; border-bottom: 1px solid rgba(29,20,48,.1); color: var(--pl); text-decoration: none; font: 400 1.1rem var(--serif); transition: color .2s ease, padding .2s ease; }
.sv-index a i { font: 500 11px var(--sans); font-style: normal; color: var(--gd); padding-top: .35em; }
.sv-index a:hover { color: var(--pl2); padding-left: 4px; }
.sv-rows { display: grid; }
.sv-row { display: grid; grid-template-columns: 90px 1fr; gap: clamp(18px, 3vw, 40px); padding: clamp(32px, 4vw, 48px) 0; border-top: 1px solid rgba(29,20,48,.12); scroll-margin-top: 100px; }
.sv-row:first-child { border-top: 0; padding-top: 0; }
.sv-side { display: grid; justify-items: start; gap: 14px; align-content: start; }
.sv-num { font: 400 3.4rem/1 var(--serif); font-variation-settings: "opsz" 16; color: transparent; -webkit-text-stroke: 1px var(--gd); }
.sv-ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); color: var(--pl2); }
.sv-ic svg { width: 20px; height: 20px; }
.sv-body h3 { font-size: clamp(1.8rem, 3vw, 2.5rem); line-height: 1.08; margin: 0 0 12px; color: var(--pl); }
.sv-body > p { margin: 0 0 20px; max-width: 38em; color: rgba(29,20,48,.74); line-height: 1.65; font-size: 1.02rem; }
.sv-tags { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.sv-tags li { font: 500 12.5px var(--sans); padding: 7px 13px; border-radius: 99px; background: #fffdf8; border: 1px solid rgba(200,160,103,.35); color: var(--pl); }
.sv-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px 16px 22px; border-radius: 999px; background: #fffdf8; border: 1px solid rgba(29,20,48,.08); }
.sv-price { font: 400 13px var(--sans); color: rgba(29,20,48,.6); display: flex; align-items: baseline; gap: 6px; }
.sv-price strong { font: 400 1.5rem var(--serif); color: var(--pl); }
.sv-book { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; background: var(--pl); color: var(--cr); font: 500 13.5px var(--sans); text-decoration: none; }
.sv-book svg { width: 16px; height: 16px; transition: transform .2s ease; }
.sv-book:hover svg { transform: translateX(3px); }
/* Ways to meet */
.sv-meet { background: var(--bg); padding: clamp(64px, 9vw, 120px) 0; }
.sv-mhead { max-width: 640px; margin-bottom: clamp(32px, 5vw, 52px); }
.sv-mhead h2 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.05; color: var(--pl); margin: 14px 0 12px; }
.sv .sv-mhead h2 em.accent { color: var(--pl2) !important; }
.sv-mhead p { margin: 0; color: rgba(29,20,48,.72); line-height: 1.6; }
.sv-meet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.sv-mcard { display: flex; flex-direction: column; background: var(--cr); border-radius: 24px; padding: clamp(26px, 3vw, 40px); color: var(--pl); }
.sv-mcard-dark { background: linear-gradient(155deg, var(--pl2) 0%, var(--pl) 100%); color: var(--cr); }
.sv-mtop { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sv-mic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(200,160,103,.18); color: var(--gd); }
.sv-mcard:not(.sv-mcard-dark) .sv-mic { background: var(--bg); color: var(--pl2); }
.sv-mic svg { width: 22px; height: 22px; }
.sv-mlabel { font: 500 11px var(--sans); letter-spacing: .12em; text-transform: uppercase; opacity: .65; }
.sv-mcard h3 { font-size: clamp(1.8rem, 2.8vw, 2.3rem); margin: 26px 0 6px; color: inherit; }
.sv-mprice { display: flex; align-items: baseline; gap: 8px; padding-bottom: 20px; margin-bottom: 18px; border-bottom: 1px solid currentColor; border-color: rgba(200,160,103,.35); }
.sv-mprice span { font: 400 clamp(2.4rem, 4vw, 3.2rem)/1 var(--serif); color: var(--gd); }
.sv-mcard:not(.sv-mcard-dark) .sv-mprice span { color: var(--pl2); }
.sv-mprice small { font: 400 13px var(--sans); opacity: .65; }
.sv-mlist { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 10px; }
.sv-mlist li { position: relative; padding-left: 22px; line-height: 1.5; opacity: .85; }
.sv-mlist li::before { content: ""; position: absolute; left: 0; top: .6em; width: 10px; height: 1px; background: var(--gd); }
.sv-mbtns { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: auto; }
.sv-mbtn { display: inline-flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 22px; border-radius: 999px; background: var(--pl); color: var(--cr); font: 500 14px var(--sans); text-decoration: none; margin-top: auto; align-self: flex-start; }
.sv-mbtns .sv-mbtn { margin-top: 0; }
.sv-mbtn.gold { background: var(--gd); color: var(--pl); }
.sv-mbtn svg { width: 17px; height: 17px; }
.sv-mlink { font: 500 14px var(--sans); color: var(--pl); border-bottom: 1px solid rgba(29,20,48,.4); padding-bottom: 2px; cursor: pointer; text-decoration: none; }
/* Tablet / phone */
@media (max-width: 900px) {
  .sv-hero-grid, .sv-list-grid, .sv-meet-grid { grid-template-columns: 1fr; }
  .sv-index { position: static; }
  .sv-index nav { display: flex; gap: 8px; overflow-x: auto; border: 0; margin: 14px -4.35vw 0; padding: 0 4.35vw 4px; scrollbar-width: none; }
  .sv-index nav::-webkit-scrollbar { display: none; }
  .sv-index a { flex: 0 0 auto; display: inline-flex; gap: 8px; align-items: baseline; padding: 9px 14px; border: 1px solid rgba(200,160,103,.4); border-radius: 99px; font: 500 13px var(--sans); background: #fffdf8; }
  .sv-index a i { padding: 0; }
}
@media (max-width: 760px) {
  .sv-hero { padding: 44px 0 56px; }
  .sv-hero h1 { font-size: 2.7rem; }
  .sv-hero-photo { aspect-ratio: 4 / 3.4; }
  .sv-list { padding-top: 48px; }
  .sv-list-grid { gap: 28px; }
  .sv-row { grid-template-columns: 1fr; gap: 14px; padding: 34px 0; }
  .sv-row:first-child { padding-top: 0; }
  .sv-side { grid-auto-flow: column; justify-content: space-between; align-items: center; width: 100%; }
  .sv-num { font-size: 2.8rem; }
  .sv-foot { border-radius: 18px; padding: 14px 14px 14px 18px; }
  .sv-book { padding: 11px 16px; }
}

/* Menu: bottom block sits higher, with social logos */
.mm2-foot { margin-top: 0 !important; padding-top: 34px !important; }
.mm2-social { display: flex; justify-content: center; gap: 12px; margin-top: 2px; }
.mm2-social a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(200,160,103,.4); color: #EAD8BB; }
.mm2-social svg { width: 19px; height: 19px; }
/* Book page: divider between the policies section and the footer (both plum) */
.v2 #policies { padding-bottom: 0 !important; }
.v2 #policies > .container::after { content: ""; display: block; height: 1px; background: rgba(234,216,187,.2); margin-top: clamp(56px, 8vw, 96px); }
/* Book: shorter heading on phones, tighter gap above the calendar */
.bk-h-m { display: none; }
@media (max-width: 760px) {
  .bk-h-d { display: none; } .bk-h-m { display: inline; }
  .v2 .booking-first .sh { margin-bottom: 16px !important; }
  .v2 .booking-first .sh-r:empty { display: none; }
}
/* Services: keep rows inside the screen on phones */
.sv-list-grid, .sv-hero-grid, .sv-meet-grid { min-width: 0; }
.sv-list-grid > *, .sv-rows, .sv-row, .sv-body { min-width: 0; }
@media (max-width: 900px) { .sv-list-grid, .sv-hero-grid, .sv-meet-grid { grid-template-columns: minmax(0, 1fr); } }
/* Ministry hero (phones): lighter, shorter fade so more of the photo shows */
@media (max-width: 760px) {
  .v2 .ministry-hero .hero-shade { background: linear-gradient(0deg, #1d1430 0%, rgba(29,20,48,.92) 30%, rgba(29,20,48,.35) 46%, rgba(29,20,48,0) 60%) !important; }
  .v2 .ministry-hero .lbl-long { display: none !important; }
  .v2 .ministry-hero .lbl-short { display: inline !important; }
  .v2 .ministry-hero .btn-cta, .v2 .ministry-hero .btn-ghost-light { white-space: nowrap; }
}
/* Buttons that wrapped onto two lines */
.sv-book, .v2 .btn { white-space: nowrap; }
@media (max-width: 760px) {
  .v2 .price-tabs { gap: 6px; }
  .v2 .price-tab { white-space: nowrap; padding-left: 10px !important; padding-right: 10px !important; font-size: 12.5px !important; }
}
@media (max-width: 760px) { .v2 .pt-long { display: none; } .v2 .price-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); } .v2 .price-tab { justify-content: center; text-align: center; } }
/* About numbers: roles only on the phone cards */
.about-v2 .ab-roles { display: none !important; }
@media (max-width: 760px) {
  .about-v2 .ab-roles { display: flex !important; }
  .about-v2 .ab-num-grid > div:nth-child(1), .about-v2 .ab-num-grid > div:nth-child(2) { align-content: start; }
}
/* Contact (phones): form sits fully inside the plum hero, no overlap */
@media (max-width: 860px) {
  .contact-v2 .ct-hero { padding-bottom: 32px !important; }
  .contact-v2 .ct-form { margin-bottom: 0 !important; box-shadow: none !important; }
  .contact-v2 .ct-community { padding-top: 40px !important; }
}

/* Numbers: solid gold instead of outlined */
.sv-num, .ic-num { color: #C8A067 !important; -webkit-text-stroke: 0 !important; font-size: 2.4rem !important; letter-spacing: -.01em; }
.ic-feature .ic-num { color: #C8A067 !important; }

/* Services rows: alternating cream and plum cards */
.sv-rows { gap: 16px; }
.sv-row, .sv-row:first-child { border: 0 !important; border-radius: 24px; padding: clamp(26px, 3.4vw, 44px) !important; background: #fffdf8; box-shadow: 0 1px 0 rgba(29,20,48,.06); }
.sv-row:nth-child(even) { background: linear-gradient(155deg, #3A2A5A 0%, #1D1430 100%); color: #F7F2E3; }
.sv-row:nth-child(even) h3 { color: #fff; }
.sv-row:nth-child(even) .sv-body > p { color: rgba(247,242,227,.76); }
.sv-row:nth-child(even) .sv-ic { background: rgba(200,160,103,.16); color: #C8A067; }
.sv-row:nth-child(even) .sv-tags li { background: rgba(200,160,103,.12); border-color: rgba(200,160,103,.32); color: #EAD8BB; }
.sv-row:nth-child(even) .sv-foot { background: rgba(247,242,227,.06); border-color: rgba(234,216,187,.16); }
.sv-row:nth-child(even) .sv-price { color: rgba(247,242,227,.6); }
.sv-row:nth-child(even) .sv-price strong { color: #C8A067; }
.sv-row:nth-child(even) .sv-book { background: #C8A067; color: #1D1430; }
.sv-row:nth-child(odd) .sv-foot { background: #F7F2E3; }
@media (max-width: 760px) { .sv-row, .sv-row:first-child { padding: 24px 20px !important; border-radius: 20px; } }

/* Contact: "Email me" pop-up form on phones */
.contact-v2 .ct-v-m, .contact-v2 .ct-close, .contact-v2 .ct-backdrop { display: none; }
@media (max-width: 860px) {
  .contact-v2 .ct-v-d { display: none; }
  .contact-v2 .ct-v-m { display: inline; }
  .contact-v2 .ct-form { display: none; }
  .contact-v2 .ct-hero { padding-bottom: 56px !important; }
  html.ct-open, html.ct-open body { overflow: hidden !important; }
  html.ct-open .contact-v2 .ct-backdrop { display: block; position: fixed; inset: 0; z-index: 1000; background: rgba(29,20,48,.62); animation: mm2-fade .25s ease both; }
  html.ct-open .contact-v2 .ct-form { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1001; margin: 0 !important; max-height: 90vh; max-height: 90dvh; overflow-y: auto; overscroll-behavior: contain; border-radius: 24px 24px 0 0 !important; padding: 30px 22px calc(24px + env(safe-area-inset-bottom)) !important; box-shadow: 0 -20px 60px -20px rgba(0,0,0,.5) !important; animation: ct-up .35s cubic-bezier(.2,.8,.2,1) both; }
  html.ct-open .contact-v2 .ct-close { display: grid; place-items: center; position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(29,20,48,.18); background: none; color: #1D1430; padding: 0; cursor: pointer; }
  .contact-v2 .ct-close svg { width: 17px; height: 17px; }
}
@keyframes ct-up { from { transform: translateY(100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { html.ct-open .contact-v2 .ct-form, html.ct-open .contact-v2 .ct-backdrop { animation: none; } }

/* Phone menu: the Concept 1 drop-down card (replaces the full-screen menu) */
.dd { position: fixed; left: 16px; right: 16px; z-index: 300; display: flex; flex-direction: column; gap: 4px; padding: 12px; background: #FBF8F3; border: 1px solid rgba(36,29,49,.1); border-radius: 24px; box-shadow: 0 24px 50px -20px rgba(23,17,42,.45); opacity: 0; transform: translateY(-8px); transition: opacity .25s ease, transform .25s ease; }
.dd.open { opacity: 1; transform: none; }
.dd[hidden] { display: none !important; }
.dd a { display: block; padding: 14px 18px; border-radius: 14px; font: 500 1.05rem/1.3 "Inter", system-ui, sans-serif; color: #5d5670; text-decoration: none; }
.dd a:hover { background: rgba(34,24,57,.06); }
.dd a.on { background: #221839; color: #fff; }
.dd .dd-cta { margin-top: 8px; padding: 15px 18px; border-radius: 999px; background: #221839; color: #fff; text-align: center; }
.dd .dd-cta.on { background: #221839; }
@media (min-width: 961px) { .dd { display: none !important; } }

/* Phone menu: plum menu as a floating pop-up card (not full screen) */
.mm2-bd { position: fixed; inset: 0; z-index: 199; background: rgba(15,10,26,.55); animation: mm2-fade .25s ease both; }
.mm2-bd[hidden] { display: none !important; }
.mm2 { inset: 12px 12px auto 12px !important; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); border-radius: 26px; border: 1px solid rgba(200,160,103,.28); box-shadow: 0 40px 80px -30px rgba(0,0,0,.7); padding: 16px 18px 22px !important; overflow: hidden auto; transform-origin: top right; animation: mm2-pop .32s cubic-bezier(.2,.8,.2,1) both !important; }
.mm2-kicker { display: none; }
.mm2-nav { margin-top: 18px; }
.mm2-nav a { padding: 12px 2px; }
.mm2-nav span { font-size: 1.8rem; }
.mm2-foot { padding-top: 22px !important; gap: 12px; }
.mm2-word { top: 70px; font-size: 7.5rem; }
@keyframes mm2-pop { from { opacity: 0; transform: scale(.94) translateY(-8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mm2, .mm2-bd { animation: none !important; } }

/* Invite form: preferred dates calendar pickers */
.v2 .inv-dates { border: 0; margin: 0; padding: 0; min-width: 0; }
.v2 .inv-dates legend { padding: 0; margin-bottom: 8px; font: inherit; font-weight: 600; color: #1D1430; font-size: .92rem; }
.v2 .inv-dates-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.v2 .inv-date { display: grid; gap: 6px; font-size: .82rem; color: rgba(29,20,48,.65); font-weight: 500; }
.v2 .inv-date input { width: 100%; min-height: 48px; color: #1D1430; font: inherit; font-size: 1rem; font-weight: 400; }
.v2 .inv-date input::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .7; }
.v2 .inv-flex { display: inline-flex; align-items: center; gap: 10px; margin-top: 12px; font-size: .92rem; font-weight: 400; color: rgba(29,20,48,.8); cursor: pointer; }
.v2 .inv-flex input { width: 18px; height: 18px; min-height: 0; accent-color: #3A2A5A; margin: 0; }
.v2 .inv-dates .inv-date, .v2 .inv-dates .inv-flex { margin-bottom: 0; }
.v2 .inv-dates .inv-flex { margin-top: 12px; }

/* Invite request (phones): heading, then the form, then the three notes */
@media (max-width: 900px) {
  .inv-req-grid { display: flex; flex-direction: column; gap: 0; }
  .inv-req-text { display: contents; }
  .inv-req .inv-lead { margin-bottom: 0; }
  .v2 .inv-form { order: 1; margin-top: 26px; }
  .inv-notes { order: 2; margin-top: 36px; }
}
.v2 .inv-dates-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2 .inv-date { min-width: 0; }
.v2 .inv-date input { min-width: 0; max-width: 100%; box-sizing: border-box; padding-left: 12px; padding-right: 10px; }

/* Book page: Custom session option and quote fields */
.v2 .bd-group { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: inherit; }
.v2 .bd-group[hidden] { display: none; }
.v2 #book-details { gap: 18px; }
.v2 .bd-quote-intro { margin: 0; padding: 14px 16px; border-radius: 14px; background: #EAD8BB; color: #1D1430; font-size: .95rem; line-height: 1.55; }
.v2 #bd-type.choice-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 640px) { .v2 #bd-type.choice-row { grid-template-columns: 1fr; } }
/* Book: packages now come straight after the intro, then the single-session cards */
.v2 .page-hero:has(+ #packages) { padding-bottom: 12px; }
.v2 .page-hero:has(+ #packages) .lead { margin-bottom: 0; }
.v2 #packages { padding-top: 18px !important; padding-bottom: clamp(16px, 2.5vw, 32px); }
.v2 #pricing { padding-top: clamp(16px, 2.5vw, 32px) !important; padding-bottom: clamp(48px, 6vw, 80px); }

/* Book: hide the "Session packages" heading on phones */
@media (max-width: 760px) { .v2 #packages .pk-title { display: none; } }
.pk-eb-m { display: none; }
@media (max-width: 760px) { .pk-eb-d { display: none; } .pk-eb-m { display: inline; } }

/* Invite (phones): the three notes move into "How invitations work" */
.inv-notes-how { display: none; }
@media (max-width: 900px) {
  .inv-req .inv-notes:not(.inv-notes-how) { display: none; }
  .inv-notes-how { display: grid; margin-top: 40px; border-top-color: rgba(29,20,48,.14); }
  .inv-notes-how li { border-bottom-color: rgba(29,20,48,.14); }
  .inv-notes-how li > span { background: rgba(58,42,90,.1); color: #3A2A5A; }
  .inv-notes-how b { color: #1D1430; }
  .inv-notes-how p { color: rgba(29,20,48,.72); }
}

/* Emergency numbers (phones): keep "911 · 988" inside its box */
@media (max-width: 860px) {
  .em-strip-nums { gap: 8px !important; }
  .em-strip-nums li { padding: 10px 6px !important; min-width: 0; }
  .em-strip-nums li:nth-child(2) { flex: 1.45 !important; }
  .em-strip-nums b { font-size: 1.3rem !important; }
}
/* Invite (phones): notes in "How invitations work" as accordions */
@media (max-width: 900px) {
  .inv-notes-how li { display: block; padding: 0; }
  .inv-notes-how summary { display: grid; grid-template-columns: 44px 1fr 22px; align-items: center; gap: 16px; padding: 16px 0; cursor: pointer; list-style: none; }
  .inv-notes-how summary::-webkit-details-marker { display: none; }
  .inv-notes-how .inh-ic { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: rgba(58,42,90,.1); color: #3A2A5A; }
  .inv-notes-how .inh-ic svg { width: 20px; height: 20px; }
  .inv-notes-how summary b { margin: 0; }
  .inh-plus { position: relative; width: 14px; height: 14px; justify-self: end; }
  .inh-plus::before, .inh-plus::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: #3A2A5A; transition: transform .25s ease; }
  .inh-plus::after { transform: rotate(90deg); }
  .inv-notes-how details[open] .inh-plus::after { transform: rotate(0deg); }
  .inv-notes-how details p { margin: -4px 0 0; padding: 0 0 18px 60px; }
}
/* Contact (phones): "Click here to email me" as a gold button */
@media (max-width: 860px) {
  .contact-v2 .ct-v-m { display: inline-flex !important; align-items: center; gap: 10px; margin-top: 6px; padding: 12px 20px; border-radius: 999px; background: #C8A067; color: #1D1430; font: 500 15px "Inter", sans-serif; letter-spacing: 0; }
  .contact-v2 .ct-v-m svg { width: 18px; height: 18px; flex: none; }
  .contact-v2 .ct-rows a[data-ct-open] .ct-arrow { display: none; }
  .contact-v2 .ct-rows a[data-ct-open]:hover .ct-value { color: inherit; }
}
/* Invite accordions (phones): tighter rows */
@media (max-width: 900px) {
  .inv-notes-how { margin-top: 28px; }
  .inv-notes-how summary { grid-template-columns: 34px 1fr 18px; gap: 12px; padding: 10px 0; }
  .inv-notes-how .inh-ic { width: 34px; height: 34px; }
  .inv-notes-how .inh-ic svg { width: 16px; height: 16px; }
  .inv-notes-how summary b { font-size: 1.1rem; }
  .inh-plus { width: 12px; height: 12px; }
  .inv-notes-how details p { padding: 0 0 12px 46px; margin-top: -2px; font-size: .9rem; }
}

/* Date pickers and tick box: consistent on iPhone (Safari draws its own) */
.v2 .inv-date-box { position: relative; display: block; min-width: 0; }
.v2 .inv-date input[type="date"] { -webkit-appearance: none; appearance: none; display: block; width: 100%; min-width: 0; height: 50px; min-height: 50px; margin: 0; padding: 0 12px; line-height: 50px; text-align: left; background: #fffdf8; border: 1px solid rgba(29,20,48,.14); border-radius: 12px; color: #1D1430; font: 400 15px "Inter", sans-serif; box-sizing: border-box; }
.v2 .inv-date input[type="date"]::-webkit-date-and-time-value { text-align: left; margin: 0; }
.v2 .inv-date-ph { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); font: 400 15px "Inter", sans-serif; font-style: normal; color: rgba(29,20,48,.42); pointer-events: none; }
.v2 .inv-date.has-value .inv-date-ph { display: none; }
.v2 .inv-date:not(.has-value) input[type="date"] { color: transparent; }
.v2 .inv-date:not(.has-value) input[type="date"]:focus { color: #1D1430; }
.v2 .inv-dates-row { gap: 10px; }
.v2 .inv-flex input[type="checkbox"] { -webkit-appearance: none; appearance: none; flex: none; width: 20px; height: 20px; min-height: 0; padding: 0; margin: 0; border: 1.5px solid rgba(29,20,48,.35); border-radius: 6px; background: #fffdf8; display: grid; place-items: center; cursor: pointer; }
.v2 .inv-flex input[type="checkbox"]:checked { background: #3A2A5A; border-color: #3A2A5A; }
.v2 .inv-flex input[type="checkbox"]:checked::after { content: ""; width: 5px; height: 10px; border: solid #F7F2E3; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
/* iPhone Safari: centre the date text, and hide the default "today" it shows in empty boxes */
.v2 .inv-date input[type="date"] { height: auto; min-height: 50px; line-height: 1.3; padding: 14px 12px; display: flex; align-items: center; }
.v2 .inv-date input[type="date"]::-webkit-date-and-time-value { text-align: left; margin: 0; padding: 0; line-height: 1.3; min-height: 1.3em; }
.v2 .inv-date:not(.has-value) input[type="date"] { color: transparent; -webkit-text-fill-color: transparent; }
.v2 .inv-date:not(.has-value) input[type="date"]::-webkit-date-and-time-value { color: transparent; -webkit-text-fill-color: transparent; }
.v2 .inv-date.has-value input[type="date"], .v2 .inv-date input[type="date"]:focus { color: #1D1430; -webkit-text-fill-color: #1D1430; }
.v2 .inv-date input[type="date"]:focus::-webkit-date-and-time-value, .v2 .inv-date.has-value input[type="date"]::-webkit-date-and-time-value { color: #1D1430; -webkit-text-fill-color: #1D1430; }
.v2 .inv-date input[type="date"]:focus + .inv-date-ph { display: none; }
/* Date boxes: same look as desktop, "dd/mm/yyyy" plus a calendar icon */
.v2 .inv-date-ph { color: rgba(29,20,48,.55); }
/* iPhone/iPad Safari has no calendar icon of its own, so add one */
@supports (-webkit-touch-callout: none) {
  .v2 .inv-date-box::after { content: ""; position: absolute; right: 12px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); pointer-events: none; opacity: .75;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D1430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M3 9h18M8 2v4M16 2v4'/%3E%3C/svg%3E") center / contain no-repeat; }
  .v2 .inv-date input[type="date"] { padding-right: 34px; }
}
/* Contact form: country code picker matches the underlined fields */
.contact-v2 .ct-form .tel-cc { background-color: transparent; border: 0; border-bottom: 1px solid rgba(29,20,48,.25); border-radius: 0; padding: 10px 22px 10px 0 !important; box-shadow: none; font-size: 1rem; }
.contact-v2 .ct-form .tel-wrap { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; }

/* Narrow Android screens: roomier forms, banner that fits */
@media (max-width: 380px) {
  .v2 .inv-form, .contact-v2 .ct-form, .v2 #book-details { padding-left: 16px !important; padding-right: 16px !important; }
  .v2 .inv-dates-row { grid-template-columns: 1fr; gap: 10px; }
  .v2 .inv-date { grid-template-columns: 44px 1fr; align-items: center; gap: 8px; }
  .proto-banner, .v2 .proto-banner.v2b { left: 10px !important; right: 10px; transform: none !important; max-width: none; white-space: normal !important; text-align: center; font-size: 11px !important; line-height: 1.35; padding: 6px 12px !important; border-radius: 14px !important; }
}

/* Services: "Ask a question" pop-up, centred with equal side padding */
.ask-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 16px; }
.ask-modal[hidden] { display: none; }
.ask-bd { position: absolute; inset: 0; background: rgba(15,10,26,.6); animation: mm2-fade .25s ease both; }
html.ask-open, html.ask-open body { overflow: hidden !important; }
.v2 .ask-form { position: relative; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 32px 28px 28px; border: 0; border-radius: 22px; background: #F7F2E3; color: #1D1430; box-shadow: 0 40px 80px -30px rgba(0,0,0,.7); animation: mm2-pop .3s cubic-bezier(.2,.8,.2,1) both; box-sizing: border-box; }
.ask-close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(29,20,48,.18); background: none; color: #1D1430; display: grid; place-items: center; padding: 0; cursor: pointer; }
.ask-close svg { width: 17px; height: 17px; }
.ask-eyebrow { display: block; font: 500 11.5px "Inter", sans-serif; letter-spacing: .06em; text-transform: uppercase; color: #3A2A5A; }
.ask-title { font-family: "Newsreader", Georgia, serif; font-size: clamp(1.45rem, 4vw, 1.8rem); line-height: 1.15; margin: 8px 48px 20px 0; color: #1D1430; font-optical-sizing: none; font-variation-settings: "opsz" 16; }
.v2 .ask-form label { color: #1D1430; }
.v2 .ask-form input, .v2 .ask-form textarea, .v2 .ask-form select { background: #fffdf8; border: 1px solid rgba(29,20,48,.14); border-radius: 12px; }
.v2 .ask-form input:focus, .v2 .ask-form textarea:focus, .v2 .ask-form select:focus { border-color: #C8A067; outline: none; box-shadow: 0 0 0 3px rgba(200,160,103,.25); }
.v2 .ask-form textarea { min-height: 110px; }
.v2 .ask-form .btn { width: 100%; justify-content: center; }
@media (max-width: 640px) { .v2 .ask-form { padding: 26px 18px 20px; border-radius: 20px; } .ask-modal { padding: 12px; } .v2 .ask-form { max-height: calc(100dvh - 24px); } }
/* Ask a question pop-up: more breathing room around it */
.ask-modal { padding: 40px; }
.v2 .ask-form { max-height: calc(100vh - 80px); max-height: calc(100dvh - 80px); padding: 36px 32px 30px; }
@media (max-width: 640px) {
  .ask-modal { padding: 24px; }
  .v2 .ask-form { max-height: calc(100dvh - 48px); padding: 28px 22px 22px; }
}
/* Ask pop-up on phones: fits on screen without scrolling */
@media (max-width: 640px) {
  .ask-modal { padding: 20px; }
  .v2 .ask-form { padding: 22px 18px 18px; max-height: calc(100dvh - 40px); }
  .v2 .ask-form .ask-eyebrow { font-size: 10.5px; }
  .v2 .ask-form .ask-title { font-size: 1.3rem; margin: 6px 46px 14px 0; }
  .ask-close { top: 12px; right: 12px; width: 36px; height: 36px; }
  .v2 .ask-form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .v2 .ask-form .form-row { gap: 10px; }
  .v2 .ask-form .field { margin: 0 0 10px; }
  .v2 .ask-form .form-row .field { margin-bottom: 0; }
  .v2 .ask-form .form-row { margin-bottom: 10px; }
  .v2 .ask-form input, .v2 .ask-form select { height: 46px; min-height: 46px; padding-top: 0; padding-bottom: 0; font-size: 15px; }
  .v2 .ask-form textarea { min-height: 84px; height: 84px; font-size: 15px; padding-top: 12px; }
  .v2 .ask-form .form-hint { font-size: 12px; line-height: 1.4; margin: 2px 0 12px; }
  .v2 .ask-form .btn { padding-top: 13px; padding-bottom: 13px; }
}
@media (max-width: 640px) and (max-height: 720px) {
  .ask-modal { padding: 16px 20px; }
  .v2 .ask-form { padding: 18px 16px 16px; max-height: calc(100dvh - 32px); }
  .v2 .ask-form .ask-title { font-size: 1.15rem; margin-bottom: 10px; }
  .v2 .ask-form .field, .v2 .ask-form .form-row { margin-bottom: 8px; }
  .v2 .ask-form .form-row { gap: 8px; }
  .v2 .ask-form input, .v2 .ask-form select { height: 42px; min-height: 42px; }
  .v2 .ask-form textarea { height: 66px; min-height: 66px; }
  .v2 .ask-form .form-hint { font-size: 11px; margin-bottom: 10px; }
  .v2 .ask-form .btn { padding-top: 11px; padding-bottom: 11px; }
}
@media (min-width: 641px) { .v2 .ask-form { padding: 30px 32px 26px; } .v2 .ask-form textarea { min-height: 86px; height: 86px; } .v2 .ask-form .ask-title { margin-bottom: 16px; } }

/* Contact "Click here to email me" (phones): same centred pop-up as Services "Ask a question" */
@media (max-width: 860px) {
  html.ct-open .contact-v2 .ct-backdrop { background: rgba(15,10,26,.6); }
  html.ct-open .contact-v2 .ct-form { position: fixed; inset: 0 !important; margin: auto !important; width: calc(100% - 40px); max-width: 560px; height: fit-content; max-height: calc(100dvh - 40px); border-radius: 22px !important; background: #F7F2E3; padding: 30px 28px 26px !important; box-shadow: 0 40px 80px -30px rgba(0,0,0,.7) !important; animation: mm2-pop .3s cubic-bezier(.2,.8,.2,1) both; box-sizing: border-box; }
  html.ct-open .contact-v2 .ct-close { top: 16px; right: 16px; }
  html.ct-open .contact-v2 .ct-form-eyebrow { font: 500 11.5px "Inter", sans-serif; letter-spacing: .06em; color: #3A2A5A; }
  html.ct-open .contact-v2 .ct-form-title { font-size: clamp(1.3rem, 4vw, 1.8rem); margin: 8px 48px 16px 0; }
  html.ct-open .contact-v2 .ct-form input, html.ct-open .contact-v2 .ct-form textarea, html.ct-open .contact-v2 .ct-form .tel-cc { background: #fffdf8; border: 1px solid rgba(29,20,48,.14) !important; border-radius: 12px !important; padding-left: 14px; padding-right: 12px; }
  html.ct-open .contact-v2 .ct-form .tel-cc { padding: 0 22px 0 10px !important; }
  html.ct-open .contact-v2 .ct-form input:focus, html.ct-open .contact-v2 .ct-form textarea:focus { border-color: #C8A067 !important; box-shadow: 0 0 0 3px rgba(200,160,103,.25); }
  html.ct-open .contact-v2 .ct-form .tel-wrap { grid-template-columns: 124px minmax(0, 1fr); gap: 8px; }
  html.ct-open .contact-v2 .ct-form textarea { min-height: 86px; height: 86px; padding-top: 12px; }
}
@media (max-width: 640px) {
  html.ct-open .contact-v2 .ct-form { width: calc(100% - 40px); max-height: calc(100dvh - 40px); padding: 22px 18px 18px !important; }
  html.ct-open .contact-v2 .ct-close { top: 12px; right: 12px; width: 36px; height: 36px; }
  html.ct-open .contact-v2 .ct-form-eyebrow { font-size: 10.5px; }
  html.ct-open .contact-v2 .ct-form-title { font-size: 1.3rem; margin: 6px 46px 14px 0; }
  html.ct-open .contact-v2 .ct-form label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html.ct-open .contact-v2 .ct-form .form-row { gap: 10px; margin-bottom: 10px; }
  html.ct-open .contact-v2 .ct-form .field { margin: 0 0 10px; }
  html.ct-open .contact-v2 .ct-form .form-row .field { margin-bottom: 0; }
  html.ct-open .contact-v2 .ct-form input, html.ct-open .contact-v2 .ct-form .tel-cc { height: 46px; min-height: 46px; padding-top: 0; padding-bottom: 0; font-size: 15px; }
  html.ct-open .contact-v2 .ct-form textarea { min-height: 84px; height: 84px; font-size: 15px; }
  html.ct-open .contact-v2 .ct-form .form-hint { font-size: 12px; line-height: 1.4; margin: 2px 0 12px; }
  html.ct-open .contact-v2 .ct-form .btn { padding-top: 13px; padding-bottom: 13px; margin-top: 0; }
}
@media (max-width: 640px) and (max-height: 720px) {
  html.ct-open .contact-v2 .ct-form { max-height: calc(100dvh - 32px); padding: 18px 16px 16px !important; }
  html.ct-open .contact-v2 .ct-form-title { font-size: 1.15rem; margin-bottom: 10px; }
  html.ct-open .contact-v2 .ct-form .field, html.ct-open .contact-v2 .ct-form .form-row { margin-bottom: 8px; }
  html.ct-open .contact-v2 .ct-form .form-row { gap: 8px; }
  html.ct-open .contact-v2 .ct-form input, html.ct-open .contact-v2 .ct-form .tel-cc { height: 42px; min-height: 42px; }
  html.ct-open .contact-v2 .ct-form textarea { height: 66px; min-height: 66px; }
  html.ct-open .contact-v2 .ct-form .form-hint { font-size: 11px; margin-bottom: 10px; }
  html.ct-open .contact-v2 .ct-form .btn { padding-top: 11px; padding-bottom: 11px; }
}
@media (min-width: 861px) { .contact-v2 .ct-form [data-ph]::placeholder { color: transparent; } }
/* Contact desktop: no Email row (the form is right beside it); roomier phone row */
@media (min-width: 861px) {
  .contact-v2 .ct-rows li:has(> a[data-ct-open]) { display: none; }
  .contact-v2 .ct-form .tel-wrap { grid-template-columns: 86px minmax(0, 1fr); gap: 10px; }
  .contact-v2 .ct-form .tel-cc { font-size: .95rem; }
}

/* Services hero: no intro paragraph on phones */
@media (max-width: 760px) { .sv-hero .sv-lead { display: none; } .sv-hero h1 { margin-bottom: 0; } .sv-actions { margin-top: 26px; } }

/* Ministry: live stream box, "not live" state */
.v2 .live-off { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 340px; aspect-ratio: 16 / 10; border-radius: 22px; color: #F7F2E3;
  background: linear-gradient(0deg, rgba(29,20,48,.96) 0%, rgba(29,20,48,.8) 45%, rgba(29,20,48,.55) 100%), url("img/ministry-worship.jpg") center 40% / cover no-repeat, #1D1430; }
.v2 .off-badge { position: absolute; top: 18px; left: 18px; display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(247,242,227,.12); border: 1px solid rgba(247,242,227,.2); font: 500 11px "Inter", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: rgba(247,242,227,.85); }
.v2 .off-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: rgba(247,242,227,.45); }
.v2 .off-body { position: relative; padding: clamp(22px, 3vw, 34px); display: grid; gap: 10px; justify-items: start; }
.v2 .off-ic { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: rgba(200,160,103,.16); color: #C8A067; margin-bottom: 4px; }
.v2 .off-ic svg { width: 24px; height: 24px; }
.v2 .off-body strong { font: 400 clamp(1.5rem, 2.6vw, 2rem)/1.15 "Newsreader", Georgia, serif; font-optical-sizing: none; font-variation-settings: "opsz" 16; color: #fff; }
.v2 .off-body p { margin: 0; max-width: 32em; color: rgba(247,242,227,.75); line-height: 1.55; font-size: .95rem; }
.v2 .off-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 8px; }
.v2 .off-btn { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 999px; background: #C8A067; color: #1D1430; font: 500 14px "Inter", sans-serif; text-decoration: none; }
.v2 .off-link { color: #F7F2E3; font: 500 14px "Inter", sans-serif; text-decoration: none; border-bottom: 1px solid rgba(247,242,227,.5); padding-bottom: 2px; }
@media (max-width: 640px) { .v2 .live-off { aspect-ratio: auto; min-height: 360px; } }
/* Live box: two states */
.v2 .live-off .on-live { display: none; }
.v2 .live-off.is-live .on-live { display: grid; }
.v2 .live-off.is-live .live-badge.on-live { display: inline-flex; }
.v2 .live-off.is-live .off-only, .v2 .live-off.is-live .off-badge { display: none; }
.v2 .live-off.is-live { background: linear-gradient(0deg, rgba(29,20,48,.92) 0%, rgba(29,20,48,.55) 50%, rgba(29,20,48,.25) 100%), url("img/ministry-worship.jpg") center 40% / cover no-repeat, #1D1430; }

/* Contact (phones): WhatsApp, Location, then the email button */
@media (max-width: 860px) { .contact-v2 .ct-rows { display: flex; flex-direction: column; } .contact-v2 .ct-rows li:has(> a[data-ct-open]) { order: 3; } }

/* ===== Forms: clearly visible boxed fields everywhere (Contact, Invite, Book, pop-ups) ===== */
.v2 form.form input:not([type=checkbox]):not([type=radio]),
.v2 form.form select,
.v2 form.form textarea {
  background: #fff !important; border: 1px solid rgba(29,20,48,.24) !important; border-radius: 12px !important;
  min-height: 48px; padding: 12px 14px; color: #1D1430; font-size: 15px; box-shadow: none; box-sizing: border-box;
}
.v2 form.form textarea { min-height: 110px; line-height: 1.5; }
.v2 form.form input:not([type=checkbox]):not([type=radio]):hover, .v2 form.form select:hover, .v2 form.form textarea:hover { border-color: rgba(29,20,48,.4) !important; }
.v2 form.form input:not([type=checkbox]):not([type=radio]):focus, .v2 form.form select:focus, .v2 form.form textarea:focus { outline: none; border-color: #C8A067 !important; box-shadow: 0 0 0 3px rgba(200,160,103,.28) !important; }
.v2 form.form input::placeholder, .v2 form.form textarea::placeholder { color: rgba(29,20,48,.45); }
.v2 form.form select.tel-cc { padding: 0 24px 0 10px !important; }
/* Contact desktop form: labels sit above the boxes, phone code shows in full */
@media (min-width: 861px) {
  .contact-v2 .ct-form label { display: block; margin-bottom: 7px; }
  .contact-v2 .ct-form .field { margin-bottom: 16px; }
  .contact-v2 .ct-form .form-row { gap: 14px; }
  .contact-v2 .ct-form .tel-wrap { grid-template-columns: 104px minmax(0, 1fr); gap: 8px; }
  .contact-v2 .ct-form textarea { min-height: 120px; }
}
@media (max-width: 640px) {
  .v2 form.form input:not([type=checkbox]):not([type=radio]), .v2 form.form select, .v2 form.form textarea { min-height: 0; padding-top: 10px; padding-bottom: 10px; }
  .v2 form.form input:not([type=checkbox]):not([type=radio]), .v2 form.form select { height: 46px; padding-top: 0; padding-bottom: 0; }
}
@media (max-width: 640px) and (max-height: 720px) {
  .v2 .ask-form input:not([type=checkbox]), .v2 .ask-form select, html.ct-open .contact-v2 .ct-form input, html.ct-open .contact-v2 .ct-form select { height: 42px; }
}
/* Desktop: the phone column gets more room than the field beside it */
@media (min-width: 641px) { .v2 form.form .form-row:has(.tel-wrap) { grid-template-columns: 1.55fr 1fr; } .v2 form.form .tel-wrap { grid-template-columns: 104px minmax(0, 1fr) !important; } }
@media (min-width: 641px) { .v2 form.form .form-row:has(> .field:last-child .tel-wrap) { grid-template-columns: 1fr 1.55fr; } }
/* Phone row: slimmer code box so the number box has room at every width */
.v2 form.form .tel-wrap { grid-template-columns: 96px minmax(0, 1fr) !important; gap: 8px; }
.v2 form.form select.tel-cc { padding: 0 20px 0 10px !important; background-position: right 6px center; font-size: 14.5px; }
@media (max-width: 380px) { .v2 form.form .tel-wrap { grid-template-columns: 90px minmax(0, 1fr) !important; } }
/* Country code box: our own arrow so Safari keeps the full "+44" visible */
.v2 form.form select.tel-cc { -webkit-appearance: none !important; appearance: none !important; padding: 0 26px 0 12px !important; text-overflow: clip; white-space: nowrap;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D1430' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 9px center / 14px 14px !important; }
/* Phones: a little more room for the flag + code (iPhone draws wider flags) */
@media (max-width: 640px) {
  .v2 form.form .tel-wrap, html.ct-open .contact-v2 .ct-form .tel-wrap { grid-template-columns: 108px minmax(0, 1fr) !important; }
  .v2 form.form select.tel-cc, html.ct-open .contact-v2 .ct-form select.tel-cc { padding: 0 26px 0 10px !important; font-size: 15px; }
}
/* Contact FAQ (phones): tighter rows, number and + lined up with the question */
@media (max-width: 760px) {
  .contact-v2 .acc-btn { grid-template-columns: 30px 1fr 18px !important; align-items: center !important; padding: 13px 0 !important; font-size: 1.12rem !important; line-height: 1.3; min-height: 0 !important; }
  .contact-v2 .acc-btn::before { font-size: 11px; }
  .contact-v2 .acc-btn .plus { position: relative !important; top: auto !important; right: auto !important; transform: none !important; align-self: center; justify-self: end; width: 14px; height: 14px; margin: 0; }
  .contact-v2 .acc-panel > div { padding-left: 30px; }
  .contact-v2 .ct-faq { padding: 48px 0 56px; }
  .contact-v2 .ct-faq-sub { margin-bottom: 18px; }
}
/* Contact women's card (phones): tall portrait photo beside the text */
@media (max-width: 860px) {
  .contact-v2 .ct-com-card { grid-template-columns: 104px 1fr !important; align-items: stretch !important; border-radius: 22px; padding: 16px; gap: 16px; }
  .contact-v2 .ct-com-card img { width: 104px !important; height: 100% !important; min-height: 170px; object-fit: cover; object-position: 50% 25%; border-radius: 14px; align-self: stretch; }
  .contact-v2 .ct-com-text { align-self: center; }
}
@media (max-width: 860px) { .contact-v2 .ct-com-card .btn { grid-column: 1 / -1 !important; width: 100%; justify-content: center; } }
/* Invite "ways" carousel (phones): a plain side-to-side carousel, no floating */
@media (max-width: 760px) {
  .inv-cards { overflow-x: auto; overflow-y: hidden; overscroll-behavior: contain; touch-action: pan-x pan-y; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-top: 0; padding-bottom: 4px; }
  .inv-cards .inv-card, .inv-cards .inv-card.reveal, .inv-cards .inv-card.reveal.in { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; scroll-snap-stop: always; }
}

/* Services "Ways to meet" (phones): Online / In person pills, one card at a time */
.sv-mtabs { display: none; }
@media (max-width: 760px) {
  .sv-mtabs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
  .sv-mtab { padding: 13px 10px; border-radius: 999px; border: 1px solid rgba(29,20,48,.18); background: #F7F2E3; color: #1D1430; font: 500 14px "Inter", sans-serif; cursor: pointer; }
  .sv-mtab.on { background: #1D1430; border-color: #1D1430; color: #F7F2E3; }
  .sv-meet-grid > .sv-mcard { display: none; }
  .sv-meet-grid > .sv-mcard.is-shown { display: flex; }
  .sv-meet-grid > .sv-mcard.reveal { opacity: 1; transform: none; }
}

/* Invite (phones): no "How invitations work" section */
@media (max-width: 760px) { .inv-how { display: none; } }
@media (max-width: 760px) { .inv-hero .inv-link[href="#how"] { display: none; } }
/* Booking (Concept 2): selected hours in plum, summary bar and total in the palette */
.v2 .bk-chip.on { background: #3A2A5A; border-color: #3A2A5A; color: #F7F2E3; }
.v2 .bk-sel { background: #1D1430; }
.v2 .bk-sel-go { background: #C8A067; color: #1D1430; }
.v2 .bd-total { background: #EAD8BB; color: #1D1430; }
.v2 .bd-total span { color: rgba(29,20,48,.65); }
/* Book: optional "send me the client agreement" tick box */
.v2 .bd-agree { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; margin: 6px 0 4px; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid rgba(29,20,48,.14); font-size: .92rem; line-height: 1.5; color: #1D1430; cursor: pointer; }
.v2 .bd-agree b { font-weight: 600; }
.v2 .bd-agree a { color: #3A2A5A; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.v2 .bd-agree input[type=checkbox] { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; margin: 1px 0 0; border: 1.5px solid rgba(29,20,48,.35); border-radius: 6px; background: #fffdf8; display: grid; place-items: center; cursor: pointer; }
.v2 .bd-agree input[type=checkbox]:checked { background: #3A2A5A; border-color: #3A2A5A; }
.v2 .bd-agree input[type=checkbox]:checked::after { content: ""; width: 5px; height: 10px; border: solid #F7F2E3; border-width: 0 2px 2px 0; transform: translateY(-1px) rotate(45deg); }
/* Contact privacy: download button for the signed agreement */
.contact-v2 .ct-agree-btn { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; padding: 12px 20px; border-radius: 999px; background: #C8A067; color: #1D1430; font: 500 14px "Inter", sans-serif; text-decoration: none; transition: background .2s ease; }
.contact-v2 .ct-agree-btn:hover { background: #d4b07c; }
.contact-v2 .ct-agree-btn svg { width: 17px; height: 17px; }
/* Contact privacy: no crisis box, so trim the space below the points */
.contact-v2 .ct-priv-top { padding-bottom: 0; }

/* About story photo: real photo, framed on Douglas */
.about-v2 .ab-sticky img { object-position: 96% 20% !important; }
@media (max-width: 860px) { .about-v2 .ab-sticky img { object-position: 90% 20% !important; } }
/* About hero: counseling-room portrait (subject sits right of centre) */
.about-v2 .ab-portrait img { transform: none !important; }
/* About numbers: 30+ countries, "including Nigeria, USA, Canada, UK and Australia" */
.about-v2 .ab-cty::before { content: " "; }
.about-v2 .ab-cty i:last-child::before { content: " and " !important; }
@media (max-width: 760px) { .about-v2 .ab-cty i:last-child::before { content: none !important; } }
/* About hero (mobile): lift the text group onto the faded bottom of the photo */
@media (max-width: 860px) {
  .about-v2 .ab-hero-text { position: relative; z-index: 2; margin-top: -60px !important; }
}
/* Header: drop the leftover Concept 1 blur on the inner nav (it smeared the hero photo into hard-edged bands) */
.v2 .v2h .nav { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
/* Footer: CAC number on its own line on mobile */
.v2 .f-cac i { font-style: normal; }
@media (max-width: 760px) { .v2 .f-cac { display: block; margin-top: 4px; } .v2 .f-cac i { display: none; } }
/* About hero (phones): photo starts right at the header line, no gap and nothing hidden behind it */
@media (max-width: 860px) { .about-v2 .ab-portrait { margin-top: 40px !important; } }
