:root{--color-bg:#F7F7F5;--color-bg-2:#F3F4F1;--color-mint:#E6EFED;--color-primary:#005552;--color-primary-d:#003D3B;--color-primary-l:#E6EFED;--color-secondary:#E8A0B8;--color-secondary-d:#A83E6C;--color-light:#FFFFFF;--color-text:#0F2C2A;--color-text-soft:rgba(15,44,42,0.68);--color-text-muted:rgba(15,44,42,0.68);--color-line:rgba(0,85,82,0.14);--color-surface:#F3F4F1;--color-surface-2:#E6EFED;--color-overlay:rgba(15,44,42,0.82);--font-display:'Fraunces',Georgia,serif;--font-body:'Space Grotesk',system-ui,sans-serif;--size-xs:13px;--size-sm:15px;--size-base:17px;--size-lg:20px;--size-xl:26px;--lh-body:1.65;--lh-tight:1.15;--sp-xs:8px;--sp-sm:16px;--sp-md:32px;--sp-lg:64px;--sp-xl:120px;--sp-2xl:170px;--r-sm:8px;--r-md:16px;--r-lg:28px;--r-xl:40px;--r-pill:100px;--shadow-sm:0 4px 16px rgba(15,44,42,0.06);--shadow-md:0 12px 32px rgba(15,44,42,0.09);--shadow-lg:0 24px 64px rgba(15,44,42,0.14);--ease:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.55,.055,.675,.19);--duration:0.38s}*{margin:0;padding:0;box-sizing:border-box}svg{width:24px;height:24px;display:inline-block;vertical-align:middle}html{overflow-x:hidden;scroll-behavior:smooth;background-color:var(--color-bg)}body{max-width:100vw;overflow-x:hidden;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--size-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;position:relative}body::after{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");
opacity: 0.025;
pointer-events: none;
z-index: 9998;
mix-blend-mode: multiply;
}
img { max-width: 100%; height: auto; display: block; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
picture { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; border: none; background: none; cursor: pointer; }
ul { list-style: none; }
svg { display: block; }
*:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 3px;
border-radius: 3px;
}
.skip-link {
position: absolute;
top: -100%;
left: 16px;
background: var(--color-primary);
color: var(--color-light);
padding: 10px 20px;
border-radius: var(--r-sm);
font-weight: 700;
z-index: 10000;
transition: top var(--duration) var(--ease);
}
.skip-link:focus { top: 16px; }
h1, h2, h3, h4, .font-display {
font-family: var(--font-display);
font-weight: 400;
line-height: var(--lh-tight);
letter-spacing: -0.01em;
color: var(--color-primary);
}
h1 { font-size: clamp(44px, 7vw, 88px); }
h2 { font-size: clamp(32px, 4.5vw, 58px); }
h3 { font-size: clamp(22px, 2.5vw, 30px); }
h4 { font-size: clamp(18px, 2vw, 22px); }
.display-xl {
font-size: clamp(48px, 8vw, 108px);
font-style: italic;
font-weight: 400;
line-height: .98;
letter-spacing: -0.02em;
}
.lead {
font-size: clamp(17px, 2vw, 21px);
line-height: 1.7;
color: var(--color-text-soft);
max-width: 540px;
}
p { color: var(--color-text-soft); }
.eyebrow {
display: inline-flex;
align-items: center;
gap: 10px;
font-family: var(--font-body);
font-size: var(--size-xs);
font-weight: 600;
letter-spacing: .14em;
text-transform: uppercase;
color: var(--color-secondary-d);
margin-bottom: var(--sp-sm);
}
.eyebrow::before {
content: '';
width: 28px;
height: 1.5px;
background: var(--color-secondary-d);
display: inline-block;
}
.eyebrow--center { justify-content: center; }
.eyebrow--center::before { display: none; }
.section-head { max-width: 640px; margin: 0 auto var(--sp-lg); text-align: center; }
.section-head--left { margin: 0 0 var(--sp-lg); text-align: left; }
.wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
section { padding: var(--sp-xl) 0; position: relative; }
.section--tight { padding: var(--sp-lg) 0; }
.section--mint { background: var(--color-mint); }
.section--alt { background: var(--color-bg-2); }
.section--primary {
background: var(--color-primary);
color: var(--color-light);
}
.section--primary h2, .section--primary h3, .section--primary .eyebrow { color: var(--color-light); }
.section--primary .eyebrow::before { background: var(--color-secondary); }
.section--primary p { color: rgba(255,255,255,0.72); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-lg); align-items: center; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-md); }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-md); }
.gallery-photo { border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 1/1; box-shadow: var(--shadow-sm); }
.gallery-photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--duration) var(--ease); }
.gallery-photo:hover img { transform: scale(1.05); }
.center { text-align: center; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes lineGrow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes spinSlow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.reveal { opacity: 0; transform: translateY(40px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal-left { opacity: 0; transform: translateX(-50px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal-right { opacity: 0; transform: translateX(50px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
.reveal.visible, .reveal-left.visible, .reveal-right.visible { opacity: 1; transform: translate(0); }
.delay-1 { transition-delay: 0.10s; }
.delay-2 { transition-delay: 0.20s; }
.delay-3 { transition-delay: 0.32s; }
.delay-4 { transition-delay: 0.45s; }
.delay-5 { transition-delay: 0.60s; }
.hero-animate-1 { animation: fadeUp 1.1s var(--ease) 0.15s both; }
.hero-animate-2 { animation: fadeUp 1.1s var(--ease) 0.35s both; }
.hero__title.hero-animate-2 { opacity: 1; animation: slideUpOnly 0.8s var(--ease) both; }
@keyframes slideUpOnly { from { transform: translateY(48px); } to { transform: translateY(0); } }
.hero-animate-3 { animation: fadeUp 1.1s var(--ease) 0.55s both; }
.hero-animate-4 { animation: fadeUp 1.1s var(--ease) 0.75s both; }
.hero-line-animate { animation: lineGrow 1.2s var(--ease) 0.95s both; transform-origin: left; }
.float { animation: float 5s ease-in-out infinite; }
.float-slow { animation: float 7s ease-in-out infinite; animation-delay: 1s; }
.site-header {
position: fixed;
top: 0; left: 0; right: 0;
z-index: 1000;
padding: 22px 0;
background: rgba(247,247,245,0.88);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
border-bottom: 1px solid transparent;
transition: background var(--duration) var(--ease),
padding var(--duration) var(--ease),
border-color var(--duration) var(--ease),
box-shadow var(--duration) var(--ease);
}
.site-header.scrolled {
background: rgba(247,247,245,0.96);
padding: 13px 0;
border-bottom-color: var(--color-line);
box-shadow: var(--shadow-sm);
}
.site-header .wrap {
display: flex;
align-items: center;
justify-content: space-between;
gap: var(--sp-md);
}
.logo { display: flex; align-items: center; gap: 10px; }
.logo__mark {
width: 38px; height: 38px;
color: var(--color-secondary);
flex-shrink: 0;
}
.logo__text {
font-family: var(--font-display);
font-style: italic;
font-size: 22px;
color: var(--color-primary);
line-height: 1;
}
.logo__sub {
display: block;
font-family: var(--font-body);
font-style: normal;
font-size: 10px;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--color-text-muted);
margin-top: 2px;
}
.nav__menu { display: flex; align-items: center; gap: 40px; }
.nav__link {
position: relative;
font-size: var(--size-sm);
font-weight: 500;
color: var(--color-text);
padding: 6px 0;
min-height: 44px;
display: inline-flex;
align-items: center;
}
.nav__link::after {
content: '';
position: absolute;
bottom: 2px; left: 0; right: 0;
height: 1.5px;
background: var(--color-secondary-d);
transform: scaleX(0);
transform-origin: left;
transition: transform var(--duration) var(--ease);
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after { transform: scaleX(1); }
.nav__link[aria-current="page"] { color: var(--color-primary); font-weight: 600; }
.nav__cta { display: flex; align-items: center; gap: 18px; }
.nav__burger {
display: none;
width: 48px; height: 48px;
align-items: center;
justify-content: center;
flex-direction: column;
gap: 5px;
}
.nav__burger span {
width: 24px; height: 2px;
background: var(--color-primary);
border-radius: 2px;
transition: transform var(--duration) var(--ease), opacity var(--duration) var(--ease);
}
.nav__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav__mobile {
position: fixed;
inset: 0;
background: rgba(247,247,245,0.99);
backdrop-filter: blur(20px);
z-index: 999;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 6px;
opacity: 0;
pointer-events: none;
transition: opacity var(--duration) var(--ease);
}
.nav__mobile.open { opacity: 1; pointer-events: all; }
.nav__mobile .nav__link {
font-size: clamp(26px, 6vw, 38px);
font-family: var(--font-display);
font-style: italic;
font-weight: 400;
padding: 14px 0;
}
.nav__mobile .nav__link::after { display: none; }
.nav__mobile .btn { margin-top: 24px; }
.hero {
position: relative;
padding-top: calc(var(--sp-2xl) + 20px);
padding-bottom: var(--sp-xl);
overflow: hidden;
}
.hero__blob {
position: absolute;
top: -10%; right: -8%;
width: 520px; height: 520px;
border-radius: 50%;
background: radial-gradient(circle, rgba(232,160,184,0.22) 0%, transparent 70%);
pointer-events: none;
z-index: 0;
}
.hero .wrap { position: relative; z-index: 1; }
.hero__grid {
display: grid;
grid-template-columns: 1.05fr 0.95fr;
gap: var(--sp-lg);
align-items: center;
}
.hero__title { margin-bottom: var(--sp-sm); }
.hero__title em {
font-style: italic;
color: var(--color-secondary-d);
}
.hero__subtitle { margin-bottom: var(--sp-md); }
.hero__cta-row {
display: flex;
flex-wrap: wrap;
gap: 16px;
align-items: center;
}
.hero__media { position: relative; }
.hero__media-frame {
position: relative;
border-radius: var(--r-xl);
overflow: hidden;
aspect-ratio: 4/3;
box-shadow: var(--shadow-lg);
}
.hero__media-frame img {
width: 100%; height: 100%; object-fit: cover;
}
.hero__badge {
position: absolute;
bottom: -24px; left: -24px;
background: var(--color-light);
border-radius: var(--r-lg);
box-shadow: var(--shadow-md);
padding: 20px 24px;
display: flex;
align-items: center;
gap: 14px;
max-width: 260px;
}
.hero__badge-icon {
width: 44px; height: 44px;
border-radius: 50%;
background: var(--color-primary-l);
color: var(--color-primary);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
}
.hero__badge-icon svg { width: 22px; height: 22px; }
.hero__badge-title { font-family: var(--font-display); font-size: 17px; color: var(--color-primary); line-height: 1.2; }
.hero__badge-sub { font-size: 12px; color: var(--color-text-muted); }
.page-hero {
padding-top: calc(var(--sp-2xl) + 10px);
padding-bottom: var(--sp-lg);
background: var(--color-mint);
text-align: center;
position: relative;
overflow: hidden;
}
.page-hero__blob {
position: absolute;
bottom: -20%; left: -10%;
width: 420px; height: 420px;
border-radius: 50%;
background: radial-gradient(circle, rgba(0,85,82,0.06) 0%, transparent 70%);
pointer-events: none;
}
.page-hero .wrap { position: relative; z-index: 1; }
.page-hero h1 { margin-bottom: var(--sp-sm); }
.page-hero .lead { margin: 0 auto; }
.breadcrumb {
display: flex; justify-content: center; gap: 8px;
font-size: var(--size-xs);
color: var(--color-text-muted);
margin-bottom: var(--sp-sm);
text-transform: uppercase;
letter-spacing: .08em;
}
.breadcrumb a:hover { color: var(--color-primary); }
.stats { padding: var(--sp-lg) 0; }
.stats__grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: var(--sp-md);
text-align: center;
}
.stat-item__number {
font-family: var(--font-display);
font-style: italic;
font-size: clamp(40px, 5vw, 64px);
color: var(--color-primary);
line-height: 1;
}
.stat-item__label {
font-size: var(--size-sm);
color: var(--color-text-soft);
margin-top: 8px;
}
.btn--lang {
font-family: var(--font-body);
font-size: 12px;
font-weight: 700;
letter-spacing: 0.08em;
color: var(--color-primary);
background: var(--color-primary-l);
border: 1.5px solid var(--color-line);
border-radius: var(--r-pill);
padding: 5px 16px;
min-height: 48px;
min-width: 48px;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background 0.2s, color 0.2s, border-color 0.2s;
white-space: nowrap;
flex-shrink: 0;
line-height: 1;
}
.btn--lang:hover {
background: var(--color-primary);
color: var(--color-light);
border-color: var(--color-primary);
}
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 48px;
padding: 14px 30px;
border-radius: var(--r-pill);
font-size: var(--size-sm);
font-weight: 600;
letter-spacing: .02em;
transition: all var(--duration) var(--ease);
white-space: nowrap;
}
.btn--primary { background: var(--color-primary); color: var(--color-light); }
.btn--primary:hover { background: var(--color-primary-d); transform: translateY(-2px); box-shadow: 0 16px 36px rgba(0,85,82,0.22); }
.btn--rose { background: var(--color-secondary); color: var(--color-primary-d); }
.btn--rose:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(232,160,184,0.35); }
.btn--outline { background: transparent; color: var(--color-primary); border: 1.5px solid var(--color-line); }
.btn--outline:hover { border-color: var(--color-primary); background: var(--color-primary-l); transform: translateY(-2px); }
.btn--ghost {
padding: 0; min-height: auto;
color: var(--color-primary);
font-size: var(--size-sm);
letter-spacing: .04em;
font-weight: 600;
position: relative;
}
.btn--ghost::after {
content: '';position:absolute;bottom:-3px;left:0;right:0;height:1px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform var(--duration) var(--ease)}.btn--ghost:hover::after{transform:scaleX(1)}.btn--on-primary{background:var(--color-light);color:var(--color-primary)}.btn--on-primary:hover{background:var(--color-secondary);color:var(--color-primary-d);transform:translateY(-2px)}.card{background:var(--color-light);border-radius:var(--r-lg);padding:var(--sp-md);box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}.service-card{background:var(--color-light);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease);display:flex;flex-direction:column}.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-md)}.service-card__image{aspect-ratio:4/3;overflow:hidden}.service-card__image img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s var(--ease)}.service-card:hover .service-card__image img{transform:scale(1.06)}.service-card__body{padding:var(--sp-sm) var(--sp-sm) var(--sp-md);flex:1;display:flex;flex-direction:column}.service-card__title{font-size:var(--size-lg);margin-bottom:8px}.service-card__desc{font-size:var(--size-sm);color:var(--color-text-soft);flex:1;margin-bottom:16px}.service-card__footer{display:flex;align-items:center;justify-content:space-between}.service-card__price{font-weight:700;color:var(--color-secondary-d);font-size:var(--size-base)}.values__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-md);text-align:center}.value-item__icon{width:64px;height:64px;border-radius:50%;background:var(--color-mint);color:var(--color-primary);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background var(--duration) var(--ease),transform var(--duration) var(--ease)}.value-item:hover .value-item__icon{background:var(--color-secondary);transform:scale(1.08) rotate(-4deg);color:var(--color-light)}.value-item__icon svg{width:28px;height:28px}.value-item__label{font-family:var(--font-display);font-size:var(--size-lg);color:var(--color-primary)}.about-teaser__media{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow-md)}.about-teaser__media img{width:100%;height:100%;object-fit:cover}.about-teaser__quote{font-family:var(--font-display);font-style:italic;font-size:clamp(20px,2.4vw,26px);color:var(--color-primary);line-height:1.4;margin-bottom:var(--sp-sm)}.about-teaser__signature{font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--color-secondary-d);margin-top:var(--sp-sm)}.modalities__list{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.modality-tag{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--r-pill);background:var(--color-light);border:1px solid var(--color-line);font-size:var(--size-sm);font-weight:500;color:var(--color-primary);transition:all var(--duration) var(--ease)}.modality-tag:hover{background:var(--color-primary);color:var(--color-light);border-color:var(--color-primary);transform:translateY(-3px)}.modality-tag__dot{width:6px;height:6px;border-radius:50%;background:var(--color-secondary);flex-shrink:0}.bio{display:grid;grid-template-columns:0.85fr 1.15fr;gap:var(--sp-lg);align-items:start}.bio__media{position:sticky;top:120px}.bio__media-frame{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-lg)}.bio__media-frame img{width:100%;height:100%;object-fit:cover}.bio__text p{font-size:var(--size-lg);line-height:1.75;color:var(--color-text);margin-bottom:var(--sp-sm)}.bio__text p:first-of-type::first-letter{font-family:var(--font-display);font-style:italic;font-size:72px;color:var(--color-secondary-d);float:left;line-height:0.8;margin:8px 10px 0 0}.bio__cta{margin-top:var(--sp-md)}.philosophy__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-md)}.philosophy-item{padding:var(--sp-md)}.philosophy-item__num{font-family:var(--font-display);font-style:italic;font-size:20px;color:var(--color-secondary-d);margin-bottom:12px;display:block}.session-group__title{font-family:var(--font-display);font-size:var(--size-xl);color:var(--color-primary);margin-bottom:var(--sp-sm)}.session-item{display:flex;align-items:baseline;gap:12px;padding:26px 0;border-bottom:1px solid var(--color-line);transition:padding-left var(--duration) var(--ease)}.session-item:hover{padding-left:10px}.session-item__info{flex:1}.session-item__name{font-family:var(--font-display);font-size:clamp(19px,2.2vw,23px);color:var(--color-primary);margin-bottom:6px;display:block}.session-item__desc{display:block;font-size:var(--size-sm);color:var(--color-text-soft);max-width:560px}.session-item__duration{display:inline-flex;align-items:center;gap:6px;font-size:var(--size-xs);color:var(--color-secondary-d);margin-top:8px;font-weight:600;letter-spacing:.03em}.session-item__dots{flex:1;border-bottom:1px dotted rgba(0,85,82,0.28);min-width:20px;align-self:flex-end;margin-bottom:8px}.session-item__price{font-size:var(--size-lg);color:var(--color-secondary-d);font-weight:700;letter-spacing:.02em;white-space:nowrap;font-family:var(--font-display)}.session-note{display:flex;align-items:flex-start;gap:16px;background:var(--color-mint);border-radius:var(--r-lg);padding:var(--sp-md);margin-top:var(--sp-lg)}.session-note__icon{width:40px;height:40px;color:var(--color-primary);flex-shrink:0}.session-note p{color:var(--color-primary-d);margin:0}.session-note strong{color:var(--color-primary)}.faq-item{border-bottom:1px solid var(--color-line)}.faq-question{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 0;cursor:pointer;list-style:none;font-family:var(--font-display);font-size:clamp(18px,2vw,22px);color:var(--color-primary);transition:color var(--duration);min-height:48px}.faq-question:hover{color:var(--color-secondary-d)}.faq-question::-webkit-details-marker{display:none}.faq-icon{font-size:24px;color:var(--color-secondary-d);transition:rotate var(--duration) var(--ease);flex-shrink:0}details[open] .faq-icon{rotate:45deg}.faq-answer{padding:0 0 24px 0;color:var(--color-text-soft);max-width:640px}.testimonial-card{background:var(--color-light);border-radius:var(--r-lg);padding:var(--sp-md);box-shadow:var(--shadow-sm);height:100%;display:flex;flex-direction:column;transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.testimonial-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}.testimonial-card__quote-mark{font-family:var(--font-display);font-style:italic;font-size:56px;color:var(--color-secondary);line-height:1;margin-bottom:4px}.testimonial-card__text{color:var(--color-text-soft);font-size:var(--size-sm);flex:1;margin-bottom:var(--sp-sm)}.testimonial-card__author{display:flex;align-items:center;gap:12px}.testimonial-card__avatar{width:42px;height:42px;border-radius:50%;background:var(--color-primary-l);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-style:italic;font-size:16px;flex-shrink:0}.testimonial-card__name{font-weight:600;font-size:var(--size-sm);color:var(--color-primary)}.testimonial-card__place{font-size:12px;color:var(--color-text-muted)}.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:var(--sp-lg);align-items:start}.contact-card{display:flex;align-items:center;gap:16px;background:var(--color-light);border-radius:var(--r-lg);padding:20px 24px;box-shadow:var(--shadow-sm);margin-bottom:16px;transition:transform var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.contact-card:hover{transform:translateX(6px);box-shadow:var(--shadow-md)}.contact-card__icon{width:48px;height:48px;border-radius:50%;background:var(--color-mint);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.contact-card__icon svg{width:22px;height:22px}.contact-card__label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:2px}.contact-card__value{font-family:var(--font-display);font-size:19px;color:var(--color-primary)}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:var(--size-sm);font-weight:600;color:var(--color-primary);margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{width:100%;min-height:48px;font-size:16px;font-family:var(--font-body);padding:12px 18px;border-radius:var(--r-md);border:1.5px solid var(--color-line);background:var(--color-light);color:var(--color-text);transition:border-color var(--duration) var(--ease)}.form-group textarea{min-height:130px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--color-primary);outline:none}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form{background:var(--color-light);border-radius:var(--r-lg);padding:var(--sp-md);box-shadow:var(--shadow-sm)}#form-success{display:none;background:var(--color-primary-l);color:var(--color-primary-d);border-radius:var(--r-md);padding:16px 20px;margin-top:16px;font-size:var(--size-sm);font-weight:600}.site-footer{background:var(--color-primary);color:rgba(255,255,255,0.72);padding:var(--sp-lg) 0 var(--sp-md)}.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--sp-lg);padding-bottom:var(--sp-md);border-bottom:1px solid rgba(255,255,255,0.14);margin-bottom:var(--sp-sm)}.footer__logo{font-family:var(--font-display);font-style:italic;font-size:26px;color:var(--color-light);margin-bottom:12px}.footer__desc{font-size:var(--size-sm);max-width:300px;color:rgba(255,255,255,0.72)}.footer__heading{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:.1em;color:#EDB0C4;margin-bottom:16px}.footer__links li{margin-bottom:10px}.footer__links a{font-size:var(--size-sm);transition:color var(--duration);min-height:32px;display:inline-flex;align-items:center}.footer__links a:hover{color:var(--color-secondary)}.footer__bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;color:rgba(255,255,255,0.5)}.footer__bottom a:hover{color:var(--color-secondary)}.mt-0{margin-top:0}.mb-0{margin-bottom:0}[data-count]{font-variant-numeric:tabular-nums}@media (max-width:1024px){.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}.values__grid{grid-template-columns:repeat(2,1fr)}.stats__grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-sm)}.philosophy__grid{grid-template-columns:1fr}.hero__grid{grid-template-columns:1fr}.hero__media{order:-1;max-width:440px;margin:0 auto}.bio{grid-template-columns:1fr}.bio__media{position:static;max-width:420px;margin:0 auto var(--sp-md)}.contact-grid{grid-template-columns:1fr}.nav__menu{display:none}.nav__cta .btn{display:none}.nav__burger{display:flex}}@media (max-width:768px){.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:1fr}.values__grid{grid-template-columns:repeat(2,1fr)}.stats__grid{grid-template-columns:1fr;gap:var(--sp-md)}section{padding:var(--sp-lg) 0}.wrap{padding:0 20px}.hero{padding-top:110px;padding-bottom:var(--sp-lg)}.hero__cta-row{flex-direction:column;align-items:stretch}.hero__cta-row .btn{width:100%}.hero__badge{position:relative;z-index:2;margin-top:-40px;margin-left:16px;max-width:none;width:calc(100% - 32px)}.cart-fab{width:50px;height:50px;right:14px;bottom:14px}.cart-fab svg{width:22px;height:22px}.site-header:not(.scrolled)~.cart-fab{opacity:0;pointer-events:none;transform:scale(0.85)}.cart-fab{transition:transform var(--duration) var(--ease),opacity var(--duration) var(--ease),background var(--duration) var(--ease)}.footer__grid{grid-template-columns:1fr;gap:var(--sp-md)}.footer__bottom{flex-direction:column;align-items:flex-start}.session-item{flex-wrap:wrap}.session-item__dots{display:none}.session-item__price{margin-left:auto}.form-row{grid-template-columns:1fr}.reveal-left,.reveal-right{transform:translateY(30px)}}@media (max-width:480px){.btn{width:100%}.hero__cta-row .btn{width:100%}.logo__sub{display:none}.cart-drawer{max-width:100%}}.session-item__footer{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.btn--cart{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 18px;border-radius:var(--r-pill);background:var(--color-mint);color:var(--color-primary);font-size:var(--size-xs);font-weight:600;letter-spacing:.03em;transition:all var(--duration) var(--ease);white-space:nowrap}.btn--cart:hover{background:var(--color-secondary);color:var(--color-light);transform:translateY(-2px)}.btn--cart svg{width:16px;height:16px}.cart-fab{position:fixed;right:24px;bottom:24px;z-index:1400;width:60px;height:60px;border-radius:50%;background:var(--color-primary);color:var(--color-light);box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:center;transition:transform var(--duration) var(--ease),background var(--duration) var(--ease)}.cart-fab:hover{background:var(--color-primary-d);transform:translateY(-3px) scale(1.05)}.cart-fab svg{width:26px;height:26px}.cart-fab__badge{position:absolute;top:-4px;right:-4px;min-width:24px;height:24px;border-radius:var(--r-pill);background:var(--color-secondary);color:var(--color-primary-d);font-size:12px;font-weight:700;display:none;align-items:center;justify-content:center;padding:0 6px;border:2px solid var(--color-bg)}.cart-drawer__overlay{position:fixed;inset:0;background:rgba(15,44,42,0.45);z-index:1500;opacity:0;pointer-events:none;transition:opacity var(--duration) var(--ease)}.cart-drawer__overlay.open{opacity:1;pointer-events:all}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:420px;background:var(--color-bg);z-index:1600;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform var(--duration) var(--ease)}.cart-drawer.open{transform:translateX(0)}.cart-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--color-line)}.cart-drawer__title{font-family:var(--font-display);font-size:22px;color:var(--color-primary)}.cart-drawer__close{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-primary);transition:background var(--duration) var(--ease)}.cart-drawer__close:hover{background:var(--color-mint)}.cart-drawer__close svg{width:20px;height:20px}.cart-drawer__items{flex:1;overflow-y:auto;padding:8px 24px}.cart-drawer__empty{padding:48px 24px;text-align:center;color:var(--color-text-muted);font-size:var(--size-sm)}.cart-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:18px 0;border-bottom:1px solid var(--color-line)}.cart-item__info{display:flex;flex-direction:column;gap:4px;min-width:0}.cart-item__name{font-size:var(--size-sm);font-weight:600;color:var(--color-primary)}.cart-item__price{font-size:12px;color:var(--color-text-muted)}.cart-item__qty{display:flex;align-items:center;gap:8px}.cart-item__qty-btn{width:28px;height:28px;border-radius:50%;background:var(--color-mint);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;transition:background var(--duration) var(--ease)}.cart-item__qty-btn:hover{background:var(--color-secondary);color:var(--color-light)}.cart-item__qty-value{min-width:16px;text-align:center;font-weight:600;font-size:var(--size-sm)}.cart-item__remove{color:var(--color-text-muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color var(--duration) var(--ease)}.cart-item__remove:hover{color:var(--color-secondary-d)}.cart-item__remove svg{width:18px;height:18px}.cart-drawer__footer{display:none;padding:20px 24px 28px;border-top:1px solid var(--color-line);background:var(--color-mint)}.cart-drawer__subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.cart-drawer__subtotal-label{font-size:var(--size-sm);color:var(--color-text-soft)}.cart-drawer__subtotal-value{font-family:var(--font-display);font-size:26px;color:var(--color-primary)}.cart-drawer__paypal-error{font-size:var(--size-xs);color:var(--color-secondary-d);text-align:center}#cart-paypal-status{display:none;margin-top:14px;font-size:var(--size-xs);color:var(--color-primary-d);background:var(--color-light);border-radius:var(--r-sm);padding:12px 14px}.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1300;background:rgba(247,247,245,0.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--color-line);padding:6px 0 max(6px,env(safe-area-inset-bottom));justify-content:space-around;align-items:center}html.is-pwa .tabbar{display:flex}html.is-pwa .cart-fab{display:none}html.is-pwa .nav__burger{display:none}html.is-pwa .nav__cta .btn{display:none}html.is-pwa main{padding-bottom:68px}.tabbar__link{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:56px;min-height:48px;font-size:10px;font-weight:600;letter-spacing:.01em;color:var(--color-text-muted);transition:color var(--duration) var(--ease)}.tabbar__link svg{width:22px;height:22px}.tabbar__link[aria-current="page"]{color:var(--color-primary)}.tabbar__badge{position:absolute;top:-2px;right:6px;min-width:16px;height:16px;border-radius:var(--r-pill);background:var(--color-secondary-d);color:var(--color-light);font-size:10px;font-weight:700;display:none;align-items:center;justify-content:center;padding:0 4px}.install-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1700;display:flex;align-items:center;gap:14px;background:var(--color-primary);color:var(--color-light);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow-lg);transform:translateY(160%);transition:transform var(--duration) var(--ease)}.install-banner.visible{transform:translateY(0)}.install-banner__icon{width:44px;height:44px;border-radius:var(--r-md);flex-shrink:0;overflow:hidden}.install-banner__icon img{width:100%;height:100%;object-fit:cover}.install-banner__text{flex:1;font-size:var(--size-xs);line-height:1.4}.install-banner__text strong{display:block;font-family:var(--font-display);font-size:15px;font-style:italic}.install-banner__actions{display:flex;flex-direction:column;gap:6px}.install-banner__install{background:var(--color-light);color:var(--color-primary);border-radius:var(--r-pill);padding:8px 20px;font-size:12px;font-weight:700;min-height:48px;display:inline-flex;align-items:center;justify-content:center}.install-banner__dismiss{color:rgba(255,255,255,0.65);font-size:11px;min-height:48px;padding:8px 12px;display:inline-flex;align-items:center;justify-content:center}.ios-install-hint{position:fixed;left:16px;right:16px;bottom:16px;z-index:1700;background:var(--color-light);border:1px solid var(--color-line);border-radius:var(--r-lg);padding:18px 20px;box-shadow:var(--shadow-lg);transform:translateY(160%);transition:transform var(--duration) var(--ease);display:flex;align-items:flex-start;gap:12px}.ios-install-hint.visible{transform:translateY(0)}.ios-install-hint__icon{width:24px;height:24px;color:var(--color-primary);flex-shrink:0;margin-top:2px}.ios-install-hint__text{flex:1;font-size:var(--size-xs);color:var(--color-text-soft);line-height:1.5}.ios-install-hint__text strong{color:var(--color-primary)}.ios-install-hint__close{color:var(--color-text-muted);width:48px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center}@media (max-width:480px){.install-banner,.ios-install-hint{left:10px;right:10px;bottom:10px}}@font-face{font-family:"GC Epic Pro";src:url("fonts/gcepicpro.woff2?v=faf8ced5") format("woff2");font-weight:700 800;font-style:normal;font-display:swap}@font-face{font-family:"Space Mono";src:url("fonts/space-mono-latin.woff2?v=fb4a81a2") format("woff2");font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Fraunces";src:url("fonts/fraunces-normal-300.woff2?v=1abdc506") format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:"Fraunces";src:url("fonts/fraunces-normal-400.woff2?v=9e494fb4") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Fraunces";src:url("fonts/fraunces-italic-300.woff2?v=d6d7a480") format("woff2");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:"Fraunces";src:url("fonts/fraunces-italic-400.woff2?v=f5134999") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("fonts/spacegrotesk-400.woff2?v=65fd17fc") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("fonts/spacegrotesk-500.woff2?v=1b1a8131") format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("fonts/spacegrotesk-600.woff2?v=685bbbf6") format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:"Space Grotesk";src:url("fonts/spacegrotesk-700.woff2?v=35f8aec5") format("woff2");font-weight:700;font-style:normal;font-display:swap}footer a.dxf,a.dxf,.dxf{--dxf-rest:rgba(255,255,255,0.66);--dxf-hover:#a79cff;display:inline-flex;align-items:center;gap:8px;min-height:44px;flex:none;white-space:nowrap;color:var(--dxf-rest);text-decoration:none;transition:color .25s ease}.dxf__by{font-family:"Space Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:400;line-height:1;letter-spacing:0;text-transform:none}.dxf__mark{font-family:"GC Epic Pro","Space Grotesk",system-ui,sans-serif;font-size:22px;font-weight:700;line-height:1;letter-spacing:.05em}footer a.dxf:hover,a.dxf:hover,a.dxf:focus-visible{color:var(--dxf-hover)}a.dxf:focus-visible{outline:2px solid var(--dxf-hover);outline-offset:4px;border-radius:3px}@media (prefers-reduced-motion:reduce){a.dxf{transition:none}}.footer__bottom{padding-bottom:96px}img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.service-card--clickable{cursor:pointer}.nav__mobile{padding:0 32px}.nav__mobile .btn{width:auto;max-width:280px}.phone-field{display:flex;gap:8px}.phone-field select{width:auto;flex:0 0 92px;padding-left:10px;padding-right:4px}.phone-field input{flex:1;width:auto;min-width:0}
img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;}
