*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--cream:#faf6f0; --warm:#f5ede0; --sage:#8aab8e;
--deep-sage:#4a7550; --terracotta:#c97a5a; --charcoal:#2d2d2a; --mid:#6b6660;
}
html { scroll-behavior: smooth; }
body { font-family:'DM Sans',sans-serif; background:var(--cream); color:var(--charcoal); overflow-x:hidden; }
nav {
position:fixed; top:0; left:0; right:0; z-index:200;
display:flex; justify-content:space-between; align-items:center;
padding:1.4rem 4rem;
background:rgba(250,246,240,0.93); backdrop-filter:blur(10px);
border-bottom:1px solid rgba(138,171,142,0.2);
}
.logo { font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--deep-sage); letter-spacing:0.02em; cursor:pointer; }
.logo span { color:var(--terracotta); font-style:italic; }
nav ul { list-style:none; display:flex; gap:2rem; align-items:center; }
.nav-link {
text-decoration:none; color:var(--mid); font-size:0.88rem; font-weight:500;
letter-spacing:0.05em; text-transform:uppercase; transition:color 0.3s;
background:none; border:none; cursor:pointer; font-family:inherit; padding:0;
}
.nav-link:hover,.nav-link.active-page { color:var(--deep-sage); }
.nav-link.active-page { border-bottom:2px solid var(--deep-sage); padding-bottom:2px; }
.nav-cta {
background:var(--deep-sage); color:white !important; padding:0.55rem 1.4rem;
border-radius:50px; transition:background 0.3s !important; text-decoration:none;
font-size:0.88rem; font-weight:500; letter-spacing:0.05em; text-transform:uppercase;
}
.nav-cta:hover { background:var(--terracotta) !important; }
.lang-switcher { display:flex; align-items:center; border:1.5px solid rgba(74,117,80,0.35); border-radius:50px; overflow:hidden; margin-left:0.5rem; }
.lang-btn {
background:transparent; border:none; cursor:pointer; padding:0.35rem 0.85rem;
font-family:'DM Sans',sans-serif; font-size:0.78rem; font-weight:600;
letter-spacing:0.06em; text-transform:uppercase; color:var(--mid); transition:all 0.25s;
display:flex; align-items:center; gap:0.35rem; line-height:1;
}
.lang-btn.active { background:var(--deep-sage); color:white; }
.lang-btn:not(.active):hover { background:rgba(74,117,80,0.08); color:var(--deep-sage); }
.hamburger {
display:none; flex-direction:column; justify-content:center; gap:5px;
background:none; border:none; cursor:pointer; padding:0.4rem; z-index:300;
}
.hamburger span { display:block; width:22px; height:2px; background:var(--charcoal); border-radius:2px; transition:all 0.3s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mobile-menu {
display:none; position:fixed; top:0; left:0; right:0; bottom:0;
background:var(--cream); z-index:250; flex-direction:column;
align-items:center; justify-content:center; gap:1.8rem;
opacity:0; pointer-events:none; transition:opacity 0.3s;
}
.mobile-menu.open { display:flex; opacity:1; pointer-events:all; }
.m-link {
font-family:'Playfair Display',serif; font-size:2rem; font-weight:400;
color:var(--charcoal); background:none; border:none; cursor:pointer;
text-decoration:none; transition:color 0.2s; padding:0;
}
.m-link:hover { color:var(--deep-sage); }
.m-cta {
font-family:'DM Sans',sans-serif !important; font-size:1rem !important;
font-weight:500; background:var(--terracotta); color:white !important;
padding:0.9rem 2rem; border-radius:50px;
box-shadow:0 4px 20px rgba(201,122,90,0.35);
}
.m-lang { display:flex; border:1.5px solid rgba(74,117,80,0.35); border-radius:50px; overflow:hidden; margin-top:0.5rem; }
.page { display:none; min-height:100vh; }
.page.active { display:block; }
.page-enter { animation:pageIn 0.45s ease forwards; }
@keyframes pageIn { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }
.page-banner {
background:linear-gradient(135deg,var(--warm) 0%,rgba(138,171,142,0.15) 100%);
padding:9rem 4rem 4rem; text-align:center;
border-bottom:1px solid rgba(138,171,142,0.2);
}
.page-banner .eyebrow {
display:inline-flex; align-items:center; gap:0.6rem;
font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase;
color:var(--terracotta); font-weight:500; margin-bottom:1rem;
}
.page-banner .eyebrow::before { content:''; display:block; width:24px; height:1px; background:var(--terracotta); }
.page-banner h1 { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,2.8vw,2.9rem); line-height:1.2; }
.page-banner h1 em { color:var(--deep-sage); font-style:italic; }
.page-banner p { color:var(--mid); font-size:1.05rem; max-width:560px; margin:1.2rem auto 0; line-height:1.75; }
.section-wrap { padding:5rem 4rem; max-width:1100px; margin:0 auto; }
.section-label {
display:inline-flex; align-items:center; gap:0.6rem;
font-size:0.75rem; letter-spacing:0.18em; text-transform:uppercase;
color:var(--terracotta); font-weight:500; margin-bottom:1rem;
}
.section-label::before { content:''; display:block; width:24px; height:1px; background:var(--terracotta); }
h2 { font-family:'Playfair Display',serif; font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.2; margin-bottom:1.2rem; }
h2 em { color:var(--deep-sage); font-style:italic; }
.hero {
min-height:100vh; display:grid; grid-template-columns:1fr 1fr;
align-items:center; padding:8rem 4rem 4rem; position:relative; overflow:hidden;
}
.hero::before {
content:''; position:absolute; right:-100px; top:-100px; width:600px; height:600px;
background:radial-gradient(circle,rgba(138,171,142,0.18) 0%,transparent 70%);
border-radius:50%; animation:floatBlob 8s ease-in-out infinite;
}
.hero::after {
content:''; position:absolute; left:30%; bottom:-50px; width:400px; height:400px;
background:radial-gradient(circle,rgba(201,122,90,0.12) 0%,transparent 70%);
border-radius:50%; animation:floatBlob 10s ease-in-out infinite reverse;
}
@keyframes floatBlob { 0%,100%{transform:translate(0,0) scale(1)} 50%{transform:translate(20px,-20px) scale(1.05)} }
.hero-text { position:relative; z-index:2; }
.hero-eyebrow {
display:inline-flex; align-items:center; gap:0.6rem;
font-size:0.8rem; letter-spacing:0.15em; text-transform:uppercase;
color:var(--terracotta); font-weight:500; margin-bottom:1.5rem;
}
.hero-eyebrow::before { content:''; display:block; width:30px; height:1px; background:var(--terracotta); }
h1.hero-h1 { font-family:'Playfair Display',serif; font-size:clamp(2.8rem,5vw,4.5rem); line-height:1.12; color:var(--charcoal); margin-bottom:1.8rem; }
h1.hero-h1 em { color:var(--deep-sage); font-style:italic; }
.hero-sub { font-size:1.1rem; line-height:1.75; color:var(--mid); max-width:480px; margin-bottom:2.5rem; }
.btn-group { display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.btn-primary {
background:var(--terracotta); color:white; padding:1rem 2.2rem; border-radius:50px;
text-decoration:none; font-weight:500; font-size:0.95rem; letter-spacing:0.02em;
transition:transform 0.3s,box-shadow 0.3s,background 0.3s;
box-shadow:0 4px 20px rgba(201,122,90,0.35); border:none; cursor:pointer; font-family:inherit; display:inline-block; text-align:center;
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(201,122,90,0.45); background:#b8694a; }
.btn-secondary {
color:var(--deep-sage); text-decoration:none; display:flex; align-items:center; gap:0.5rem;
font-weight:500; font-size:0.95rem; padding:0.8rem 0; border-bottom:2px solid transparent;
transition:border-color 0.3s; background:none; border-top:none; border-left:none; border-right:none; cursor:pointer; font-family:inherit;
}
.btn-secondary:hover { border-bottom-color:var(--deep-sage); }
.hero-visual { display:flex; justify-content:center; align-items:center; position:relative; z-index:2; }
.hero-card-stack { position:relative; width:340px; height:420px; }
.card-bg { position:absolute; border-radius:24px; background:var(--warm); border:1px solid rgba(138,171,142,0.3); }
.card-bg:nth-child(1) { width:280px; height:360px; top:30px; left:30px; transform:rotate(6deg); background:rgba(138,171,142,0.15); }
.card-bg:nth-child(2) { width:300px; height:380px; top:15px; left:20px; transform:rotate(2deg); background:rgba(201,122,90,0.1); }
.card-main {
position:absolute; top:0; left:0; width:310px; height:390px; background:white;
border-radius:24px; padding:2rem; box-shadow:0 20px 60px rgba(0,0,0,0.12);
display:flex; flex-direction:column; justify-content:space-between;
}
.card-icon { font-size:3rem; margin-bottom:0.5rem; }
.card-quote { font-family:'Playfair Display',serif; font-size:1.1rem; line-height:1.6; color:var(--charcoal); font-style:italic; }
.card-author { font-size:0.85rem; color:var(--mid); margin-top:0.5rem; }
.card-badge {
display:inline-flex; align-items:center; gap:0.5rem; background:var(--deep-sage); color:white;
padding:0.6rem 1rem; border-radius:50px; font-size:0.8rem; font-weight:500; align-self:flex-start;
}
.trust-bar { background: linear-gradient(135deg, rgba(74,117,80,0.12) 0%, rgba(74,117,80,0.06) 100%); padding:1.5rem 4rem; display:flex; justify-content:center; gap:4rem; flex-wrap:wrap; }
.trust-item { color:rgba(255,255,255,0.9); text-align:center; }
.trust-item strong { display:block; font-size:1.6rem; font-family:'Playfair Display',serif; }
.trust-item span { font-size:0.8rem; letter-spacing:0.05em; text-transform:uppercase; opacity:0.75; }
/* Social icon button styles (replaces numeric trust items) */
.trust-bar { padding:1.5rem 4rem; }
.trust-bar .social-links { display:flex; gap:1.5rem; align-items:center; justify-content:center; }
/* white circular buttons with colored icons */
.social-link {
	display:inline-flex; align-items:center; justify-content:center;
	width:48px; height:48px; border-radius:50%;
	background:#ffffff; color:var(--deep-sage); text-decoration:none; border:1px solid rgba(0,0,0,0.06);
	box-shadow: 0 6px 18px rgba(0,0,0,0.06); transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.social-link svg { width:22px; height:22px; display:block; }
.social-link .social-icon { width:22px; height:22px; object-fit:contain; display:block; filter: grayscale(100%) contrast(150%); transition:filter .18s ease, opacity .18s ease; }
.social-link:hover .social-icon { filter: none; }
.social-link:hover { transform: translateY(-3px) scale(1.06); box-shadow:0 10px 22px rgba(0,0,0,0.12); }
.social-link:focus { outline: 3px solid rgba(74,117,80,0.12); outline-offset:4px; }
.social-link.linkedin { color:#0A66C2; }
.social-link.facebook { color:#1877F2; }
.social-link.instagram { color:#E4405F; }
.social-label { display:none; font-size:0.75rem; color:var(--mid); margin-top:0.35rem; text-align:center; }

@media (max-width:767px) {
	.trust-bar .social-links { gap:1rem; }
	.social-label { display:block; }
}
.home-previews { padding:5rem 4rem; background:var(--warm); }
.previews-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; max-width:1100px; margin:2.5rem auto 0; }
.preview-card {
background:white; border-radius:20px; padding:2.2rem;
border:1px solid rgba(138,171,142,0.2);
cursor:pointer; transition:transform 0.3s,box-shadow 0.3s; position:relative; overflow:hidden;
}
.preview-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--sage); opacity:0; transition:opacity 0.3s; }
.preview-card:hover { transform:translateY(-5px); box-shadow:0 16px 40px rgba(0,0,0,0.1); }
.preview-card:hover::before { opacity:1; }
.preview-heading { display:flex; align-items:center; gap:0.8rem; margin-bottom:1rem; }
.preview-icon { font-size:2.2rem; line-height:1; }
.preview-card h3 { font-family:'Playfair Display',serif; font-size:1.25rem; margin-bottom:0; }
.preview-card p { color:var(--mid); font-size:0.93rem; line-height:1.7; margin-bottom:1.3rem; }
.preview-link { color:var(--deep-sage); font-weight:600; font-size:0.88rem; display:inline-flex; align-items:center; gap:0.3rem; }
.about-full-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:5rem; align-items:start; }
.about-img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:32px; border:2px solid rgba(138,171,142,0.25); }
.about-image-wrap { position:relative; }
.about-badge {
position:absolute; bottom:-20px; right:-20px; background:var(--terracotta); color:white;
width:130px; height:130px; border-radius:50%;
display:flex; flex-direction:column; align-items:center; justify-content:center;
font-size:0.62rem; text-align:center; line-height:1.3; font-weight:500;
box-shadow:0 8px 30px rgba(201,122,90,0.4);
padding:1.2rem; overflow:hidden;
}
.about-badge strong { font-size:1.05rem; font-family:'Playfair Display',serif; display:block; margin-bottom:0.15rem; }
.about-text p { color:var(--mid); line-height:1.85; font-size:1.03rem; margin-bottom:1.3rem; }
.values { display:flex; flex-direction:column; gap:0.85rem; margin-top:1.5rem; }
.value-item { display:flex; align-items:flex-start; gap:0.9rem; font-size:0.95rem; color:var(--charcoal); line-height:1.5; }
.value-dot { width:9px; height:9px; border-radius:50%; background:var(--sage); flex-shrink:0; margin-top:5px; }
.credentials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:4rem; }
.cred-card { background:white; border-radius:16px; padding:1.8rem; border:1px solid rgba(138,171,142,0.2); text-align:center; }
.cred-icon { font-size:2rem; margin-bottom:0.8rem; }
.cred-card h4 { font-family:'Playfair Display',serif; font-size:1rem; margin-bottom:0.5rem; }
.cred-card p { color:var(--mid); font-size:0.85rem; line-height:1.6; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.service-card {
background:white; border-radius:20px; padding:2.2rem;
border:1px solid rgba(138,171,142,0.2);
transition:transform 0.3s,box-shadow 0.3s; position:relative; overflow:hidden;
}
.service-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(0,0,0,0.09); }
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--sage); opacity:0; transition:opacity 0.3s; }
.service-card:hover::before { opacity:1; }
.service-icon { font-size:2.2rem; margin-bottom:1rem; }
.service-card h3 { font-family:'Playfair Display',serif; font-size:1.25rem; margin-bottom:0.8rem; }
.service-card p { color:var(--mid); font-size:0.93rem; line-height:1.7; }
.service-price { margin-top:1.5rem; font-size:0.85rem; color:var(--deep-sage); font-weight:500; }
.process-section { background:var(--warm); padding:5rem 4rem; }
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; max-width:1100px; margin:2.5rem auto 0; }
.step { text-align:center; padding:1.5rem; }
.step-num { width:48px; height:48px; border-radius:50%; background:var(--deep-sage); color:white; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:1.2rem; margin:0 auto 1rem; }
.step h4 { font-family:'Playfair Display',serif; font-size:1rem; margin-bottom:0.5rem; }
.step p { color:var(--mid); font-size:0.88rem; line-height:1.6; }
.testi-grid-full { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.testi-card { background:white; border-radius:20px; padding:2rem; border:1px solid rgba(138,171,142,0.2); }
.stars { color:var(--terracotta); margin-bottom:1rem; font-size:1rem; }
.testi-card blockquote { font-family:'Playfair Display',serif; font-style:italic; font-size:1rem; line-height:1.75; color:var(--charcoal); margin-bottom:1.5rem; }
.testi-author strong { display:block; font-size:0.92rem; color:var(--charcoal); font-style:normal; font-family:'DM Sans',sans-serif; }
.testi-author span { font-size:0.82rem; color:var(--mid); }
.featured-story { background:var(--charcoal); color:white; padding:4rem 4rem; }
.featured-inner { max-width:800px; margin:0 auto; text-align:center; }
.featured-story blockquote { font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(1.05rem,2vw,1.4rem); line-height:1.75; color:rgba(255,255,255,0.92); margin-bottom:1.5rem; }
.featured-story .testi-author strong { color:rgba(255,255,255,0.9); font-size:1rem; }
.featured-story .testi-author span { color:rgba(255,255,255,0.55); }
.featured-story .stars { font-size:1.2rem; margin-bottom:1.5rem; }
.rich-quote { padding:2.2rem 4rem; background:#dfe9dd; color:var(--charcoal); }
.rich-quote blockquote { max-width:900px; margin:0 auto 0.75rem; color:var(--charcoal); }
.rich-quote .quote-author { margin-top:0; }
.rich-quote .quote-author strong { color:var(--deep-sage); }
.rich-quote .quote-author span { display:block; color:var(--mid); }
.rich-intro { max-width:900px; text-align:center; padding-top:4rem; padding-bottom:0; }
.rich-intro .section-label { justify-content:center; }
.rich-intro h2 { max-width:760px; margin-left:auto; margin-right:auto; }
.rich-intro > p { color:var(--mid); font-size:1.03rem; line-height:1.85; margin:0; }
.rich-intro > p[data-t="parents_intro_p3"] { color:var(--deep-sage); font-weight:600; }
.parents-intro-highlight { color:var(--deep-sage); font-weight:600; }
.rich-intro .women-intro-quote { color:var(--mid); font-weight:400; }
.rich-intro .women-intro-quote .green-quote { color:var(--deep-sage); font-weight:600; }
.rich-intro .women-intro-social { display:flex; justify-content:center; margin-top:0.8rem; margin-bottom:2rem; }
.rich-intro .women-intro-social .social-link {
  display:inline-flex; align-items:center; justify-content:center; gap:0.5rem;
	width:auto; max-width:100%; height:auto; padding:0.9rem 1.4rem; border-radius:50px;
	background:linear-gradient(135deg,#edf4ee 0%,#dfe9de 100%); color:var(--deep-sage); text-align:center; line-height:1.45;
  box-shadow:0 8px 20px rgba(74,117,80,0.2); border:1px solid rgba(74,117,80,0.15);
}
.rich-intro .women-intro-social .social-icon { width:18px; height:18px; filter:none; }
.rich-intro .women-intro-social .social-label { display:inline; font-size:0.95rem; font-weight:600; letter-spacing:0; text-transform:none; }
.women-photo-card {
	max-width:860px; margin:0 auto 2rem; padding:0.75rem;
	display:grid; grid-template-columns:minmax(0,3fr) minmax(0,5fr); gap:0.75rem;
	align-items:stretch; background:rgba(255,255,255,0.72);
	border:1px solid rgba(138,171,142,0.25); border-radius:8px;
	box-shadow:0 12px 28px rgba(45,45,42,0.07);
}
.women-photo-card img { display:block; width:100%; height:100%; object-fit:cover; border-radius:5px; }
.women-photo-card img:first-child { aspect-ratio:3 / 4; }
.women-photo-card img:last-child { aspect-ratio:4 / 3; }
.rich-intro > p + p { margin-top:0.7rem; }
.rich-intro > p[data-t="parents_intro_p3"],.rich-intro > p[data-t="parents_intro_p3"] + p { margin-top:0.6rem; }
.rich-section-heading { max-width:760px; margin:0 auto 1.2rem; text-align:center; }
.rich-section-heading .section-label { justify-content:center; }
.rich-section-heading > p { max-width:680px; margin:0 auto; color:var(--mid); line-height:1.75; }
.rich-content { padding-top:4rem; padding-bottom:4rem; }
.rich-content .services-grid { margin-top:0; }
.rich-content .service-icon { width:42px; height:42px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:var(--warm); color:var(--deep-sage); font-size:0.85rem; font-weight:600; }
.business-pricing-grid,.business-discounts-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.business-pricing-grid { max-width:1100px; margin:2rem auto 0; }
.business-discounts-grid { margin-top:2rem; }
.business-price-card { background:white; border:1px solid rgba(138,171,142,0.25); border-radius:16px; padding:1.6rem; text-align:center; }
.business-price-card h3 { font-family:'Playfair Display',serif; font-size:1.05rem; margin-bottom:0.7rem; }
.business-price { color:var(--deep-sage); font-size:1.05rem; font-weight:600; }
.business-price a { color:inherit; text-decoration:underline; text-underline-offset:0.15em; }
.business-price a:hover,.business-price a:focus-visible { color:var(--terracotta); }
.business-benefit-grid { margin-bottom:2rem; }
.cta-section {
background:linear-gradient(135deg,var(--sage),var(--deep-sage));
color:white; text-align:center; padding:6rem 4rem; position:relative; overflow:hidden;
}
.cta-section::before {
content:''; position:absolute; top:-200px; left:50%; transform:translateX(-50%);
width:800px; height:800px;
background:radial-gradient(circle,rgba(255,255,255,0.08) 0%,transparent 60%); border-radius:50%;
}
.cta-section h2 { color:white; position:relative; max-width:700px; margin:0 auto 1.5rem; font-size:clamp(1.7rem,2.2vw,2.2rem); line-height:1.25; }
.cta-section p { color:rgba(255,255,255,0.8); font-size:1.05rem; max-width:500px; margin:0 auto 2.5rem; line-height:1.7; position:relative; }
.btn-white { cursor:pointer; font-family:'DM Sans',sans-serif; border:none;
background:linear-gradient(135deg,#edf4ee 0%,#dfe9de 100%); color:var(--deep-sage); padding:1.1rem 2.5rem; border-radius:50px;
text-decoration:none; font-weight:600; font-size:1rem; letter-spacing:0.02em;
transition:transform 0.3s,box-shadow 0.3s,background 0.3s,color 0.3s; box-shadow:0 10px 28px rgba(74,117,80,0.18);
display:inline-block; position:relative;
}
.btn-white:hover { transform:translateY(-3px); background:linear-gradient(135deg,#a7bfa0 0%,#7b9b7f 100%); color:white; box-shadow:0 14px 34px rgba(123,155,127,0.28); }
footer { background:var(--charcoal); color:rgba(255,255,255,0.5); padding:2rem 4rem; text-align:center; font-size:0.85rem; }
footer strong { color:rgba(255,255,255,0.8); }
footer a { color:#fff; font-weight:700; text-decoration:none; }
footer a:hover,footer a:focus-visible { text-decoration:underline; }
.fade-up { opacity:0; transform:translateY(28px); animation:fadeUp 0.75s ease forwards; }
.fade-up:nth-child(2) { animation-delay:0.15s; }
.fade-up:nth-child(3) { animation-delay:0.3s; }
.fade-up:nth-child(4) { animation-delay:0.45s; }
@keyframes fadeUp { to{opacity:1;transform:translateY(0)} }
[data-t] { transition:opacity 0.18s ease; }
@media (max-width:1023px) {
nav { padding:1.2rem 2.5rem; }
nav ul { gap:1rem; }
.hero { padding:7rem 2.5rem 3rem; gap:2rem; }
.hero-card-stack { width:280px; height:360px; }
.card-bg:nth-child(1) { width:230px; height:300px; }
.card-bg:nth-child(2) { width:250px; height:320px; }
.card-main { width:260px; height:330px; padding:1.5rem; }
.card-quote { font-size:0.97rem; }
.section-wrap { padding:4rem 2.5rem; }
.home-previews { padding:4rem 2.5rem; }
.process-section { padding:4rem 2.5rem; }
.featured-story { padding:4rem 2.5rem; }
.rich-quote { padding:2.5rem 2.5rem; }
.cta-section { padding:4rem 2.5rem; }
.trust-bar { gap:2rem; padding:1.5rem 2.5rem; }
.page-banner { padding:8rem 2.5rem 3.5rem; }
footer { padding:2rem 2.5rem; }
.services-grid { grid-template-columns:repeat(2,1fr); }
.business-pricing-grid,.business-discounts-grid { grid-template-columns:repeat(2,1fr); }
.testi-grid-full { grid-template-columns:repeat(2,1fr); }
.process-steps { grid-template-columns:repeat(2,1fr); }
.about-full-grid { gap:3rem; }
.credentials-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:767px) {
nav { padding:1rem 1.25rem; }
nav ul { display:none; }
.hamburger { display:flex; }
.hero {
grid-template-columns:1fr; min-height:auto;
padding:6.5rem 1.25rem 3rem; text-align:center;
}
.hero-visual { display:none; }
.hero-eyebrow { justify-content:center; }
.hero-eyebrow::before { display:none; }
.hero-sub { max-width:100%; }
.btn-group { justify-content:center; }
	.trust-bar { display:block; padding:1rem 1.25rem; }
	.trust-bar .social-links { display:flex; flex-direction:column; gap:0.6rem; }
	.trust-bar .social-link {
		display:flex; align-items:center; gap:0.6rem;
		width:100%; padding:0.8rem; border-radius:10px;
		background:white; color:var(--deep-sage);
		box-shadow: 0 6px 18px rgba(0,0,0,0.04); border:1px solid rgba(0,0,0,0.04);
	}
	.trust-bar .social-icon { width:22px; height:22px; }
	.trust-bar .social-label { display:inline-block; margin-left:0; font-size:0.95rem; }
	.previews-grid,.services-grid,.testi-grid-full,
	.about-full-grid,.credentials-grid,.process-steps { grid-template-columns:1fr; }
	.business-pricing-grid,.business-discounts-grid { grid-template-columns:1fr; }
.section-wrap { padding:3rem 1.25rem; }
.women-photo-card { grid-template-columns:1fr; max-width:520px; }
.women-photo-card img { height:auto; }
.home-previews { padding:3rem 1.25rem; }
.process-section { padding:3rem 1.25rem; }
.featured-story { padding:3.5rem 1.25rem; }
.rich-quote { padding:2rem 1.25rem; }
.cta-section { padding:3.5rem 1.25rem; }
footer { padding:2rem 1.25rem; }
.page-banner { padding:7rem 1.25rem 2.5rem; }
.about-badge { bottom:-10px; right:-5px; width:104px; height:104px; font-size:0.56rem; padding:0.9rem; }
.about-badge strong { font-size:1rem; }
.process-steps { gap:1rem; }
.step { padding:1rem 0.75rem; }
.big-quote-mark { font-size:4.5rem; }
.btn-white { cursor:pointer; font-family:'DM Sans',sans-serif; border:none; display:block; text-align:center; }
}
@media (max-width:479px) {
.logo { font-size:1.1rem; }
h1.hero-h1 { font-size:2.1rem; }
.hero-sub { font-size:0.97rem; }
.btn-primary { width:100%; }
.btn-group { flex-direction:column; align-items:stretch; }
.btn-secondary { justify-content:center; }
.trust-bar { gap:1rem; padding:1.2rem 1rem; }
.trust-item strong { font-size:1.3rem; }
.trust-item span { font-size:0.72rem; }
.page-banner h1 { font-size:1.75rem; }
.page-banner p { font-size:0.93rem; }
.page-banner .eyebrow { font-size:0.7rem; }
.preview-card,.service-card,.testi-card,.cred-card { padding:1.4rem; }
.cta-section h2 { font-size:1.55rem; }
.cta-section p { font-size:0.93rem; }
.featured-story blockquote { font-size:0.97rem; }
footer { font-size:0.78rem; padding:1.5rem 1rem; }
.lang-btn { padding:0.3rem 0.6rem; font-size:0.72rem; }
.nav-cta { padding:0.45rem 1rem; font-size:0.8rem; }
}
.modal-overlay {
display:none; position:fixed; inset:0; z-index:500;
background:rgba(45,45,42,0.55); backdrop-filter:blur(6px);
align-items:center; justify-content:center; padding:1.5rem;
}
.modal-overlay.open { display:flex; animation:overlayIn 0.3s ease; }
@keyframes overlayIn { from{opacity:0} to{opacity:1} }
.modal {
background:var(--cream); border-radius:28px; width:100%; max-width:540px;
max-height:92vh; overflow:hidden; position:relative;
box-shadow:0 30px 80px rgba(0,0,0,0.22);
animation:modalIn 0.35s cubic-bezier(0.34,1.56,0.64,1);
display:flex; flex-direction:column;
}
@keyframes modalIn { from{opacity:0;transform:scale(0.92) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }
.modal-close {
position:absolute; top:1.2rem; right:1.2rem;
background:var(--warm); border:none; cursor:pointer;
width:36px; height:36px; border-radius:50%;
display:flex; align-items:center; justify-content:center;
font-size:1.1rem; color:var(--mid); transition:all 0.2s; z-index:10;
}
.modal-close:hover { background:var(--terracotta); color:white; }
.modal-header {
padding:1.6rem 2rem 1.4rem;
background:linear-gradient(135deg,var(--warm),rgba(138,171,142,0.12));
border-radius:28px 28px 0 0;
text-align:center; flex-shrink:0;
border-bottom:1px solid rgba(138,171,142,0.2);
}
.modal-header .eyebrow {
display:inline-flex; align-items:center; gap:0.5rem;
font-size:0.72rem; letter-spacing:0.18em; text-transform:uppercase;
color:var(--terracotta); font-weight:500; margin-bottom:0.8rem;
}
.modal-header .eyebrow::before { content:''; display:block; width:18px; height:1px; background:var(--terracotta); }
.modal-header h2 { font-family:'Playfair Display',serif; font-size:1.45rem; line-height:1.2; margin-bottom:0.35rem; }
.modal-header h2 em { color:var(--deep-sage); font-style:italic; }
.modal-header p { color:var(--mid); font-size:0.88rem; line-height:1.5; margin:0; }
.modal-body { padding:1.5rem 2rem 2rem; flex:1; overflow-y:auto; }
.step-indicators {
display:flex; align-items:center; justify-content:center;
gap:0; margin-bottom:1.2rem;
}
.step-ind {
display:flex; align-items:center; gap:0;
}
.step-dot {
width:32px; height:32px; border-radius:50%;
display:flex; align-items:center; justify-content:center;
font-size:0.8rem; font-weight:600; transition:all 0.3s;
background:var(--warm); color:var(--mid); border:2px solid rgba(138,171,142,0.3);
}
.step-dot.active { background:var(--deep-sage); color:white; border-color:var(--deep-sage); }
.step-dot.done { background:var(--sage); color:white; border-color:var(--sage); }
.step-line { width:40px; height:2px; background:rgba(138,171,142,0.3); transition:background 0.3s; }
.step-line.done { background:var(--sage); }
.form-step { display:none; }
.form-step.active { display:block; animation:stepIn 0.3s ease; }
@keyframes stepIn { from{opacity:0;transform:translateX(12px)} to{opacity:1;transform:translateX(0)} }
.form-group { margin-bottom:0.9rem; }
.form-group label {
display:block; font-size:0.82rem; font-weight:500;
color:var(--charcoal); margin-bottom:0.45rem; letter-spacing:0.02em;
}
.form-input, .form-select, .form-textarea {
width:100%; padding:0.75rem 1rem;
border:1.5px solid rgba(138,171,142,0.35); border-radius:12px;
font-family:'DM Sans',sans-serif; font-size:0.93rem;
background:white; color:var(--charcoal);
transition:border-color 0.25s, box-shadow 0.25s;
appearance:none; -webkit-appearance:none;
}
.form-input:focus, .form-select:focus, .form-textarea:focus {
outline:none; border-color:var(--deep-sage);
box-shadow:0 0 0 3px rgba(74,117,80,0.12);
}
.form-input.error, .form-select.error, .form-textarea.error {
border-color:var(--terracotta);
box-shadow:0 0 0 3px rgba(201,122,90,0.12);
}
.form-textarea { resize:vertical; min-height:70px; }
.form-select-wrap { position:relative; }
.form-select-wrap::after {
content:'▾'; position:absolute; right:1rem; top:50%; transform:translateY(-50%);
color:var(--mid); pointer-events:none; font-size:0.9rem;
}
.error-msg { color:var(--terracotta); font-size:0.78rem; margin-top:0.3rem; display:none; }
.error-msg.show { display:block; }
.contact-feedback { display:none; margin-bottom:1rem; padding:0.85rem 1rem; border-radius:8px; line-height:1.5; font-size:0.92rem; }
.contact-feedback.show { display:block; }
.contact-feedback.success { color:var(--deep-sage); background:rgba(138,171,142,0.14); }
.contact-feedback.error { color:#9d4933; background:rgba(201,122,90,0.12); }
.date-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0.5rem; margin-top:0.5rem; }
.date-btn {
border:1.5px solid rgba(138,171,142,0.3); border-radius:10px;
padding:0.6rem 0.3rem; text-align:center; cursor:pointer;
background:white; transition:all 0.2s; font-family:inherit;
}
.date-btn:hover { border-color:var(--sage); background:rgba(138,171,142,0.06); }
.date-btn.selected { background:var(--deep-sage); color:white; border-color:var(--deep-sage); }
.date-btn .d-name { font-size:0.7rem; color:inherit; opacity:0.7; text-transform:uppercase; letter-spacing:0.05em; }
.date-btn .d-num { font-family:'Playfair Display',serif; font-size:1.2rem; display:block; }
.date-btn .d-mon { font-size:0.7rem; opacity:0.7; }
.date-btn.selected .d-name,.date-btn.selected .d-num,.date-btn.selected .d-mon { color:white; opacity:1; }
.time-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0.5rem; margin-top:0.5rem; }
.time-btn {
border:1.5px solid rgba(138,171,142,0.3); border-radius:10px;
padding:0.55rem 0.4rem; text-align:center; cursor:pointer;
background:white; transition:all 0.2s; font-family:inherit; font-size:0.88rem;
}
.time-btn:hover { border-color:var(--sage); background:rgba(138,171,142,0.06); }
.time-btn.selected { background:var(--deep-sage); color:white; border-color:var(--deep-sage); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.modal-nav { display:flex; gap:0.8rem; margin-top:1.2rem; align-items:center; }
.btn-back {
background:var(--warm); color:var(--mid); border:none; padding:0.85rem 1.6rem;
border-radius:50px; cursor:pointer; font-family:inherit; font-size:0.92rem; font-weight:500;
transition:all 0.2s;
}
.btn-back:hover { background:rgba(138,171,142,0.2); color:var(--charcoal); }
.btn-next, .btn-submit {
flex:1; background:var(--terracotta); color:white; border:none;
padding:0.9rem 1.8rem; border-radius:50px; cursor:pointer;
font-family:inherit; font-size:0.95rem; font-weight:500;
transition:all 0.3s; box-shadow:0 4px 16px rgba(201,122,90,0.3);
}
.btn-next:hover,.btn-submit:hover { background:#b8694a; transform:translateY(-1px); }
.btn-next:disabled,.btn-submit:disabled { opacity:0.5; cursor:not-allowed; transform:none; }
.booking-success { text-align:center; padding:1rem 0; }
.success-icon {
width:60px; height:60px; border-radius:50%; background:linear-gradient(135deg,var(--sage),var(--deep-sage));
display:flex; align-items:center; justify-content:center; font-size:1.6rem; margin:0 auto 1rem;
animation:successPop 0.5s cubic-bezier(0.34,1.56,0.64,1);
}
@keyframes successPop { from{transform:scale(0)} to{transform:scale(1)} }
.booking-success h3 { font-family:'Playfair Display',serif; font-size:1.4rem; margin-bottom:0.6rem; }
.booking-success h3 em { color:var(--deep-sage); font-style:italic; }
.booking-success p { color:var(--mid); line-height:1.7; font-size:0.95rem; margin-bottom:0.6rem; }
.booking-summary {
background:var(--warm); border-radius:16px; padding:0.9rem 1.2rem;
margin:0.8rem 0; text-align:left;
}
.booking-summary-row { display:flex; gap:0.7rem; align-items:flex-start; margin-bottom:0.35rem; font-size:0.85rem; }
.booking-summary-row:last-child { margin-bottom:0; }
.booking-summary-row .label { color:var(--mid); min-width:90px; }
.booking-summary-row .value { color:var(--charcoal); font-weight:500; }
@media (max-width:600px) {
.modal { border-radius:20px 20px 0 0; position:fixed; bottom:0; left:0; right:0; max-height:88vh; max-width:100%; overflow:hidden; }
.modal-overlay { align-items:flex-end; padding:0; }
.modal-header { padding:2rem 1.5rem 1.5rem; }
.modal-body { padding:1.2rem 1.2rem 1.5rem; }
.date-grid { grid-template-columns:repeat(4,1fr); gap:0.35rem; }
.time-grid { grid-template-columns:repeat(3,1fr); }
.form-row { grid-template-columns:1fr; gap:0; }
}
