@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&family=Nunito:wght@400;600;700;800&display=swap');

/* Performance optimizations */
:root{
  /* BrightRoots design tokens - kid-friendly, warm, and fun colors */
  --br-primary: #4ECDC4; /* bright, cheerful teal */
  --br-primary-dark: #2A9D8F; /* deeper teal for headings */
  --br-secondary: #95E1D3; /* light minty green */
  --br-accent: #FFB6B9; /* soft pink accent for fun */
  --br-yellow: #FFE66D; /* cheerful yellow for highlights */
  --br-purple: #B4A7D6; /* soft purple for variety */
  --br-orange: #FFA07A; /* warm orange for CTAs */

  --bg: #F8FFFE; /* bright, clean white */
  --bg-soft: #E8F8F7; /* very soft green tint */
  --surface: #FFFFFF; /* card surface */
  --surface-warm: #FFF9F0; /* warm surface for special sections */

  --text-heading: #2D3436; /* warm dark gray for headings */
  --text-body: #495057; /* readable body text */
  --text-muted: #6C757D; /* muted small text */

  --border: #E9ECEF; /* subtle dividers */
  --success: #52B788;
  --warning: #F4A261;
  --error: #E76F51;
  --focus: #A8DADC;

  --shadow-sm: 0 2px 8px rgba(45,52,54,0.04);
  --shadow: 0 8px 24px rgba(45,52,54,0.08);
  --shadow-lg: 0 16px 40px rgba(45,52,54,0.12);
  
  --motion-duration: 300ms; /* Reduced for faster animations */
  --motion-easing: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Critical CSS optimizations */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: 'Nunito', 'Inter', sans-serif;
  line-height: 1.6;
  color: var(--text-body);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 16px;
  font-weight: 400;
}

/* Performance: GPU acceleration for animations */
.hero,
.nav-menu a,
.btn,
.card,
.fade-in {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

main{display:block}

/* Screen reader only content */
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* Accessibility Enhancements */
a{color:var(--br-primary-dark);text-decoration:none;transition:color var(--motion-duration) var(--motion-easing)}
a:hover{text-decoration:underline}
a:focus{
  outline:3px solid var(--focus);
  outline-offset:3px;
  border-radius:8px;
  text-decoration:underline;
}

/* Enhanced focus for interactive elements */
.btn:focus,
input:focus,
select:focus,
textarea:focus,
button:focus{
  outline:3px solid var(--focus);
  outline-offset:2px;
}

/* Skip link improvements */
.skip-link{
  position:absolute;
  top:-40px;
  left:6px;
  background:var(--br-primary-dark);
  color:white;
  padding:8px 16px;
  text-decoration:none;
  border-radius:8px;
  font-weight:600;
  z-index:100;
  transition:top var(--motion-duration) var(--motion-easing);
}

.skip-link:focus{
  top:6px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  :root{
    --border: #000000;
    --text-body: #000000;
    --text-heading: #000000;
    --br-primary: #0066CC;
  }
  
  .card{
    border:2px solid #000000;
  }
  
  .btn{
    border:2px solid #000000;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce){
  :root{
    --motion-duration:0ms;
  }
  
  *{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  
  .card.animate{animation:none}
  .fade-in,.stagger > *,.hero .content,.slide-in-left,.slide-in-right,.profile-sidebar{
    transition:none !important;
    transform:none !important;
    opacity:1 !important;
  }
}

h1,h2,h3,h4,h5,h6{
  color:var(--text-heading);
  line-height:1.2;
  margin-top:0;
  font-family:'Nunito', sans-serif;
  font-weight:700;
}

h1{
  font-size:clamp(2rem, 5vw, 3.5rem);
  font-weight:800;
  letter-spacing:-0.02em;
  margin-bottom:1.5rem;
}

h2{
  font-size:clamp(1.5rem, 4vw, 2.5rem);
  font-weight:700;
  letter-spacing:-0.01em;
  margin-bottom:1.25rem;
}

h3{
  font-size:clamp(1.25rem, 3vw, 1.875rem);
  font-weight:600;
  margin-bottom:1rem;
}

h4{
  font-size:clamp(1.125rem, 2.5vw, 1.5rem);
  font-weight:600;
  margin-bottom:0.875rem;
}

p{
  margin-bottom:1.25rem;
  max-width:65ch;
}

/* Larger text for better readability */
.text-large{
  font-size:1.125rem;
  line-height:1.7;
}

.text-small{
  font-size:0.875rem;
  line-height:1.5;
  color:var(--text-muted);
}

p{max-width:72ch}
ul,ol{max-width:72ch}

::selection{background:rgba(15,167,154,0.22)}

.brand{display:inline-flex;align-items:center;text-decoration:none}
.brand img{height:85px;max-height:110px;display:block}
.brand .text-fallback{font-family:'Nunito', 'Inter', sans-serif;font-weight:800;color:var(--br-primary-dark);font-size:1.25rem;margin-left:12px}
.site-nav{position:fixed;left:0;right:0;top:0;background:rgba(255,255,255,0.95);backdrop-filter:blur(8px);box-shadow:0 4px 20px rgba(15,58,52,0.08);z-index:60}
.nav-inner{
  max-width:1100px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:8px 16px;
  gap:12px;
  min-height:64px;
}
.btn.secondary{background:transparent;color:var(--br-primary-dark);border:2px solid rgba(11,127,111,0.12)}
.brand{font-weight:700;color:var(--br-primary-dark);text-decoration:none;font-size:1.15rem}
.nav-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  gap:4px;
  align-items:center;
  margin-left:auto;
}

.nav-menu li{
  margin:0;
}

.nav-menu a{
  color:var(--text-body);
  text-decoration:none;
  padding:8px 12px;
  border-radius:10px;
  font-size:0.9rem;
  font-weight:500;
  transition:all var(--motion-duration) var(--motion-easing);
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:40px;
  white-space:nowrap;
}

.nav-menu a:hover{
  background:var(--bg-soft);
  color:var(--br-primary-dark);
  transform:translateY(-1px);
}

.nav-menu a:focus{
  outline:2px solid var(--focus);
  outline-offset:2px;
}

/* CTA Buttons - Enhanced */
.nav-menu .cta{
  background:linear-gradient(180deg, var(--br-primary), var(--br-primary-dark));
  color:white;
  padding:8px 16px;
  border-radius:12px;
  font-weight:600;
  box-shadow:var(--shadow-sm);
  transition:all var(--motion-duration) var(--motion-easing);
  white-space:nowrap;
  font-size:0.85rem;
  min-height:40px;
}

.nav-menu .cta:hover{
  background:linear-gradient(180deg, var(--br-primary-dark), var(--br-primary));
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}

.nav-menu .cta.phone{
  background:linear-gradient(180deg, var(--br-secondary), var(--br-primary));
  color:white;
}

.nav-menu .cta.phone:hover{
  background:linear-gradient(180deg, var(--br-primary), var(--br-secondary));
}

/* Icon styling */
.phone-icon, .book-icon{
  font-size:1rem;
  line-height:1;
}

/* Mobile menu button */
.nav-toggle{
  display:none;
  background:none;
  border:0;
  font-size:1.2rem;
  cursor:pointer;
  padding:8px;
  border-radius:8px;
  transition:background-color var(--motion-duration) var(--motion-easing);
}

.nav-toggle:hover{
  background:var(--bg-soft);
}

.nav-toggle:focus{
  outline:2px solid var(--focus);
  outline-offset:2px;
}

@media(max-width:980px){
  .nav-toggle{display:block}
  .nav-menu{
    position:fixed;
    right:8px;
    top:70px;
    background:white;
    padding:12px;
    border-radius:12px;
    flex-direction:column;
    display:none;
    box-shadow:var(--shadow-lg);
    max-width:min(90vw, 280px);
    gap:6px;
  }
  .nav-menu.open{display:flex}
  .nav-menu a{
    width:100%;
    display:flex;
    align-items:center;
    padding:10px 12px;
    min-height:44px;
    font-size:0.9rem;
  }
  .nav-menu .cta{
    width:100%;
    text-align:center;
    justify-content:center;
    margin-top:6px;
  }
  .nav-menu .cta.phone{
    margin-top:0;
  }
}

/* Layout container */
.container{max-width:1100px;margin:0 auto;padding:28px 20px}

/* Hero */
.hero{
  min-height:92vh;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg, var(--br-primary) 0%, var(--br-primary-dark) 100%);
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, 
    rgba(42, 157, 143, 0.9) 0%, 
    rgba(38, 70, 83, 0.85) 50%,
    rgba(38, 70, 83, 0.95) 100%
  );
  z-index:1;
}

.hero .hero-bg{
  position:absolute;
  inset:0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background-size:cover;
  background-position:center;
  background-image: url('../assets/hero%20(2).png');
  opacity:0.3;
  z-index:0;
}

.hero .content{
  position:relative;
  z-index:3;
  max-width:900px;
  padding:80px 20px;
  color: #fff;
  text-align:center;
}

.hero h1{
  font-family:'Nunito', 'Inter', sans-serif;
  font-weight:800;
  font-size:clamp(2.5rem, 6vw, 4rem);
  margin:0 0 1.5rem;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,0.3);
  line-height:1.1;
}

.hero p.lead{
  font-size:clamp(1.125rem, 2.5vw, 1.375rem);
  color:rgba(255,255,255,0.95);
  margin-bottom:2rem;
  font-weight:400;
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
}

/* Curved bottom edge */
.hero::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:120px;
  background:var(--bg);
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  z-index:2;
}

/* Hero entrance */
.hero .content{opacity:0;transform:translateY(12px);transition:opacity var(--motion-duration) ease,var(--motion-duration) transform ease}
.hero .content.visible{opacity:1;transform:none}

/* ensure hero <img> fallback fills area when present */
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:linear-gradient(180deg,var(--br-primary),var(--br-primary-dark));
  color:white;
  padding:14px 24px;
  border-radius:16px;
  text-decoration:none;
  font-weight:600;
  font-size:1rem;
  box-shadow:var(--shadow);
  border:none;
  line-height:1.15;
  text-align:center;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  transition:all var(--motion-duration) var(--motion-easing);
}

.btn:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-lg);
  text-decoration:none;
  color:white;
}

.btn:focus{
  outline:3px solid var(--focus);
  outline-offset:3px;
  border-radius:16px;
}

.btn .btn-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

.btn.secondary{
  background:transparent;
  color:var(--br-primary-dark);
  border:2px solid var(--br-primary);
  box-shadow:none;
}

.btn.secondary:hover{
  background:var(--br-primary);
  color:white;
  transform:translateY(-1px);
}

.btn.ghost{
  background:transparent;
  border:1px solid var(--border);
  color:var(--text-body);
  box-shadow:none;
}

.btn.ghost:hover{
  background:var(--bg-soft);
  border-color:var(--br-primary);
  color:var(--br-primary-dark);
}

.btn.primary-large{font-size:1.05rem;padding:14px 20px;border-radius:16px}
.hero-cta-group{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  margin-top:1rem;
}

.hero-subtext{
  margin:0;
  color:rgba(255,255,255,0.92);
  font-weight:500;
  font-size:0.95rem;
}

.hero-secondary-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  margin-top:8px;
}

@keyframes brPulse{0%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}100%{transform:translateY(0) scale(1)}}
.btn.pulse{animation:brPulse 2.8s ease-in-out infinite}
@media (prefers-reduced-motion: reduce){
  .btn.pulse{animation:none}
}

.hero-curve{position:absolute;left:0;right:0;bottom:-1px;height:140px;pointer-events:none}

/* Playful hero decorations (bubbles) */
.hero-decor{position:absolute;inset:0;pointer-events:none;z-index:2}
.hero-decor .bubble{position:absolute;border-radius:999px;opacity:0.95;filter:drop-shadow(0 8px 18px rgba(11,127,111,0.06));}
.hero-decor .b1{width:84px;height:84px;left:8%;top:18%;background:linear-gradient(135deg, rgba(78,201,163,0.18), rgba(240,107,134,0.12));animation:floatY 6s ease-in-out infinite}
.hero-decor .b2{width:56px;height:56px;right:12%;top:28%;background:linear-gradient(135deg, rgba(15,167,154,0.18), rgba(246,182,190,0.08));animation:floatX 5.5s ease-in-out infinite}
.hero-decor .b3{width:42px;height:42px;left:38%;top:6%;background:linear-gradient(135deg, rgba(15,167,154,0.14), rgba(78,201,163,0.08));animation:floatY 7.3s ease-in-out infinite}

@keyframes floatY{0%{transform:translateY(0)}50%{transform:translateY(-14px)}100%{transform:translateY(0)}}
@keyframes floatX{0%{transform:translateX(0)}50%{transform:translateX(12px)}100%{transform:translateX(0)}}

/* Playful card tilt — subtle 3D movement */
.card{transform-style:preserve-3d;will-change:transform}
.card[data-tilt]{transition:transform 220ms cubic-bezier(.2,.9,.2,1)}

/* Confetti pieces */
.confetti-piece{position:fixed;pointer-events:none;z-index:9999;will-change:transform,opacity}

/* Kid friendly accents when body has .child-friendly */
body.child-friendly .card{border-radius:18px}
body.child-friendly h2, body.child-friendly h3{color:var(--br-primary-dark)}
body.child-friendly .btn{background:linear-gradient(180deg,var(--br-secondary),var(--br-primary));}

/* Fun badges */
.fun-badge{display:inline-block;background:linear-gradient(135deg,var(--br-secondary),var(--br-accent));color:white;padding:6px 10px;border-radius:999px;font-weight:800;font-size:0.9rem;box-shadow:0 8px 20px rgba(11,127,111,0.08)}

/* Cards and sections - Enhanced with new color palette */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.card{
  background:var(--surface);
  padding:24px;
  border-radius:16px;
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
  transition:transform var(--motion-duration) var(--motion-easing),
             box-shadow var(--motion-duration) var(--motion-easing),
             border-color var(--motion-duration) var(--motion-easing);
  position:relative;
  overflow:hidden;
}

.card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg, var(--br-primary), var(--br-secondary));
  opacity:0;
  transition:opacity var(--motion-duration) var(--motion-easing);
}

.card:hover::before{
  opacity:1;
}

.card h3{
  margin-top:0;
  color:var(--text-heading);
  font-size:1.25rem;
  margin-bottom:12px;
}

.card p{
  margin-bottom:0;
  color:var(--text-body);
  line-height:1.6;
}

/* Card grid and image placeholder - Enhanced */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:28px;
  align-items:start;
}

.img-placeholder{
  width:100%;
  height:180px;
  border-radius:12px;
  background:linear-gradient(135deg, var(--bg-soft), var(--surface));
  display:block;
  margin-bottom:16px;
  border:1px solid var(--border);
  overflow:hidden;
  position:relative;
}

.img-placeholder::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, 
    rgba(42, 157, 143, 0.05), 
    rgba(129, 178, 154, 0.02)
  );
}

.img-placeholder svg{
  display:block;
  width:100%;
  height:100%;
  position:relative;
  z-index:1;
}

.img-placeholder img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Panel style: clean professional sections (non-card) */
.panel{background:transparent;padding:18px;border-left:4px solid rgba(15,167,154,0.12);border-radius:6px;margin-bottom:12px}
.panel h2{margin-top:0;color:var(--text-heading)}
.panel p, .panel ul{color:var(--text-body)}
.panel .lead{font-size:1.02rem;color:var(--text-muted)}

/* Card hover / entrance - Enhanced with new palette */
.card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-lg);
  border-color:var(--br-primary);
}

/* small entrance animation for cards */
@keyframes enterUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.card.animate{animation:enterUp .6s ease both}

/* Stagger helpers */
.stagger > *{opacity:0;transform:translateY(12px);transition:opacity var(--motion-duration) ease,transform var(--motion-duration) ease}
.stagger.visible > *{opacity:1;transform:none}

/* Slide helpers */
.slide-in-left{opacity:0;transform:translateX(-16px);transition:opacity var(--motion-duration) ease,transform var(--motion-duration) ease}
.slide-in-right{opacity:0;transform:translateX(16px);transition:opacity var(--motion-duration) ease,transform var(--motion-duration) ease}
.slide-in-left.visible,.slide-in-right.visible{opacity:1;transform:none}

/* Button micro-interactions */
.btn{transition:transform 220ms ease,box-shadow 220ms ease}
.btn:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 18px 36px rgba(11,127,111,0.12)}
.btn:focus{outline:3px solid var(--focus);outline-offset:4px}

/* Certificate thumbnail hover */
.cert-thumbs img{transition:transform 240ms ease,box-shadow 240ms ease}
.cert-thumbs img:hover{transform:scale(1.06);box-shadow:0 12px 30px rgba(15,58,52,0.08)}

/* Profile sidebar entrance */
.profile-sidebar{opacity:0;transform:translateY(10px);transition:opacity var(--motion-duration) ease,transform var(--motion-duration) ease}
.profile-sidebar.visible{opacity:1;transform:none}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce){
  :root{--motion-duration:0ms}
  .card.animate{animation:none}
  .fade-in,.stagger > *,.hero .content,.slide-in-left,.slide-in-right,.profile-sidebar{transition:none!important;transform:none!important;opacity:1!important}
}

/* Child-friendly playful styles - Enhanced with fun colors */
.child-friendly h1{font-size:2.4rem;color:var(--br-primary-dark);letter-spacing:0.5px}
.child-friendly h2{color:var(--br-primary);font-weight:700}
.child-friendly .card{
  border-radius:20px;
  padding:24px;
  background:linear-gradient(180deg, var(--surface-warm), var(--surface));
  box-shadow:var(--shadow);
  border:2px solid rgba(78, 205, 196, 0.15);
  position:relative;
  overflow:hidden;
}
.child-friendly .card::before{
  content:"";
  position:absolute;
  top:-10px;
  right:-10px;
  width:40px;
  height:40px;
  background:var(--br-yellow);
  border-radius:50%;
  opacity:0.8;
  z-index:1;
}
.child-friendly .card h3{color:var(--br-primary-dark)}
.child-friendly .cards{gap:24px}
.child-friendly .card p{color:var(--text-body);font-size:1rem}
.child-friendly .btn{
  border-radius:18px;
  padding:14px 20px;
  font-weight:600;
  position:relative;
  overflow:hidden;
}

/* Fun hover effects for kids */
.child-friendly .btn:hover{
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 12px 30px rgba(78, 205, 196, 0.3);
}

/* Playful badges and highlights */
.fun-badge{
  display:inline-block;
  background:var(--br-yellow);
  color:var(--text-heading);
  padding:6px 12px;
  border-radius:20px;
  font-weight:700;
  font-size:0.85rem;
  margin:4px;
  animation:bounce 2s infinite;
}

@keyframes bounce{
  0%, 20%, 50%, 80%, 100%{transform:translateY(0)}
  40%{transform:translateY(-8px)}
  60%{transform:translateY(-4px)}
}

/* Colorful section dividers */
.fun-divider{
  height:4px;
  background:linear-gradient(90deg, var(--br-yellow), var(--br-accent), var(--br-purple), var(--br-secondary));
  border-radius:2px;
  margin:20px 0;
}

/* Playful list styling */
.child-friendly ul li{
  position:relative;
  padding-left:24px;
  margin:8px 0;
}
.child-friendly ul li::before{
  content:"🌟";
  position:absolute;
  left:0;
  top:2px;
  font-size:1rem;
}

/* Fun text highlights */
.highlight-fun{
  background:linear-gradient(120deg, var(--br-yellow), var(--br-accent));
  padding:2px 6px;
  border-radius:6px;
  font-weight:600;
  color:var(--text-heading);
}

/* playful badges on cards */


.split{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}

.muted{color:var(--text-muted)}

/* Back to Top Button */
.back-to-top{
  position:fixed;
  bottom:80px;
  right:18px;
  background:var(--br-primary);
  color:white;
  width:48px;
  height:48px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow);
  z-index:70;
  text-decoration:none;
  opacity:0;
  visibility:hidden;
  transition:all var(--motion-duration) var(--motion-easing);
  font-size:1.2rem;
}

.back-to-top.visible{
  opacity:1;
  visibility:visible;
}

.back-to-top:hover{
  background:var(--br-primary-dark);
  transform:translateY(-3px);
  box-shadow:var(--shadow-lg);
}

.back-to-top:focus{
  outline:2px solid var(--focus);
  outline-offset:2px;
}

/* Floating WhatsApp */
.whatsapp{position:fixed;right:18px;bottom:18px;background:#25D366;color:white;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(6,120,80,0.18);z-index:80;text-decoration:none}
.whatsapp:hover{filter:brightness(.95);transform:translateY(-3px);transition:transform .18s ease,filter .18s ease}
.skip-link:focus{left:10px;}

/* Animations - Performance Optimized */
.fade-in{opacity:0;transform:translateY(12px);transition:opacity .4s ease,transform .4s ease}
.fade-in.visible{opacity:1;transform:none}

/* Performance: Use transform and opacity for better performance */
.card.animate{
  opacity:0;
  transform:translateY(20px);
  transition:opacity 0.4s ease, transform 0.4s ease;
}

.card.animate.visible{
  opacity:1;
  transform:translateY(0);
}

/* Performance: Reduce repaints with will-change */
.hero .content,
.btn,
.nav-menu a {
  will-change: transform, opacity;
}

/* Performance: Remove will-change after animation */
.fade-in.visible,
.card.animate.visible {
  will-change: auto;
}

/* Forms */
form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* Form groups for better organization */
.form-group{
  margin-bottom:20px;
}

.form-group label{
  display:block;
  font-weight:600;
  color:var(--text-heading);
  margin-bottom:8px;
  font-size:0.95rem;
}

form input, 
form select, 
form textarea{
  width:100%;
  padding:14px 16px;
  border-radius:12px;
  border:2px solid var(--border);
  background:var(--surface);
  font-family:inherit;
  font-size:1rem;
  transition:border-color var(--motion-duration) var(--motion-easing),
             box-shadow var(--motion-duration) var(--motion-easing);
}

form input:focus,
form select:focus,
form textarea:focus{
  outline:none;
  border-color:var(--br-primary);
  box-shadow:0 0 0 3px rgba(42, 157, 143, 0.1);
}

form textarea{
  min-height:120px;
  resize:vertical;
}

/* Form step navigation */
.form-step{
  display:none;
}

.form-step.active{
  display:block;
  animation:fadeInUp 0.4s ease;
}

@keyframes fadeInUp{
  from{
    opacity:0;
    transform:translateY(20px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* Success state */
.form-success{
  text-align:center;
  padding:40px 20px;
}

/* Booking form specific enhancements */
.booking-form{
  max-width:600px;
  margin:0 auto;
}

.booking-form .btn{
  width:100%;
  justify-content:center;
}

/* Form helper text */
.form-group small{
  display:block;
  margin-top:6px;
  color:var(--text-muted);
  font-size:0.875rem;
  line-height:1.4;
}

/* Resource article pages */
.resource-article{max-width:920px}
.article-header{text-align:center;margin:0 auto 18px}
.article-meta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;color:var(--text-muted);font-weight:600}
.article-category{background:rgba(15,167,154,0.10);color:var(--br-primary-dark);padding:6px 10px;border-radius:999px}
.article-date{background:rgba(242,107,134,0.10);color:rgba(22,58,53,0.9);padding:6px 10px;border-radius:999px}
.article-subtitle{max-width:64ch;margin:10px auto 0;color:var(--text-muted);font-size:1.05rem}
.article-content{background:rgba(255,255,255,0.68);border:1px solid rgba(0,0,0,0.04);border-radius:18px;padding:18px 18px;box-shadow:0 18px 40px rgba(15,58,52,0.06)}
.article-content h2{text-align:left}
.article-content p{margin-left:auto;margin-right:auto}

/* Footer */
.site-footer{padding:36px 20px;background:transparent;color:var(--muted);text-align:center}

/* Branded footer using dark background */
.site-footer{
  background-image: url('../assets/BrightRoots_Dark_Background.png');
  background-size: cover;
  background-position: center;
  color: #F0FBF8;
  padding: 48px 20px;
  position:relative;
}
.site-footer::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(6,30,28,0.6), rgba(6,30,28,0.75));pointer-events:none}
.site-footer .footer-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:1100px;margin:0 auto}
.site-footer .footer-grid img{max-width:160px;display:block;margin-bottom:8px}
.site-footer h4{margin:0 0 8px;color:#E6FFF9}
.site-footer p, .site-footer li, .site-footer a{color:rgba(240,251,248,0.92)}
.site-footer a{color:#D8FFF3;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .social a{display:inline-block;margin-right:8px;color:#D8FFF3}
.site-footer .smallprint{margin-top:18px;color:rgba(240,251,248,0.7);font-size:0.95rem}

@media(max-width:900px){
  .site-footer .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .site-footer .footer-grid{grid-template-columns:1fr;text-align:left}
}

/* Responsive */
@media(max-width:900px){
  .split{grid-template-columns:1fr}
  .hero h1{font-size:2.1rem}
}
@media(max-width:720px){
  .nav-toggle{display:block}
  .nav-menu{
    position:fixed;
    right:6px;
    top:60px;
    background:white;
    padding:10px;
    border-radius:10px;
    flex-direction:column;
    display:none;
    box-shadow:var(--shadow-lg);
    max-width:min(85vw, 260px);
    gap:4px;
  }
  .nav-menu.open{display:flex}
  .nav-menu a{
    width:100%;
    display:flex;
    align-items:center;
    padding:8px 10px;
    min-height:40px;
    font-size:0.85rem;
  }
  .nav-menu .cta{
    width:100%;
    text-align:center;
    justify-content:center;
    margin-top:4px;
  }
  .nav-menu .cta.phone{
    margin-top:0;
  }
  .brand img{height:60px}
  .nav-inner{padding:6px 12px}
}

@media(max-width:480px){
  .nav-menu a{
    font-size:0.8rem;
    padding:6px 8px;
    min-height:36px;
  }
  .nav-menu .cta{
    font-size:0.8rem;
    padding:6px 12px;
  }
  .brand img{height:50px}
  .nav-inner{padding:4px 8px}
}

/* Profile / Resume layout for therapist pages */
.profile{display:grid;grid-template-columns:280px 1fr;gap:28px;align-items:start}
.profile-sidebar{background:var(--surface);padding:18px;border-radius:14px;box-shadow:var(--shadow)}
.profile-main{min-width:0}
.profile-sidebar img{width:100%;border-radius:10px;display:block}
.profile-contact{margin-top:14px}
.profile-contact a{display:block;color:var(--br-primary-dark);text-decoration:none;margin-bottom:6px}
.profile-meta{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.profile-meta .meta-item{background:rgba(11,127,111,0.06);padding:8px 10px;border-radius:10px;font-weight:600;color:var(--text-heading)}
.badge{display:inline-block;background:var(--br-primary-dark);color:white;padding:6px 10px;border-radius:999px;font-weight:700;font-size:0.9rem}
.section-title{margin:0 0 8px;font-size:1.05rem;color:var(--text-heading)}
.profile-main h2{margin-top:0}
.cv-list{list-style:none;padding:0;margin:0}
.cv-list li{padding:8px 0;border-bottom:1px dashed rgba(0,0,0,0.04)}
.cert-thumbs img{height:64px;object-fit:contain;border-radius:6px;background:transparent;padding:6px}

@media(max-width:900px){
  .profile{grid-template-columns:1fr;gap:18px}
  .profile-sidebar{display:flex;gap:12px;align-items:center}
  .profile-sidebar img{max-width:120px}
}

/* Toast notifications (used for AJAX form submit feedback) */
.br-toast{position:fixed;left:50%;transform:translateX(-50%) translateY(8px);bottom:22px;min-width:260px;max-width:92%;padding:12px 16px;border-radius:12px;color:white;font-weight:600;box-shadow:0 12px 32px rgba(6,30,28,0.32);z-index:120;opacity:0;pointer-events:auto}
.br-toast.br-success{background:linear-gradient(180deg,var(--success),#2d9b76)}
.br-toast.br-error{background:linear-gradient(180deg,var(--error),#d95f55)}
.br-toast.show{opacity:1;transform:translateX(-50%) translateY(0);transition:opacity 320ms ease,transform 320ms cubic-bezier(.2,.9,.2,1)}
.br-toast .close{background:transparent;border:0;color:rgba(255,255,255,0.95);font-weight:800;cursor:pointer;margin-left:12px}
.br-toast .meta{display:flex;align-items:center;gap:8px}

@media (prefers-reduced-motion: reduce){
  .br-toast{transition:none}
}
