@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-display:swap;font-weight:400;src:url('./fonts/zen-kaku-gothic-new-japanese-400-normal.woff2') format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-display:swap;font-weight:500;src:url('./fonts/zen-kaku-gothic-new-japanese-500-normal.woff2') format('woff2')}
@font-face{font-family:'Zen Kaku Gothic New';font-style:normal;font-display:swap;font-weight:700;src:url('./fonts/zen-kaku-gothic-new-japanese-700-normal.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-display:swap;font-weight:400;src:url('./fonts/noto-sans-jp-japanese-400-normal.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-display:swap;font-weight:500;src:url('./fonts/noto-sans-jp-japanese-500-normal.woff2') format('woff2')}
@font-face{font-family:'Noto Sans JP';font-style:normal;font-display:swap;font-weight:600;src:url('./fonts/noto-sans-jp-japanese-600-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:400;src:url('./fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:400;src:url('./fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:500;src:url('./fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:500;src:url('./fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-display:swap;font-weight:400;src:url('./fonts/dm-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-display:swap;font-weight:500;src:url('./fonts/dm-sans-latin-500-normal.woff2') format('woff2')}

/* Ear Care Association — white, warm sand, pale green. Scoped for Lightning. */
.eca-lp {
  --eca-paper: #f7f7f2;
  --eca-white: #fff;
  --eca-sand: #efe9df;
  --eca-mist: #dce9e1;
  --eca-sage: #356b5b;
  --eca-aotake: #2f8276;
  --eca-aotake-hover: #246a62;
  --eca-mint: #79c8a7;
  --eca-mint-hover: #68b995;
  --eca-button-ink: #173e35;
  --eca-ink: #28332f;
  --eca-muted: #626d67;
  --eca-line: #d7ddd5;
  --eca-logo: #aaa49a;
  --eca-display: 'Zen Kaku Gothic New', 'Yu Gothic', sans-serif;
  --eca-body: 'Noto Sans JP', 'Yu Gothic', sans-serif;
  --eca-latin: 'Cormorant Garamond', Georgia, serif;
  --eca-digits: 'DM Sans', sans-serif;
  --eca-ease: cubic-bezier(.22,.7,.25,1);
  background: var(--eca-paper); color: var(--eca-ink);
  font: 400 15px/1.95 var(--eca-body); letter-spacing: .035em;
  -webkit-font-smoothing: antialiased; line-break: strict; word-break: normal;
}
#root { overflow-x: clip; }
.eca-lp *, .eca-lp *::before, .eca-lp *::after { box-sizing: border-box; }
.eca-lp :where(h1,h2,h3,h4,h5,h6) { line-height: 1.5; text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; color: inherit; font-weight: 500; font-family: var(--eca-display); margin: 0; }
.eca-lp :where(p,li,dd,dt,blockquote,figcaption) { line-height: 1.95; text-wrap: pretty; }
.eca-lp p,.eca-lp ul,.eca-lp ol,.eca-lp figure { margin: 0; }
.eca-lp a { color: inherit; text-decoration: none; }
.eca-lp button { border: 0; border-radius: 0; font: inherit; letter-spacing: inherit; color: inherit; cursor: pointer; background: none; }
.eca-lp img { display: block; max-width: 100%; height: auto; }
.eca-lp svg { display: inline-block; flex-shrink: 0; }
.eca-lp [hidden] { display: none !important; }
.eca-lp :focus-visible { outline: 2px solid var(--eca-sage); outline-offset: 5px; }
.eca-lp ::selection { background: var(--eca-mist); color: var(--eca-ink); }
.eca-lp section[id], .eca-lp article[id] { scroll-margin-top: 110px; }
.eca-container { width: min(1180px, calc(100% - 112px)); margin-inline: auto; }
.eca-section { padding: 116px 0; }
.eca-digit { font-family: var(--eca-digits); font-weight: 400; font-variant-numeric: tabular-nums; letter-spacing: -.025em; }
.eca-heading { font-size: clamp(28px,3vw,38px); font-weight: 400 !important; letter-spacing: .09em; line-height: 1.65 !important; }
.eca-heading > span { display: block; }
.eca-section-label { display:flex; align-items:center; gap:16px; font-family:var(--eca-latin); font-size:24px; color:var(--eca-sage); letter-spacing:.025em; margin-bottom:25px !important; }
.eca-index { font:12px/1.6 var(--eca-digits); color:var(--eca-muted); border-right:1px solid #a7b9ae; padding-right:16px; }
.eca-small-label { color:var(--eca-sage); font-size:12px; letter-spacing:.12em; }
.eca-section-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:45px; margin-bottom:48px; }
.eca-intro-note { color:var(--eca-muted); padding-bottom:9px; font-size:14px; line-height:2.1 !important; }
.eca-picture { display:block; position:relative; overflow:hidden; }
.eca-picture img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--eca-ease); }
.eca-photo-caption { margin-top:15px !important; color:var(--eca-muted); font-size:11px; letter-spacing:.08em; }
.eca-button { display:inline-flex; justify-content:space-between; align-items:center; gap:24px; min-height:62px; padding:17px 26px; background:var(--eca-mint) !important; color:var(--eca-button-ink) !important; border:1px solid var(--eca-mint) !important; border-radius:2px !important; font-size:14px !important; font-weight:400; transition:background .25s,transform .25s,border-color .25s; }
.eca-button:hover { background:var(--eca-mint-hover) !important; border-color:var(--eca-mint-hover) !important; transform:translateY(-2px); }
.eca-button-outline { background:transparent !important; color:var(--eca-sage) !important; border-color:#8ba89a !important; }
.eca-button-outline:hover { background:#e7eee8 !important; }
.eca-button svg,.eca-text-link svg { transition:transform .3s; }
.eca-button:hover svg,.eca-text-link:hover svg { transform:translateX(4px); }
.eca-text-link { display:inline-flex; gap:20px; align-items:center; min-height:44px; color:var(--eca-sage) !important; font-size:13px; border-bottom:1px solid #8ca797; padding:4px 0; }
.eca-skip { position:absolute; z-index:100; top:10px; left:20px; padding:12px 22px; background:#fff; transform:translateY(-200%); }
.eca-skip:focus { transform:none; }
.eca-header { height:94px; display:flex; align-items:center; padding:0 48px; gap:32px; background:rgba(247,247,242,.96); border-bottom:1px solid var(--eca-line); position:sticky; top:0; z-index:40; transition:box-shadow .3s; }
.eca-header.is-scrolled { box-shadow:0 5px 30px #28332f08; }
.eca-brand { display:flex; gap:14px; align-items:center; flex-shrink:0; min-height:60px; }
.eca-brand img { width:39px; height:55px; object-fit:contain; mix-blend-mode:multiply; }
.eca-brand small { display:block; font-size:9px; letter-spacing:.13em; line-height:1.5; margin-bottom:3px; }
.eca-brand strong { font-family:var(--eca-display); font-size:20px; letter-spacing:.09em; font-weight:500; }
.eca-desktop-nav { display:flex; align-items:center; gap:26px; margin-left:auto; }
.eca-desktop-nav a { display:flex; align-items:center; font-size:11px; min-height:44px; position:relative; }
.eca-desktop-nav a::after { content:''; position:absolute; left:0; right:0; bottom:4px; height:1px; background:var(--eca-sage); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.eca-desktop-nav a:hover::after,.eca-desktop-nav a.is-current::after { transform:scaleX(1); }
.eca-header-cta { min-height:44px; padding:9px 0 9px 24px; border-left:1px solid var(--eca-line); color:var(--eca-sage) !important; font-size:12px; display:flex; align-items:center; gap:16px; white-space:nowrap; }
.eca-menu-toggle { display:none; width:48px; height:48px; margin-left:auto; }
.eca-menu-toggle span { display:block; width:22px; height:1px; background:var(--eca-ink); margin:7px auto; transition:transform .25s; }
.eca-menu-toggle[aria-expanded=true] span:first-child { transform:translateY(4px) rotate(45deg); }
.eca-menu-toggle[aria-expanded=true] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.eca-mobile-menu { position:fixed; top:78px; left:0; right:0; z-index:39; padding:22px 28px 35px; background:var(--eca-paper); box-shadow:0 20px 30px #28332f15; }
.eca-mobile-menu a { display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--eca-line); font-size:14px; }
.eca-hero { display:grid; grid-template-columns:1fr 1fr; min-height:740px; height:min(830px, calc(100svh - 80px)); position:relative; }
.eca-hero-copy { padding:98px 40px 125px max(56px,calc((100vw - 1180px)/2)); position:relative; z-index:2; }
.eca-eyebrow { font-size:11px; color:var(--eca-sage); letter-spacing:.12em; margin-bottom:38px !important; }
.eca-hero h1 { font-size:clamp(32px,3.05vw,46px); line-height:1.65; font-weight:400; letter-spacing:.055em; }
.eca-title-line { display:block; white-space:nowrap; animation:eca-title-in 1.2s var(--eca-ease) both; animation-delay:calc(.1s + var(--i)*.14s); }
.eca-hero-description { margin-top:29px; font-size:14px; line-height:2.05; }
.eca-hero-description p { line-height:2.05; }
.eca-hero-actions { margin-top:36px; display:flex; flex-wrap:wrap; align-items:center; column-gap:24px; row-gap:14px; }
.eca-hero-actions .eca-button { min-width:270px; }
.eca-hero-meta { display:flex; gap:0; font-size:10px; color:var(--eca-muted); margin-top:27px; }
.eca-hero-meta > span { padding:0 13px; border-right:1px solid var(--eca-line); }
.eca-hero-meta > span:first-child { padding-left:0; }
.eca-hero-meta > span:last-child { border-right:0; }
.eca-hero-english { position:absolute; left:calc(100% - 155px); bottom:30px; z-index:4; font:italic 43px/1.15 var(--eca-latin) !important; letter-spacing:-.02em; color:var(--eca-sage); white-space:nowrap; pointer-events:none; }
.eca-hero-visual { position:relative; padding:27px 32px 34px 0; min-width:0; }
.eca-hero-frames { position:absolute; inset:27px 32px 34px 0; border-radius:140px 0 0 0; overflow:hidden; background:var(--eca-sand); }
.eca-hero-frames::after { content:''; position:absolute; inset:0; border:1px solid #fff4; border-radius:inherit; margin:12px; pointer-events:none; }
.eca-hero-frame { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; }
.eca-hero-frame.is-active { opacity:1; }
.eca-hero-frame .eca-picture { width:100%; height:100%; }
.eca-hero-frame img { object-position:center 34%; }
.eca-hero-frame:first-child img { animation:eca-slow-settle 2.4s var(--eca-ease) both; }
.eca-hero-image-label { position:absolute; top:70px; right:63px; display:flex; flex-direction:column; gap:6px; color:#28332f; font:9px/1.8 var(--eca-digits); letter-spacing:.16em; text-align:right; }
.eca-hero-image-label span:last-child { font-size:7px; letter-spacing:.2em; }
.eca-hero-caption { position:absolute; left:32px; right:62px; bottom:70px; background:rgba(252,251,246,.95); padding:20px 22px 12px; }
.eca-caption-top { display:flex; gap:19px; align-items:center; font-size:11px; line-height:1.8; }
.eca-caption-top .eca-digit { color:var(--eca-sage); font-size:28px; line-height:1.4; }
.eca-hero-tabs { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #d2d7ce; margin-top:12px; padding-top:4px; }
.eca-hero-tabs button { position:relative; min-height:44px; font-size:10px; color:var(--eca-muted); }
.eca-hero-tabs button[aria-pressed=true] { color:var(--eca-sage); }
.eca-hero-tabs button[aria-pressed=true]::after { content:''; height:1px; background:var(--eca-sage); position:absolute; bottom:3px; left:18%; right:18%; animation:eca-line-in .45s ease both; }
.eca-scroll-cue { position:absolute; left:56px; bottom:36px; min-height:44px; display:flex; align-items:center; gap:25px; font:8px/1.5 var(--eca-digits); letter-spacing:.18em; }
.eca-scroll-cue i { display:block; width:65px; height:1px; background:#c1cdc2; overflow:hidden; }
.eca-scroll-cue i::after { content:''; display:block; width:100%; height:1px; background:var(--eca-sage); animation:eca-scroll-line 3s ease-in-out infinite; }
.eca-enter { animation:eca-enter 1.2s var(--eca-ease) .2s both; }
.eca-values-strip { display:flex; align-items:center; justify-content:center; gap:34px; padding:26px 56px; border-block:1px solid var(--eca-line); font-size:13px; letter-spacing:.15em; }
.eca-values-strip i { width:22px; height:1px; background:#a6b6a9; }
.eca-values-strip .eca-strip-en { font:italic 23px/1.7 var(--eca-latin); letter-spacing:.01em; margin-left:auto; color:var(--eca-muted); }
.eca-about { background:var(--eca-white); }
.eca-about-grid { display:grid; grid-template-columns: .95fr 1.05fr; gap:110px; align-items:center; }
.eca-about-visual { position:relative; }
.eca-about-visual > .eca-picture { height:540px; border-radius:2px 2px 100px 2px; }
.eca-about-visual img { object-position:50% 38%; }
.eca-small-emblem { position:absolute; right:-45px; bottom:22px; width:152px; height:170px; border-radius:50% 50% 3px 3px; background:var(--eca-paper); border:1px solid var(--eca-line); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; }
.eca-ear-line { width:63px; height:83px; stroke:var(--eca-sage); stroke-width:1.1; }
.eca-small-emblem span { font:italic 20px/1.15 var(--eca-latin); text-align:center; color:var(--eca-sage); }
.eca-about-copy .eca-heading { margin-bottom:28px; }
.eca-about-copy > p:not(.eca-section-label) { font-size:14px; line-height:2.2; margin-top:21px; }
.eca-about-copy .eca-about-note { padding-top:20px; color:var(--eca-sage); letter-spacing:.1em; }
.eca-concerns { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin-top:90px; }
.eca-concern { padding-top:23px; border-top:1px solid #aabfb2; }
.eca-concern h3 { font-size:17px; line-height:1.9; margin:12px 0 11px; }
.eca-concern > p:last-child { font-size:13px; color:var(--eca-muted); }
.eca-technique { background:var(--eca-paper); }
.eca-technique-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.eca-technique-card .eca-picture { height:325px; margin-bottom:27px; }
.eca-technique-card:first-child .eca-picture { border-top-left-radius:70px; }
.eca-technique-card:nth-child(2) .eca-picture,.eca-technique-card:nth-child(3) .eca-picture { height:325px; margin-top:0; }
.eca-technique-card h3 { font-size:19px; margin:12px 0 14px; }
.eca-technique-card > p:not(.eca-small-label):not(.eca-card-detail) { color:var(--eca-muted); font-size:13px; }
.eca-card-detail { border-top:1px solid var(--eca-line); padding-top:17px; margin-top:23px !important; font-size:10px; color:var(--eca-sage); }
.eca-service-note { font-size:10px; color:var(--eca-muted); border-left:2px solid #c0d0c2; padding-left:15px; margin-top:43px !important; max-width:920px; }
.eca-courses { background:#fff; }
.eca-featured-courses { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.eca-course-featured { border:1px solid var(--eca-line); background:var(--eca-paper); }
.eca-course-featured.eca-sage { background:#eef3ed; }
.eca-course-photo { position:relative; height:290px; overflow:hidden; }
.eca-course-photo .eca-picture { height:100%; }
.eca-course-photo img { object-position:50% 37%; }
.eca-course-professional-picture img { object-position:50% 44%; }
.eca-course-category { position:absolute; bottom:18px; left:29px; background:var(--eca-paper); padding:1px 20px; color:var(--eca-sage); font:italic 28px/1.7 var(--eca-latin); }
.eca-course-content { padding:30px 34px 21px; }
.eca-course-content h3 { font-size:14px; line-height:1.8; margin:15px 0 19px; }
.eca-course-content h3 > span { font-size:32px; letter-spacing:.13em; }
.eca-course-content > p:not(.eca-small-label) { font-size:13px; color:var(--eca-muted); min-height:78px; }
.eca-course-metrics { display:grid; grid-template-columns:1fr 1.4fr; margin-top:27px; gap:20px; }
.eca-course-metrics > div { display:flex; flex-direction:column; gap:5px; }
.eca-course-metrics > div + div { border-left:1px solid var(--eca-line); padding-left:28px; }
.eca-metric-label { font-size:10px; color:var(--eca-muted); }
.eca-course-metrics strong { font-size:26px; }
.eca-course-metrics .eca-course-price { font-size:29px; line-height:1.5; }
.eca-course-bottom { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--eca-line); margin-top:24px; padding-top:12px; gap:10px; }
.eca-course-bottom > span { font-size:11px; color:var(--eca-muted); }
.eca-course-progression { margin-top:22px; padding:16px 18px; border-left:2px solid var(--eca-sage); background:rgba(255,255,255,.58); }
.eca-course-progression .eca-progression-label { font-size:12px; font-weight:500; color:var(--eca-sage); }
.eca-progression-metrics { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 20px; margin-top:6px !important; }
.eca-progression-metrics > span { white-space:nowrap; font-size:12px; }
.eca-progression-metrics > span:first-child strong { font-size:25px; font-weight:500; line-height:1.5; }
.eca-progression-metrics small { font-size:10px; }
.eca-progression-metrics > span:last-child strong { font-size:18px; font-weight:500; }
.eca-course-progression .eca-progression-explanation { margin-top:8px; font-size:12px; line-height:1.9; color:var(--eca-muted); }
.eca-round-link { display:flex; align-items:center; gap:18px; min-height:44px; color:var(--eca-sage) !important; font-size:12px !important; }
.eca-round-link svg { width:37px; height:37px; padding:9px; border:1px solid #b2c2b4; border-radius:50%; transition:background .25s,transform .25s; }
.eca-round-link:hover svg { background:var(--eca-mist); transform:translateX(3px); }
.eca-more-courses { margin-top:42px; border-top:1px solid var(--eca-line); }
.eca-course-row { display:grid; grid-template-columns:1.1fr 1fr .65fr 48px; align-items:center; gap:29px; padding:29px 0; border-bottom:1px solid var(--eca-line); }
.eca-course-row h3 { font-size:16px; line-height:1.8; margin-top:8px; }
.eca-course-row > p { color:var(--eca-muted); font-size:12px; }
.eca-row-metric { display:flex; flex-direction:column; gap:4px; }
.eca-row-metric > span:first-child { font-size:11px; }
.eca-row-metric strong { font-size:20px; }
.eca-row-price { font-size:23px; }
.eca-row-price small { font:9px var(--eca-body); margin-left:7px; }
.eca-icon-button { width:48px; height:48px; display:flex; justify-content:center; align-items:center; border:1px solid #afc0b3 !important; border-radius:50% !important; transition:background .25s; }
.eca-icon-button:hover { background:var(--eca-mist); }
.eca-small-note { margin-top:22px !important; font-size:10px; color:var(--eca-muted); }
.eca-guide-section { position:relative; background:var(--eca-mist); padding:80px 0; }
.eca-guide-section::before { content:''; position:absolute; inset:0; opacity:.28; pointer-events:none; background-image:repeating-radial-gradient(circle at 3% 100%,transparent 0,transparent 69px,#b6cdbb 70px,transparent 71px); }
.eca-guide-grid { position:relative; display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; }
.eca-guide-heading .eca-heading { margin:22px 0 16px; font-size:30px; }
.eca-guide-heading > p:not(.eca-small-label) { font-size:13px; color:#4e6657; }
.eca-guide-heading .eca-ear-line { position:absolute; bottom:0; left:285px; width:97px; height:125px; opacity:.38; }
.eca-guide-panel { background:rgba(250,251,245,.86); padding:32px 34px 17px; border:1px solid #c0d1c2; box-shadow:0 14px 40px -25px #345a4140; }
.eca-goal-buttons { display:flex; flex-direction:column; }
.eca-goal-button { text-align:left; border-bottom:1px solid #d6ded2 !important; display:flex; align-items:center; gap:13px; padding:12px 8px !important; font-size:13px !important; min-height:49px; transition:color .25s,background .25s; }
.eca-goal-button:hover { background:#dce9e147; }
.eca-goal-button[aria-pressed=true] { color:var(--eca-sage); }
.eca-choice-dot { width:14px; height:14px; border:1px solid #9faea1; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.eca-goal-button[aria-pressed=true] .eca-choice-dot { border-color:var(--eca-sage); }
.eca-goal-button[aria-pressed=true] .eca-choice-dot::after { content:''; width:6px; height:6px; border-radius:50%; background:var(--eca-sage); }
.eca-guide-result { margin-top:26px; min-height:196px; }
.eca-guide-result.is-changing { animation:eca-result-in .45s var(--eca-ease) both; }
.eca-guide-result h3 { font-size:18px; margin:9px 0 12px; }
.eca-guide-result > p:not(.eca-small-label) { font-size:12px; color:var(--eca-muted); }
.eca-guide-result .eca-text-link { margin-top:14px; }
.eca-guide-save-note { font-size:9px; color:var(--eca-muted); margin-top:14px !important; }
.eca-instructors { background:#f2f5f0; border-block:1px solid var(--eca-line); }
.eca-instructors-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:92px; align-items:center; }
.eca-instructors-copy > p:not(.eca-section-label) { max-width:610px; margin-top:28px; color:var(--eca-muted); font-size:14px; line-height:2.15; }
.eca-instructor-regions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.eca-instructor-area { min-height:220px; padding:28px 30px 25px; display:flex; flex-direction:column; justify-content:space-between; background:rgba(255,255,255,.7); border:1px solid #d0dbd2; border-top:2px solid var(--eca-aotake); }
.eca-instructor-number { align-self:flex-end; color:#a9bdb1; font:italic 42px/1 var(--eca-latin); }
.eca-instructor-area p { color:var(--eca-aotake); font:italic 20px/1.5 var(--eca-latin); letter-spacing:.03em; }
.eca-instructor-area h3 { margin-top:8px; font-size:20px; letter-spacing:.1em; }
.eca-reasons { background:var(--eca-white); }
.eca-reasons-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:58px; }
.eca-reason { position:relative; padding:14px 32px 10px; border-right:1px solid var(--eca-line); }
.eca-reason:first-child { padding-left:0; }
.eca-reason:last-child { border:0; padding-right:0; }
.eca-reason-number { display:block; font:italic 65px/1.1 var(--eca-latin); color:#b6c9ba; margin-bottom:29px; }
.eca-reason h3 { font-size:18px; margin:16px 0; }
.eca-reason > p:not(.eca-small-label) { font-size:13px; color:var(--eca-muted); }
.eca-reason-detail { display:inline-block; margin-top:27px; padding:6px 12px; font-size:10px; background:#eff3ec; color:var(--eca-sage); }
.eca-flow { background:#eeefe8; padding-block:83px; }
.eca-steps { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); padding:0 !important; gap:36px; margin-top:45px !important; }
.eca-steps > li { position:relative; }
.eca-steps > li:not(:last-child)::after { content:''; position:absolute; top:19px; left:54px; width:calc(100% - 24px); height:1px; background:#c1cdbe; }
.eca-step-number { width:40px; height:40px; display:flex; justify-content:center; align-items:center; border:1px solid #a7bba9; border-radius:50%; color:var(--eca-sage); font-size:13px; margin-bottom:23px; }
.eca-steps .eca-small-label { font-size:10px; }
.eca-steps h3 { font-size:17px; margin:10px 0; }
.eca-steps article > p:last-child { color:var(--eca-muted); font-size:12px; }
.eca-story { background:#f5f1e9; }
.eca-story-grid { display:grid; grid-template-columns:.86fr 1.14fr; gap:102px; align-items:start; }
.eca-story-image { position:relative; margin-top:42px; }
.eca-story-image .eca-picture { height:550px; border-radius:160px 160px 0 0; }
.eca-story-image img { object-position:55% 30%; }
.eca-image-sideword { position:absolute; left:-42px; bottom:165px; writing-mode:vertical-rl; transform:rotate(180deg); font:italic 24px var(--eca-latin); color:#857e70; letter-spacing:.035em; }
.eca-story-signature { border-top:1px solid #d7d0c2; margin-top:26px; padding-top:21px; }
.eca-story-signature p { font-size:11px; }
.eca-story-signature .eca-founder-name { font-family:var(--eca-display); font-size:25px; letter-spacing:.3em; margin-top:5px; }
.eca-story-copy .eca-heading { font-size:32px; }
.eca-pullquote { font-family:var(--eca-display); font-size:19px; line-height:1.9 !important; color:var(--eca-sage); padding-left:24px; border-left:1px solid #9fae98; margin:32px 0 24px !important; }
.eca-story-copy > p:not(.eca-section-label):not(.eca-pullquote) { font-size:13px; line-height:2.15; margin-bottom:20px; }
.eca-story-copy .eca-text-link { margin-top:7px; font-size:11px; }
.eca-activities { background:#fff; }
.eca-activities-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:25px; }
.eca-activity { background:#f3f5ef; padding:31px 28px; border-top:1px solid #b5c6b7; display:flex; flex-direction:column; }
.eca-activity.eca-sand { background:#f6f2ec; }
.eca-activity.eca-porcelain { background:#f7f7f3; }
.eca-activity-en { font:italic 35px/1.4 var(--eca-latin) !important; color:#66816c; margin-bottom:33px !important; }
.eca-activity h3 { font-size:17px; margin-bottom:15px; }
.eca-activity > p:not(.eca-activity-en) { font-size:12px; color:var(--eca-muted); flex:1; }
.eca-activity > span { display:block; margin-top:24px; padding-top:15px; border-top:1px solid var(--eca-line); font-size:10px; }
.eca-faq { border-top:1px solid var(--eca-line); }
.eca-faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:65px; }
.eca-faq .eca-heading { font-size:30px; }
.eca-faq-lead { color:var(--eca-muted); font-size:13px; margin-top:25px !important; }
.eca-faq-list { border-top:1px solid #bfcbbb; }
.eca-faq-list details { border-bottom:1px solid #d2dacd; }
.eca-faq-list summary { list-style:none; display:grid; grid-template-columns:20px 1fr 20px; align-items:center; gap:20px; padding:23px 2px; cursor:pointer; min-height:76px; font-size:13px; }
.eca-faq-list summary::-webkit-details-marker { display:none; }
.eca-q { font:italic 23px var(--eca-latin); color:var(--eca-sage); }
.eca-plus { width:13px; height:13px; display:block; position:relative; }
.eca-plus::before,.eca-plus::after { content:''; position:absolute; left:0; top:6px; width:13px; height:1px; background:var(--eca-sage); }
.eca-plus::after { transform:rotate(90deg); transition:transform .25s; }
details[open] .eca-plus::after { transform:rotate(0deg); }
.eca-faq-list details > p { font-size:12px; color:var(--eca-muted); padding:0 43px 26px; }
.eca-faq-list details[open] > p { animation:eca-faq-in .35s ease both; }
.eca-contact { padding:100px 0; position:relative; background:var(--eca-mist); }
.eca-contact-backdrop { position:absolute; inset:0; overflow:hidden; }
.eca-contact-backdrop .eca-picture { width:100%; height:100%; }
.eca-contact-backdrop img { object-position:50% 45%; }
.eca-contact-backdrop::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#edf2e9f7 0%,#edf2e9ee 48%,#e5eee2db 100%); }
.eca-contact-grid { position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:76px; align-items:center; }
.eca-contact .eca-heading { font-size:33px; }
.eca-contact .eca-section-label { margin-bottom:20px !important; }
.eca-contact-grid > div > p:last-child { margin-top:22px; font-size:13px; }
.eca-contact-buttons { display:flex; flex-direction:column; gap:16px; }
.eca-contact-buttons .eca-button { width:100%; }
.eca-contact-buttons > p { font-size:10px !important; color:var(--eca-muted); margin-top:0 !important; }
.eca-footer { background:var(--eca-paper); padding:67px 0 21px; }
.eca-footer-top { display:flex; align-items:center; gap:60px; padding-bottom:44px; }
.eca-footer-brand { display:flex; align-items:center; gap:22px; }
.eca-footer-brand > img { width:63px; height:86px; object-fit:contain; mix-blend-mode:multiply; }
.eca-footer-brand p { font-size:10px; }
.eca-footer-brand .eca-footer-name { font-size:21px; letter-spacing:.13em; font-family:var(--eca-display); }
.eca-footer-brand .eca-footer-english { font-family:var(--eca-latin); font-size:18px; letter-spacing:.025em; color:var(--eca-muted); }
.eca-footer-tagline { font-size:12px; color:var(--eca-muted); }
.eca-top-link { display:flex; align-items:center; gap:16px; min-height:44px; font-size:10px; margin-left:auto; }
.eca-top-link svg { transform:rotate(-90deg); }
.eca-footer-bottom { border-top:1px solid var(--eca-line); display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:14px; }
.eca-legal-links { display:flex; flex-wrap:wrap; gap:4px 25px; }
.eca-legal-links a { font-size:11px; color:var(--eca-muted); min-height:44px; display:inline-flex; align-items:center; }
.eca-legal-links a:hover { text-decoration:underline; text-underline-offset:5px; }
.eca-footer-bottom > small { font:10px var(--eca-digits); color:var(--eca-muted); }
.eca-mobile-cta { display:none; }
.eca-dialog { color:var(--eca-ink); background:var(--eca-paper); width:min(600px,calc(100% - 36px)); max-height:85svh; padding:48px 42px 35px; border:1px solid var(--eca-line); border-radius:3px; font:400 14px/2 var(--eca-body); box-shadow:0 30px 120px #1c30264d; }
.eca-dialog::backdrop { background:#1c302666; backdrop-filter:blur(3px); }
.eca-dialog[open] { animation:eca-dialog-in .3s var(--eca-ease); }
.eca-dialog h2 { font-size:24px; margin:14px 0 22px; }
.eca-dialog p { color:var(--eca-muted); }
.eca-dialog ul { padding-left:20px; font-size:12px; color:var(--eca-muted); }
.eca-dialog li { margin-bottom:12px; }
.eca-dialog .eca-button { margin-top:27px; width:100%; }
.eca-dialog-close { position:absolute; top:9px; right:10px; width:44px; height:44px; font-size:28px !important; }
.eca-selected-course { padding:12px 16px; background:var(--eca-mist); margin-bottom:16px !important; font-size:12px; }
.eca-lp .reveal { opacity:1; transform:none; }
.eca-lp.has-js .reveal { opacity:0; transform:translateY(20px); transition:opacity .7s var(--eca-ease),transform .8s var(--eca-ease); }
.eca-lp.has-js .reveal-visible { opacity:1; transform:none; }
@media (hover:hover) { .eca-technique-card:hover .eca-picture img,.eca-course-featured:hover .eca-picture img { transform:scale(1.025); } }
@keyframes eca-title-in { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }
@keyframes eca-enter { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }
@keyframes eca-slow-settle { from{transform:scale(1.045)} to{transform:scale(1)} }
@keyframes eca-line-in { from{transform:scaleX(0)} to{transform:scaleX(1)} }
@keyframes eca-scroll-line { 0%{transform:translateX(-100%)} 45%,65%{transform:translateX(0)} 100%{transform:translateX(100%)} }
@keyframes eca-result-in { from{opacity:.25;transform:translateY(7px)} to{opacity:1;transform:none} }
@keyframes eca-faq-in { from{opacity:0;transform:translateY(-4px)} to{opacity:1;transform:none} }
@keyframes eca-dialog-in { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
@media (min-width:1550px) { .eca-hero-copy { padding-left:calc((100vw - 1310px)/2); } .eca-hero-visual { margin-right:calc((100vw - 1450px)/2); } }
@media (max-width:1200px) {
 .eca-container { width:calc(100% - 80px); }
 .eca-header { padding-inline:32px; gap:22px; }
 .eca-desktop-nav { gap:18px; }
 .eca-desktop-nav a { font-size:10px; }
 .eca-brand strong { font-size:18px; }
 .eca-header-cta { padding-left:18px; font-size:11px; }
 .eca-hero-copy { padding-left:40px; padding-top:90px; padding-right:25px; }
 .eca-hero h1 { font-size:3.05vw; }
 .eca-hero { min-height:720px; }
 .eca-hero-actions { flex-direction:column; align-items:flex-start; }
 .eca-hero-english { font-size:38px; }
 .eca-about-grid,.eca-story-grid { gap:70px; }
 .eca-guide-grid { gap:45px; }
 .eca-guide-heading .eca-ear-line { left:235px; }
 .eca-course-row { gap:18px; }
 .eca-course-content { padding-inline:27px; }
 .eca-course-content > p:not(.eca-small-label) { min-height:102px; }
 .eca-contact-grid { gap:50px; }
}
@media (max-width:1023px) {
 .eca-desktop-nav { display:none; }
 .eca-menu-toggle { display:block; margin-left:5px; }
 .eca-header-cta { margin-left:auto; }
 .eca-header { height:78px; }
 .eca-hero { min-height:680px; height:auto; }
 .eca-hero-copy { padding-top:75px; padding-bottom:100px; }
 .eca-hero h1 { font-size:3.15vw; }
 .eca-eyebrow { font-size:9px; margin-bottom:28px !important; }
 .eca-hero-description { font-size:12px; }
 .eca-hero-meta { font-size:8px; flex-wrap:wrap; gap:6px 0; }
 .eca-hero-meta > span { padding-inline:8px; }
 .eca-hero-visual { padding-right:20px; }
 .eca-hero-frames { right:20px; border-top-left-radius:95px; }
 .eca-hero-caption { left:18px; right:37px; padding:15px 14px 7px; }
 .eca-caption-top { font-size:10px; gap:12px; }
 .eca-hero-tabs button { font-size:9px; }
 .eca-hero-image-label { right:42px; top:57px; }
 .eca-hero-english { font-size:33px; bottom:25px; left:calc(100% - 130px); }
 .eca-scroll-cue { left:40px; bottom:25px; font-size:7px; }
 .eca-values-strip { padding-inline:40px; gap:24px; font-size:11px; }
 .eca-values-strip .eca-strip-en { font-size:19px; }
 .eca-section { padding:85px 0; }
 .eca-about-grid { gap:50px; }
 .eca-about-visual > .eca-picture { height:480px; }
 .eca-small-emblem { right:-24px; width:120px; height:145px; }
 .eca-about-copy > p:not(.eca-section-label) { font-size:12px; }
 .eca-heading { font-size:29px; }
 .eca-concerns { gap:28px; margin-top:65px; }
 .eca-concern h3 { font-size:15px; }
 .eca-concern > p:last-child { font-size:12px; }
 .eca-section-intro { gap:35px; }
 .eca-intro-note { font-size:12px; }
 .eca-technique-grid { gap:22px; }
 .eca-technique-card .eca-picture { height:280px; }
 .eca-technique-card:nth-child(2) .eca-picture,.eca-technique-card:nth-child(3) .eca-picture { height:280px; margin-top:0; }
 .eca-technique-card h3 { font-size:17px; }
 .eca-course-photo { height:250px; }
 .eca-instructors-grid { gap:50px; }
 .eca-course-content { padding:24px 22px 17px; }
 .eca-course-metrics { gap:10px; }
 .eca-course-metrics > div + div { padding-left:14px; }
 .eca-course-metrics .eca-course-price { font-size:25px; }
 .eca-course-row { grid-template-columns:1.2fr 1fr 48px; }
 .eca-course-row > p { display:none; }
 .eca-guide-heading .eca-heading { font-size:27px; }
 .eca-guide-heading .eca-ear-line { left:195px; width:60px; }
 .eca-guide-panel { padding:24px 24px 16px; }
 .eca-guide-result h3 { font-size:16px; }
 .eca-reason { padding-inline:20px; }
 .eca-reason h3 { font-size:16px; }
 .eca-steps { gap:20px; }
 .eca-steps h3 { font-size:15px; }
 .eca-story-grid { gap:48px; }
 .eca-story-copy .eca-heading { font-size:27px; }
 .eca-story-image .eca-picture { height:470px; }
 .eca-pullquote { font-size:17px; padding-left:18px; }
 .eca-activity { padding:26px 22px; }
 .eca-activity h3 { font-size:16px; }
 .eca-faq-grid { gap:30px; }
 .eca-faq .eca-heading { font-size:25px; }
 .eca-contact-grid { grid-template-columns:1fr 1fr; gap:36px; }
 .eca-contact .eca-heading { font-size:27px; }
 .eca-contact-buttons .eca-button { padding-inline:18px; font-size:12px !important; }
 .eca-footer-top { gap:30px; }
 .eca-footer-tagline { font-size:10px; }
 .eca-footer-bottom { align-items:flex-start; }
}
@media (max-width:700px) {
 .eca-container { width:calc(100% - 44px); }
 .eca-section { padding:66px 0; }
 .eca-header { height:72px; padding-inline:20px; gap:10px; }
 .eca-brand { gap:10px; }
 .eca-brand img { width:32px; height:45px; }
 .eca-brand small { font-size:8px; }
 .eca-brand strong { font-size:17px; }
 .eca-header-cta { display:none; }
 .eca-menu-toggle { margin-left:auto; }
 .eca-mobile-menu { top:72px; }
 .eca-hero { display:flex; flex-direction:column; min-height:0; height:auto; }
 .eca-hero-copy { padding:43px 24px 37px; }
 .eca-eyebrow { font-size:9px; margin-bottom:20px !important; letter-spacing:.07em; }
 .eca-hero h1 { font-size:clamp(24px,6.95vw,41px); line-height:1.75; letter-spacing:.065em; }
 .eca-hero-description { font-size:12px; margin-top:20px; }
 .eca-hero-actions { flex-direction:row; gap:9px 18px; margin-top:24px; }
 .eca-hero-actions .eca-button { min-width:0; width:100%; max-width:380px; min-height:56px; }
 .eca-hero-actions .eca-text-link { font-size:11px; }
 .eca-hero-meta { margin-top:14px; font-size:9px; }
 .eca-hero-meta > span { padding-inline:10px; }
 .eca-hero-english { display:none; }
 .eca-hero-visual { padding:0; height:520px; margin-left:23px; }
 .eca-hero-frames { inset:0 0 0 0; border-radius:95px 0 0 0; }
 .eca-hero-frame img { object-position:50% 33%; }
 .eca-hero-image-label { top:34px; right:23px; font-size:8px; }
 .eca-hero-image-label span:last-child { font-size:6px; }
 .eca-hero-caption { left:20px; right:20px; bottom:25px; padding:16px 17px 9px; }
 .eca-caption-top { font-size:10px; }
 .eca-hero-tabs button { font-size:10px; }
 .eca-scroll-cue { display:none; }
 .eca-values-strip { padding:21px 20px; gap:15px; font-size:10px; letter-spacing:.08em; }
 .eca-values-strip i { width:15px; }
 .eca-values-strip .eca-strip-en { display:none; }
 .eca-about-grid { display:flex; flex-direction:column-reverse; gap:38px; }
 .eca-heading { font-size:28px; letter-spacing:.07em; }
 .eca-section-label { font-size:22px; margin-bottom:17px !important; }
 .eca-about-copy .eca-heading { margin-bottom:21px; }
 .eca-about-copy > p:not(.eca-section-label) { font-size:13px; line-height:2.1; }
 .eca-about-copy .eca-about-note { font-size:12px; padding-top:6px; }
 .eca-about-visual { width:calc(100% - 24px); align-self:flex-start; }
 .eca-about-visual > .eca-picture { height:430px; border-bottom-right-radius:85px; }
 .eca-small-emblem { right:-25px; bottom:30px; width:120px; height:145px; }
 .eca-concerns { grid-template-columns:1fr; gap:24px; margin-top:50px; }
 .eca-concern { padding-top:20px; }
 .eca-concern h3 { font-size:17px; margin:9px 0; }
 .eca-concern > p:last-child { font-size:12px; }
 .eca-section-intro { display:block; margin-bottom:30px; }
 .eca-intro-note { font-size:12px; margin-top:20px !important; padding:0; }
 .eca-technique-grid { grid-template-columns:1fr; gap:38px; }
 .eca-technique-card .eca-picture,.eca-technique-card:nth-child(2) .eca-picture,.eca-technique-card:nth-child(3) .eca-picture { height:320px; margin:0 0 22px; }
 .eca-technique-card:nth-child(2) .eca-picture,.eca-technique-card:nth-child(3) .eca-picture { margin-inline:0; }
 .eca-technique-card h3 { font-size:20px; margin-top:8px; }
 .eca-technique-card > p:not(.eca-small-label):not(.eca-card-detail) { font-size:13px; }
 .eca-card-detail { margin-top:17px !important; padding-top:13px; font-size:10px; }
 .eca-service-note { margin-top:31px !important; font-size:10px; }
 .eca-featured-courses { grid-template-columns:1fr; gap:27px; }
 .eca-course-photo { height:235px; }
 .eca-course-content { padding:24px 24px 18px; }
 .eca-course-content > p:not(.eca-small-label) { min-height:0; }
 .eca-course-content h3 { margin:11px 0 14px; }
 .eca-course-metrics .eca-course-price { font-size:29px; }
 .eca-course-metrics { margin-top:22px; }
 .eca-course-category { font-size:27px; bottom:15px; left:22px; }
 .eca-more-courses { margin-top:28px; }
 .eca-course-row { grid-template-columns:1fr 48px; padding:26px 0; gap:14px; }
 .eca-course-row-title { grid-column:1 / -1; }
 .eca-course-row > p { display:block; grid-column:1 / -1; font-size:12px; }
 .eca-course-row h3 { font-size:18px; }
 .eca-row-metric { flex-direction:row; align-items:center; gap:24px; }
 .eca-row-price { font-size:23px; }
 .eca-guide-section { padding:57px 0; }
 .eca-guide-grid { grid-template-columns:1fr; gap:32px; }
 .eca-guide-heading { position:relative; }
 .eca-guide-heading .eca-heading { font-size:28px; margin:18px 0; }
 .eca-instructors-grid { grid-template-columns:1fr; gap:36px; }
 .eca-instructors-copy > p:not(.eca-section-label) { margin-top:20px; font-size:13px; }
 .eca-instructor-area { min-height:175px; padding:22px; }
 .eca-guide-heading .eca-ear-line { right:5px; left:auto; bottom:5px; height:90px; width:65px; }
 .eca-guide-panel { padding:23px 22px 15px; }
 .eca-guide-result { min-height:205px; }
 .eca-guide-result h3 { font-size:18px; }
 .eca-reasons-grid { grid-template-columns:1fr; margin-top:25px; gap:29px; }
 .eca-reason,.eca-reason:first-child,.eca-reason:last-child { padding:22px 0 0 66px; border:0; border-top:1px solid var(--eca-line); }
 .eca-reason-number { position:absolute; left:0; top:23px; font-size:46px; margin:0; }
 .eca-reason h3 { font-size:18px; margin:11px 0; }
 .eca-reason-detail { margin-top:18px; }
 .eca-steps { grid-template-columns:1fr; gap:26px; }
 .eca-steps article { padding-left:63px; position:relative; }
 .eca-step-number { position:absolute; left:0; top:0; }
 .eca-steps h3 { font-size:18px; margin:7px 0 9px; }
 .eca-steps > li:not(:last-child)::after { left:19px; top:49px; width:1px; height:calc(100% - 31px); }
 .eca-story-grid { display:flex; flex-direction:column; gap:43px; }
 .eca-story-image { margin-top:0; width:calc(100% - 30px); align-self:flex-end; }
 .eca-story-image .eca-picture { height:450px; border-radius:150px 150px 0 0; }
 .eca-image-sideword { left:-32px; font-size:21px; bottom:180px; }
 .eca-story-signature { margin-top:20px; padding-top:17px; }
 .eca-story-copy .eca-heading { font-size:27px; }
 .eca-pullquote { font-size:18px; margin-top:26px !important; }
 .eca-story-copy > p:not(.eca-section-label):not(.eca-pullquote) { font-size:13px; }
 .eca-activities-grid { grid-template-columns:1fr; gap:18px; }
 .eca-activity { padding:27px 27px; }
 .eca-activity-en { font-size:32px; margin-bottom:22px !important; }
 .eca-activity h3 { font-size:19px; }
 .eca-activity > p:not(.eca-activity-en) { font-size:13px; }
 .eca-faq-grid { grid-template-columns:1fr; gap:27px; }
 .eca-faq .eca-heading { font-size:28px; }
 .eca-faq-lead { margin-top:16px !important; font-size:12px; }
 .eca-faq-list summary { gap:10px; font-size:12px; min-height:78px; }
 .eca-faq-list details > p { padding:0 22px 24px 32px; font-size:12px; }
 .eca-contact { padding:62px 0; }
 .eca-contact-grid { grid-template-columns:1fr; gap:32px; }
 .eca-contact .eca-heading { font-size:27px; letter-spacing:.055em; }
 .eca-contact-grid > div > p:last-child { font-size:12px; }
 .eca-contact-buttons .eca-button { font-size:13px !important; min-height:60px; }
 .eca-contact-buttons > p { font-size:9px !important; }
 .eca-footer { padding:48px 0 92px; }
 .eca-footer-top { flex-wrap:wrap; gap:25px 20px; padding-bottom:25px; }
 .eca-footer-brand { gap:18px; width:100%; }
 .eca-footer-brand > img { width:54px; height:73px; }
 .eca-footer-brand .eca-footer-name { font-size:20px; }
 .eca-footer-tagline { font-size:10px; }
 .eca-top-link { font-size:9px; gap:6px; }
 .eca-footer-bottom { flex-direction:column; gap:17px; padding-top:15px; }
 .eca-legal-links { flex-direction:column; gap:0; align-items:flex-start; }
 .eca-legal-links a { text-align:left; padding:0; min-height:44px; }
 .eca-mobile-cta { position:fixed; z-index:35; left:0; bottom:0; right:0; display:grid; grid-template-columns:1fr 1.6fr; background:var(--eca-paper); border-top:1px solid var(--eca-line); padding-bottom:env(safe-area-inset-bottom,0); box-shadow:0 -4px 20px #28332f08; }
 .eca-mobile-cta > a { display:flex; min-height:58px; align-items:center; justify-content:center; gap:20px; font-size:12px; color:var(--eca-sage); }
 .eca-mobile-cta > a:last-child { background:var(--eca-mint); color:var(--eca-button-ink); }
 .eca-mobile-cta > a:last-child:hover { background:var(--eca-mint-hover); }
 .eca-dialog { padding:45px 24px 28px; font-size:13px; }
 .eca-dialog h2 { font-size:21px; }
 .eca-lp section[id],.eca-lp article[id] { scroll-margin-top:90px; }
}
@media (max-width:359px) {
 .eca-container { width:calc(100% - 36px); }
 .eca-hero-copy { padding-inline:20px; }
 .eca-hero h1 { font-size:6.75vw; }
 .eca-hero-meta { font-size:8px; }
 .eca-hero-meta > span { padding-inline:8px; }
 .eca-hero-visual { height:470px; }
 .eca-instructor-regions { grid-template-columns:1fr; }
 .eca-heading,.eca-contact .eca-heading,.eca-guide-heading .eca-heading { font-size:25px; }
 .eca-story-copy .eca-heading { font-size:23px; }
 .eca-course-metrics .eca-course-price { font-size:26px; }
 .eca-course-metrics { grid-template-columns:1fr 1.5fr; }
 .eca-course-content { padding-inline:20px; }
}
@media (prefers-reduced-motion:reduce) {
 .eca-lp *, .eca-lp *::before, .eca-lp *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
 .eca-lp.has-js .reveal { opacity:1; transform:none; }
}

/* Second-draft art direction: luminous editorial training hero + alternating motion rhythm. */
.eca-hero {
 display:block;
 min-height:760px;
 height:min(860px,calc(100svh - 74px));
 isolation:isolate;
 background:var(--eca-paper);
}
.eca-hero-copy {
 width:min(1180px,calc(100% - 112px));
 height:100%;
 margin-inline:auto;
 padding:112px 0 118px;
 position:relative;
 z-index:3;
}
.eca-hero-copy > :not(.eca-hero-english) { max-width:540px; }
.eca-hero-visual { position:absolute; inset:0; padding:0; min-width:0; z-index:0; overflow:hidden; }
.eca-hero-visual::before {
 content:'';
 position:absolute;
 inset:0;
 z-index:2;
 background:linear-gradient(90deg,rgba(247,247,242,.99) 0%,rgba(247,247,242,.96) 27%,rgba(247,247,242,.74) 45%,rgba(247,247,242,.18) 68%,rgba(247,247,242,.04) 100%),linear-gradient(0deg,rgba(247,247,242,.48),transparent 28%);
 pointer-events:none;
}
.eca-hero-visual::after {
 content:'';
 position:absolute;
 inset:0;
 z-index:5;
 background:var(--eca-mist);
 transform-origin:right center;
 animation:eca-hero-curtain 1.35s cubic-bezier(.76,0,.24,1) .08s both;
 pointer-events:none;
}
.eca-hero-frames { position:absolute; inset:0; border-radius:0; overflow:hidden; background:var(--eca-sand); }
.eca-hero-frames::after { border:0; border-radius:0; margin:0; }
.eca-hero-frame { transform:scale(1.035); transition:opacity .85s ease,transform 1.55s var(--eca-ease); }
.eca-hero-frame.is-active { transform:scale(1); }
.eca-hero-frame img { object-position:center center; transform:translate3d(0,var(--eca-parallax-y,0px),0) scale(1.04); }
.eca-hero-frame:first-child .eca-picture { width:70%; margin-left:auto; }
.eca-hero-frame:first-child img { object-position:48% center; animation:eca-hero-drift 10s ease-out both; }
.eca-hero-image-label { z-index:3; top:44px; right:max(45px,calc((100vw - 1260px)/2)); color:#43524c; }
.eca-hero-caption {
 z-index:4;
 left:auto;
 right:max(45px,calc((100vw - 1260px)/2));
 bottom:42px;
 width:min(520px,42vw);
 padding:17px 22px 10px;
 background:rgba(253,252,247,.89);
 border:1px solid rgba(255,255,255,.8);
 backdrop-filter:blur(8px);
 box-shadow:0 20px 60px -42px rgba(40,51,47,.35);
}
.eca-hero-english { left:auto; right:max(45px,calc((100vw - 1260px)/2)); bottom:205px; z-index:3; color:rgba(53,107,91,.6); }
.eca-scroll-cue { left:max(56px,calc((100vw - 1180px)/2)); z-index:4; }
.eca-eyebrow { position:relative; padding-left:44px; }
.eca-eyebrow::before { content:''; position:absolute; left:0; top:50%; width:29px; height:1px; background:var(--eca-sage); animation:eca-line-in .8s var(--eca-ease) .8s both; }
.eca-button { position:relative; isolation:isolate; overflow:hidden; }
.eca-button::before {
 content:'';
 position:absolute;
 z-index:-1;
 top:-70%;
 bottom:-70%;
 left:-45%;
 width:24%;
 transform:translateX(-220%) rotate(18deg);
 background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);
 animation:eca-button-glint 6.8s ease-in-out 1.5s infinite;
 pointer-events:none;
}
.eca-button-outline::before { z-index:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent); }
.eca-button > * { position:relative; z-index:1; }
.eca-button > span { display:flex; flex-direction:column; align-items:flex-start; }
.eca-button strong { font:500 14px/1.65 var(--eca-body); }
.eca-button small { font:400 9px/1.6 var(--eca-body); opacity:.76; letter-spacing:.05em; }
.eca-lp.has-js .reveal-left { opacity:0; transform:translate3d(-28px,0,0); }
.eca-lp.has-js .reveal-right { opacity:0; transform:translate3d(28px,0,0); }
.eca-lp.has-js .reveal-up { opacity:0; transform:translate3d(0,22px,0); }
.eca-lp.has-js .reveal-soft { opacity:0; transform:none; }
.eca-lp.has-js .reveal-visible { opacity:1; transform:translate3d(0,0,0); }
.eca-lp.has-js .reveal { transition:opacity 1.05s var(--eca-ease),transform 1.2s var(--eca-ease); transition-delay:var(--eca-reveal-delay,0ms); }
.eca-lp.has-js .reveal-soft { transition-duration:1.15s; }
.eca-lp.has-js .eca-steps > li::after { transform:scaleX(0); transform-origin:left center; transition:transform 1.05s var(--eca-ease) calc(var(--eca-reveal-delay,0ms) + 180ms); }
.eca-lp.has-js .eca-steps > li.reveal-visible::after { transform:scaleX(1); }
.eca-about-visual > .eca-picture,.eca-story-image > .eca-picture { clip-path:inset(0 0 0 0 round 0); transition:clip-path 1.25s cubic-bezier(.76,0,.24,1); }
.eca-lp.has-js .eca-about-visual.reveal-left:not(.reveal-visible) > .eca-picture,.eca-lp.has-js .eca-story-image.reveal-left:not(.reveal-visible) > .eca-picture { clip-path:inset(0 100% 0 0 round 2px); }
.eca-ear-line path { stroke-dasharray:620; stroke-dashoffset:620; transition:stroke-dashoffset 1.8s var(--eca-ease) .25s; }
.reveal-visible .eca-ear-line path,.eca-small-emblem .eca-ear-line path { stroke-dashoffset:0; }
[data-parallax] .eca-picture img { transform:translate3d(0,var(--eca-parallax-y,0px),0) scale(1.045); }
.eca-profile { background:#eef3ed; border-top:1px solid #dae4db; }
.eca-profile-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:100px; align-items:start; }
.eca-profile-lead { margin-top:26px !important; color:var(--eca-muted); font-size:13px; }
.eca-profile-list { margin:0; border-top:1px solid #aec0b2; }
.eca-profile-list > div { display:grid; grid-template-columns:150px 1fr; gap:32px; border-bottom:1px solid #c8d5ca; padding:20px 3px; }
.eca-profile-list dt { font-size:11px; color:var(--eca-sage); letter-spacing:.1em; }
.eca-profile-list dd { margin:0; font-size:13px; }
.eca-profile-list a { color:var(--eca-sage); text-decoration:underline; text-underline-offset:4px; }
.eca-contact-buttons .eca-button { min-height:72px; padding-block:13px; }
.eca-instagram-link { min-height:58px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #9bb1a2; color:var(--eca-sage) !important; padding:8px 4px; }
.eca-instagram-link > span { display:flex; flex-direction:column; font-size:12px; }
.eca-instagram-link small { font:11px/1.6 var(--eca-digits); color:var(--eca-muted); }
.eca-footer-actions { margin-left:auto; display:flex; align-items:center; gap:32px; }
.eca-footer-actions > a { min-height:44px; display:flex; align-items:center; gap:10px; font-size:10px; color:var(--eca-sage); }
.eca-footer-actions .eca-top-link { margin-left:0; }
.eca-dialog-actions { display:grid; gap:12px; margin-top:24px; }
.eca-dialog-actions .eca-button { margin-top:0; }
.eca-dialog-note { margin-top:18px !important; font-size:10px; color:var(--eca-muted); }
.eca-legal-links a { min-height:44px; }

@keyframes eca-hero-curtain { 0%{transform:scaleX(1)} 100%{transform:scaleX(0)} }
@keyframes eca-hero-drift { from{transform:scale(1.085) translate3d(8px,0,0)} to{transform:scale(1.04) translate3d(0,0,0)} }
@keyframes eca-button-glint { 0%,72%{transform:translateX(-240%) rotate(18deg);opacity:0} 76%{opacity:.7} 88%,100%{transform:translateX(720%) rotate(18deg);opacity:0} }

@media (max-width:1199px) {
 .eca-instructors-grid { grid-template-columns:1fr; gap:42px; }
}

@media (max-width:1023px) {
 .eca-hero-copy { width:calc(100% - 80px); padding-top:92px; }
 .eca-hero-copy > :not(.eca-hero-english) { max-width:500px; }
 .eca-hero h1 { font-size:clamp(31px,4.1vw,42px); }
 .eca-hero-caption { right:32px; width:430px; }
 .eca-hero-image-label { right:32px; }
 .eca-profile-grid { gap:55px; }
}

@media (max-width:700px) {
 .eca-hero { display:flex; flex-direction:column; height:auto; min-height:0; }
 .eca-hero-copy { order:1; width:100%; height:auto; padding:58px 24px 70px; background:var(--eca-paper); }
 .eca-hero-copy > :not(.eca-hero-english) { max-width:none; }
 .eca-hero h1 { font-size:clamp(27px,8vw,33px); }
 .eca-eyebrow { padding-left:33px; }
 .eca-eyebrow::before { width:22px; }
 .eca-hero-visual { order:2; position:relative; inset:auto; height:460px; overflow:hidden; }
 .eca-hero-visual::before { background:linear-gradient(0deg,rgba(247,247,242,.5),transparent 30%); }
 .eca-hero-frame:first-child .eca-picture { width:100%; margin-left:0; }
 .eca-hero-frame img { object-position:64% center; }
 .eca-hero-frame:first-child img { object-position:56% center; }
 .eca-hero-caption { left:22px; right:22px; bottom:20px; width:auto; padding:14px 15px 8px; }
 .eca-caption-top .eca-digit { font-size:23px; }
 .eca-caption-top { gap:12px; font-size:10px; }
 .eca-hero-tabs button { font-size:9px; }
 .eca-hero-image-label { top:20px; right:22px; color:#52645c; }
 .eca-hero-english,.eca-scroll-cue { display:none; }
 .eca-hero-actions .eca-button { min-width:100%; }
 .eca-values-strip { margin-top:0; }
 .eca-lp.has-js .reveal-left,.eca-lp.has-js .reveal-right { transform:translate3d(0,18px,0); }
 .eca-lp.has-js .reveal-visible { transform:none; }
 .eca-lp.has-js .eca-steps > li::after { transform:scaleY(0); transform-origin:center top; }
 .eca-lp.has-js .eca-steps > li.reveal-visible::after { transform:scaleY(1); }
 .eca-profile-grid { grid-template-columns:1fr; gap:36px; }
 .eca-instructor-regions { grid-template-columns:1fr; }
 .eca-profile-list > div { grid-template-columns:92px 1fr; gap:17px; padding:17px 2px; }
 .eca-profile-list dt,.eca-profile-list dd { font-size:11px; }
 .eca-contact-buttons .eca-button { min-height:70px; }
 .eca-footer-actions { width:100%; margin-left:0; justify-content:space-between; }
}

@media (prefers-reduced-motion:reduce) {
 .eca-hero-visual::after { display:none; }
 .eca-hero-frame,.eca-hero-frame img,[data-parallax] .eca-picture img { transform:none !important; }
 .eca-button::before { display:none; }
 .eca-ear-line path { stroke-dashoffset:0; }
}

@media (max-width:359px) {
 .eca-hero-copy { padding-inline:20px; }
 .eca-hero h1 { font-size:7vw; }
}

/* Legal pages share the LP palette and use ordinary readable document layout. */
.eca-document-page { min-height:100vh; overflow-wrap:anywhere; }
.eca-document-preview { padding:8px 20px; text-align:center; font-size:11px; background:var(--eca-mist); color:var(--eca-sage); }
.eca-document-header { max-width:1180px; margin:auto; padding:26px 32px; display:flex; justify-content:space-between; align-items:center; gap:24px; border-bottom:1px solid var(--eca-line); }
.eca-document-brand { display:flex; flex-direction:column; }
.eca-document-brand small { font-size:11px; letter-spacing:.15em; }
.eca-document-brand span { font:500 23px/1.8 var(--eca-display); letter-spacing:.12em; }
.eca-document-back { font-size:13px; color:var(--eca-sage)!important; min-height:44px; display:inline-flex; align-items:center; gap:18px; }
.eca-document-main { width:min(860px,calc(100% - 64px)); margin:0 auto; padding:64px 0 72px; }
.eca-document-title { padding-bottom:32px; border-bottom:1px solid var(--eca-line); margin-bottom:32px; }
.eca-document-title h1 { font-size:clamp(26px,4vw,38px); margin:14px 0 18px; letter-spacing:.07em; }
.eca-document-title > p:last-child { font-size:13px; color:var(--eca-muted); }
.eca-document-intro { margin-bottom:32px!important; }
.eca-document-main a { color:var(--eca-sage); text-decoration:underline; text-underline-offset:4px; }
.eca-document-main a:hover,.eca-document-footer a:hover { text-decoration-thickness:2px; }
.eca-document-toc { margin:32px 0 44px; padding:25px 28px; background:#eef3ed; border:1px solid var(--eca-line); }
.eca-document-toc h2 { font-size:16px; margin-bottom:12px; }
.eca-document-toc ol { list-style:none; padding:0; display:grid; grid-template-columns:1fr 1fr; column-gap:28px; }
.eca-document-toc a { font-size:13px; display:flex; align-items:center; min-height:44px; padding:8px 0; }
.eca-document-section { margin-top:40px; scroll-margin-top:24px!important; }
.eca-document-section h2 { font-size:19px; margin-bottom:18px; padding-bottom:12px; border-bottom:1px solid var(--eca-line); }
.eca-document-section p + p { margin-top:8px; }
.eca-document-section ol,.eca-document-section ul { padding-left:1.7em; margin:12px 0 0; }
.eca-document-section li { padding-left:.25em; margin:8px 0; }
.eca-document-section li::marker { color:var(--eca-sage); }
.eca-document-table { margin:0; border-top:1px solid var(--eca-line); }
.eca-document-table > div { display:grid; grid-template-columns:220px minmax(0,1fr); border-bottom:1px solid var(--eca-line); }
.eca-document-table dt { padding:22px; background:#eef3ed; font-weight:500; }
.eca-document-table dd { margin:0; padding:22px; background:#fff; }
.eca-document-date { margin-top:38px!important; text-align:right; font-size:14px; }
.eca-document-end { margin-top:46px; border-top:1px solid var(--eca-line); padding-top:22px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; }
.eca-document-end a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.eca-document-footer { border-top:1px solid var(--eca-line); padding:30px 32px; text-align:center; }
.eca-document-footer nav { display:flex; justify-content:center; flex-wrap:wrap; gap:4px 28px; margin-bottom:18px; }
.eca-document-footer a { min-height:44px; display:inline-flex; align-items:center; font-size:12px; color:var(--eca-sage); }
.eca-document-footer [aria-current=page] { text-decoration:underline; text-underline-offset:5px; }
.eca-document-footer small { font-size:11px; color:var(--eca-muted); }
@media(max-width:600px) {
 .eca-document-page { font-size:14px; }
 .eca-document-header { padding:18px 20px; gap:15px; }
 .eca-document-brand span { font-size:18px; }
 .eca-document-brand small { font-size:10px; }
 .eca-document-back { font-size:12px; gap:6px; }
 .eca-document-main { width:calc(100% - 40px); padding:38px 0 48px; }
 .eca-document-title h1 { font-size:27px; }
 .eca-document-toc { padding:18px 20px; }
 .eca-document-toc ol { grid-template-columns:1fr; }
 .eca-document-section h2 { font-size:18px; }
 .eca-document-table > div { grid-template-columns:1fr; }
 .eca-document-table dt { padding:14px 18px; }
 .eca-document-table dd { padding:16px 18px 22px; }
 .eca-document-footer { padding:24px 20px; }
 .eca-document-footer nav { flex-direction:column; align-items:center; gap:0; }
}
