:root{
  --color-bg: #FAF3E7;
  --color-bg-alt: #F2E6D3;
  --color-cream: #FFFCF6;
  --color-text: #2B2119;
  --color-text-soft: #5E5245;
  --color-terracotta: #C1613D;
  --color-terracotta-dark: #A24C2E;
  --color-sage: #6E7B4C;
  --color-amber: #D69A45;
  --color-rose: #C08677;
  --color-dark: #241C16;
  --color-dark-alt: #2F241B;
  --color-border: rgba(43,33,25,0.12);

  --shadow-sm: 0 2px 8px rgba(90,54,26,0.08), 0 1px 2px rgba(90,54,26,0.06);
  --shadow-md: 0 8px 24px rgba(90,54,26,0.12), 0 2px 6px rgba(90,54,26,0.08);
  --shadow-lg: 0 20px 48px rgba(90,54,26,0.16), 0 8px 16px rgba(90,54,26,0.08);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-xl: 36px;

  --space-1: 0.5rem;
  --space-2: 1rem;
  --space-3: 1.5rem;
  --space-4: 2.5rem;
  --space-5: 4rem;
  --space-6: 6rem;
  --space-7: 8rem;

  --font-heading: 'Sora', sans-serif;
  --font-body: 'DM Sans', sans-serif;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  background: var(--color-bg);
  color: var(--color-text);
  line-height: 1.65;
  font-size: 16px;
  overflow-x: hidden;
}
h1,h2,h3,h4,h5{
  font-family: var(--font-heading);
  color: var(--color-dark);
  line-height: 1.15;
  margin: 0 0 var(--space-2);
  font-weight: 700;
}
p{ margin: 0 0 var(--space-2); color: var(--color-text-soft); }
a{ color: inherit; text-decoration: none; }
img{ max-width: 100%; display: block; }
ul{ margin:0; padding:0; }
button{ font-family: var(--font-body); cursor: pointer; }

.eyebrow-tag{
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-terracotta-dark);
  background: rgba(193,97,61,0.12);
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  margin-bottom: var(--space-2);
  font-weight: 600;
}

.lead-paragraph{
  font-size: clamp(1.05rem, 1rem + 0.3vw, 1.25rem);
  color: var(--color-text-soft);
  max-width: 620px;
}

.button-primary, .button-secondary{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 0.95rem;
  padding: 0.9rem 1.8rem;
  border-radius: var(--radius-sm);
  border: 2px solid transparent;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  min-height: 48px;
  cursor: pointer;
}
.button-primary{
  background: var(--color-terracotta);
  color: var(--color-cream);
  box-shadow: var(--shadow-sm);
}
.button-primary:hover{
  background: var(--color-terracotta-dark);
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.button-secondary{
  background: transparent;
  color: var(--color-dark);
  border-color: var(--color-border);
}
.button-secondary:hover{
  border-color: var(--color-terracotta);
  color: var(--color-terracotta-dark);
  transform: translateY(-3px);
  box-shadow: var(--shadow-sm);
}

.text-link{
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 600;
  color: var(--color-terracotta-dark);
  position: relative;
  transition: gap 0.3s ease, color 0.3s ease;
}
.text-link:hover{ gap: 0.7rem; color: var(--color-terracotta); }


.app-shell{
  display:flex;
  width:100%;
  min-height:100vh;
  position:relative;
}
.page-content-wrapper{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  transform: scale(1);
  transform-origin: left center;
  transition: transform 0.45s cubic-bezier(.4,0,.2,1), filter 0.45s ease;
  position:relative;
}
.app-shell.menu-open .page-content-wrapper{
  transform: scale(0.95);
  filter: brightness(0.92);
}
.page-content-wrapper::after{
  content:"";
  position:fixed;
  inset:0;
  background: rgba(36,28,22,0);
  pointer-events:none;
  transition: background 0.4s ease;
  z-index: 40;
}
.app-shell.menu-open .page-content-wrapper::after{
  background: rgba(36,28,22,0.18);
  pointer-events:auto;
}
.mobile-menu-drawer{
  width:0;
  overflow:hidden;
  flex-shrink:0;
  background: var(--color-dark);
  transition: width 0.45s cubic-bezier(.4,0,.2,1);
}
.app-shell.menu-open .mobile-menu-drawer{ width: 290px; }
.mobile-drawer-inner{
  width:290px;
  min-width:290px;
  height:100%;
  padding: var(--space-4) var(--space-3);
  display:flex;
  flex-direction:column;
  gap: var(--space-2);
}
.mobile-drawer-close{
  align-self:flex-end;
  background:none;
  border:none;
  color: var(--color-cream);
  font-size:1.4rem;
  margin-bottom: var(--space-2);
  transition: transform 0.3s ease, color 0.3s ease;
}
.mobile-drawer-close:hover{ transform: rotate(90deg); color: var(--color-amber); }
.mobile-nav-link{
  color: rgba(255,250,240,0.85);
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 1.05rem;
  padding: 0.7rem 0.4rem;
  border-bottom: 1px solid rgba(255,250,240,0.1);
  transition: color 0.3s ease, padding-left 0.3s ease;
}
.mobile-nav-link:hover, .mobile-nav-link.active{ color: var(--color-amber); padding-left: 0.8rem; }
.mobile-drawer-cta{ margin-top: var(--space-2); text-align:center; }


.main-navigation{
  position: sticky;
  top:0;
  z-index: 30;
  background: var(--color-cream);
  box-shadow: 0 1px 0 var(--color-border);
  transition: box-shadow 0.35s ease;
}
.main-navigation.is-scrolled{
  box-shadow: var(--shadow-md);
}
.nav-inner{
  max-width: 1240px;
  margin: 0 auto;
  padding: 0.9rem var(--space-3);
  display:flex;
  align-items:center;
  gap: var(--space-3);
}
.brand-mark{ display:flex; align-items:center; gap:0.6rem; margin-right:auto; }
.brand-icon{ width:36px; height:36px; }
.brand-icon-light{ filter: brightness(0) invert(1); }
.brand-name{ font-family: var(--font-heading); font-weight:700; font-size:1.25rem; color: var(--color-dark); }
.nav-links-desktop{ display:none; gap: var(--space-3); align-items:center; }
.nav-link{
  font-family: var(--font-heading);
  font-weight:600;
  font-size:0.95rem;
  color: var(--color-text-soft);
  position:relative;
  padding: 0.3rem 0;
  transition: color 0.3s ease;
}
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-2px;
  width:0; height:2px;
  background: var(--color-terracotta);
  transition: width 0.3s ease;
}
.nav-link:hover, .nav-link.active{ color: var(--color-terracotta-dark); }
.nav-link:hover::after, .nav-link.active::after{ width:100%; }
.nav-cta{ display:none; }
.hamburger-toggle{
  background:none; border:none; width:44px; height:44px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.hamburger-toggle span{
  width:24px; height:2px; background: var(--color-dark); border-radius:2px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

@media (min-width: 1024px){
  .nav-links-desktop{ display:flex; }
  .nav-cta{ display:inline-flex; }
  .hamburger-toggle{ display:none; }
  .mobile-menu-drawer{ display:none; }
}


.welcome-banner{
  padding: var(--space-6) var(--space-3) var(--space-5);
  background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-alt) 100%);
}
.welcome-banner-compact{ padding: var(--space-5) var(--space-3); }
.welcome-banner-inner{
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns: 1fr; gap: var(--space-5);
  align-items:center;
}
.welcome-banner-copy h1{
  font-size: clamp(2.2rem, 5vw + 1rem, 3.6rem);
  max-width: 620px;
  margin-bottom: var(--space-3);
}
.hero-actions{ display:flex; flex-wrap:wrap; gap: var(--space-2); margin: var(--space-3) 0; }
.hero-meta-row{ display:flex; flex-wrap:wrap; gap: var(--space-3); margin-top: var(--space-3); }
.hero-meta-item{ display:flex; align-items:center; gap:0.5rem; color: var(--color-text-soft); font-size:0.9rem; }
.hero-meta-item i{ color: var(--color-terracotta); }
.welcome-banner-visual{ position:relative; }
.hero-photo{
  width:100%; height:auto; border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  aspect-ratio: 4/3.2; object-fit:cover;
}
.hero-visual-card{
  position:absolute; left:-16px; bottom:-24px;
  background: var(--color-cream);
  padding: 1.1rem 1.3rem;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  max-width:260px;
  display:flex; gap:0.7rem; align-items:flex-start;
}
.hero-visual-card i{ color: var(--color-sage); font-size:1.3rem; margin-top:2px; }
.hero-visual-card p{ font-size:0.85rem; margin:0; color: var(--color-text); font-weight:500; }

@media (min-width: 900px){
  .welcome-banner-inner{ grid-template-columns: 1.1fr 0.9fr; }
}


.intro-narrative{ padding: var(--space-6) var(--space-3); }
.intro-narrative-inner{
  max-width:1240px; margin:0 auto;
  display:grid; grid-template-columns: 1fr; gap: var(--space-4);
  align-items:center;
}
.intro-narrative-copy h2{ font-size: clamp(1.8rem, 3.5vw, 2.5rem); }
.rounded-photo{ width:100%; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); aspect-ratio: 4/3; object-fit:cover; }

@media (min-width: 900px){
  .intro-narrative-inner{ grid-template-columns: 0.85fr 1.15fr; }
  .intro-narrative-reverse .intro-narrative-inner{ grid-template-columns: 1.15fr 0.85fr; }
  .intro-narrative-reverse .intro-narrative-copy{ order:1; }
  .intro-narrative-reverse .intro-narrative-visual{ order:2; }
}


.section-heading-block{
  max-width:680px; margin: 0 auto var(--space-5); text-align:center; padding: 0 var(--space-3);
}
.section-heading-block h2{ font-size: clamp(1.9rem, 3.5vw, 2.6rem); }


.benefit-showcase{ padding: var(--space-6) var(--space-3); background: var(--color-bg-alt); }
.benefit-grid{
  max-width:1160px; margin:0 auto;
  display:grid; grid-template-columns: 1fr; gap: var(--space-3);
}
.benefit-item{
  display:flex; gap:1rem; align-items:flex-start;
  background: var(--color-cream);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.benefit-item:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.benefit-item i{
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background: var(--color-sage); color: var(--color-cream);
  display:flex; align-items:center; justify-content:center;
  font-size:0.9rem;
}
.benefit-item h3{ font-size:1.1rem; margin-bottom:0.3rem; }
.benefit-item p{ font-size:0.92rem; margin:0; }

@media (min-width: 720px){ .benefit-grid{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px){ .benefit-grid{ grid-template-columns: repeat(3,1fr); } }


.feature-showcase{ padding: var(--space-6) var(--space-3); display:flex; flex-direction:column; gap: var(--space-6); max-width:1240px; margin:0 auto; }
.feature-row{
  display:grid; grid-template-columns: 1fr; gap: var(--space-4); align-items:center;
}
.feature-visual img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); aspect-ratio: 5/4; object-fit:cover; width:100%; transition: transform 0.4s ease; }
.feature-visual:hover img{ transform: scale(1.02); }
.feature-index{
  font-family: var(--font-heading); font-weight:700; color: var(--color-terracotta); font-size:0.85rem; letter-spacing:0.1em;
}
.feature-copy h3{ font-size: clamp(1.5rem, 2.8vw, 2rem); margin-top:0.4rem; }

@media (min-width: 900px){
  .feature-row{ grid-template-columns: 1fr 1fr; }
  .feature-row-reverse .feature-visual{ order:2; }
  .feature-row-reverse .feature-copy{ order:1; }
}


.session-preview-section, .gallery-section{ padding: var(--space-6) var(--space-3); }
.gallery-grid{
  max-width:1160px; margin:0 auto; display:grid; grid-template-columns: 1fr; gap: var(--space-3);
}
.gallery-item{ position:relative; border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow-sm); display:block; }
.gallery-item img{ width:100%; aspect-ratio: 4/3; object-fit:cover; transition: transform 0.4s ease; }
.gallery-caption{
  position:absolute; inset:auto 0 0 0; padding: 0.8rem;
  background: linear-gradient(0deg, rgba(36,28,22,0.75), transparent);
  color:#fff; font-size:0.85rem; display:flex; align-items:center; gap:0.4rem;
  opacity:0; transition: opacity 0.3s ease;
}
.gallery-item:hover img{ transform: scale(1.06); }
.gallery-item:hover .gallery-caption{ opacity:1; }
.session-preview-cta{ text-align:center; margin-top: var(--space-4); }

@media (min-width: 720px){ .gallery-grid{ grid-template-columns: repeat(3,1fr); } }


.philosophy-teaser{ padding: var(--space-6) var(--space-3); background: var(--color-dark); color: var(--color-cream); }
.philosophy-teaser-inner{ max-width:760px; margin:0 auto; text-align:center; }
.quote-mark{ font-size:2rem; color: var(--color-amber); margin-bottom: var(--space-2); }
.philosophy-teaser-inner p{ font-family: var(--font-heading); font-size: clamp(1.3rem, 2.5vw, 1.8rem); color: var(--color-cream); font-weight:600; line-height:1.4; }
.philosophy-teaser-inner .text-link{ color: var(--color-amber); margin-top: var(--space-2); }
.philosophy-teaser-inner .text-link:hover{ color: var(--color-terracotta); }


.closing-cta-section{ padding: var(--space-6) var(--space-3); }
.closing-cta-inner{
  max-width:820px; margin:0 auto; text-align:center;
  background: var(--color-terracotta); color: var(--color-cream);
  padding: var(--space-5) var(--space-4); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.closing-cta-inner h2{ color: var(--color-cream); }
.closing-cta-inner p{ color: rgba(255,251,240,0.9); max-width:520px; margin:0 auto var(--space-3); }
.closing-cta-inner .button-primary{ background: var(--color-cream); color: var(--color-terracotta-dark); }
.closing-cta-inner .button-primary:hover{ background: var(--color-dark); color: var(--color-cream); }


.page-hero{ padding: var(--space-6) var(--space-3) var(--space-5); background: var(--color-bg-alt); }
.page-hero-inner{ max-width:760px; margin:0 auto; text-align:left; }
.page-hero-inner h1{ font-size: clamp(2rem, 4.5vw, 3.1rem); }


.session-format-section{ padding: var(--space-6) var(--space-3); }
.format-steps-row{ max-width:1160px; margin:0 auto; display:grid; grid-template-columns:1fr; gap: var(--space-3); }
.format-step{
  background: var(--color-cream); padding: var(--space-3); border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.format-step:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.format-step-number{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:50%;
  background: var(--color-terracotta); color:#fff; font-family: var(--font-heading); font-weight:700;
  margin-bottom: 0.8rem;
}
@media (min-width: 720px){ .format-steps-row{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px){ .format-steps-row{ grid-template-columns: repeat(4,1fr); } }


.session-card-grid{ max-width:1160px; margin:0 auto; display:grid; grid-template-columns:1fr; gap: var(--space-3); }
.session-card{
  background: var(--color-cream); padding: var(--space-3); border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  transition: transform 0.3s ease, box-shadow 0.3s ease; position:relative;
}
.session-card:hover{ transform: translateY(-6px) scale(1.01); box-shadow: var(--shadow-md); }
.session-card i{ font-size:1.6rem; color: var(--color-terracotta); margin-bottom:0.6rem; }
.session-card h3{ font-size:1.15rem; }
.session-tag{
  display:inline-block; margin-top:0.7rem; font-size:0.78rem; font-weight:600;
  color: var(--color-sage); background: rgba(110,123,76,0.12); padding:0.3rem 0.7rem; border-radius:999px;
}
@media (min-width: 720px){ .session-card-grid{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px){ .session-card-grid{ grid-template-columns: repeat(3,1fr); } }


.faq-section{ padding: var(--space-6) var(--space-3); background: var(--color-bg-alt); }
.faq-accordion{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; gap: var(--space-2); }
.faq-item{
  background: var(--color-cream); border-radius: var(--radius-md); padding: 1.1rem 1.4rem; box-shadow: var(--shadow-sm);
  transition: box-shadow 0.3s ease;
}
.faq-item[open]{ box-shadow: var(--shadow-md); }
.faq-item summary{
  font-family: var(--font-heading); font-weight:600; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
}
.faq-item summary::after{ content:"+"; font-size:1.3rem; color: var(--color-terracotta); transition: transform 0.3s ease; }
.faq-item[open] summary::after{ transform: rotate(45deg); }
.faq-item p{ margin-top:0.8rem; }


.guide-timeline-section{ max-width:900px; margin:0 auto; padding: var(--space-6) var(--space-3); display:flex; flex-direction:column; gap: var(--space-5); }
.guide-timeline-item{ display:grid; grid-template-columns: 60px 1fr; gap: var(--space-3); }
.guide-timeline-marker{
  width:56px; height:56px; border-radius:50%; background: var(--color-amber); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; box-shadow: var(--shadow-sm);
}
.guide-timeline-content h2{ font-size: clamp(1.4rem, 2.6vw, 1.9rem); }

.disclaimer-note-section{
  max-width:900px; margin: 0 auto var(--space-6); padding: 0 var(--space-3);
  display:flex; gap:1rem; align-items:flex-start;
  background: var(--color-bg-alt); border-left: 4px solid var(--color-amber);
  padding: var(--space-3); border-radius: var(--radius-md);
}
.disclaimer-note-section i{ color: var(--color-amber); font-size:1.3rem; margin-top:2px; }
.disclaimer-note-section p{ margin:0; font-size:0.92rem; }


.contact-details-section{ padding: var(--space-5) var(--space-3); }
.contact-details-grid{ max-width:1160px; margin:0 auto; display:grid; grid-template-columns:1fr; gap: var(--space-3); }
.contact-detail-card{
  background: var(--color-cream); padding: var(--space-3); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); text-align:center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.contact-detail-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.contact-detail-card i{ font-size:1.5rem; color: var(--color-terracotta); margin-bottom:0.6rem; }
.contact-detail-card p a{ color: var(--color-terracotta-dark); font-weight:600; }
@media (min-width: 720px){ .contact-details-grid{ grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1100px){ .contact-details-grid{ grid-template-columns: repeat(4,1fr); } }

.contact-form-section{ padding: var(--space-6) var(--space-3); background: var(--color-bg-alt); }
.contact-form-inner{ max-width:1160px; margin:0 auto; display:grid; grid-template-columns:1fr; gap: var(--space-4); align-items:start; }
.contact-form-visual img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); width:100%; aspect-ratio: 4/3; object-fit:cover; }
@media (min-width: 960px){ .contact-form-inner{ grid-template-columns: 0.8fr 1.2fr; } }

.contact-form-wrapper{
  background: var(--color-cream); padding: var(--space-4); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
}
.wizard-step-indicator{ display:flex; align-items:center; justify-content:center; gap:0.5rem; margin-bottom: var(--space-3); }
.wizard-dot{
  width:32px; height:32px; border-radius:50%; background: var(--color-bg-alt); color: var(--color-text-soft);
  display:flex; align-items:center; justify-content:center; font-family: var(--font-heading); font-weight:700; font-size:0.85rem;
  transition: background 0.3s ease, color 0.3s ease;
}
.wizard-dot.active, .wizard-dot.completed{ background: var(--color-terracotta); color:#fff; }
.wizard-line{ width:36px; height:2px; background: var(--color-border); }

.contact-form-wizard{ position:relative; overflow:hidden; }
.wizard-step{ display:none; animation: wizardSlideIn 0.4s ease; }
.wizard-step.active{ display:block; }
@keyframes wizardSlideIn{ from{ opacity:0; transform: translateX(24px);} to{opacity:1; transform:translateX(0);} }

.form-field-group{ margin-bottom: var(--space-3); }
.form-field-group label{ display:block; font-family: var(--font-heading); font-weight:600; font-size:0.9rem; margin-bottom:0.4rem; }
.form-field-group input[type="text"], .form-field-group input[type="email"], .form-field-group input[type="tel"], .form-field-group select, .form-field-group textarea{
  width:100%; padding: 0.85rem 1rem; border-radius: var(--radius-sm); border:1.5px solid var(--color-border);
  background: var(--color-bg); font-family: var(--font-body); font-size:0.95rem; color: var(--color-text);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.form-field-group input:focus, .form-field-group select:focus, .form-field-group textarea:focus{
  outline:none; border-color: var(--color-terracotta); box-shadow: 0 0 0 4px rgba(193,97,61,0.14);
}
.inquiry-form:has(:focus){ box-shadow: var(--shadow-lg); }
.form-field-checkbox{ display:flex; align-items:flex-start; gap:0.6rem; }
.form-field-checkbox input{ width:20px; height:20px; margin-top:3px; flex-shrink:0; accent-color: var(--color-terracotta); }
.form-field-checkbox label{ font-weight:400; font-size:0.88rem; color: var(--color-text-soft); }
.wizard-nav-buttons{ display:flex; justify-content:space-between; align-items:center; margin-top: var(--space-3); }


.service-area-section{ padding: var(--space-6) var(--space-3); }
.map-embed-wrapper{ max-width:1160px; margin: var(--space-3) auto 0; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-lg); }


.floating-assist-panel{
  position:fixed; right: 1.4rem; bottom: 1.4rem; z-index: 25;
  display:flex; flex-direction:column; align-items:flex-end; gap:0.7rem;
}
.floating-assist-toggle{
  width:56px; height:56px; border-radius:50%; background: var(--color-terracotta); color:#fff; border:none;
  font-size:1.3rem; box-shadow: var(--shadow-md); transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.floating-assist-toggle:hover{ transform: scale(1.08); box-shadow: var(--shadow-lg); background: var(--color-terracotta-dark); }
.floating-assist-content{
  width: 240px; background: var(--color-cream); border-radius: var(--radius-md); padding: var(--space-3);
  box-shadow: var(--shadow-lg); transform-origin: bottom right;
  transform: scale(0) translateY(10px); opacity:0; pointer-events:none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.floating-assist-panel.open .floating-assist-content{ transform: scale(1) translateY(0); opacity:1; pointer-events:auto; }
.floating-assist-content h4{ font-size:1rem; margin-bottom:0.4rem; }
.floating-assist-content p{ font-size:0.85rem; margin-bottom:0.8rem; }
.floating-assist-link{ width:100%; text-align:center; }


.page-footer{ background: var(--color-dark); color: rgba(255,251,240,0.75); margin-top:auto; }
.page-footer-top{
  max-width:1240px; margin:0 auto; padding: var(--space-6) var(--space-3) var(--space-4);
  display:grid; grid-template-columns: 1fr; gap: var(--space-4);
}
.footer-brand-block p{ color: rgba(255,251,240,0.6); max-width:280px; margin-top:0.7rem; }
.footer-link-column h5, .footer-contact-column h5{ color: var(--color-cream); font-family: var(--font-heading); font-size:0.95rem; margin-bottom: var(--space-2); }
.footer-link-column a{ display:block; padding: 0.3rem 0; color: rgba(255,251,240,0.65); transition: color 0.3s ease, padding-left 0.3s ease; }
.footer-link-column a:hover{ color: var(--color-amber); padding-left:0.3rem; }
.footer-contact-column p{ color: rgba(255,251,240,0.65); font-size:0.9rem; margin-bottom:0.6rem; display:flex; gap:0.5rem; align-items:flex-start; }
.footer-contact-column i{ color: var(--color-amber); margin-top:3px; }
.footer-contact-column a{ transition: color 0.3s ease; }
.footer-contact-column a:hover{ color: var(--color-amber); }
.footer-separator{ height:1px; background: rgba(255,251,240,0.12); max-width:1240px; margin:0 auto; }
.page-footer-bottom{
  max-width:1240px; margin:0 auto; padding: var(--space-3);
  display:flex; flex-direction:column; gap:0.8rem; align-items:center; text-align:center; font-size:0.85rem;
}
.footer-legal-links{ display:flex; gap: var(--space-2); }
.footer-legal-links a{ transition: color 0.3s ease; }
.footer-legal-links a:hover{ color: var(--color-amber); }

@media (min-width: 720px){ .page-footer-top{ grid-template-columns: 1.2fr 1fr 1fr 1fr; } }
@media (min-width: 720px){ .page-footer-bottom{ flex-direction:row; justify-content:space-between; } }


.cookie-consent-card{
  position:fixed; left:1.2rem; bottom:1.2rem; z-index:100;
  width: min(360px, calc(100vw - 2.4rem));
  background: var(--color-cream); border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg); padding: var(--space-3);
  display: none;
  transform: translateY(140%); opacity:0; transition: transform 0.5s ease, opacity 0.5s ease;
}
.cookie-consent-card.visible{ transform: translateY(0); opacity:1; display: block; }
.cookie-consent-main p{ font-size:0.86rem; margin-bottom: var(--space-2); }
.cookie-consent-buttons{ display:flex; flex-direction:column; gap:0.6rem; }
.cookie-btn{ width:100%; }
.cookie-customize-toggle{ text-align:center; justify-content:center; font-size:0.85rem; }
.cookie-customize-panel{ max-height:0; overflow:hidden; transition: max-height 0.4s ease, margin-top 0.4s ease; margin-top:0; }
.cookie-customize-panel.expanded{ max-height:300px; margin-top: var(--space-2); }
.cookie-category{
  display:flex; align-items:center; gap:0.6rem; font-size:0.85rem; padding:0.5rem 0; border-bottom:1px solid var(--color-border);
}
.cookie-category span{ margin-left:auto; font-size:0.72rem; color: var(--color-text-soft); }
.cookie-category input{ width:18px; height:18px; accent-color: var(--color-terracotta); }
#cookieSavePrefs{ margin-top: var(--space-2); }


.legal-page-header{ padding: var(--space-6) var(--space-3) var(--space-4); background: var(--color-bg-alt); text-align:center; }
.legal-page-header-alt{ text-align:left; background: var(--color-dark); color:var(--color-cream); }
.legal-page-header-alt h1{ color: var(--color-cream); }
.legal-page-header-alt p{ color: rgba(255,251,240,0.7); }
.legal-page-header-plain{ background: var(--color-bg); border-bottom: 2px solid var(--color-border); }
.legal-cards-section{
  max-width:820px; margin:0 auto; padding: var(--space-5) var(--space-3) var(--space-6);
  display:flex; flex-direction:column; gap: var(--space-3);
}
.legal-card{
  background: var(--color-cream); padding: var(--space-4); border-radius: var(--radius-md); box-shadow: var(--shadow-sm);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.legal-card:hover{ box-shadow: var(--shadow-md); transform: translateY(-3px); }
.legal-card h2{ font-size:1.2rem; margin-bottom:0.6rem; }
.legal-card p{ font-size:0.94rem; margin:0; }
.legal-cards-section-lettered .legal-card{ border-left: 4px solid var(--color-terracotta); }
.legal-cards-section-unnumbered .legal-card{ border-top: 3px solid var(--color-amber); }


.thanks-section{ padding: var(--space-7) var(--space-3); display:flex; flex-direction:column; align-items:center; text-align:center; max-width:600px; margin:0 auto; }
.envelope-animation-wrapper{ margin-bottom: var(--space-4); }
.envelope{ position:relative; width:180px; height:120px; }
.envelope-back{
  position:absolute; inset:0; background: var(--color-sage); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
}
.envelope-front-left, .envelope-front-right{
  position:absolute; bottom:0; width:0; height:0;
  border-style:solid;
}
.envelope-front-left{
  left:0; border-width: 60px 90px 0 0; border-color: var(--color-terracotta) transparent transparent transparent;
  border-bottom-left-radius: var(--radius-sm);
}
.envelope-front-right{
  right:0; border-width: 0 0 60px 90px; border-color: transparent transparent var(--color-terracotta-dark) transparent;
  border-bottom-right-radius: var(--radius-sm);
}
.envelope-flap{
  position:absolute; top:0; left:0; width:0; height:0;
  border-style:solid; border-width: 0 90px 60px 90px;
  border-color: transparent transparent var(--color-amber) transparent;
  transform-origin: top center;
  animation: flapOpen 1.8s ease forwards;
  z-index:3;
}
.envelope-letter{
  position:absolute; left:50%; top:20px; width:120px; height:80px;
  background: var(--color-cream); border-radius: 4px; box-shadow: var(--shadow-sm);
  transform: translate(-50%, 0) scale(0.9);
  opacity:0; z-index:2;
  animation: letterRise 1.8s ease forwards;
  animation-delay: 0.6s;
}
@keyframes flapOpen{
  0%{ transform: rotateX(0deg); }
  40%{ transform: rotateX(0deg); }
  100%{ transform: rotateX(180deg); }
}
@keyframes letterRise{
  0%{ opacity:0; transform: translate(-50%, 40px) scale(0.9); }
  50%{ opacity:0; transform: translate(-50%, 40px) scale(0.9); }
  100%{ opacity:1; transform: translate(-50%, -70px) scale(1); }
}
.thanks-copy h1{ font-size: clamp(1.9rem, 4vw, 2.6rem); }
.thanks-copy a{ color: var(--color-terracotta-dark); font-weight:600; }
.thanks-copy .button-primary{ margin-top: var(--space-2); }


.benefit-item:has(i){ border-top: 3px solid transparent; }
.benefit-item:has(i):hover{ border-top-color: var(--color-terracotta); }
.session-card:has(.session-tag){ padding-bottom: var(--space-4); }
.feature-showcase .feature-row:has(.feature-visual img):hover .feature-index{ color: var(--color-terracotta-dark); }
section:has(.closing-cta-inner){ background: var(--color-bg-alt); }
.gallery-grid:has(.gallery-item:hover) .gallery-item:not(:hover){ opacity: 0.75; }
.wizard-nav-buttons:has(.wizard-back-btn):has(.wizard-submit-btn){ gap: var(--space-2); }


@media (max-width: 719px){
  .welcome-banner-copy .hero-actions{ flex-direction:column; }
  .welcome-banner-copy .hero-actions .button-primary, .welcome-banner-copy .hero-actions .button-secondary{ width:100%; }
  .hero-visual-card{ display:none; }
}