.elementor-kit-9{--e-global-color-primary:#6F18AA;--e-global-color-secondary:#EAD2F7;--e-global-color-text:#353535;--e-global-color-accent:#EF6136;--e-global-color-2b179f8:#F7EDFD;--e-global-color-71476c7:#FFFFFF;--e-global-color-79a1bb3:#A187B0;--e-global-color-kfdeep01:#4E0E7A;--e-global-color-93f1e89:#F7EDFD;--e-global-typography-primary-font-family:"Sunsive";--e-global-typography-primary-font-size:60px;--e-global-typography-primary-font-weight:400;--e-global-typography-primary-line-height:1.05em;--e-global-typography-primary-letter-spacing:-0.02em;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-size:15px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Dreaming Outloud";--e-global-typography-accent-font-size:42px;--e-global-typography-accent-font-weight:400;--e-global-typography-accent-line-height:1em;--e-global-typography-kfh1-font-family:"Sunsive";--e-global-typography-kfh1-font-size:80px;--e-global-typography-kfh1-font-weight:400;--e-global-typography-kfh1-line-height:1.02em;--e-global-typography-kfh1-letter-spacing:-0.02em;--e-global-typography-kfhero-font-family:"Sunsive";--e-global-typography-kfhero-font-size:150px;--e-global-typography-kfhero-font-weight:400;--e-global-typography-kfhero-line-height:0.95em;--e-global-typography-kfhero-letter-spacing:-0.02em;--e-global-typography-kfh2-font-family:"Sunsive";--e-global-typography-kfh2-font-size:60px;--e-global-typography-kfh2-font-weight:400;--e-global-typography-kfh2-line-height:1.04em;--e-global-typography-kfh2-letter-spacing:-0.02em;--e-global-typography-kfh3-font-family:"Sunsive";--e-global-typography-kfh3-font-size:28px;--e-global-typography-kfh3-font-weight:400;--e-global-typography-kfh3-line-height:1.12em;--e-global-typography-kfeyebrow-font-family:"Montserrat";--e-global-typography-kfeyebrow-font-size:12.5px;--e-global-typography-kfeyebrow-font-weight:600;--e-global-typography-kfeyebrow-text-transform:uppercase;--e-global-typography-kfeyebrow-line-height:1.3em;--e-global-typography-kfeyebrow-letter-spacing:0.22em;--e-global-typography-kflead-font-family:"Montserrat";--e-global-typography-kflead-font-size:20px;--e-global-typography-kflead-font-weight:400;--e-global-typography-kflead-line-height:1.6em;--e-global-typography-kfsmall-font-family:"Montserrat";--e-global-typography-kfsmall-font-size:14px;--e-global-typography-kfsmall-font-weight:400;--e-global-typography-kfsmall-line-height:1.6em;--e-global-typography-kfbtn-font-family:"Montserrat";--e-global-typography-kfbtn-font-size:15px;--e-global-typography-kfbtn-font-weight:600;--e-global-typography-kfbtn-line-height:1.2em;--e-global-typography-kfbtn-letter-spacing:0.02em;--e-global-typography-kfnav-font-family:"Montserrat";--e-global-typography-kfnav-font-size:15px;--e-global-typography-kfnav-font-weight:500;--e-global-typography-kfnav-line-height:1.2em;--e-global-typography-kftag-font-family:"Montserrat";--e-global-typography-kftag-font-size:12px;--e-global-typography-kftag-font-weight:600;--e-global-typography-kftag-text-transform:uppercase;--e-global-typography-kftag-line-height:1.4em;--e-global-typography-kftag-letter-spacing:0.16em;background-color:var( --e-global-color-2b179f8 );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-9 button,.elementor-kit-9 input[type="button"],.elementor-kit-9 input[type="submit"],.elementor-kit-9 .elementor-button{background-color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );color:var( --e-global-color-71476c7 );border-style:solid;border-width:0px 0px 0px 0px;border-color:var( --e-global-color-accent );border-radius:100px 100px 100px 100px;}.elementor-kit-9 button:hover,.elementor-kit-9 button:focus,.elementor-kit-9 input[type="button"]:hover,.elementor-kit-9 input[type="button"]:focus,.elementor-kit-9 input[type="submit"]:hover,.elementor-kit-9 input[type="submit"]:focus,.elementor-kit-9 .elementor-button:hover,.elementor-kit-9 .elementor-button:focus{background-color:var( --e-global-color-accent );color:var( --e-global-color-71476c7 );border-style:solid;border-color:var( --e-global-color-secondary );}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-kit-9 a{color:var( --e-global-color-primary );font-weight:600;}.elementor-kit-9 a:hover{color:var( --e-global-color-kfdeep01 );}.elementor-kit-9 h1{color:var( --e-global-color-primary );}.elementor-kit-9 h2{color:var( --e-global-color-primary );}.elementor-kit-9 h3{color:var( --e-global-color-primary );}.elementor-kit-9 h4{color:var( --e-global-color-primary );}.elementor-kit-9 h5{color:var( --e-global-color-primary );}.elementor-kit-9 h6{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-9 label{color:var( --e-global-color-primary );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-size:var( --e-global-typography-accent-font-size );font-weight:var( --e-global-typography-accent-font-weight );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-9 input:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea,.elementor-kit-9 .elementor-field-textual{color:var( --e-global-color-text );accent-color:var( --e-global-color-accent );background-color:var( --e-global-color-93f1e89 );border-style:solid;border-width:0px 0px 0px 0px;border-color:var( --e-global-color-primary );border-radius:10px 10px 10px 10px;padding:7px 15px 8px 15px;}.elementor-kit-9 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-9 textarea:focus,.elementor-kit-9 .elementor-field-textual:focus{color:var( --e-global-color-text );accent-color:var( --e-global-color-primary );background-color:var( --e-global-color-93f1e89 );border-style:solid;border-width:0px 0px 1px 0px;border-color:var( --e-global-color-primary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1280px;}.e-con{--container-max-width:1280px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){margin-block-end:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-9{--e-global-typography-primary-font-size:46px;--e-global-typography-secondary-font-size:15px;--e-global-typography-text-font-size:17px;--e-global-typography-accent-font-size:36px;--e-global-typography-kfh1-font-size:60px;--e-global-typography-kfhero-font-size:96px;--e-global-typography-kfh2-font-size:46px;--e-global-typography-kfh3-font-size:26px;--e-global-typography-kfeyebrow-font-size:12.5px;--e-global-typography-kflead-font-size:19px;--e-global-typography-kfsmall-font-size:14px;--e-global-typography-kfbtn-font-size:15px;--e-global-typography-kfnav-font-size:15px;--e-global-typography-kftag-font-size:12px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-9 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-9 button,.elementor-kit-9 input[type="button"],.elementor-kit-9 input[type="submit"],.elementor-kit-9 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );border-width:1px 1px 1px 1px;}.elementor-kit-9 label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-9{--e-global-typography-primary-font-size:34px;--e-global-typography-secondary-font-size:15px;--e-global-typography-text-font-size:16px;--e-global-typography-accent-font-size:30px;--e-global-typography-kfh1-font-size:42px;--e-global-typography-kfhero-font-size:56px;--e-global-typography-kfh2-font-size:34px;--e-global-typography-kfh3-font-size:22px;--e-global-typography-kfeyebrow-font-size:12px;--e-global-typography-kflead-font-size:18px;--e-global-typography-kfsmall-font-size:14px;--e-global-typography-kfbtn-font-size:15px;--e-global-typography-kfnav-font-size:20px;--e-global-typography-kftag-font-size:12px;font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );}.elementor-kit-9 a{line-height:1.4em;letter-spacing:1px;}.elementor-kit-9 h6{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-9 button,.elementor-kit-9 input[type="button"],.elementor-kit-9 input[type="submit"],.elementor-kit-9 .elementor-button{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-kit-9 label{font-size:var( --e-global-typography-accent-font-size );line-height:var( --e-global-typography-accent-line-height );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Component headings/texts: the design class sets the look (rules below can override these defaults) */
.kf-hc { font-family: var(--font-display); font-weight: 400; color: var(--purple); line-height: 1.05; letter-spacing: -0.02em; }
.kf-hc-h1 { font-size: var(--fs-h1); line-height: 1.02; } .kf-hc-h2 { font-size: var(--fs-h2); line-height: 1.02; }
.kf-hc-h3 { font-size: var(--fs-h3); line-height: 1.12; letter-spacing: -0.01em; } .kf-hc-h4 { font-size: var(--fs-h4); line-height: 1.3; letter-spacing: 0; font-weight: 500; }
.kf-hc-p, .kf-hc-div { font-family: var(--font-body); font-size: var(--fs-body); letter-spacing: 0; line-height: 1.6; }
.elementor-widget-heading.kf-hc .elementor-heading-title, .elementor-widget-heading.kf-hc-script .elementor-heading-title { font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; line-height: inherit; margin: 0; }
.section--purple .kf-hc, .cta-band .kf-hc, .offer-card--featured .kf-hc, .price-option--featured .kf-hc { color: var(--lilac-light); }
.kf-tc { color: var(--grey); }
.section--purple .kf-tc, .cta-band .kf-tc { color: var(--lilac-light); }

/* =========================================================
   Kelly Fantazi — site styles
   Layout uses flexbox only (maps to Elementor flex containers).
   Sections: tokens · base · layout · components · page sections · showpieces
   ========================================================= */

/* ---------- Tokens ---------- */
:root {
  --purple: #6F18AA;
  --purple-deep: #4E0E7A;
  --lilac: #EAD2F7;
  --lilac-light: #F7EDFD;
  --orange: #EF6136;
  --grey: #353535;
  --lavender: #A187B0;
  --white: #FFFFFF;

  --font-display: "Sunsive", "Montserrat", sans-serif;
  --font-body: "Montserrat", system-ui, sans-serif;
  --font-script: "Dreaming Outloud", "Caveat", cursive;

  --fs-hero: clamp(2.6rem, min(5.5vw, 10.5vh), 5.6rem);
  --fs-h1: clamp(2.6rem, 5.6vw, 5rem);
  --fs-h2: clamp(2.1rem, 4.2vw, 3.75rem);
  --fs-h3: clamp(1.35rem, 1.95vw, 1.75rem);
  --fs-h4: 1.2rem;
  --fs-lead: clamp(1.1rem, 1.4vw, 1.25rem);
  --fs-feature: var(--fs-h3); /* display-font statements and notes share the card-title size */
  --fs-quote: clamp(1.5rem, 2.6vw, 2.25rem); /* pull quotes, featured testimonial */
  --fs-body: 1.0625rem;
  --fs-small: 0.875rem;
  --fs-script: clamp(1.8rem, 3vw, 2.6rem);

  --space-section: clamp(5rem, 11vw, 10rem);
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --container: 1280px;
  --container-narrow: 820px;
  --radius: 28px;
  --radius-pill: 999px;
  --ease: cubic-bezier(.22, .61, .36, 1);
  --header-h: 84px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.7;
  color: var(--grey);
  background: var(--lilac-light);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--purple); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { color: var(--purple-deep); }
:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; border-radius: 4px; }
p { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--purple);
  margin: 0 0 .5em;
  line-height: 1.02;
  letter-spacing: -0.02em;
}
h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.12; letter-spacing: -0.01em; }
h4 { font-size: var(--fs-h4); line-height: 1.3; letter-spacing: 0; font-weight: 500; }

.skip-link {
  position: absolute; left: 1rem; top: -100px; z-index: 1000;
  background: var(--purple); color: var(--white); padding: .75rem 1.25rem; border-radius: var(--radius-pill);
}
.skip-link:focus { top: 1rem; color: var(--white); }
.visually-hidden {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ---------- Layout (flex only) ---------- */





.section--purple { color: var(--lilac-light); }
.section--purple h2, .section--purple h3 { color: var(--lilac-light); }




















.text-center { text-align: center; }
.mx-auto { margin-inline: auto; }
.mt-lg { margin-top: clamp(2.5rem, 5vw, 4rem); }
.mb-lg { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.max-copy { max-width: 760px; }

@media (max-width: 900px) {
  .col, .col-40, .col-45, .col-55, 
  
}

/* ---------- Typography helpers ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--font-body); font-size: .78rem; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase; color: var(--purple);
  margin: 0 0 1.5rem;
}
.eyebrow::before {
  content: ""; width: 1.05rem; height: 1.05rem; flex: none;
  background: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/spark-orange.svg") center / contain no-repeat;
}
.section--purple .eyebrow { color: var(--lilac); }
.lead { font-size: var(--fs-lead); line-height: 1.6; }
.script {
  font-family: var(--font-script); font-size: var(--fs-script); font-weight: 400;
  color: var(--orange); line-height: 1; letter-spacing: 0;
}
.headline-xl { font-size: var(--fs-h1); }
.headline-giant { font-size: var(--fs-h1); line-height: 1; }
.muted { color: var(--lavender); }
.small { font-size: var(--fs-small); }

/* ---------- Image treatments ---------- */
.img-cover { width: 100%; height: 100%; object-fit: cover; }
.frame { position: relative; }
.frame img { width: 100%; object-fit: cover; }
.frame--arch img { border-radius: 999px 999px var(--radius) var(--radius); aspect-ratio: 4 / 5.4; }
.frame--round img { border-radius: var(--radius); aspect-ratio: 4 / 5; }
.frame--circle img { border-radius: 50%; aspect-ratio: 1; }
.frame--tall img { aspect-ratio: 3 / 4.4; border-radius: var(--radius); }
.frame--wide img { aspect-ratio: 16 / 10; border-radius: var(--radius); }
.frame-offset { position: relative; }
.frame-offset::before {
  content: ""; position: absolute; inset: 8% -6% -6% 10%; border-radius: var(--radius);
  background: var(--lilac); z-index: -1;
}
.section--lilac .frame-offset::before { background: var(--lilac-light); }
.frame-caption {
  font-family: var(--font-script); color: var(--orange); font-size: 1.9rem; line-height: 1;
  margin-top: 1rem; transform: rotate(-3deg);
}
.spark, .frame .spark, .page-hero-media .spark { position: absolute; width: clamp(38px, 4.5vw, 64px); aspect-ratio: auto; border-radius: 0; height: auto; pointer-events: none; z-index: 2; }
.spark--tl { top: -4%; left: -5%; }
.spark--br { bottom: 6%; right: -4%; }
.spark--tr { top: 4%; right: -4%; }

.photo-pair { display: flex; align-items: flex-start; gap: clamp(1rem, 2.5vw, 2rem); position: relative; }
.photo-pair > .frame:first-child { flex: 1 1 58%; }
.photo-pair > .frame:last-child { flex: 1 1 42%; margin-top: clamp(4rem, 12vw, 9rem); }

/* ---------- Icon box ---------- */
.icon-box {
  background: var(--lilac-light); border-radius: var(--radius); padding: clamp(1.75rem, 3vw, 2.5rem);
  display: flex; flex-direction: column; gap: .9rem;
  transition: transform .4s var(--ease), box-shadow .4s var(--ease);
}
.section--light .icon-box, .section--white .icon-box { background: var(--white); }
.icon-box:hover { transform: translateY(-4px); box-shadow: 0 20px 50px rgba(111, 24, 170, .08); }
.icon-box-icon { width: 52px; height: 52px; object-fit: contain; }
.icon-box-title { font-size: var(--fs-h3); margin: .4rem 0 0; }
.icon-box-text { margin: 0; }
.icon-box--plain { background: none !important; padding: 0; box-shadow: none !important; transform: none !important; }

/* ---------- Statement list ("Is this you?") ---------- */
.statement-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.statement-list li {
  font-family: var(--font-display); color: var(--purple); font-size: var(--fs-feature);
  line-height: 1.3; letter-spacing: -0.015em;
  padding-block: clamp(1rem, 2vw, 1.6rem); border-bottom: 1px solid rgba(111, 24, 170, .18);
  display: flex; align-items: baseline; gap: clamp(1rem, 2vw, 2rem);
}
.statement-list li:first-child { border-top: 1px solid rgba(111, 24, 170, .18); }
.statement-list .statement-num { font-family: var(--font-body); font-size: .8rem; font-weight: 600; letter-spacing: .15em; color: var(--orange); flex: none; transform: translateY(-.4em); }

/* ---------- Process steps ---------- */
.steps { display: flex; flex-wrap: wrap; gap: clamp(1.5rem, 3vw, 2.5rem); counter-reset: step; }
.step { flex: 1 1 260px; border-top: 1.5px solid var(--purple); padding-top: 1.5rem; }
.step-number { font-family: var(--font-display); font-size: clamp(2.4rem, 3.6vw, 3.25rem); color: var(--lilac); line-height: 1; margin: 0 0 .5rem; -webkit-text-stroke: 1px var(--purple); }
.step-title { font-size: var(--fs-h3); margin-bottom: .6rem; }

/* ---------- Pillar detail (Method page) ---------- */
.pillar-detail-name { font-size: var(--fs-h1); line-height: 1; margin-bottom: .2em; }
.pillar-detail-subtitle { font-weight: 600; letter-spacing: .14em; text-transform: uppercase; font-size: .8rem; color: var(--orange); margin-bottom: 1.5rem; }
.pillar-detail-icon { width: 64px; height: 64px; margin-bottom: 1.5rem; }
.pillar-nav { display: flex; flex-wrap: wrap; gap: .75rem; }
.pillar-nav a {
  text-decoration: none; border: 1.5px solid var(--purple); border-radius: var(--radius-pill);
  padding: .65rem 1.3rem; font-size: .85rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  transition: background .3s var(--ease), color .3s var(--ease);
}
.pillar-nav a:hover { background: var(--purple); color: var(--white); }

/* ---------- Accordion (native <details>, maps to Elementor Accordion) ---------- */
.accordion { display: flex; flex-direction: column; border-top: 1px solid rgba(111, 24, 170, .22); }
.accordion-item { border-bottom: 1px solid rgba(111, 24, 170, .22); }
.accordion-title {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1.35rem 0; font-weight: 600; font-size: 1.05rem; color: var(--purple);
}
.accordion-title::-webkit-details-marker { display: none; }
.accordion-title::after {
  content: "+"; font-family: var(--font-body); font-weight: 300; font-size: 1.8rem; line-height: 1; color: var(--orange);
  transition: transform .35s var(--ease); flex: none;
}
.accordion-item[open] > .accordion-title::after { transform: rotate(45deg); }
.accordion-content { padding: 0 3rem 1.6rem 0; }
.section--purple .accordion, .section--purple .accordion-item { border-color: rgba(247, 237, 253, .25); }
.section--purple .accordion-title { color: var(--lilac-light); }

/* ---------- Offer cards ---------- */
.offer-card {
  background: var(--white); border-radius: var(--radius); overflow: hidden;
  display: flex; flex-direction: column;
}
.offer-card-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.offer-card-body { padding: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.offer-card-tag { font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--orange); margin: 0; }
.offer-card-title { font-size: var(--fs-h3); margin: 0; }
.offer-card-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .88rem; color: var(--grey); margin: 0; padding: 0; list-style: none; }
.offer-card-meta li { display: flex; gap: .4rem; }
.offer-card-meta strong { color: var(--purple); font-weight: 600; }
.offer-card .btn-row { margin-top: auto; padding-top: .75rem; }

.offer-feature { background: var(--white); border-radius: calc(var(--radius) * 1.4); padding: clamp(1.5rem, 3vw, 2.5rem); }

/* Placeholder marker — remove once real info is added */
.placeholder {
  display: inline-block; border: 1.5px dashed var(--lavender); color: var(--lavender);
  border-radius: 8px; padding: .05rem .55rem; font-size: .85em; font-style: normal;
}
.placeholder-block {
  border: 1.5px dashed var(--lavender); border-radius: var(--radius); padding: 1.5rem 1.75rem; color: var(--grey); background: rgba(255,255,255,.5);
}

/* ---------- Quote / pull statement ---------- */
.pull-quote {
  font-family: var(--font-display); font-size: var(--fs-quote); line-height: 1.25; color: var(--purple);
  letter-spacing: -0.015em; margin: 0;
}
.section--purple .pull-quote { color: var(--lilac-light); }

/* ---------- Gallery ---------- */
.gallery { display: flex; gap: clamp(.75rem, 1.6vw, 1.25rem); align-items: flex-start; }
.gallery-item { flex: 1 1 0; margin: 0; }
.gallery-item img { width: 100%; aspect-ratio: 3 / 4.2; object-fit: cover; border-radius: var(--radius); }
.gallery-item:nth-child(even) { margin-top: clamp(2rem, 6vw, 5rem); }
@media (max-width: 700px) {
  .gallery { flex-wrap: wrap; }
  .gallery-item { flex: 1 1 calc(50% - .75rem); }
}

/* ---------- Page hero (inner pages) ---------- */
.page-hero { padding-block: clamp(4rem, 9vw, 8rem) clamp(3rem, 6vw, 5rem); background: var(--lilac); position: relative; overflow: hidden; }
.page-hero-title { font-size: var(--fs-h1); margin-bottom: .35em; }
.page-hero .script { display: block; margin-bottom: .75rem; }
.page-hero-media img { border-radius: 999px 999px var(--radius) var(--radius); aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }

/* ---------- Two places (Madeira & online) ---------- */
.place-card { flex: 1 1 340px; display: flex; flex-direction: column; gap: 1.25rem; }
.place-card img { border-radius: var(--radius); aspect-ratio: 5 / 4; object-fit: cover; width: 100%; }

/* ---------- CTA band ---------- */
.cta-band { background: var(--purple); color: var(--lilac-light); padding-block: clamp(5rem, 10vw, 8.5rem); position: relative; overflow: hidden; }
.cta-band h2 { color: var(--lilac-light); font-size: var(--fs-h2); }
.cta-band .script { color: var(--orange); display: block; margin-bottom: .5rem; }
.cta-band-spark { position: absolute; width: clamp(140px, 22vw, 320px); right: -3%; top: -10%; opacity: .9; pointer-events: none; }

/* ---------- Forms ---------- */
.form { display: flex; flex-direction: column; gap: 1.25rem; }
.form-row { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.form-field { flex: 1 1 240px; display: flex; flex-direction: column; gap: .45rem; }
.form-field label { font-size: .85rem; font-weight: 600; color: var(--purple); letter-spacing: .03em; }
.form-field input, .form-field textarea, .form-field select {
  font: inherit; color: var(--grey); background: var(--white); border: 1.5px solid transparent; border-radius: 16px;
  padding: .95rem 1.1rem; transition: border-color .25s var(--ease);
}
.form-field textarea { min-height: 160px; resize: vertical; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus { outline: none; border-color: var(--purple); }
.form-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .9rem; }
.form-check input { margin-top: .35rem; accent-color: var(--purple); width: 18px; height: 18px; flex: none; }
.form-note { font-size: .85rem; color: var(--grey); }
.form-status { font-weight: 600; color: var(--purple); min-height: 1.5em; }

/* ---------- Contact details ---------- */
.contact-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.5rem; }
.contact-list-label { display: block; font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--orange); }
.contact-list-value { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--purple); text-decoration: none; }

/* =========================================================
   SHOWPIECE 1 — Home hero
   Behaviour: assets/js/hero.js (targets classes only)
   ========================================================= */
.hero {
  position: relative; background: var(--lilac); overflow: hidden;
  min-height: calc(100svh - var(--header-h));
  display: flex; align-items: center;
  padding-block: clamp(2.5rem, 6vw, 5rem) clamp(4rem, 8vw, 6rem);
}
.hero-inner { display: flex; align-items: center; gap: clamp(2rem, 4vw, 4rem); position: relative; }
.hero-content { flex: 1 1 58%; position: relative; z-index: 2; }
.hero-headline {
  font-size: var(--fs-hero); line-height: .9; letter-spacing: -0.035em; margin: 0 0 .25em;
  margin-right: clamp(-12rem, -14vw, 0rem); /* lets the headline overlap the portrait */
}
.hero-line { display: block; }
.hero-script { display: block; margin: -.2em 0 1.5rem clamp(0rem, 8vw, 9rem); font-size: clamp(2.2rem, 4.2vw, 3.6rem); transform: rotate(-4deg); transform-origin: left; }
.hero-text { font-size: var(--fs-lead); max-width: 31rem; line-height: 1.6; }
.hero-media { flex: 1 1 42%; position: relative; align-self: stretch; display: flex; align-items: center; }
.hero-image-wrap { width: 100%; border-radius: 999px 999px var(--radius) var(--radius); overflow: hidden; position: relative; }
.hero-image { width: 100%; aspect-ratio: 4 / 5.2; object-fit: cover; object-position: 35% 30%; transform-origin: center; will-change: transform; }
.hero-spark { position: absolute; width: clamp(70px, 9vw, 130px); top: 6%; left: -8%; z-index: 3; will-change: transform; }
.hero-badge {
  position: absolute; right: -2%; bottom: 8%; z-index: 3;
  background: var(--lilac-light); color: var(--purple); border-radius: var(--radius-pill);
  padding: .8rem 1.3rem; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  box-shadow: 0 10px 30px rgba(78, 14, 122, .12);
}
.hero-scroll-cue {
  position: absolute; left: var(--gutter); bottom: 1.75rem; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--purple); text-decoration: none; display: flex; align-items: center; gap: .75rem;
}
.hero-scroll-cue::before { content: ""; width: 40px; height: 1px; background: var(--purple); }

/* JS-enhanced states (content stays visible without JS) */
.js .hero[data-hero-ready] .hero-line,
.js .hero[data-hero-ready] .hero-script,
.js .hero[data-hero-ready] .hero-eyebrow,
.js .hero[data-hero-ready] .hero-text,
.js .hero[data-hero-ready] .hero-actions,
.js .hero[data-hero-ready] .hero-badge {
  opacity: 0; transform: translateY(40px);
  transition: opacity 1s var(--ease), transform 1.1s var(--ease);
  transition-delay: calc(var(--hero-i, 0) * 110ms + 150ms);
}
.js .hero[data-hero-ready] .hero-script { transform: translateY(40px) rotate(-4deg); }
.js .hero[data-hero-ready] .hero-image-wrap { clip-path: inset(100% 0 0 0 round 999px 999px 28px 28px); transition: clip-path 1.5s var(--ease) .2s; }
.js .hero[data-hero-ready] .hero-spark { opacity: 0; transition: opacity 1s var(--ease) 1.1s; }
.js .hero.is-revealed .hero-line,
.js .hero.is-revealed .hero-eyebrow,
.js .hero.is-revealed .hero-text,
.js .hero.is-revealed .hero-actions,
.js .hero.is-revealed .hero-badge { opacity: 1; transform: none; }
.js .hero.is-revealed .hero-script { opacity: 1; transform: rotate(-4deg); }
.js .hero.is-revealed .hero-image-wrap { clip-path: inset(0 0 0 0 round 999px 999px 28px 28px); }
.js .hero.is-revealed .hero-spark { opacity: 1; }

@media (max-width: 900px) {
  .hero { min-height: auto; }
  .hero-inner { flex-direction: column; align-items: stretch; }
  .hero-headline { margin-right: 0; }
  .hero-media { max-width: 420px; width: 82%; align-self: flex-end; margin-top: 1rem; }
  .hero-spark { left: -14%; }
  .hero-scroll-cue { display: none; }
}

/* =========================================================
   SHOWPIECE 2 — Four pillars (pinned scroll)
   Behaviour: assets/js/pillars.js
   Default/fallback: stacked list. Pinned mode adds .is-pinned.
   ========================================================= */
.pillars { background: var(--lilac-light); }
.pillars-intro { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
.pillars-list { display: flex; flex-direction: column; gap: clamp(4rem, 8vw, 6rem); }
.pillar-item { display: flex; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.pillar-content { flex: 1 1 55%; min-width: 0; }
.pillar-media { flex: 0 0 auto; width: min(36vw, 460px); position: relative; }
.pillar-image { width: 100%; aspect-ratio: 1; border-radius: 50%; object-fit: cover; }
.pillar-number { font-weight: 600; font-size: .8rem; letter-spacing: .2em; color: var(--orange); margin: 0 0 1rem; }
.pillar-name { font-size: clamp(3rem, 7vw, 6.5rem); line-height: .95; letter-spacing: -0.03em; margin: 0 0 .25em; }
.pillar-subtitle { font-weight: 600; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; color: var(--purple); margin-bottom: 1.25rem; }
.pillar-text { max-width: 32rem; font-size: var(--fs-lead); line-height: 1.6; }
.pillar-link { margin-top: 1.5rem; }

.pillars-ring { display: none; }

@media (max-width: 900px) {
  .pillar-item { flex-direction: column; align-items: flex-start; }
  .pillar-media { width: min(78vw, 380px); order: -1; }
}

/* Pinned mode (desktop, motion allowed) */
.pillars.is-pinned .pillars-track { position: relative; } /* height set by JS */
.pillars.is-pinned .pillars-stage {
  position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h));
  display: flex; align-items: center; overflow: hidden;
}
.pillars.is-pinned .pillars-stage > 
.pillars.is-pinned .pillars-list { display: block; position: relative; height: 100%; }
.pillars.is-pinned .pillar-item { position: absolute; inset: 0; pointer-events: none; }
.pillars.is-pinned .pillar-item.is-active { pointer-events: auto; }
.pillars.is-pinned .pillar-number,
.pillars.is-pinned .pillar-subtitle,
.pillars.is-pinned .pillar-text,
.pillars.is-pinned .pillar-link {
  opacity: 0; transform: translateY(24px); transition: opacity .6s var(--ease), transform .7s var(--ease);
}
.pillars.is-pinned .pillar-name {
  opacity: 0; transform: translateY(60%); transition: opacity .6s var(--ease), transform .9s var(--ease);
}
.pillars.is-pinned .pillar-image {
  opacity: 0; transform: scale(1.08) rotate(-4deg); transition: opacity .9s var(--ease), transform 1.2s var(--ease);
}
.pillars.is-pinned .pillar-item.is-active .pillar-number,
.pillars.is-pinned .pillar-item.is-active .pillar-subtitle,
.pillars.is-pinned .pillar-item.is-active .pillar-text,
.pillars.is-pinned .pillar-item.is-active .pillar-link,
.pillars.is-pinned .pillar-item.is-active .pillar-name,
.pillars.is-pinned .pillar-item.is-active .pillar-image { opacity: 1; transform: none; }
.pillars.is-pinned .pillar-item.is-active .pillar-subtitle { transition-delay: .1s; }
.pillars.is-pinned .pillar-item.is-active .pillar-text { transition-delay: .18s; }
.pillars.is-pinned .pillar-item.is-active .pillar-link { transition-delay: .26s; }
.pillars.is-pinned .pillar-item.is-past .pillar-name { transform: translateY(-40%); }

.pillars.is-pinned .pillars-ring {
  display: block; position: absolute; z-index: 3; pointer-events: none;
  /* centred on the media column; JS sets left/top/size from the active image */
}
.pillars-ring svg { width: 100%; height: 100%; overflow: visible; }
.pillars-ring-track { fill: none; stroke: var(--lilac); stroke-width: 2; }
.pillars-ring-seg { fill: none; stroke: var(--purple); stroke-width: 3; stroke-linecap: round; transition: stroke-dashoffset .1s linear; }
.pillars-ring-dot { fill: var(--orange); }
.pillars-counter {
  position: absolute; z-index: 3; left: var(--gutter); bottom: -2.5rem;
  font-size: .8rem; font-weight: 600; letter-spacing: .2em; color: var(--purple);
}
.pillars:not(.is-pinned) .pillars-counter { display: none; }

/* =========================================================
   SHOWPIECE 3 — Breathing pause (canvas)
   Behaviour: assets/js/breath.js
   ========================================================= */
.breath { background: var(--purple); color: var(--lilac-light); overflow: hidden; }
.breath h2 { color: var(--lilac-light); }
.breath-inner { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.breath-intro { flex: 1 1 340px; }
.breath-stage {
  flex: 1 1 420px; position: relative; aspect-ratio: 1; max-width: 560px; margin-inline: auto;
  display: flex; align-items: center; justify-content: center;
}
.breath-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.breath-steps { list-style: none; margin: 0; padding: 0; position: relative; z-index: 2; text-align: center; }
.breath-step-label { display: block; font-family: var(--font-display); font-size: var(--fs-quote); color: var(--purple); line-height: 1.1; }
.breath-step-hint { display: block; font-size: .85rem; letter-spacing: .1em; color: var(--purple); margin-top: .5rem; }
.breath-count { display: block; font-family: var(--font-script); color: var(--orange); font-size: 2rem; line-height: 1; margin-top: .6rem; min-height: 1em; }
.breath-toggle { margin-top: 2rem; }

/* Fallback (no JS / reduced motion): readable list on purple */
.breath:not(.is-live) .breath-stage { aspect-ratio: auto; }
.breath:not(.is-live) .breath-steps { display: flex; flex-direction: column; gap: 1.25rem; text-align: left; }
.breath:not(.is-live) .breath-step-label,
.breath:not(.is-live) .breath-step-hint { color: var(--lilac-light); }
.breath:not(.is-live) .breath-toggle,
.breath:not(.is-live) .breath-canvas { display: none; }

/* Live mode: one step visible at a time */
.breath.is-live .breath-step { position: absolute; left: 50%; top: 50%; width: 70%; transform: translate(-50%, -50%); opacity: 0; transition: opacity .8s var(--ease); }
.breath.is-live .breath-step.is-active { opacity: 1; }
.breath.is-live .breath-steps { width: 100%; height: 100%; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .js .reveal { opacity: 1; transform: none; }
}

figure { margin: 0; }
.h4 { font-family: var(--font-display); font-size: var(--fs-h4); font-weight: 500; line-height: 1.3; letter-spacing: 0; color: var(--purple); margin-bottom: 1rem; }
.offer-card-meta--stacked { flex-direction: column; gap: .6rem; font-size: 1rem; }
.offer-card--tint { background: var(--lilac-light); }
.section--purple .offer-card-meta { color: var(--lilac); }
.section--purple .offer-card-meta strong { color: var(--lilac-light); }
.section--purple .placeholder { color: var(--lilac); border-color: var(--lavender); }
.quote-mark { width: 64px; margin: 0 auto 2rem; }
.form .btn-row { margin-top: .5rem; }
.page-hero--full { min-height: 60vh; display: flex; align-items: center; }
.legal h2 { margin-top: 2.75rem; }

/* ---------- Prices, check lists, testimonials ---------- */
.offer-card-price { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--purple); line-height: 1.1; margin: 0; }
.offer-card-price span { font-family: var(--font-body); font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--lavender); }
.check-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .75rem; }
.check-list li { display: flex; gap: .85rem; align-items: flex-start; }
.check-list li::before {
  content: ""; flex: none; width: 1rem; height: 1rem; margin-top: .4rem;
  background: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/spark-orange.svg") center / contain no-repeat;
}
.check-list--columns { flex-direction: row; flex-wrap: wrap; gap: .9rem 2.5rem; }
.check-list--columns li { flex: 1 1 300px; }
.check-list--light { margin: 1.5rem 0; color: var(--lilac-light); }
.steps--stacked { flex-direction: column; gap: 1.75rem; }
.steps--stacked .step { flex: none; padding-top: 1.1rem; }
.steps--stacked .step-number { font-size: 2rem; }
.steps--stacked .step-title { font-size: var(--fs-h3); }

.testimonial { margin: 0; background: var(--lilac); border-radius: var(--radius); padding: clamp(1.75rem, 3vw, 2.5rem); display: flex; flex-direction: column; gap: 1rem; }
.testimonial::before { content: "“"; font-family: var(--font-display); font-size: 4.5rem; line-height: .6; color: var(--orange); height: 2.2rem; }
.testimonial-title { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--purple); line-height: 1.15; margin: 0; }
.testimonial-text { margin: 0; flex: 1; }
.testimonial-name { font-family: var(--font-script); color: var(--orange); font-size: 2rem; line-height: 1; }
.section--lilac .testimonial { background: var(--lilac-light); }
.testimonial--feature { background: none !important; padding: 0; text-align: center; align-items: center; }
.testimonial--feature .testimonial-text { font-family: var(--font-display); font-size: var(--fs-quote); line-height: 1.2; color: var(--purple); letter-spacing: -0.01em; max-width: 52rem; }

/* ---------- About: chapters, facts, training ---------- */
.chapter { padding-block: clamp(1.75rem, 3vw, 2.5rem); border-top: 1px solid rgba(111, 24, 170, .18); display: flex; flex-wrap: wrap; gap: 1rem 3rem; }
.chapter:last-child { border-bottom: 1px solid rgba(111, 24, 170, .18); }
.chapter-title { flex: 0 1 18rem; font-size: var(--fs-h3); margin: 0; }
.chapter-body { flex: 1 1 26rem; }
.timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.timeline li { display: flex; flex-wrap: wrap; gap: .25rem 1.75rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(111, 24, 170, .18); }
.timeline-year { flex: 0 0 7.5rem; font-weight: 600; color: var(--orange); letter-spacing: .05em; }
.timeline-what { flex: 1 1 18rem; }
.timeline-what strong { display: block; color: var(--purple); font-weight: 600; }
.facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: clamp(1.25rem, 2.5vw, 2rem); counter-reset: fact; }
.facts li { flex: 1 1 300px; background: var(--white); border-radius: var(--radius); padding: 1.75rem; counter-increment: fact; }
.facts li::before { content: "0" counter(fact); display: block; font-family: var(--font-display); font-size: var(--fs-h3); color: var(--purple); margin-bottom: .5rem; }
.social-links { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; list-style: none; padding: 0; margin: 0; }

.unsaid { font-family: var(--font-display); font-size: var(--fs-feature); line-height: 1.3; color: var(--purple); margin-bottom: 1.25rem; }
.unsaid em { font-family: var(--font-script); font-style: normal; color: var(--orange); font-size: 1.25em; }
.script--spaced { margin-bottom: 1.5rem; }
.accordion-title small { font-weight: 500; color: var(--lavender); font-size: .85em; margin-left: -1rem; margin-right: auto; }
.statement-list--results li { font-size: var(--fs-feature); }

/* ---------- Note from Kelly (Home) ---------- */
.kelly-note-text { font-family: var(--font-display); font-size: var(--fs-feature); line-height: 1.4; color: var(--purple); letter-spacing: -0.01em; }
.kelly-note-signature { font-family: var(--font-script); color: var(--orange); font-size: var(--fs-script); line-height: 1; margin-top: 2rem; transform: rotate(-4deg); transform-origin: left; }
.place-card .icon-box-icon { width: 52px; height: 52px; aspect-ratio: auto; border-radius: 0; object-fit: contain; margin-bottom: .75rem; }

/* ---------- Price options (Home 1:1 offer) ---------- */
.price-options { display: flex; flex-direction: column; gap: .6rem; margin-top: 1.5rem; }
.price-option { display: flex; align-items: center; justify-content: space-between; gap: 1rem; background: var(--lilac-light); border-radius: 20px; padding: 1rem 1.4rem; border: 1.5px solid transparent; }
.price-option p { margin: 0; }
.price-option-info { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.price-option-name { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; font-family: var(--font-display); font-size: 1.2rem; line-height: 1.25; color: var(--purple); }
.price-option-price { flex-shrink: 0; font-family: var(--font-display); font-size: var(--fs-h3); line-height: 1; color: var(--purple); }
.price-option-note { font-size: .9rem; line-height: 1.5; color: var(--grey); }
.price-option--featured { background: var(--purple); border-color: var(--purple); }
.price-option--featured .price-option-name, .price-option--featured .price-option-price { color: var(--white); }
.price-option--featured .price-option-note { color: var(--lilac); }
.price-option-badge { display: inline-block; font-family: var(--font-body); font-size: .62rem; font-weight: 600; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; white-space: nowrap; background: var(--orange); color: var(--white); border-radius: var(--radius-pill); padding: .25rem .65rem; }
.accordion-heading { display: flex; flex-direction: column; gap: .2rem; }
.accordion-name { font-weight: 600; font-size: 1.1rem; color: var(--purple); }
.accordion-hint { font-weight: 400; font-size: .95rem; color: var(--grey); opacity: .8; }
.btn-row--center { justify-content: center; }

/* ---------- Upcoming events (Madeira Events page) ---------- */
.event-list { display: flex; flex-direction: column; gap: 1rem; margin-top: clamp(2rem, 4vw, 3rem); }
.event-card { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.75rem; background: var(--lilac-light); border-radius: var(--radius); padding: 1.25rem 1.5rem; }
.event-date { flex: none; width: 76px; height: 76px; border-radius: 50%; background: var(--purple); color: var(--lilac-light); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.event-day { font-family: var(--font-display); font-size: 1.8rem; }
.event-month { font-size: .7rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; margin-top: .2rem; }
.event-info { flex: 1 1 220px; }
.event-info p, .event-info h3 { margin: 0; }
.event-type { font-size: .72rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--orange); }
.event-title { font-size: var(--fs-h3); margin: .2rem 0 .3rem !important; }
.event-meta { font-size: .9rem; color: var(--grey); }
.event-book { flex: none; }
.event-empty { background: var(--lilac-light); border-radius: var(--radius); padding: clamp(1.5rem, 3vw, 2.5rem); }
.event-empty .form-field input { background: var(--white); }
/* Waitlist card (Madeira events): photo + one-line form */
.event-empty--feature { background: var(--lilac); color: var(--grey); border-radius: calc(var(--radius) * 1.2); padding: clamp(1.75rem, 4vw, 3rem); }
.event-empty--feature .frame--arch img { aspect-ratio: 4 / 4.6; object-position: 50% 40%; }
.event-empty--feature .script { display: block; color: var(--orange); }
.event-empty--feature h3 { color: var(--purple); font-size: var(--fs-h3); margin: .15em 0 .45em; }
.event-empty--feature p { color: var(--grey); }
.event-empty--feature .form { margin-top: 1.5rem; gap: .9rem; }
.event-empty--feature .form-inline input { background: var(--white); border-color: transparent; }
.event-empty--feature .form-status:empty { display: none; }
@media (max-width: 1024px) { .event-empty--feature .frame { max-width: 300px; } }
.event-empty--feature .frame-offset::before { background: var(--lilac-light); }

/* ---------- Location (Yoga by the Ocean) ---------- */
.location { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); margin-top: clamp(3rem, 6vw, 5rem); background: var(--lilac-light); border-radius: var(--radius); padding: clamp(1.25rem, 3vw, 2rem); }
.location-text { flex: 1 1 260px; }
.location-text .h3 { font-size: var(--fs-h3); margin-bottom: .6rem; }
.location-map { flex: 1 1 360px; }
.location-map iframe { display: block; width: 100%; aspect-ratio: 16 / 10; border: 0; border-radius: 20px; filter: saturate(.55); }
.nav-menu a, .header-cta { white-space: nowrap; }

/* ---------- Hand-drawn Madeira map ---------- */
.madeira-map { margin: 0; }
.madeira-map svg { display: block; width: 100%; height: auto; overflow: visible; }
.madeira-fill { fill: var(--lilac); }
.madeira-line { fill: none; stroke: var(--purple); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.madeira-line--soft { stroke-width: 1.2; opacity: .45; }
.madeira-name { font-family: var(--font-body); font-size: 15px; font-weight: 600; letter-spacing: .5em; fill: var(--lavender); }
.madeira-dot { fill: var(--purple); }
.madeira-label { font-family: var(--font-body); font-size: 13px; font-weight: 600; fill: var(--purple); }
.madeira-pin path { fill: var(--orange); }
.madeira-pin circle { fill: var(--white); }
.madeira-pin-label { font-family: var(--font-script); font-size: 26px; fill: var(--orange); }
.madeira-ocean { font-family: var(--font-script); font-size: 22px; fill: var(--lavender); }
@media (prefers-reduced-motion: no-preference) {
  .madeira-pin { animation: pin-bob 2.8s ease-in-out infinite; }
  @keyframes pin-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -5px; } }
}

/* ---------- Side note (personal aside, e.g. Yoga by the Ocean) ---------- */
.side-note {
  position: relative; max-width: 26rem; margin: 1.75rem 0 .5rem; padding: 1.4rem 1.5rem 1.1rem;
  background: var(--lilac-light); border-radius: 6px 22px 22px 22px;
  box-shadow: 0 12px 30px rgba(78, 14, 122, .1); transform: rotate(-1.5deg);
}
.side-note::before {
  content: ""; position: absolute; top: -14px; left: 22px; width: 28px; height: 28px;
  background: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/spark-orange.svg") center / contain no-repeat;
}
.side-note p { margin: 0; }
.side-note-text { font-family: var(--font-script); font-size: 1.45rem; line-height: 1.3; color: var(--purple); }
.side-note-sign { font-family: var(--font-script); font-size: 1.6rem; color: var(--orange); text-align: right; margin-top: .3rem !important; }
@media (prefers-reduced-motion: reduce) { .side-note { transform: none; } }

/* ---------- Info chips (compact class details) ---------- */
.info-chips { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.info-chips li { background: var(--lilac-light); color: var(--purple); border: 1px solid rgba(111, 24, 170, .2); border-radius: var(--radius-pill); padding: .45rem 1rem; font-size: .88rem; font-weight: 600; }
.info-chips .info-chip--highlight { background: var(--orange); border-color: var(--orange); color: var(--white); }

/* Note stuck on a photo */
.frame-with-note { position: relative; }
.side-note--on-photo { position: absolute; left: -12%; bottom: -8%; width: min(78%, 300px); margin: 0; z-index: 2; }
.side-note--on-photo .side-note-text { font-size: 1.25rem; }
@media (max-width: 900px) {
  .side-note--on-photo { position: relative; left: auto; bottom: auto; width: auto; max-width: 26rem; margin: -2.5rem auto 0; }
}

/* ---------- Journey steps (InnerK session stages) ---------- */
.journey { margin-top: clamp(3rem, 6vw, 4.5rem); }
.journey-steps { list-style: none; margin: 1.25rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 1rem; counter-reset: none; }
.journey-steps li { flex: 1 1 150px; background: var(--lilac-light); border-radius: 20px; padding: 1.1rem 1.1rem 1.2rem; font-size: .9rem; line-height: 1.5; display: flex; flex-direction: column; gap: .25rem; }
.journey-steps strong { color: var(--purple); font-weight: 600; font-size: .95rem; }
.journey-num { font-family: var(--font-display); font-size: 1.6rem; color: var(--orange); line-height: 1; margin-bottom: .2rem; }

/* ---------- Story chapters with photos (About) ---------- */
.chapter { align-items: flex-start; }
.chapter-aside { flex: 0 1 18rem; display: flex; flex-direction: column; gap: 1.25rem; }
.chapter-aside .chapter-title { flex: none; }
.chapter-photo { margin: 0; max-width: 240px; }
.chapter-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius); }
@media (max-width: 700px) {
  .chapter-aside { flex: 1 1 100%; }
  .chapter-photo { max-width: 200px; }
}

/* ---------- Certification badges (About) ---------- */
.badges { display: flex; flex-wrap: wrap; align-items: center; gap: 2rem 2.5rem; margin-top: 2rem; }
.badges img { height: 110px; width: auto; }

/* ---------- Contact page ---------- */
.contact-hero { background: var(--purple); color: var(--lilac-light); padding: clamp(4rem, 9vw, 7rem) 0 clamp(8rem, 14vw, 11rem); position: relative; overflow: hidden; }
.contact-hero-word {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -62%); margin: 0; pointer-events: none;
  font-family: var(--font-display); font-size: clamp(5rem, 19vw, 16rem); line-height: 1; text-transform: uppercase; letter-spacing: .02em;
  color: var(--lilac-light); opacity: .1; white-space: nowrap;
}
.contact-hero-title { position: relative; color: var(--lilac-light); font-size: var(--fs-h1); margin-bottom: .4em; }
.contact-hero-title .script { color: var(--orange); font-size: 1.15em; }
.contact-hero-text { position: relative; max-width: 34rem; margin: 0 auto; color: var(--lilac); }
.contact-main { padding-bottom: clamp(4rem, 8vw, 6rem); }
.contact-card { position: relative; z-index: 2; max-width: 860px; margin: calc(-1 * clamp(6rem, 10vw, 8rem)) auto 0; background: var(--white); border-radius: calc(var(--radius) * 1.2); padding: clamp(1.5rem, 4vw, 3rem); box-shadow: 0 24px 60px rgba(78, 14, 122, .14); }
.contact-card .form-field input, .contact-card .form-field textarea, .contact-card .form-field select { background: var(--lilac-light); }
.contact-info { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem 3rem; max-width: 960px; margin: clamp(3rem, 6vw, 4.5rem) auto 0; text-align: center; }
.contact-info-item { flex: 1 1 180px; }
.contact-info-title { font-family: var(--font-body); font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--orange); margin-bottom: .6rem; }
.contact-info-item p { margin: 0; }
.contact-info-item a { text-decoration: none; }
.h3 { font-size: var(--fs-h3); line-height: 1.15; }
.contact-info-item { flex: 1 1 200px; max-width: 240px; }

/* ---------- Book page (Cal.com embed) ---------- */
.booking-card { max-width: 1000px; padding: clamp(.75rem, 2vw, 1.5rem); }
.booking-frame { display: block; width: 100%; min-height: 720px; border-radius: 20px; overflow: auto; background: var(--white); }
.booking-fallback { margin: 1rem 0 0; }
@media (max-width: 700px) { .booking-frame { min-height: 900px; } }
.price-note { margin-top: 1rem; }

/* ---------- Book page: session options ---------- */
.book-options { max-width: 920px; margin-inline: auto; }
.offer-card--featured { background: var(--purple); color: var(--lilac-light); }
.offer-card--featured .offer-card-title, .offer-card--featured .offer-card-price { color: var(--lilac-light); }
.offer-card--featured .offer-card-price span { color: var(--lilac); }
.offer-card--featured .offer-card-tag { color: var(--lilac); }
.offer-card .price-option-badge { width: max-content; max-width: 100%; white-space: normal; margin-bottom: .75rem; }
.info-chips--center { justify-content: center; margin-bottom: 1rem; }
.section--purple .info-chips li { background: rgba(247,237,253,.12); color: var(--lilac-light); border-color: rgba(247,237,253,.3); }
.section--purple .info-chips .info-chip--highlight { background: var(--orange); border-color: var(--orange); color: var(--white); }
.section--purple .unsaid, .info-chip--highlight .placeholder { color: inherit; border-color: currentColor; }
.legal .check-list { margin-bottom: 1.25rem; }

/* ---------- Legal pages: plain, classic layout ---------- */
.legal { padding-block: clamp(3rem, 6vw, 5rem); }
.legal 
.legal p, .legal li { font-size: 1rem; line-height: 1.75; }
.legal .lead { font-size: 1.05rem; }
.legal-heading { font-family: var(--font-body); font-size: 1.15rem; font-weight: 600; letter-spacing: 0; color: var(--purple); margin: 2.5rem 0 .75rem; line-height: 1.4; }
.legal-list { list-style: disc; padding-left: 1.25rem; margin: 0 0 1rem; }
.legal-list li { margin-bottom: .5rem; padding-left: .25rem; }
.legal-list li::marker { color: var(--purple); }
.legal-list strong { font-weight: 600; color: var(--grey); }

/* ---------- Free meditations ---------- */
.meditations-card { max-width: 1000px; }
.meditations-lang { font-family: var(--font-body); font-size: .8rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--orange); margin: 0 0 1rem; }
.meditation-list { margin-bottom: 2.25rem; }
.meditation-player { display: block; width: 100%; height: 240px; border: 0; border-radius: 20px; background: var(--lilac-light); }

/* ---------- Free meditation signup (Home) ---------- */
.freebie { background: var(--white); border-radius: calc(var(--radius) * 1.2); padding: clamp(1.5rem, 4vw, 3rem); box-shadow: 0 24px 60px rgba(78, 14, 122, .1); }
.freebie .form-field input { background: var(--lilac-light); }

/* ---------- Freebie: cover on a tablet + one-line form ---------- */
.freebie-device { position: relative; width: min(300px, 80%); margin-inline: auto; padding: 12px; background: #2a2430; border-radius: 30px; box-shadow: 0 30px 60px rgba(78, 14, 122, .28); transform: rotate(-5deg); }
.freebie-device::before { content: ""; position: absolute; top: 5px; left: 50%; width: 34px; height: 3px; border-radius: 3px; background: #6b6370; transform: translateX(-50%); }
.freebie-device img { display: block; width: 100%; height: auto; aspect-ratio: 370 / 492; object-fit: cover; border-radius: 20px; }
.freebie-section h2 { margin-bottom: .75rem; }
.freebie-form { gap: .9rem; margin: 1.75rem 0 1.5rem; }
.form-inline { display: flex; flex-wrap: wrap; gap: .7rem; }
.form-inline input { flex: 1 1 180px; min-width: 0; font: inherit; color: var(--grey); background: var(--lilac-light); border: 1.5px solid transparent; border-radius: var(--radius-pill); padding: .9rem 1.3rem; }
.form-inline input:focus { outline: none; border-color: var(--purple); }
.form-inline input::placeholder { color: #8a7f91; }
.form-inline .btn { flex: 0 0 auto; }
.freebie-consent { font-size: .8rem; line-height: 1.5; }
.freebie-consent input { margin-top: .15rem; width: 16px; height: 16px; }
@media (max-width: 900px) {
  .freebie-device { width: min(230px, 65%); margin-bottom: 1rem; }
  .form-inline .btn { flex: 1 1 100%; }
}
.freebie-form .form-status:empty { display: none; }
/* Challenge cover: HTML title over the photo inside the tablet */
.freebie-cover-text { position: absolute; inset: 12px 12px auto; padding: 1.4rem 1rem 3rem; border-radius: 20px 20px 0 0; display: flex; flex-direction: column; align-items: center; text-align: center; background: linear-gradient(to bottom, rgba(255,255,255,.92) 55%, rgba(255,255,255,0)); }
.freebie-cover-eyebrow { font-family: var(--font-body); font-size: .72rem; font-weight: 600; letter-spacing: .25em; text-transform: uppercase; color: var(--orange); }
.freebie-cover-title { font-family: var(--font-display); font-size: var(--fs-h3); line-height: 1.05; color: var(--purple); margin-top: .3rem; }
.freebie-cover-script { font-family: var(--font-script); font-size: clamp(1.4rem, 2.2vw, 1.8rem); line-height: 1; color: var(--orange); margin-top: .15rem; }
/* Reassuring line under the 7-Day Holistic Reset name */
.reset-tagline { font-weight: 600; font-size: 1rem; letter-spacing: .02em; color: var(--orange); margin: -.25rem 0 1.25rem !important; }
.freebie-cover-script { font-size: clamp(1.15rem, 1.7vw, 1.45rem); }

/* Header can be wider than the page container so the full menu fits from 1440px */
.header-inner { max-width: 1440px; }
/* Price row: price with a small Book link underneath */
.price-option-side { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; }
.price-option-book { font-size: .82rem; font-weight: 600; letter-spacing: .02em; color: var(--purple); text-decoration: none; white-space: nowrap; }
.price-option-book::after { content: " →"; }
.price-option-book:hover { color: var(--purple-deep); text-decoration: underline; }
.price-option--featured .price-option-book { color: var(--white); }
.price-option--featured .price-option-book:hover { color: var(--lilac); }

/* ---------- Home redesign (Oct 2026): calmer, card-based presentation ---------- */
/* "Is this you?" scene cards */
.scene-card { background: var(--white); text-align: left; gap: 0; box-shadow: 0 10px 30px rgba(78, 14, 122, .05); }
.scene-card .icon-box-icon { width: 56px; height: 56px; padding: 12px; background: var(--lilac); border-radius: 16px; object-fit: contain; }
.scene-num { font-size: .75rem; font-weight: 600; letter-spacing: .18em; color: var(--orange); margin: 1.1rem 0 .45rem; }
.scene-text { font-size: 1.05rem; line-height: 1.65; color: var(--grey); margin: 0; }
#is-this-you .unsaid { margin-bottom: 0; }
/* "A steadier one" checklist card */
.check-card { background: var(--lilac-light); border-radius: calc(var(--radius) * 1.2); padding: clamp(1.75rem, 4vw, 3rem); }
.check-list--ticks li { font-size: 1.02rem; line-height: 1.6; color: var(--grey); }
.check-list--ticks li::before {
  content: "✓"; width: 1.6rem; height: 1.6rem; margin-top: 0; border-radius: 50%; background: var(--white);
  color: var(--purple); font-size: .8rem; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.check-card .check-list--columns { gap: 1.1rem 2.5rem; }
.check-card .check-list--columns li { flex: 1 1 260px; }
/* featured testimonial: calm quote in body font */
.testimonial--feature .testimonial-text { font-family: var(--font-body); font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.7; color: var(--grey); max-width: 46rem; }
/* profile card (Meet Kelly) */
.profile-photo { position: relative; }
.profile-photo img:not(.spark) { aspect-ratio: 4 / 4.8; }
.profile-chip { position: absolute; left: 1.25rem; right: 1.25rem; bottom: 1.25rem; z-index: 2; padding: 1rem 1.25rem; border-radius: 18px;
  background: rgba(78, 14, 122, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(247, 237, 253, .25); }
.profile-chip-name { font-family: var(--font-display); font-size: 1.3rem; color: var(--white); margin: 0 0 .2rem; line-height: 1.2; }
.profile-chip-role { font-size: .85rem; line-height: 1.45; color: var(--lilac); margin: 0; }
.mini-heading { font-size: .78rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--grey); margin: 2rem 0 .9rem; }
.dot-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .7rem; }
.dot-list li { display: flex; gap: .85rem; align-items: flex-start; line-height: 1.55; }
.dot-list li::before { content: ""; flex: none; width: 1.35rem; height: 1.35rem; border-radius: 50%; margin-top: .1rem;
  background: radial-gradient(circle, var(--orange) 0 30%, var(--lilac) 32% 100%); }

/* Note from Kelly on an ocean photo (Oct 2026) */
.kelly-note.kelly-note { background: #2a6f86 url("https://kellyfantazi.com/wp-content/uploads/kelly-site/ocean-aerial-wave.jpg") center / cover no-repeat; padding-block: clamp(4rem, 9vw, 8rem); }
.kelly-note 
@media (max-width: 767px) { .kelly-note  }

/* Home hero: clearer, more professional (Oct 2026) */
.hero-headline { line-height: 1; margin-right: clamp(-6rem, -6vw, 0rem); }
.hero-accent { font-family: var(--font-script); font-style: normal; font-weight: 400; color: var(--orange); font-size: 1.12em; letter-spacing: 0; line-height: .8; }
.hero-eyebrow { padding: .55rem 1.1rem; border: 1px solid rgba(78, 14, 122, .25); border-radius: var(--radius-pill); background: rgba(255, 255, 255, .35); letter-spacing: .16em; }
.hero-text { margin-top: 1.25rem; }
.hero-trust { margin: 1.75rem 0 0; font-size: .85rem; color: var(--purple); opacity: .8; letter-spacing: .02em; }
.js .hero[data-hero-ready] .hero-trust { opacity: 0; transform: translateY(40px); transition: opacity 1s var(--ease), transform 1.1s var(--ease); transition-delay: calc(var(--hero-i, 0) * 110ms + 150ms); }
.js .hero.is-revealed .hero-trust { opacity: .8; transform: none; }
html[lang^="fr"] .hero-headline { font-size: calc(var(--fs-hero) * .68); }

/* "Is this you?" — Body / Mind / Energy / Cycle cards (Oct 2026) */
.scene-cards
.scene-card { display: flex; flex-direction: column; }
.scene-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 500; color: var(--purple); margin: 1.25rem 0 .6rem; letter-spacing: -0.01em; }
.scene-card .scene-text { font-size: 1rem; margin-bottom: 1.25rem; }
.scene-thought { margin: auto 0 0; padding-top: 1.1rem; font-style: italic; font-size: 1rem; line-height: 1.5; color: var(--purple); border-top: 1px solid var(--lilac); }
.scene-close { max-width: 46rem; margin: clamp(3rem, 6vw, 4.5rem) auto 0; }
.scene-close-lead { font-size: var(--fs-lead); color: var(--grey); margin: 0 0 .5rem; }
.scene-close-q { font-family: var(--font-display); font-size: var(--fs-h3); color: var(--purple); margin: 0; }
@media (min-width: 900px) { .scene-cards }
@media (min-width: 600px) and (max-width: 899px) { .scene-cards }

/* Mission statement under the hero (Oct 2026) */
.mission-statement { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.75rem, 3.1vw, 2.75rem); line-height: 1.2; letter-spacing: -0.015em; color: var(--purple); margin: 0 auto 1.5rem; max-width: 52rem; }
.mission-accent { font-family: var(--font-script); font-style: normal; color: var(--orange); font-size: 1.15em; letter-spacing: 0; line-height: .9; }
.mission-text { max-width: 40rem; margin: 0 auto; font-size: var(--fs-lead); line-height: 1.65; color: var(--grey); }

/* Small section titles: editorial line style (Oct 2026) */
.eyebrow { color: var(--orange); letter-spacing: .24em; font-size: .75rem; gap: .9rem; }
.eyebrow::before { content: ""; width: 2.25rem; height: 1px; background: var(--orange); }
.text-center .eyebrow::after, .eyebrow.text-center::after { content: ""; width: 2.25rem; height: 1px; background: var(--orange); flex: none; }
.section--purple .eyebrow, .cta-band .eyebrow { color: var(--lilac); }
.section--purple .eyebrow::before, .section--purple .eyebrow::after, .cta-band .eyebrow::before, .cta-band .eyebrow::after { background: var(--lilac); }
/* the hero pill keeps its spark */
.hero-eyebrow { color: var(--purple); }
.hero-eyebrow::before { width: 1.05rem; height: 1.05rem; background: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/spark-orange.svg") center / contain no-repeat; }
@media (min-width: 901px) { .hero-line { white-space: nowrap; } }

/* Lists, site-wide (Oct 2026): ticks = what changes, dots = what she's living now */
.check-list--dots li { font-size: 1.02rem; line-height: 1.6; color: var(--grey); }
.check-list--dots li::before { content: ""; width: 1.35rem; height: 1.35rem; margin-top: .15rem; border-radius: 50%; flex: none;
  background: radial-gradient(circle, var(--orange) 0 30%, var(--lilac) 32% 100%); }
/* on pale or lilac sections the card turns white so it stands out */
.section:not(.section--white) .check-card { background: var(--white); box-shadow: 0 10px 30px rgba(78, 14, 122, .05); }
.section:not(.section--white) .check-card .check-list--ticks li::before { background: var(--lilac); }
.check-list--light.check-list--ticks li { color: var(--lilac-light); }
.check-list--light.check-list--ticks li::before { background: var(--lilac-light); }
/* card lists: fixed grid so the last row never stretches (9 items = 3 x 3) */
.check-card .check-list--columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem 2.5rem; }
@media (max-width: 900px) { .check-card .check-list--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .check-card .check-list--columns { grid-template-columns: 1fr; } }
/* buttons for things not live yet */
.btn--soon { cursor: default; pointer-events: none; opacity: .7; }

/* Consistency pass (Oct 2026): one paragraph size, airy titles, calm notes */
.lead { font-size: var(--fs-body); line-height: 1.7; }
.small { line-height: 1.6; }
.eyebrow { margin-bottom: 1.25rem; }
.price-options + .price-note, .btn-row + .small, .btn-row + p { margin-top: 1rem; }

/* One reading size everywhere (Oct 2026). Only headings, handwritten lines, labels and small notes differ. */
:root { --fs-body: 17px; }
@media (max-width: 1024px) { :root { --fs-body: 16px; } }
p, li, .lead, .max-copy, .hero-text, .mission-text, .scene-close-lead, .scene-text, .scene-thought, .pillar-text,
.check-list li, .check-list--ticks li, .check-list--dots li, .dot-list li { font-size: var(--fs-body); }
.mission-statement { max-width: 64rem; }
.mission-text { max-width: 48rem; }
.journey-steps li { font-size: var(--fs-body); flex: 1 1 200px; }
.journey-steps strong { font-size: 1.05em; }

/* wide centred title, readable paragraphs underneath */
.text-measure > p, .text-measure > .btn-row { max-width: 760px; margin-inline: auto; }
/* centred intros: the title may run wide, the paragraphs stay at reading width */
.text-center.max-copy { max-width: none; }
.text-center.max-copy > p:not(.eyebrow) { max-width: 760px; margin-inline: auto; }

/* Method page: positioning statement (Oct 2026) */
.positioning-text { font-family: var(--font-display); font-size: clamp(1.3rem, 2.1vw, 1.75rem); line-height: 1.4; color: var(--purple); max-width: 52rem; margin: 0 auto 1.25rem; letter-spacing: -0.01em; }
.without-list { list-style: none; padding: 0; margin: clamp(2rem, 4vw, 3rem) auto 0; max-width: 64rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.without-list li { font-family: var(--font-display); font-size: clamp(1.2rem, 1.6vw, 1.45rem); line-height: 1.35; color: var(--purple); display: flex; flex-direction: column; align-items: center; gap: .9rem; }
.without-list li::before { content: ""; width: 2.25rem; height: 2px; background: var(--orange); border-radius: 2px; }
@media (max-width: 767px) { .without-list { grid-template-columns: 1fr; gap: 1.5rem; } }

/* Method page redesign: positioning card + integrated diagram (Oct 2026) */
.positioning-card { background: var(--lilac-light); border-radius: calc(var(--radius) * 1.3); padding: clamp(2rem, 5vw, 4rem); gap: clamp(2rem, 4vw, 4rem); }
.positioning-card .positioning-text { text-align: left; max-width: none; margin: 0 0 1.1rem; font-size: clamp(1.25rem, 1.9vw, 1.6rem); }
.positioning-card .positioning-text:last-child { margin-bottom: 0; }
.positioning-card .without-list { display: flex; flex-direction: column; gap: .85rem; margin: 0; max-width: none; grid-template-columns: none; }
.positioning-card .without-list li { flex-direction: row; align-items: center; justify-content: flex-start; text-align: left; gap: 1rem; background: var(--white); border-radius: 18px; padding: 1.05rem 1.35rem; font-size: clamp(1.05rem, 1.35vw, 1.2rem); box-shadow: 0 8px 24px rgba(78, 14, 122, .05); }
.positioning-card .without-list li::before { width: 1.5rem; flex: none; }
.integrated-diagram { width: 100%; max-width: 440px; height: auto; display: block; margin: 0 auto; }
.bigger-picture .lead { max-width: 36rem; }

/* Method page: clickable pillar cards (Oct 2026) */
.pillar-links
.pillar-link-card { position: relative; background: var(--lilac-light); border-radius: var(--radius); padding: clamp(1.5rem, 2.5vw, 2rem); text-align: left; display: flex; flex-direction: column; gap: 0; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.pillar-link-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(78, 14, 122, .1); }
.pillar-link-card .icon-box-icon { width: 56px; height: 56px; padding: 12px; background: var(--white); border-radius: 16px; object-fit: contain; }
.pillar-link-title { font-family: var(--font-display); font-size: 1.5rem; color: var(--purple); margin: 1.1rem 0 .4rem; }
.pillar-link-text { font-size: var(--fs-body); color: var(--grey); margin: 0 0 1.25rem; }
.pillar-link-card .link-arrow { margin-top: auto; }
.pillar-link-card .link-arrow::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }
#body, #mind, #energy, #cycle { scroll-margin-top: 90px; }
@media (min-width: 900px) { .pillar-links }

/* Method page positioning, option A: calm centred statement (Oct 2026) */
.positioning-big { font-family: var(--font-display); color: var(--purple); font-size: clamp(1.6rem, 2.8vw, 2.4rem); line-height: 1.3; max-width: 58rem; margin: 0 auto 1.4rem; letter-spacing: -0.015em; }
.positioning-soft { color: var(--grey); font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 44rem; margin: 0 auto; line-height: 1.7; }
.positioning-soft strong { color: var(--purple); font-weight: 600; }
.withouts { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem 1.4rem; margin: 2.5rem auto 0; padding: 0; list-style: none; }
.withouts li { display: flex; align-items: center; gap: 1.4rem; font-family: var(--font-body); font-size: .78rem; font-weight: 600; line-height: 1.4; letter-spacing: .2em; text-transform: uppercase; color: var(--purple); }
.withouts li + li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); flex: none; }
@media (max-width: 767px) { .withouts { flex-direction: column; gap: .9rem; } .withouts li { justify-content: center; } .withouts li + li::before { display: none; } .withouts li::after { content: none; } }

/* =========================================================
   Elementor adapter: widgets keep the design's class names on their wrapper.
   ========================================================= */
@font-face { font-family: "Sunsive"; src: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/sunsive-regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Sunsive"; src: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/sunsive-medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Dreaming Outloud"; src: url("https://kellyfantazi.com/wp-content/uploads/kelly-site/dreaming-outloud-pro.woff2") format("woff2"); font-weight: 400; font-display: swap; }
body { background: var(--lilac-light); }
.elementor-widget-heading .elementor-heading-title { font-family: inherit; }
.elementor-widget-text-editor p { margin: 0 0 1.1em; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.hero-badge, .hero-badge p { white-space: nowrap; }
.elementor-widget-image img { display: block; }
.kf-decor img, .spark img, .hero-spark img, .cta-band-spark img { width: 100%; height: auto; aspect-ratio: auto !important; border-radius: 0 !important; }
/* classes that sat on <img> in the design now sit on the image widget wrapper */
.hero-image img, .pillar-image img, .chapter-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.pillar-image { overflow: hidden; } .pillar-image img { aspect-ratio: 1 !important; border-radius: 50% !important; }
.price-option .elementor-widget { margin: 0 !important; }
.price-option-side { gap: .35rem; }
/* card grids: gap + flex-basis like the design (no % widths, so nothing overflows and wraps) */
:is(.cards,.book-options,.steps) > .e-con, :is(.cards,.book-options,.steps) > .e-con-inner > .e-con { --width: auto; --flex-grow: 1; --flex-shrink: 1; --flex-basis: 280px; min-width: 0; }
.cards--3 > .e-con { --flex-basis: 300px; } .cards--2 > .e-con, .book-options > .e-con { --flex-basis: 420px; } .cards--4 > .e-con { --flex-basis: 230px; }
.steps > .e-con { --flex-basis: 260px; } .steps--stacked > .e-con { --flex-basis: 100%; }
.e-con.place-card { --flex-direction: column; flex-direction: column; }
.place-card > .elementor-widget-image img { border-radius: var(--radius); aspect-ratio: 5 / 4; object-fit: cover; width: 100%; }
.place-card .icon-box-icon img { aspect-ratio: auto !important; border-radius: 0 !important; width: 52px !important; height: 52px !important; object-fit: contain !important; }
/* Elementor draws its background overlay with ::before on containers; give the design's ::before back */
.e-con.testimonial::before { position: relative; inset: auto; display: block; width: auto; background: none; opacity: 1; mix-blend-mode: normal; border-radius: 0; z-index: auto; }
.e-con.freebie-device::before { position: absolute; inset: auto; top: 5px; left: 50%; width: 34px; height: 3px; border-radius: 3px; background: #6b6370; opacity: 1; mix-blend-mode: normal; transform: translateX(-50%); z-index: 3; }
.e-con.freebie-device > .elementor-widget-image, .e-con.freebie-device > .elementor-widget-image img { width: 100% !important; max-width: 100% !important; }
/* Brevo signup (HTML widget): same look as the design's forms, not Elementor's global label/button styles */
.kf-html-form .form { display: flex; flex-direction: column; gap: 1.25rem; font-family: var(--font-body); }
.kf-html-form .form-row { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.kf-html-form .form-field { flex: 1 1 240px; display: flex; flex-direction: column; gap: .45rem; }
.kf-html-form .form-field label { font-family: var(--font-body) !important; font-size: .85rem !important; font-weight: 600 !important; color: var(--purple) !important; letter-spacing: .03em; line-height: 1.3 !important; }
.kf-html-form input[type=text], .kf-html-form input[type=email] { width: 100%; font: inherit; font-size: 1rem; color: var(--grey); background: var(--white) !important; border: 1.5px solid transparent !important; border-radius: 16px !important; padding: .95rem 1.15rem !important; box-shadow: none !important; }
.kf-html-form input:focus { outline: none; border-color: var(--purple) !important; }
.kf-html-form .form-check { display: flex; gap: .7rem; align-items: flex-start; }
.kf-html-form .form-check span { font-family: var(--font-body) !important; font-size: .9rem !important; line-height: 1.5 !important; color: var(--grey) !important; font-weight: 400 !important; }
.kf-html-form .form-check a { font-weight: 600; }
.kf-html-form .form-check input { margin-top: .25rem; accent-color: var(--purple); width: 18px; height: 18px; flex: none; }
.kf-html-form .btn-row { display: flex; margin-top: .5rem; }
.kf-html-form button[type=submit] { font-family: var(--font-body) !important; font-size: .95rem !important; font-weight: 600 !important; letter-spacing: .02em; line-height: 1.2 !important;
  padding: 1rem 1.9rem !important; border-radius: 999px !important; border: 1.5px solid var(--purple) !important; background: var(--purple) !important; color: var(--white) !important; cursor: pointer; transition: background .3s var(--ease), transform .3s var(--ease); }
.kf-html-form button[type=submit]:hover { background: var(--purple-deep) !important; border-color: var(--purple-deep) !important; transform: translateY(-2px); }
.kf-html-form .form-status { font-family: var(--font-body); font-weight: 600; color: var(--purple); margin: 0; }
/* Madalena location card: text and hand-drawn map side by side, the map fills its half */
.e-con.location { --flex-direction: row; flex-direction: row; flex-wrap: wrap; align-items: center; gap: clamp(1.5rem, 4vw, 3rem); }
.e-con.location > .e-con.location-map { --flex-grow: 1.4; }
.location-map .elementor-widget-html, .location-map .madeira-map, .location-map .madeira-map svg { width: 100%; }
.location-map .madeira-map svg { height: auto; display: block; }
@media (max-width: 767px) { .e-con.location > .e-con { --flex-basis: 100%; } }
/* events waitlist card (lilac): one-line form */
.event-empty--feature .kf-html-form .form-inline { display: flex; flex-wrap: wrap; gap: .7rem; }
.event-empty--feature .kf-html-form .form-inline input { flex: 1 1 180px; min-width: 0; background: var(--white) !important; border-radius: 999px !important; padding: .9rem 1.3rem !important; }
.event-empty--feature .kf-html-form button[type=submit] { flex: 0 0 auto; }
.event-empty--feature .kf-html-form .form-check { justify-content: flex-start; text-align: left; }
.event-empty--feature .kf-html-form .form-check span { font-size: .82rem !important; }
.event-empty--feature .kf-html-form .form-status { text-align: left; }
.event-empty--feature .kf-html-form .form-status:empty { display: none; }
.event-empty--feature .kf-html-form .form { margin-top: .5rem; width: 100%; }
@media (max-width: 767px) { .event-empty--feature .kf-html-form button[type=submit] { flex: 1 1 100%; } }
/* events waitlist card: script line sits close to its title */
.event-empty .elementor-widget-heading:first-child { margin-bottom: .75rem !important; }
.event-empty .elementor-widget-heading .elementor-heading-title { margin: 0; }
/* the arrow is drawn once, on the button text */
.elementor-widget.price-option-book::after, .elementor-widget.link-arrow::after { content: none !important; display: none !important; }
/* tablet cover: the title band stays inside the screen */
.e-con.freebie-cover-text { --width: auto; width: auto !important; left: 12px; right: 12px; max-width: none; }
/* icons sit above their titles with breathing room */
.e-con > .elementor-widget.icon-box-icon, .e-con > .elementor-widget.pillar-detail-icon, .e-con-inner > .elementor-widget.pillar-detail-icon { height: auto !important; margin-bottom: 1.25rem !important; }
.icon-box-icon img { width: auto !important; max-width: 64px; height: 52px !important; object-fit: contain; }
.pillar-detail-icon img { width: auto !important; max-width: 80px; height: 64px !important; object-fit: contain; }
/* breathing pause button: calm, small ghost button */
.breath-toggle { display: inline-flex; align-items: center; justify-content: center; margin-top: 2rem; padding: .8rem 1.6rem; border-radius: 999px;
  background: transparent !important; border: 1.5px solid var(--lilac) !important; color: var(--lilac-light) !important;
  font-family: var(--font-body) !important; font-size: .9rem !important; font-weight: 600 !important; letter-spacing: .02em; line-height: 1.2; cursor: pointer; transition: background .3s var(--ease), color .3s var(--ease); }
.breath-toggle:hover, .breath-toggle:focus { background: var(--lilac-light) !important; color: var(--purple) !important; }
/* home scene cards: icon tile holds a smaller icon */
.scene-card .icon-box-icon img { width: 32px !important; height: 32px !important; max-width: none; }
.scene-card .icon-box-icon { width: 56px !important; }
/* is-this-you cards: thought pinned to the bottom */
@media (min-width: 900px) { .scene-cards.cards--4 > .e-con { --flex-basis: 0px; --flex-grow: 1; flex: 1 1 0 !important; min-width: 0; } }
@media (min-width: 600px) and (max-width: 899px) { .scene-cards.cards--4 > .e-con { --flex-basis: 40%; flex: 1 1 40% !important; } }
.e-con.scene-card { justify-content: flex-start; }
.e-con.scene-card > .elementor-widget.kf-t-scene-thought, .e-con.scene-card .elementor-widget.kf-t-scene-thought { margin-top: auto !important; }
/* small section titles: orange text (Elementor heading title would otherwise take the global purple) */
.elementor-widget.eyebrow .elementor-heading-title { color: var(--orange) !important; }
.elementor-widget.eyebrow .elementor-heading-title { font-family: var(--font-body) !important; font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: .22em !important; text-transform: uppercase !important; line-height: 1.3 !important; }
@media (max-width: 767px) { .elementor-widget.eyebrow .elementor-heading-title { font-size: 12px !important; letter-spacing: .18em !important; } }
.section--purple .elementor-widget.eyebrow .elementor-heading-title, .cta-band .elementor-widget.eyebrow .elementor-heading-title { color: var(--lilac) !important; }
.elementor-widget.hero-eyebrow .elementor-heading-title { color: var(--purple) !important; }
/* card lists: fixed 3-column grid */
.check-card ul.check-list--columns { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem 2.5rem; }
@media (max-width: 900px) { .check-card ul.check-list--columns { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .check-card ul.check-list--columns { grid-template-columns: 1fr; } }
/* footer brand: tagline sits close to the intro line */
.e-con.footer-brand { gap: .5rem !important; --gap: .5rem; --row-gap: .5rem; }
.footer-brand .elementor-widget.footer-tagline { margin-bottom: 0 !important; }
/* consistency pass: space under small titles, one paragraph size, calm notes */
.elementor-widget.eyebrow { margin-bottom: 1.25rem !important; }
.kf-t-lead, .kf-t-lead p, p.lead { font-size: var(--fs-body) !important; line-height: 1.7 !important; }
.kf-t-small, .kf-t-small p, p.small { line-height: 1.6 !important; }
.e-con.price-options { margin-bottom: 1rem !important; }
.e-con.btn-row { margin-bottom: 1rem !important; }
/* one reading size everywhere: plain paragraphs, intro paragraphs and content lists */
:root { --fs-body: 17px; }
@media (max-width: 1024px) { :root { --fs-body: 16px; } }
.elementor-widget-text-editor p:not([class]), p.lead, p.max-copy, p.hero-text, p.mission-text, p.scene-close-lead, p.scene-text, p.scene-thought, p.pillar-text,
.check-list li, .dot-list li, .facts li, .legal-list li { font-size: var(--fs-body) !important; }
.journey-steps li { font-size: var(--fs-body) !important; flex: 1 1 200px !important; }
.journey-steps strong { font-size: 1.05em !important; }
.elementor-widget-text-editor p:not([class]), p.lead, p.max-copy, p.pillar-text { line-height: 1.7; }
.e-con .elementor-widget.mission-statement, .mission-statement { max-width: 64rem !important; margin-inline: auto !important; }
p.mission-text { max-width: 48rem; margin-inline: auto; }
/* centred intros: wider text block */
.e-con.max-copy, .max-copy { max-width: 760px !important; }
/* wide centred title, readable paragraphs underneath */
.e-con.text-measure > .elementor-widget-text-editor, .e-con.text-measure > .e-con-inner > .elementor-widget-text-editor { max-width: 760px; margin-inline: auto; }
/* centred intros: wide title, paragraphs at reading width */
.e-con.max-copy.text-center { max-width: 100% !important; }
.e-con.max-copy.text-center > .elementor-widget-text-editor { max-width: 760px; margin-inline: auto; }
/* ===== Mobile fixes (Oct 2026) ===== */
@media (max-width: 767px) {
  /* stacked blocks size to their content (Safari/Chrome were sharing height evenly, so photos spilled over text) */
  :is(.row,.chapter,.location,.offer-card,.event-empty,.hero-inner,.pillar-item,.form-row) > .e-con,
  :is(.row,.chapter,.location,.offer-card,.event-empty,.hero-inner,.pillar-item,.form-row) > .e-con-inner > .e-con { flex: 0 0 auto !important; --flex-basis: auto; --flex-grow: 0; width: 100% !important; }
  .e-con.frame, .e-con.frame > .elementor-widget-image, .e-con.frame > .e-con-inner > .elementor-widget-image { flex: 0 0 auto !important; height: auto !important; }
  .e-con.row, .e-con.row > .e-con-inner { row-gap: 2.5rem !important; }
  /* two photos stay side by side, gently offset */
  .e-con.photo-pair, .e-con.photo-pair > .e-con-inner { flex-direction: row !important; --flex-direction: row; flex-wrap: nowrap !important; align-items: flex-start !important; gap: .9rem !important; }
  .e-con.photo-pair > .e-con.frame { flex: 1 1 0% !important; width: auto !important; }
  .e-con.photo-pair > .e-con.frame:first-child { flex-grow: 1.4 !important; }
  .e-con.photo-pair > .e-con.frame:last-child { margin-top: 3rem !important; }
  .e-con.photo-pair .frame-offset::before, .e-con.photo-pair.frame-offset::before { display: none; }
  /* story photos on About: full width, rounded */
  .e-con.chapter-photo, .chapter-photo { max-width: 100% !important; width: 100% !important; }
  .chapter-photo img { aspect-ratio: 4 / 3 !important; border-radius: var(--radius) !important; width: 100% !important; height: auto !important; object-fit: cover; object-position: 50% 30%; }
  /* header: logo left, burger + EN|FR right, one row */
  .e-con.kf-header, .e-con.kf-header > .e-con-inner { flex-direction: row !important; --flex-direction: row; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; }
  .e-con.kf-header-logo { flex: 0 1 auto !important; width: auto !important; }
  .e-con.kf-header-logo img { max-width: 150px !important; height: auto; }
  .e-con.kf-header-right, .e-con.kf-header-right > .e-con-inner { flex: 0 0 auto !important; width: auto !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: flex-end !important; gap: .5rem !important; }
}
.chapter-photo img { border-radius: var(--radius) !important; }
.e-con.frame > .elementor-widget:not(.kf-decor), .e-con.frame > .e-con-inner > .elementor-widget:not(.kf-decor) { width: 100% !important; }
.e-con.frame img { display: block; }
@media (max-width: 1024px) {
  .e-con > .elementor-widget-image:not(.icon-box-icon):not(.pillar-detail-icon):not(.kf-logo):not(.spark):not(.hero-spark):not(.cta-band-spark):not(.quote-mark):not(.kf-decor):not([class*="badge"]),
  .e-con-inner > .elementor-widget-image:not(.icon-box-icon):not(.pillar-detail-icon):not(.kf-logo):not(.spark):not(.hero-spark):not(.cta-band-spark):not(.quote-mark):not(.kf-decor):not([class*="badge"]) { flex: 0 0 auto !important; width: 100% !important; }
}
/* Blog article (Astra single post) in the new design */
header img, footer img, .elementor-4412 img, .elementor-4413 img { box-shadow: none !important; border-radius: 0; }
.single-post #primary { margin-top: clamp(1.5rem, 3vw, 2.5rem) !important; }
.single-post #primary .ast-article-single { margin-top: 0 !important; }
.single-post #primary .entry-meta { font-size: 0 !important; }
.single-post #primary .entry-meta .posted-by { display: none !important; }
.single-post #primary .entry-meta .posted-on, .single-post #primary .entry-meta .posted-on * { font-size: .85rem !important; }
.kf-post-hero img { box-shadow: none !important; }
.elementor.elementor-4412, .elementor.elementor-4413 { background: transparent !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; border: 0 !important; }
.single-post .site-content { background: var(--lilac-light); }
.single-post.ast-narrow-container .site-content > .ast-container { max-width: 860px; }
.single-post #primary .ast-article-single, .single-post.ast-separate-container #primary .ast-article-single { background: var(--white) !important; border-radius: 28px; padding: clamp(1.75rem, 5vw, 4rem) !important; margin: clamp(2rem, 5vw, 4rem) 0 2rem; box-shadow: 0 16px 40px rgba(78, 14, 122, .06); }
.single-post #primary .entry-title { font-family: var(--font-display) !important; font-weight: 400 !important; font-size: clamp(2rem, 3.4vw, 2.9rem) !important; line-height: 1.15 !important; color: var(--purple) !important; letter-spacing: -0.02em; margin-bottom: .75rem; }
.single-post #primary .entry-meta, .single-post #primary .entry-meta * { font-family: var(--font-body) !important; font-size: .85rem !important; color: var(--grey) !important; font-weight: 400 !important; letter-spacing: .02em; }
.single-post #primary .entry-header { margin-bottom: 1.75rem !important; }
.kf-post-hero { margin: 0 0 2.25rem; }
.kf-post-hero img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 20px; display: block; }
.single-post .entry-content p, .single-post .entry-content li { font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.75; color: var(--grey); }
.single-post .entry-content h2 { font-family: var(--font-display) !important; font-weight: 400 !important; font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important; line-height: 1.2 !important; color: var(--purple) !important; margin: 2.4rem 0 .8rem !important; }
.single-post .entry-content h3, .single-post .entry-content h4 { font-family: var(--font-display) !important; font-weight: 400 !important; font-size: 1.3rem !important; line-height: 1.25 !important; color: var(--purple) !important; margin: 1.8rem 0 .6rem !important; }
.single-post .entry-content a { color: var(--purple); text-decoration: underline; text-underline-offset: 3px; }
.kf-back { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--lilac); }
.kf-back a { font-weight: 600; text-decoration: none !important; }
.single-post .post-navigation, .single-post .comments-area { background: var(--white); border-radius: 20px; padding: 1.5rem clamp(1.25rem, 4vw, 2.5rem) !important; margin-top: 1.25rem !important; font-family: var(--font-body); }
.single-post .post-navigation a, .single-post .comments-area .comment-reply-title { font-family: var(--font-display) !important; color: var(--purple) !important; font-weight: 400 !important; }
.single-post .comments-area .submit { background: var(--purple) !important; border-radius: 999px !important; border: 0 !important; padding: .9rem 1.6rem !important; font-family: var(--font-body) !important; }
/* Method pillar quick-link cards: whole card clickable */
.e-con.pillar-link-card { position: relative !important; background: var(--lilac-light) !important; border-radius: var(--radius) !important; padding: clamp(1.5rem, 2.5vw, 2rem) !important; }
.e-con.pillar-link-card .elementor-widget, .e-con.pillar-link-card .elementor-widget-container { position: static !important; }
.e-con.pillar-link-card .elementor-widget-button { margin-top: auto !important; }
.e-con.pillar-link-card a::before { content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: 1; }
.e-con.pillar-link-card .icon-box-icon img, .pillar-link-card .elementor-widget-image img { width: 32px !important; height: 32px !important; }
.e-con.pillar-link-card .elementor-widget-image { width: 56px !important; background: var(--white); border-radius: 16px; padding: 12px; }
@media (min-width: 900px) { .pillar-links.cards--4 > .e-con { flex: 1 1 0% !important; min-width: 0; } }
/* Method positioning card */
.e-con.positioning, .e-con.section--white { background-color: var(--white) !important; }
.e-con.positioning-card { background: var(--lilac-light) !important; border-radius: calc(var(--radius) * 1.3) !important; padding: clamp(2rem, 5vw, 4rem) !important; }
@media (min-width: 768px) {
  .e-con.positioning-card { flex-wrap: nowrap !important; align-items: center !important; gap: clamp(2rem, 4vw, 4rem) !important; }
  .e-con.positioning-card > .e-con.col-60 { flex: 1.5 1 0% !important; width: auto !important; }
  .e-con.positioning-card > .e-con.col-40 { flex: 1 1 0% !important; width: auto !important; }
}
.e-con.positioning-card .elementor-widget-text-editor, .e-con.positioning-card .without-list { width: 100%; }
/* Footer v2 (InnerCamp-inspired): brand + 3 columns + newsletter band */
.kf-footer .footer-heading .elementor-heading-title { color: var(--orange) !important; letter-spacing: .22em !important; }
.kf-footer .footer-intro { font-size: 1.15rem !important; line-height: 1.65 !important; color: var(--lilac-light) !important; max-width: 30rem; margin: 0; }
.kf-footer .footer-links { gap: .95rem !important; font-size: 1rem !important; }
.kf-footer .footer-links li { font-size: 1rem !important; color: var(--lilac); }
.kf-footer .footer-social .elementor-social-icon { background: transparent !important; border: 1px solid rgba(234, 210, 247, .35) !important; border-radius: 10px !important; transition: background .25s ease; }
.kf-footer .footer-social .elementor-social-icon:hover { background: rgba(247, 237, 253, .12) !important; }
.kf-footer .footer-social .elementor-social-icon i, .kf-footer .footer-social .elementor-social-icon svg { color: var(--lilac-light) !important; fill: var(--lilac-light) !important; }
.kf-footer .footer-nl-line { font-family: var(--font-display) !important; font-size: clamp(1.35rem, 2vw, 1.75rem) !important; line-height: 1.3 !important; color: var(--lilac-light) !important; margin: 0; }
.kf-newsletter { display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; margin: 0; }
.kf-newsletter input[type=email] { flex: 1 1 260px; height: 58px; padding: 0 1.5rem; border-radius: 999px; border: 1px solid rgba(234, 210, 247, .45); background: rgba(255, 255, 255, .07); color: var(--white); font-family: var(--font-body); font-size: 1rem; outline: none; }
.kf-newsletter input[type=email]::placeholder { color: rgba(234, 210, 247, .75); }
.kf-newsletter input[type=email]:focus { border-color: var(--lilac-light); background: rgba(255, 255, 255, .12); }
.kf-newsletter button { height: 58px; padding: 0 2.1rem; border: 0; border-radius: 999px; background: var(--lilac-light); color: var(--purple); font-family: var(--font-body); font-weight: 700; font-size: .8rem; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; transition: background .25s ease, transform .25s ease; }
.kf-newsletter button:hover { background: var(--white); transform: translateY(-1px); }
.kf-newsletter button:disabled { opacity: .6; }
.kf-newsletter .kf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.kf-newsletter .kf-nl-msg { flex-basis: 100%; margin: .2rem 0 0; font-size: .95rem; color: var(--lilac-light); min-height: 0; }
.kf-newsletter .kf-nl-msg:empty { display: none; }
.kf-footer .kf-nl-note { margin: .9rem 0 0; font-size: .85rem; color: var(--lavender); }
.kf-footer .kf-nl-note a { color: var(--lilac-light); text-decoration: underline; text-underline-offset: 3px; }
.kf-newsletter input[type=text]:not(.kf-hp) { flex: 1 1 180px; height: 58px; padding: 0 1.5rem; border-radius: 999px; border: 1px solid rgba(234, 210, 247, .45); background: rgba(255, 255, 255, .07); color: var(--white); font-family: var(--font-body); font-size: 1rem; outline: none; }
.kf-newsletter input[type=text]:not(.kf-hp)::placeholder { color: rgba(234, 210, 247, .75); }
.kf-newsletter--name input[type=email] { flex-basis: 220px; }
.kf-newsletter .kf-nl-consent { flex-basis: 100%; display: flex; align-items: flex-start; gap: .65rem; margin: .2rem 0 0; font-size: .88rem; line-height: 1.5; color: var(--lilac-light); cursor: pointer; }
.kf-newsletter .kf-nl-consent input { width: 18px; height: 18px; margin: .12rem 0 0; accent-color: var(--orange); flex: none; }
@media (max-width: 480px) { .kf-newsletter button { width: 100%; } }
/* Footer v2 refinement: lighter, smaller, no bold (InnerCamp feel) */
.kf-footer .footer-links, .kf-footer .footer-links li, .kf-footer .footer-links a { font-family: var(--font-body) !important; font-weight: 400 !important; font-size: 15.5px !important; line-height: 1.5 !important; letter-spacing: .01em; }
.kf-footer .footer-links a { color: var(--lilac-light) !important; }
.kf-footer .footer-links li { color: var(--lavender) !important; }
.kf-footer .footer-links { gap: 1rem !important; }
.kf-footer .footer-intro { font-size: 17px !important; font-weight: 400 !important; line-height: 1.7 !important; }
.kf-footer .footer-heading .elementor-heading-title { font-size: 12px !important; font-weight: 600 !important; }
.kf-footer .footer-nl-line { font-size: clamp(1.25rem, 1.7vw, 1.5rem) !important; font-weight: 400 !important; line-height: 1.35 !important; }
.kf-footer .footer-disclaimer p, .kf-footer .footer-copy p, .kf-footer .footer-disclaimer, .kf-footer .footer-copy { font-size: 13.5px !important; font-weight: 400 !important; line-height: 1.6 !important; color: var(--lavender) !important; }
.kf-footer .footer-copy a { font-weight: 400 !important; color: var(--lilac-light) !important; text-decoration: underline; text-underline-offset: 3px; }
.kf-footer .kf-newsletter input[type=email], .kf-footer .kf-newsletter input[type=text]:not(.kf-hp) { background: rgba(255, 255, 255, .07) !important; border: 1px solid rgba(234, 210, 247, .45) !important; color: var(--white) !important; box-shadow: none !important; border-radius: 999px !important; height: 58px !important; padding: 0 1.5rem !important; font-size: 15.5px !important; }
.kf-footer .kf-newsletter input::placeholder { color: rgba(234, 210, 247, .7) !important; opacity: 1; }
.kf-footer .kf-newsletter input:focus { background: rgba(255, 255, 255, .12) !important; border-color: var(--lilac-light) !important; }
.kf-footer .kf-newsletter button { font-size: 12px !important; font-weight: 600 !important; }
.kf-footer .kf-nl-note, .kf-footer .kf-newsletter .kf-nl-consent { font-size: 13.5px !important; font-weight: 400 !important; }
.kf-footer .footer-nl-line { font-size: 18px !important; line-height: 1.5 !important; max-width: 26rem; }
.kf-footer .kf-newsletter .kf-nl-consent, .kf-footer .kf-newsletter .kf-nl-consent span, .kf-footer .kf-nl-note, .kf-footer .kf-nl-note a { font-family: var(--font-body) !important; font-style: normal !important; letter-spacing: 0 !important; text-transform: none !important; }
.kf-footer .kf-nl-note a { font-weight: 400 !important; }
.kf-footer .kf-newsletter button { background: var(--lilac-light) !important; color: var(--purple) !important; border: 0 !important; }
.kf-footer .kf-newsletter button:hover, .kf-footer .kf-newsletter button:focus, .kf-footer .kf-newsletter button:focus-visible, .kf-footer .kf-newsletter button:active { background: var(--white) !important; color: var(--purple) !important; outline: none; }
.kf-footer .kf-newsletter button:focus-visible { box-shadow: 0 0 0 3px rgba(247, 237, 253, .45) !important; }
/* Instagram strip above the footer */
.e-con.kf-insta-strip { background: var(--lilac-light) !important; }
.kf-insta-strip .insta-line { margin: 0; text-align: center; font-family: var(--font-body) !important; font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: .2em; text-transform: uppercase; }
.kf-insta-strip .insta-line a { color: var(--purple) !important; text-decoration: none; }
.kf-insta-strip .insta-line span { color: var(--orange); margin-left: .5em; letter-spacing: .08em; text-transform: none; font-size: 14px; }
.kf-insta-strip .insta-line a:hover span { text-decoration: underline; text-underline-offset: 3px; }
.kf-insta #sb_instagram { padding: 0 !important; margin: 0 !important; }
.kf-insta #sb_instagram #sbi_images { padding: 0 !important; gap: 0 !important; }
.kf-insta #sb_instagram .sbi_item { padding: 0 !important; margin: 0 !important; }
.kf-insta #sb_instagram .sbi_photo_wrap { position: relative; overflow: hidden; }
.kf-insta #sb_instagram .sbi_photo_wrap::after { content: ""; position: absolute; inset: 0; background: rgba(111, 24, 170, 0); transition: background .3s ease; pointer-events: none; }
.kf-insta #sb_instagram .sbi_photo_wrap:hover::after { background: rgba(111, 24, 170, .35); }
.kf-insta #sb_instagram .sbi_photo img { transition: transform .5s ease; }
.kf-insta #sb_instagram .sbi_photo_wrap:hover .sbi_photo img { transform: scale(1.04); }
@media (max-width: 1024px) {
  .kf-insta #sb_instagram #sbi_images { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  .kf-insta #sb_instagram #sbi_images .sbi_item { width: auto !important; max-width: none !important; display: block !important; }
}
/* home hero pill hugs its text */
html[lang^="fr"] .hero-headline .elementor-heading-title { font-size: calc(var(--fs-hero) * .68) !important; }
.elementor-widget.hero-eyebrow { width: fit-content !important; max-width: 100%; align-self: flex-start; --container-widget-width: fit-content; --container-widget-flex-grow: 0; }
.hero-eyebrow .elementor-heading-title { white-space: nowrap; }
@media (max-width: 480px) { .hero-eyebrow .elementor-heading-title { white-space: normal; letter-spacing: .1em; font-size: .7rem; } }
.elementor-widget.hero-eyebrow { margin-bottom: 1.25rem !important; }
.hero-trust, .hero-trust p { line-height: 1.5 !important; }
.elementor-widget.kf-t-hero-trust, .elementor-widget.hero-trust { margin-top: 1.25rem !important; }
/* note from Kelly: white card on the ocean photo */
.kelly-note > .e-con.container { background: rgba(255,255,255,.88) !important; -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border-radius: 28px !important;
  padding: clamp(2rem,5vw,3.5rem) clamp(1.5rem,5vw,4rem) !important; box-shadow: 0 20px 60px rgba(40,10,60,.18); width: min(960px, calc(100% - 2.5rem)) !important; max-width: none; margin-inline: auto !important; flex: none; }
/* pillars showpiece: Elementor adds an inner wrapper inside the boxed container */
.pillars.is-pinned .pillars-stage { justify-content: center; }
.pillars.is-pinned .pillars-stage > .e-con.container { height: min(640px, 82%) !important; width: 100%; flex: none; }
.pillars.is-pinned .pillars-stage > .container > .e-con-inner { height: 100%; }
.pillars.is-pinned .pillars-list { height: 100%; }
@media (max-width: 900px) {
  .e-con.hero-inner, .e-con.hero-inner > .e-con-inner { --flex-direction: column; flex-direction: column; align-items: stretch; }
  .e-con.hero-inner > .e-con-inner > .e-con.hero-content { --width: 100%; }
}
.kf-lang-switch ul { align-items: center; line-height: 1; }
.kf-lang-switch li { display: flex; align-items: center; }
@media (max-width: 900px) { .e-con.pillar-item { --flex-direction: column; flex-direction: column; align-items: flex-start; } }
/* breath showpiece: the canvas widget is the visual layer behind the steps */
.breath-stage > .kf-html-canvas, .breath-stage > .e-con-inner > .kf-html-canvas { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; }
.breath-stage > .elementor-widget-text-editor { position: relative; z-index: 2; width: 100%; height: 100%; }
.breath.is-live .breath-stage > .elementor-widget-text-editor { position: absolute; inset: 0; }
.breath .elementor-widget-heading .elementor-heading-title { color: var(--lilac-light); }
.icon-box-icon img, .pillar-detail-icon img { width: 100%; height: auto; }
.icon-box-icon, .pillar-detail-icon { width: 52px; }
.pillar-detail-icon { width: 64px; }
/* eyebrow: the spark sits before the heading inside the wrapper */
.elementor-widget-heading.eyebrow { display: flex; margin: 0 0 1.5rem; }
/* vertical rhythm between stacked widgets (the design used element margins) */
.e-con > .elementor-widget-heading:not(.eyebrow):not(:last-child), .e-con-inner > .elementor-widget-heading:not(.eyebrow):not(:last-child) { margin-bottom: clamp(14px, 1.6vw, 24px); }
.e-con > .elementor-widget-text-editor:not(:last-child), .e-con-inner > .elementor-widget-text-editor:not(:last-child) { margin-bottom: 1.1em; }
.e-con > .elementor-widget-button.link-arrow, .e-con-inner > .elementor-widget-button.link-arrow { margin-top: .5rem; }
.text-center .elementor-widget-heading.eyebrow, .elementor-widget-heading.eyebrow.text-center { justify-content: center; }
.elementor-widget-heading.eyebrow .elementor-heading-title { margin: 0; }
/* link-style buttons (link-arrow, Book ->) */
.link-arrow .elementor-button, .price-option-book .elementor-button { padding: 0; background: none; border: 0; }
.link-arrow .elementor-button-text::after, .price-option-book .elementor-button-text::after { content: " →"; display: inline-block; transition: transform .3s var(--ease); }
.link-arrow .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }
.elementor-widget-button .elementor-button { transition: background .3s var(--ease), color .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease); }
.btn .elementor-button:hover { transform: translateY(-2px); }
.price-option-book { margin: 0 !important; }
/* text-editor wrappers that carry list classes */
.elementor-widget-text-editor.statement-list, .elementor-widget-text-editor.check-list, .elementor-widget-text-editor.legal-list { display: block; }
/* accordion (Elementor Toggle widget: all items start closed) */
.kf-accordion .elementor-toggle-item { border: 0 !important; border-bottom: 1px solid rgba(111,24,170,.22) !important; margin: 0 !important; }
.kf-accordion .elementor-toggle-item:first-child { border-top: 1px solid rgba(111,24,170,.22) !important; }
.kf-accordion .elementor-tab-title { border: 0 !important; font-family: var(--font-display); font-size: 1.35rem; color: var(--purple); }
.kf-accordion .elementor-toggle-icon { color: var(--orange); }
.kf-accordion .elementor-tab-title { padding: 22px 0 !important; }
.kf-accordion .elementor-tab-content { border: 0 !important; padding: 0 40px 24px 0 !important; }
.kf-accordion .accordion-hint-inline { color: var(--lavender); margin-bottom: .6em; }
/* sections */
.e-con.section:not(.pillars), .e-con.cta-band, .e-con.page-hero, .e-con.contact-hero { position: relative; overflow: hidden; }
.e-con.pillars { overflow: visible; }
.e-con.hero { overflow: visible; }
.e-con.frame { position: relative; }
.e-con.frame-offset { isolation: isolate; }
/* ---------- language: header/footer hold both languages, the other one is hidden ---------- */
html:not([lang^="fr"]) .kf-lang-fr, html[lang^="fr"] .kf-lang-en { display: none !important; }
/* ---------- header (Xpro Theme Builder) ---------- */
.kf-header { box-shadow: 0 6px 30px rgba(78,14,122,0); transition: box-shadow .3s var(--ease); }
.kf-header .kf-logo img { width: 100%; height: auto; }
.e-con.kf-header-logo { --width: 190px; --flex-shrink: 0; --flex-grow: 0; }
.e-con.kf-header-right { --width: auto; --flex-grow: 1; min-width: 0; }
.kf-lang-switch ul { flex-direction: row; }
.kf-lang-switch ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .5rem; align-items: center; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.kf-lang-switch li + li::before { content: "|"; color: var(--lavender); margin-right: .5rem; }
.kf-lang-switch a { color: var(--purple); text-decoration: none; }
.kf-lang-switch .current-lang a { color: var(--orange); }
.kf-lang-switch h5, .kf-lang-switch .widgettitle { display: none; }
@media (max-width: 1024px) { .kf-header .header-cta { display: none; } }
/* mobile menu panel (Xpro responsive menu) in brand style */
@media (max-width: 1024px) {
  .kf-nav .xpro-elementor-horizontal-menu-responsive-tablet .xpro-elementor-horizontal-navbar { background: var(--lilac) !important; }
  .kf-nav .xpro-elementor-horizontal-menu-responsive-tablet .xpro-elementor-horizontal-navbar-nav { background: transparent !important; border: 0 !important; }
  .kf-nav .xpro-elementor-horizontal-menu-responsive-tablet .nav-item { background: transparent !important; border: 0 !important; }
  .kf-nav .xpro-elementor-horizontal-menu-responsive-tablet .xpro-elementor-nav-link { background: transparent !important; font-family: var(--font-display) !important; font-size: clamp(1.9rem, 7vw, 2.6rem) !important; font-weight: 400 !important; letter-spacing: -0.01em !important; line-height: 1.2 !important; padding: .35rem 0 !important; color: var(--purple) !important; }
  .kf-nav .xpro-elementor-horizontal-menu-close { background: transparent !important; border: 0 !important; color: var(--purple) !important; box-shadow: none !important; }
  .kf-nav .xpro-elementor-horizontal-menu-close i, .kf-nav .xpro-elementor-horizontal-menu-close svg { color: var(--purple) !important; fill: var(--purple) !important; }
}
/* laptops: the full menu stays, the header CTA steps back (the reset is promoted in the page) */
@media (min-width: 1025px) and (max-width: 1439px) {
  .kf-header .header-cta { display: none !important; }
  .e-con.kf-header-logo { --width: 150px; }
  .kf-header .kf-nav .xpro-elementor-horizontal-navbar-nav > li > a, .kf-header .kf-nav a { font-size: 13.5px !important; padding-left: 7px !important; padding-right: 7px !important; }
}
@media (min-width: 1025px) and (max-width: 1150px) {
  .kf-header .kf-nav a { font-size: 12.5px !important; padding-left: 5px !important; padding-right: 5px !important; }
  .e-con.kf-header-logo { --width: 130px; }
}
/* ---------- footer ---------- */
.kf-footer .footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .6rem; font-size: .95rem; color: var(--lilac); }
.kf-footer a { color: var(--lilac-light); text-decoration: none; }
.kf-footer a:hover { color: var(--white); text-decoration: underline; }
.kf-footer .footer-disclaimer { max-width: 46rem; }
.kf-footer .footer-disclaimer, .kf-footer .footer-copy { color: var(--lavender); }
/* ---------- WPForms (contact) styled like the design ---------- */
.kf-wpforms-widget .wpforms-container { margin: 0; }
.kf-wpforms-widget .wpforms-field-label { font-family: var(--font-body); font-size: .85rem !important; font-weight: 600 !important; color: var(--purple) !important; letter-spacing: .03em; }
.kf-wpforms-widget .wpforms-field-sublabel { color: var(--lavender) !important; }
.kf-wpforms-widget input[type=text], .kf-wpforms-widget input[type=email], .kf-wpforms-widget select, .kf-wpforms-widget textarea {
  width: 100% !important; max-width: 100% !important; background: var(--lilac-light) !important; border: 1.5px solid transparent !important; border-radius: 16px !important;
  padding: .95rem 1.15rem !important; font: inherit !important; color: var(--grey) !important; box-shadow: none !important; height: auto !important; }
.kf-wpforms-widget textarea { min-height: 160px !important; }
.kf-wpforms-widget input:focus, .kf-wpforms-widget select:focus, .kf-wpforms-widget textarea:focus { border-color: var(--purple) !important; outline: none !important; }
.kf-wpforms-widget .wpforms-field-checkbox label { font-family: var(--font-body) !important; font-size: .9rem !important; color: var(--grey) !important; line-height: 1.5 !important; }
.kf-wpforms-widget .wpforms-field-checkbox input { accent-color: var(--purple); }
.kf-wpforms-widget .wpforms-field-checkbox ul li { display: flex !important; align-items: flex-start; gap: 12px; }
.kf-wpforms-widget .wpforms-field-checkbox input[type=checkbox] { -webkit-appearance: none !important; appearance: none !important; flex: 0 0 20px; width: 20px !important; height: 20px !important; min-height: 0 !important; padding: 0 !important; margin: 3px 0 0 !important; border: 1.5px solid var(--purple) !important; border-radius: 6px !important; background: var(--white) no-repeat center / 14px 14px !important; box-shadow: none !important; cursor: pointer; transition: background-color .2s; }
.kf-wpforms-widget .wpforms-field-checkbox input[type=checkbox]:checked { background-color: var(--purple) !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") !important; }
.kf-wpforms-widget .wpforms-field-checkbox input[type=checkbox]:focus-visible { outline: 2px solid var(--orange, #F28C52) !important; outline-offset: 2px; }
.kf-wpforms-widget .wpforms-field-checkbox input[type=checkbox]::before, .kf-wpforms-widget .wpforms-field-checkbox input[type=checkbox]::after { display: none !important; content: none !important; }
.kf-wpforms-widget .wpforms-field-checkbox label.wpforms-field-label-inline { padding: 0 !important; margin: 0 !important; }
.kf-wpforms-widget button[type=submit] { background: var(--purple) !important; color: var(--white) !important; border: 1.5px solid var(--purple) !important; border-radius: 999px !important;
  padding: 1rem 1.9rem !important; height: auto !important; font-family: var(--font-body) !important; font-weight: 600 !important; font-size: .95rem !important; letter-spacing: .02em; transition: background .3s var(--ease), transform .3s var(--ease); }
.kf-wpforms-widget button[type=submit]:hover { background: var(--purple-deep) !important; border-color: var(--purple-deep) !important; transform: translateY(-2px); }
.kf-wpforms-widget .wpforms-confirmation-container-full { background: var(--lilac-light) !important; border: 0 !important; border-radius: 24px !important; color: var(--grey) !important; text-align: center; padding: 48px 32px 44px !important; margin: 0 !important; }
.kf-wpforms-widget .wpforms-confirmation-container-full::before { content: ""; display: block; width: 56px; height: 56px; margin: 0 auto 20px; border-radius: 50%; background: var(--purple) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center / 26px 26px; }
.kf-wpforms-widget .wpforms-confirmation-container-full p { font-family: var(--font-body) !important; font-size: var(--fs-body) !important; line-height: 1.65 !important; color: var(--grey) !important; max-width: 34em; margin: 0 auto 12px !important; }
.kf-wpforms-widget .wpforms-confirmation-container-full p.kf-thanks-title { font-family: var(--font-display) !important; font-size: clamp(1.5rem, 2.4vw, 1.9rem) !important; line-height: 1.25 !important; color: var(--purple) !important; margin-bottom: 14px !important; }
.kf-wpforms-widget .wpforms-confirmation-container-full p.kf-thanks-note { font-family: var(--font-script) !important; font-size: 1.6rem !important; line-height: 1.3 !important; color: var(--orange) !important; margin: 22px auto 0 !important; }
@media (max-width: 767px) { .kf-wpforms-widget .wpforms-confirmation-container-full { padding: 36px 20px 32px !important; } }
/* children of component rows size themselves from the component CSS (Elementor defaults them to 100%) */
:is(.hero-inner,.pillar-item,.price-option,.pillars-intro,.photo-pair,.badges,.contact-info,.event-card,.place-card,.offer-card,.form-row,.chapter,.location,.journey-steps,.timeline,.side-note) > .e-con,
:is(.hero-inner,.pillar-item,.price-option,.pillars-intro,.photo-pair,.badges,.contact-info,.event-card,.place-card,.offer-card,.form-row,.chapter,.location,.journey-steps,.timeline,.side-note) > .e-con-inner > .e-con { --width: auto; min-width: 0; }
/* share space evenly (basis 0) in two-part components; size-to-content elsewhere */
:is(.hero-inner,.pillar-item,.photo-pair,.chapter,.location,.offer-card,.form-row) > .e-con,
:is(.hero-inner,.pillar-item,.photo-pair,.chapter,.location,.offer-card,.form-row) > .e-con-inner > .e-con { --flex-grow: 1; --flex-shrink: 1; --flex-basis: 0%; }
:is(.price-option,.badges,.contact-info,.event-card,.place-card,.pillars-intro,.journey-steps,.timeline,.side-note) > .e-con,
:is(.price-option,.badges,.contact-info,.event-card,.place-card,.pillars-intro,.journey-steps,.timeline,.side-note) > .e-con-inner > .e-con { --flex-grow: 0; --flex-shrink: 1; --flex-basis: auto; }
.e-con.hero-content { --flex-grow: 1.38; }
@media (min-width: 901px) { .e-con.hero-content { flex: 1.38 1 0% !important; } .e-con.hero-media { flex: 1 1 0% !important; } }
.e-con.hero-inner > .e-con-inner { gap: clamp(2rem, 4vw, 4rem); }
.hero-headline .elementor-heading-title { font-size: var(--fs-hero) !important; line-height: 1 !important; letter-spacing: -0.035em !important; }
.e-con.price-option-info { --flex-grow: 1; }
.e-con.pillar-media { --flex-grow: 0; --flex-basis: auto; width: min(36vw, 460px); }
.e-con.photo-pair > .e-con.frame:first-child { --flex-grow: 1.4; }
@media (max-width: 900px) {
  :is(.hero-inner,.pillar-item,.chapter,.location,.offer-card) > .e-con,
  :is(.hero-inner,.pillar-item,.chapter,.location,.offer-card) > .e-con-inner > .e-con { --flex-basis: auto; --width: 100%; }
  .e-con.pillar-media { width: min(78vw, 380px); }
  .e-con.hero-media { --width: 82%; max-width: 420px; --align-self: flex-end; align-self: flex-end; }
}/* End custom CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/kelly-site/sunsive-regular.woff2') format('woff2'),
		url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-Regular.ttf') format('truetype');
}
@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: 500;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/kelly-site/sunsive-medium.woff2') format('woff2'),
		url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-Medium.ttf') format('truetype');
}
@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: 600;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/kelly-site/sunsive-semibold.woff2') format('woff2'),
		url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-SemiBold.ttf') format('truetype');
}
@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: 700;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-Bold.ttf') format('truetype');
}
@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: 800;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-ExtraBold.ttf') format('truetype');
}
@font-face {
	font-family: 'Sunsive';
	font-style: normal;
	font-weight: 900;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/2024/08/Sunsive-Black.ttf') format('truetype');
}
/* End Custom Fonts CSS */
/* Start Custom Fonts CSS */@font-face {
	font-family: 'Dreaming Outloud';
	font-style: normal;
	font-weight: normal;
	font-display: auto;
	src: url('https://kellyfantazi.com/wp-content/uploads/kelly-site/dreaming-outloud-pro.woff2') format('woff2'),
		url('http://kellyfantazi.com/wp-content/uploads/2026/02/dreaming-outloud-pro-regular.woff') format('woff');
}
/* End Custom Fonts CSS */