/*
Theme Name:   Kadence Child – Abigail Dance Coaching
Theme URI:    https://abigaildance.co.nz
Description:  Child theme for Abigail Dance Coaching, built on Kadence.
Author:       Tag Design
Author URI:   https://tagdesign.co.nz
Template:     kadence
Version:      1.0.0
Text Domain:  kadence-child
*/


/* ==========================================================================
   1. Design tokens (:root)
      Font families and type scale live here, not per block.
   ========================================================================== */

:root {
  --adc-font-serif: "Cormorant Garamond", Georgia, serif;

  --adc-fs-small: 0.9375rem;
  --adc-fs-meta:  1.0625rem;
  --adc-fs-body:  1.125rem;
  --adc-fs-label: 1.2rem;
  --adc-fs-intro: 1.25rem;
  --adc-fs-strip: 1.5625rem;
  --adc-fs-lead:  1.375rem;
  --adc-fs-h3:    1.4375rem;
  --adc-fs-gcard-name: 1.9rem;

  --adc-fs-quote: clamp(1.875rem, 3.1vw, 2.75rem);
  --adc-fs-detail:    1.375rem;    /* contact details: Papa Hou, email, phone */
  --adc-fs-toc-title: 0.8125rem;   /* "On this page" label */
  --adc-fs-toc-link:  0.9375rem;   /* contents links */
  --adc-fs-quote-long: clamp(1.25rem, 1.8vw, 1.625rem);  /* full-length testimonials */
  --adc-fs-h2:    clamp(2.125rem, 3.6vw, 3.25rem);
  --adc-fs-tier:  clamp(2.5rem, 3.9vw, 3.5rem);
  --adc-fs-h1:    clamp(2.625rem, 5.1vw, 4.625rem);

  --adc-fs-pullquote: clamp(1.625rem, 2.5vw, 2.25rem);
  --adc-fs-h2-lg:     clamp(2.375rem, 4.4vw, 4rem);
  --adc-fs-form-label: 0.875rem;   /* 14px – form field labels */

  /* Accent word (Cormorant italic) relative to its heading */
  --adc-accent-scale: 1.25em;

  /* Mobile */
  --adc-fs-btn-mobile:      0.8235rem;
  --adc-fs-btn-text-mobile: 0.895rem;
  --adc-fs-label-mobile:    0.95rem;
  --adc-fs-strip-mobile:    1.125rem;
  --adc-p-gap:              0.25em;   /* Kadence default is 2rem */
  --adc-p-gap-mobile:       0.25em;
  --adc-btn-pad-y-mobile:   1em;
  --adc-btn-pad-x-mobile:   1.75em;
}

/* Mobile type tokens: headings scale down so short headings with an
   accent word (e.g. "Who teaches what") stay on one line */
@media (max-width: 767px) {
  :root {
    --adc-fs-h2:        clamp(1.75rem, 7.5vw, 2.125rem);
    --adc-fs-h2-lg:     clamp(1.875rem, 8.5vw, 2.375rem);
  }
}

/* ==========================================================================
   2. Base and typography
   ========================================================================== */

h1 { font-size: var(--adc-fs-h1); font-weight: 200; line-height: 1.06; letter-spacing: -0.02em; }
h2 { font-size: var(--adc-fs-h2); font-weight: 200; line-height: 1.1;  letter-spacing: -0.02em; }
h3 { font-size: var(--adc-fs-h3); font-weight: 300; line-height: 1.3; }
h4 { font-size: var(--adc-fs-intro); font-weight: 300; line-height: 1.3; }

/* Guest tutor names – add "adc-gcard-name" to the H3 heading */
h3.adc-gcard-name,
.adc-gcard-name {
  font-family: var(--adc-font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: var(--adc-fs-gcard-name);
  line-height: 1.1;
}

h1, h2, .adc-balance { text-wrap: balance; }

/* ---------- Paragraph spacing ---------- */
/* Overrides Kadence's .single-content p { margin-bottom: 2rem } ("body" outranks it) */
body .single-content p { margin-bottom: var(--adc-p-gap); }
body .single-content p:last-child { margin-bottom: 0; }


/* ---------- Text styles ---------- */
.adc-quote,
.adc-tier,
.adc-strip,
.wp-block-kadence-advancedheading mark.kt-highlight,
:is(h1, h2, h3) mark {
  font-family: var(--adc-font-serif);
  font-style: italic;
  font-weight: 400;
}

.adc-hero-intro { max-width: 34em; }

.adc-intro  { font-size: var(--adc-fs-intro); line-height: 1.6; }
.adc-lead   { font-size: var(--adc-fs-lead);  line-height: 1.5; }
.adc-body   { font-size: var(--adc-fs-body);  line-height: 1.7; }
.single-content p.adc-body { margin-bottom: 0; }
.adc-meta   { font-size: var(--adc-fs-meta);  line-height: 1.6; }
.adc-strip  { font-size: var(--adc-fs-strip); line-height: 1.5; }
.adc-quote  { font-size: var(--adc-fs-quote); line-height: 1.22; }
.adc-tier   { font-size: var(--adc-fs-tier);  line-height: 1.05; }
.adc-small  { font-size: var(--adc-fs-small); line-height: 1.5; }
.adc-h2-lg  { font-size: var(--adc-fs-h2-lg); line-height: 1.05; }

.adc-pullquote {
  font-family: var(--adc-font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: var(--adc-fs-pullquote);
  line-height: 1.25;
}

/* Contact details values (Papa Hou, email, phone): Cormorant italic.
   Add "adc-detail" to the paragraph */
.adc-detail {
  font-family: var(--adc-font-serif);
  font-style: italic;
  font-weight: 400;
  font-size: var(--adc-fs-detail);
  line-height: 1.3;
  color: var(--global-palette3); /* Contrast 1 */
}
.adc-detail a { color: inherit; text-decoration: none; }
.adc-detail a:hover,
.adc-detail a:focus-visible { color: var(--global-palette2); /* Accent 2 */ }

/* Full-length testimonials: add "adc-quote--long" (with adc-quote) or "adc-pullquote--long" (with adc-pullquote)
   to each paragraph of the quote */
.adc-quote.adc-quote--long,
.adc-pullquote.adc-pullquote--long { font-size: var(--adc-fs-quote-long); line-height: 1.45; max-width: 44em; margin-left: auto; margin-right: auto; }
body .single-content p.adc-quote--long,
body .single-content p.adc-pullquote--long { margin-bottom: var(--adc-p-gap); }
body .single-content p.adc-quote--long:last-child,
body .single-content p.adc-pullquote--long:last-child { margin-bottom: 0; }
/* The Kadence Section stacks blocks with its own gap (about 2rem). In a column
   holding a long quote, close that gap so paragraphs sit var(--adc-p-gap) apart */
.kt-inside-inner-col:has(> p.adc-quote--long),
.kt-inside-inner-col:has(> p.adc-pullquote--long) { row-gap: 0; gap: 0; }
.kt-inside-inner-col:has(> p.adc-quote--long) > .adc-label,
.kt-inside-inner-col:has(> p.adc-pullquote--long) > .adc-label { margin-bottom: 1.25em; }
.kt-inside-inner-col:has(> p.adc-quote--long) > .adc-attribution,
.kt-inside-inner-col:has(> p.adc-pullquote--long) > .adc-attribution { margin-top: 1.5em; }

.single-content p.adc-placeholder { margin: 0; }

/* Accent word inside a heading */
.wp-block-kadence-advancedheading mark.kt-highlight,
h1 mark.kt-highlight,
h2 mark.kt-highlight,
h3 mark.kt-highlight,
:is(h1, h2, h3) mark {
  font-size: var(--adc-accent-scale);
  line-height: 1;
  color: var(--global-palette1); /* Accent 1 */
  background: none;
}

/* Name and role (must stay after the accent rule) */
.adc-attribution { font-size: var(--adc-fs-meta); font-weight: 300; line-height: 1.4; }
.adc-attribution mark,
.adc-attribution mark.kt-highlight {
  display: block;          /* role sits on its own line under the name */
  margin-top: 0.15em;
  white-space: nowrap;
  background: none;
  font-family: inherit;
  font-style: normal;
  font-weight: 300;
  font-size: var(--adc-fs-small);
  color: var(--global-palette1); /* Accent 1 */
}

/* ==========================================================================
   3. Global components
   ========================================================================== */

/* ---------- Hero image ---------- */
/* Desktop: image fills the column; row min-height sets the height */
@media (min-width: 1025px) {
  .adc-hero-img .kt-inside-inner-col {
    position: relative;
    height: 100%;
  }
  .adc-hero-img .wp-block-kadence-image {
    position: absolute;
    inset: 0;
    margin: 0;
  }
  .adc-hero-img .wp-block-kadence-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 80%;
  }
}

/* Tablet: wide crop, keep head, arms and arabesque line */
@media (max-width: 1024px) {
  .adc-hero-img .wp-block-kadence-image { margin: 0; }
  .adc-hero-img .wp-block-kadence-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: 50% 28%;
  }
}

/* Mobile: portrait crop shows the whole dancer, foot included
   (Programmes hero overrides this in the mobile block at the end) */
@media (max-width: 767px) {
  .adc-hero-img .wp-block-kadence-image img {
    aspect-ratio: 4 / 5;
    object-position: 50% 80%;
  }
}

/* ---------- Labels ---------- */
.adc-label {
  --adc-label-colour: var(--global-palette6); /* Contrast 4 */
  margin: 0;
  font-size: var(--adc-fs-label);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--adc-label-colour);
}
.single-content p.adc-label { margin: 0; }

/* On dark rows: hero, director, footer */
.adc-label--on-dark { --adc-label-colour: #C9C2C8; }
.adc-label--centre  { justify-content: center; }

/* With the pink lead-in line */
.adc-label--line {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}
.adc-label--line::before {
  content: "";
  flex: 0 0 2.25rem;
  height: 1px;
  background: linear-gradient(90deg, #FE0845, #FE1386);
}

/* ---------- Buttons ---------- */
/* All Kadence buttons: square corners, tighter lettering, no mid-label breaks */
.kb-buttons-wrap .kb-button {
  border-radius: 0;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

/* A pair of buttons with more room between them */
.kb-buttons-wrap.adc-btn-row { gap: 0.75em 2em; }

/* White button, for dark rows */
.kb-buttons-wrap .kb-button.adc-btn--light {
  background: #fff;
  border-color: #fff;
  color: var(--global-palette3); /* Contrast 1 */
}
.kb-buttons-wrap .kb-button.adc-btn--light:hover,
.kb-buttons-wrap .kb-button.adc-btn--light:focus-visible {
  background: var(--global-palette2); /* Accent 2 */
  border-color: var(--global-palette2);
  color: #fff;
}

/* Text link with arrow */
.kb-buttons-wrap .kb-button.adc-btn--text {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding-left: 0;
  padding-right: 0;
  gap: 1.35em;
  color: var(--global-palette3); /* Contrast 1 */
}
.kb-buttons-wrap .kb-button.adc-btn--text::after {
  content: "\2192";
  margin-left: 0.3em;
  font-size: 1.25em;
  line-height: 1;
  letter-spacing: 0;
}
.kb-buttons-wrap .kb-button.adc-btn--text:hover,
.kb-buttons-wrap .kb-button.adc-btn--text:focus-visible {
  background: transparent;
  color: var(--global-palette2); /* Accent 2 */
}

/* Text link with down arrow (jumps to a section on the same page) */
.kb-buttons-wrap .kb-button.adc-btn--text.adc-btn--down::after { content: "\2193"; }

/* Text link on dark rows */
.kb-buttons-wrap .kb-button.adc-btn--text.adc-btn--on-dark { color: #fff; }
.kb-buttons-wrap .kb-button.adc-btn--text.adc-btn--on-dark:hover,
.kb-buttons-wrap .kb-button.adc-btn--text.adc-btn--on-dark:focus-visible { color: #FF7CA3; }

/* ---------- On the pink band ---------- */
.adc-on-pink,
.adc-on-pink h1, .adc-on-pink h2, .adc-on-pink h3,
.adc-on-pink p, .adc-on-pink a:not(.kb-button) { color: #fff; }

.adc-on-pink .adc-label { --adc-label-colour: rgba(255,255,255,0.85); }
.adc-on-pink .adc-label--line::before { background: #fff; }
.adc-on-pink mark.kt-highlight { color: #fff; }

.adc-on-pink .kb-buttons-wrap .kb-button.adc-btn--text { color: #fff; }
.adc-on-pink .kb-buttons-wrap .kb-button.adc-btn--text:hover,
.adc-on-pink .kb-buttons-wrap .kb-button.adc-btn--text:focus-visible { color: var(--global-palette3); }

/* ---------- "Danced with" banner (ADC – Companies strip pattern) ---------- */
/* Row Layout:   adc-strip-banner
   Label:        adc-label adc-label--on-dark
   List block:   adc-strip
   List content: each company in <span class="adc-strip-item">, separators in <span class="adc-sep"> */
.adc-strip-banner {
  border-top: 1px solid #2B272C;
}
body .adc-strip-banner .adc-label {   /* "body" beats .single-content p.adc-label { margin: 0 } */
  margin-bottom: 0.75em;
}
.adc-strip-banner .adc-strip {
  margin: 0;
  color: #E9E4E8;
}
.adc-strip-item { white-space: nowrap; }
.adc-sep { margin: 0 0.4em; color: var(--global-palette6); }


/* ---------- "On this page" contents bar ---------- */
/* Kadence Table of Contents block with "adc-toc" (Advanced → Additional CSS class).
   Shows as a single line of section links under the hero, wrapping on small screens */
body .adc-toc.adc-toc {
  box-sizing: border-box;
  max-width: var(--global-content-width);
  margin: 0 auto;
  padding: 0.9em var(--global-content-edge-padding);
  border: 0;
  border-bottom: 1px solid #ECE9EC;
  background: transparent;
  box-shadow: none;
}
/* "body" + doubled class outrank Kadence's per-block TOC styles */
body .adc-toc.adc-toc .kb-table-of-content-wrap {
  display: flex;               /* label and links on one line, wrapping on small screens */
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5em 2.5em;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
body .adc-toc.adc-toc .kb-table-of-contents-title-wrap { padding: 0; margin: 0; }
body .adc-toc.adc-toc .kb-table-of-contents-title {
  font-size: var(--adc-fs-toc-title);
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--global-palette6); /* Contrast 4 */
}
body .adc-toc.adc-toc ul.kb-table-of-content-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35em 1.75em;
  margin: 0;
  padding: 0;
  list-style: none;
}
body .adc-toc.adc-toc ul.kb-table-of-content-list li { margin: 0; padding: 0; }
body .adc-toc.adc-toc ul.kb-table-of-content-list li::before { display: none; }
body .adc-toc.adc-toc ul.kb-table-of-content-list a {
  font-size: var(--adc-fs-toc-link);
  color: var(--global-palette3); /* Contrast 1 */
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}
body .adc-toc.adc-toc ul.kb-table-of-content-list a:hover,
body .adc-toc.adc-toc ul.kb-table-of-content-list a:focus-visible {
  color: var(--global-palette2); /* Accent 2 */
  border-bottom-color: currentColor;
}
/* Heading accent words stay plain inside the contents list */
body .adc-toc.adc-toc ul.kb-table-of-content-list mark {
  font: inherit;
  color: inherit;
  background: none;
}
/* Headings the contents bar jumps to land clear of the header */
:is(h2, h3)[id] { scroll-margin-top: 5em; }


/* ---------- Photo breaks ---------- */
/* Full-width photo breaks – add "adc-photo-break" to the Advanced Image block (Image Ratio on) */
.wp-block-kadence-image.adc-photo-break { margin: 0; }
.wp-block-kadence-image.adc-photo-break .kb-is-ratio-image {
  padding-bottom: 0;
  aspect-ratio: auto;
  height: clamp(16em, 38vw, 32em);
}

/* ==========================================================================
   4. Header and footer
   ========================================================================== */

/* Footer: tighten heading-to-content gap on mobile */
@media (max-width: 767px) {
  .site-footer .widget-title,
  .site-footer .wp-block-heading,
  .site-middle-footer-inner-wrap .widget { margin-bottom: 0.5em; }
  .site-footer .wp-block-heading + p,
  .site-footer .widget-title + * { margin-top: 0; }
}

/* ---------- Rows set to "None" width inside full-width sections ---------- */
/* These rows miss Kadence's edge padding, so their content sits further left than
   full-width rows and runs to the screen edge below the content width.
   Gives them the same edge padding as full-width rows, at every screen size.
   Covers every copy of the unsynced patterns in one place. */
.wp-block-group.alignfull > .wp-block-group__inner-container > .kb-row-layout-wrap.alignnone > .kt-row-column-wrap {
  padding-left: var(--global-content-edge-padding);
  padding-right: var(--global-content-edge-padding);
}


/* ==========================================================================
   5. Page specific
   ========================================================================== */

/* ---------- 5a. Home ---------- */


/* ---------- 5b. Programmes ---------- */
/* Programmes hero mobile crop is in section 7 */


/* ---------- 5c. Tutors: faculty list ---------- */
/* Faculty tutor list – add class "adc-tutor-list" to the List block */
.adc-tutor-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.adc-tutor-list li {
  margin: 0;
  padding: 0.7em 0;
  border-bottom: 1px solid #ECE9EC;
  font-size: var(--adc-fs-small);
  line-height: 1.6;
  color: #5F5A60;
}
.adc-tutor-list li a {
  display: block;
  font-size: var(--adc-fs-body);
  font-weight: 400;
  color: #121013;
  text-decoration: none;
}
.adc-tutor-list li a:hover {
  color: #D4003A;
}

/* ---------- 5c. Tutors: headshots ---------- */
/* Also used for guest tutor cards */
.adc-headshot { position: relative; }
.adc-headshot img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 25%;
  filter: grayscale(1) contrast(1.04);
}
.adc-headshot.adc-crop-top img  { object-position: center 10%; }
.adc-headshot.adc-crop-mid img  { object-position: center 40%; }
.adc-headshot.adc-crop-left img { object-position: 40% center; }

/* Tutor cards: pink tint over the photo on hover */
.adc-headshot::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--global-palette1); /* Accent 1 */
  mix-blend-mode: multiply;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.kb-section-has-link:hover .adc-headshot::after,
.kb-section-has-link:focus-within .adc-headshot::after { opacity: 0.25; }

/* Tutor cards: name picks up the accent on hover */
.kb-section-has-link h3,
.kb-section-has-link h4 { transition: color 0.25s ease; }
.kb-section-has-link:hover h3,
.kb-section-has-link:hover h4,
.kb-section-has-link:focus-within h3,
.kb-section-has-link:focus-within h4 { color: var(--global-palette2); /* Accent 2 */ }

/* ---------- 5c. Tutors: guest tutor bios ---------- */
/* Add "adc-gcard-bio" to the Accordion block (Advanced → Additional CSS class) */
.adc-gcard-bio .kt-accordion-wrap .kt-accordion-pane {
  margin: 0;
  border: 0;
  background: transparent;
}

/* "Read bio" title */
.adc-gcard-bio .kt-accordion-wrap .kt-blocks-accordion-header {
  padding: 0.8em 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid #ECE9EC !important;
  border-radius: 0;
  box-shadow: none;
  color: var(--global-palette3); /* Contrast 1 */
  font-size: var(--adc-fs-small);
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.adc-gcard-bio .kt-accordion-wrap .kt-blocks-accordion-header:hover,
.adc-gcard-bio .kt-accordion-wrap .kt-blocks-accordion-header:focus-visible {
  background: transparent;
  color: var(--global-palette2); /* Accent 2 */
}

/* Down/up arrow instead of Kadence's chevron */
.adc-gcard-bio .kt-blocks-accordion-icon-trigger { display: none; }
.adc-gcard-bio .kt-blocks-accordion-title::after { content: " \2193"; }
.adc-gcard-bio .kt-accordion-panel-active .kt-blocks-accordion-title::after { content: " \2191"; }

/* Bio text */
.adc-gcard-bio .kt-accordion-wrap .kt-accordion-panel-inner {
  padding: 0.25em 0 0.5em;
  background: transparent;
  border: 0;
}
.adc-gcard-bio .kt-accordion-panel-inner p {
  margin: 0 0 0.8em;
  font-size: var(--adc-fs-small);
  line-height: 1.6;
}

/* ---------- 5c. Tutors: anchors ---------- */
/* 1. Hover: a down arrow slides in after the name */
.adc-tutor-list li a::after {
  content: "\2193";
  display: inline-block;
  margin-left: 0.4em;
  color: var(--global-palette1); /* Accent 1 */
  opacity: 0;
  transform: translateY(-0.35em);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.adc-tutor-list li a:hover::after,
.adc-tutor-list li a:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

/* 2. Smooth scroll, landing clear of the header */
html { scroll-behavior: smooth; }
.kb-row-layout-wrap[id] { scroll-margin-top: 5em; }

/* 3. Arrival: name glows pink, label line draws in */
@keyframes adc-arrive {
  0%, 30% { color: var(--global-palette1); }
}
@keyframes adc-line-draw {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
.kb-row-layout-wrap:target .adc-tier,
.kb-row-layout-wrap:has(:target) .adc-tier,
.kb-row-layout-wrap.adc-arrived .adc-tier {
  animation: adc-arrive 1.8s ease-out;
}
.kb-row-layout-wrap:target .adc-label--line::before,
.kb-row-layout-wrap:has(:target) .adc-label--line::before,
.kb-row-layout-wrap.adc-arrived .adc-label--line::before {
  animation: adc-line-draw 0.9s ease-out;
  transform-origin: left center;
}

/* Respect "reduce motion" settings */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .kb-row-layout-wrap:target .adc-tier,
  .kb-row-layout-wrap:has(:target) .adc-tier,
  .kb-row-layout-wrap.adc-arrived .adc-tier,
  .kb-row-layout-wrap:target .adc-label--line::before,
  .kb-row-layout-wrap:has(:target) .adc-label--line::before,
  .kb-row-layout-wrap.adc-arrived .adc-label--line::before { animation: none; }
  .adc-tutor-list li a::after { transition: none; }
}

/* ---------- 5d. Contact ---------- */



/* ==========================================================================
   6. TEMPORARY: image placeholders (remove before launch)
   ========================================================================== */

.adc-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 5;
  margin: 0;
  padding: 2em;
  border: 1px dashed #A9A2A8;
  background: var(--global-palette7); /* Base 1 */
  color: var(--global-palette6);      /* Contrast 4 */
  font-size: 0.875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
}
.adc-placeholder--on-dark {
  border-color: #5A545A;
  background: #1C191D;
  color: #C9C2C8;
}
.adc-placeholder--wide { aspect-ratio: 3 / 2; }

/* ==========================================================================
   7. Mobile (max 767px)
      Keep this section last so it overrides everything above.
   ========================================================================== */

@media (max-width: 767px) {

  /* Programmes hero: wider crop so all dancers fit */
  .adc-hero-img--centre .wp-block-kadence-image img {
    aspect-ratio: 4 / 3;
    object-position: 50% 40%;
  }

  /* Buttons: left aligned as a group, more padding, wrap, never overflow.
     Doubled classes outrank Kadence's per-block button CSS */
  body .wp-block-kadence-advancedbtn.kb-buttons-wrap.kb-buttons-wrap {
    justify-content: flex-start;
  }
  body .kb-buttons-wrap .kb-button.kb-button.kb-button {
    max-width: 100%;
    white-space: normal;
    justify-content: center;
    text-align: center;
    line-height: 1.3;
    padding: var(--adc-btn-pad-y-mobile) var(--adc-btn-pad-x-mobile);
    font-size: var(--adc-fs-btn-mobile);
    letter-spacing: 0.1em;
  }

  /* Text buttons with arrows: larger, no tracking */
  body .kb-buttons-wrap .kb-button.kb-button.kb-button.adc-btn--text {
    padding-left: 0;
    padding-right: 0;
    justify-content: flex-start;
    text-align: left;
    font-size: var(--adc-fs-btn-text-mobile);
    letter-spacing: 0;
    gap: 0.5em;
  }

  /* "Our tutors have danced with" banner pattern: smaller list */
  /* Add "adc-strip-banner" to the banner's Row Layout (Advanced → Additional CSS class).
     Covers whichever block holds the list, and beats per-block font sizes */
  .adc-strip,
  body .adc-strip-banner :is(p, h2, h3, h4, li, .wp-block-kadence-advancedheading):not(.adc-label) {
    font-size: var(--adc-fs-strip-mobile);
    line-height: 1.5;
  }
  .adc-sep { margin: 0 0.15em; }

  /* Tighter space between paragraphs */
  body .single-content p { margin-bottom: var(--adc-p-gap-mobile); }
  body .single-content p:last-child { margin-bottom: 0; }

  /* Labels: tighter tracking and shorter line so they sit on one line */
  .adc-label,
  .single-content p.adc-label {
    font-size: var(--adc-fs-label-mobile);
    letter-spacing: 0.12em;
    gap: 0.625em;
  }
  .adc-label--line::before { flex-basis: 1.5em; }

}

/* ----- FORM -----*/

/* "I'd like to" radio options styled as buttons */
.adc-pill-options .kb-radio-check-item {
  display: inline-flex;
  margin: 0 0.5em 0.5em 0;
}

/* Hide the round dot but keep it usable by keyboard and screen readers */
.adc-pill-options input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}

/* The button look */
.adc-pill-options input[type="radio"] + label {
  padding: 0.75em 1.25em;
  border: 1px solid #ddd;
  background: #fff;
  font-size: var(--adc-fs-small);
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.adc-pill-options input[type="radio"] + label:hover {
  border-color: #141414;
}

/* Selected */
.adc-pill-options input[type="radio"]:checked + label {
  background: #141414;
  border-color: #141414;
  color: #fff;
}

/* Keyboard focus */
.adc-pill-options input[type="radio"]:focus-visible + label {
  outline: 2px solid var(--global-palette1);
  outline-offset: 2px;
}

/* Form field labels */
.kb-adv-form-label {
 font-size: var(--adc-fs-form-label);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  margin-bottom: 0.6em;
}

/* Required asterisk in brand pink */
.kb-adv-form-required {
  color: var(--global-palette1);
}
