:root{--motion-ease:cubic-bezier(.2,.75,.25,1)}html{scroll-behavior:smooth}.flash{position:fixed;left:50%;top:92px;transform:translateX(-50%);z-index:1000;max-width:min(92vw,760px);padding:14px 18px;border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.13);background:#fff}.flash.success{border-left:4px solid #4f7a64}.flash.error{border-left:4px solid #b04c4c}.site-header.scrolled{backdrop-filter:blur(14px);background:rgba(250,249,246,.88);box-shadow:0 8px 30px rgba(25,40,32,.08)}[data-reveal]{will-change:transform,opacity}.card,.btn,.hero-media img{transition:transform .45s var(--motion-ease),box-shadow .45s var(--motion-ease),opacity .45s}.card:hover{transform:translateY(-5px);box-shadow:0 18px 50px rgba(28,50,40,.12)}.card:hover img{transform:scale(1.03)}.btn:hover{transform:translateY(-2px)}.home-quote{margin-top:28px;padding-left:18px;border-left:2px solid currentColor}.home-quote small{display:block;margin-top:8px}.article-content{max-width:820px}.article-content p{font-size:1.08rem;line-height:1.85}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-grid figure{margin:0;position:relative;overflow:hidden;border-radius:20px;aspect-ratio:4/3;cursor:zoom-in}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-grid figure:hover img{transform:scale(1.04)}.gallery-grid figcaption{position:absolute;inset:auto 0 0;padding:42px 18px 16px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.68));display:flex;justify-content:space-between;gap:10px}.lightbox{position:fixed;inset:0;background:rgba(10,15,12,.9);z-index:1500;display:grid;place-items:center;padding:30px}.lightbox[hidden]{display:none}.lightbox img{max-width:92vw;max-height:86vh;border-radius:16px}.lightbox button{position:absolute;right:24px;top:18px;border:0;background:none;color:#fff;font-size:42px}.notice-card{padding:18px;border-radius:16px;background:#f5f1e8;line-height:1.65}.choices.compact{display:grid;gap:10px;border:0;padding:0}.choices.compact legend{font-weight:700;margin-bottom:8px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stats>div{padding:24px;border:1px solid #dedbd3;border-radius:18px;text-align:center}.stats strong{display:block;font-size:2rem}.stats span{opacity:.65}.info-grid.compact{margin:22px 0}.info-grid.compact .info{padding:16px}@media(max-width:780px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}.flash{top:72px}.card:hover,.btn:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.quick-front{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.quick-front a{display:grid;gap:6px;padding:18px;border:1px solid #dedbd3;border-radius:16px;background:#fff}.quick-front span{font-size:1.4rem}.quick-front small{opacity:.62;line-height:1.4}.institution-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.institution-grid a{border:1px solid #dedbd3;border-radius:16px;padding:16px;display:grid;gap:10px;text-align:center}.institution-grid img{width:100%;height:90px;object-fit:cover;border-radius:10px}.faq-wrap{max-width:900px}.faq{border-bottom:1px solid #dedbd3;padding:8px 0}.faq summary{padding:16px 0;font-weight:700;cursor:pointer}.faq p{padding:0 0 15px;margin:0}.simple-card img{display:none}@media(max-width:1000px){.quick-front{grid-template-columns:repeat(3,1fr)}.institution-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.quick-front{grid-template-columns:1fr 1fr}.institution-grid{grid-template-columns:1fr 1fr}}

.site-logo{max-height:42px;max-width:150px;object-fit:contain}

/* v2.1 admin/front polish */
.training-section{position:relative}.training-timeline{display:grid;gap:18px;position:relative}.training-timeline:before{content:"";position:absolute;left:82px;top:8px;bottom:8px;width:1px;background:#c8d3cc}.training-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:26px;position:relative}.training-year{font:700 18px var(--serif);color:var(--green);padding-top:22px;position:relative}.training-year:after{content:"";position:absolute;right:17px;top:27px;width:13px;height:13px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px var(--bg)}.training-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 26px;box-shadow:0 12px 34px rgba(24,47,36,.045)}.training-card h3{margin:.3rem 0 .7rem}.training-card p{margin:0 0 14px;color:var(--muted);max-width:850px}.training-kicker{font-size:11px;letter-spacing:.08em;font-weight:800;color:var(--green);text-transform:uppercase}.certificate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.certificate-card{display:grid;grid-template-columns:52px 1fr;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.certificate-mark{width:48px;height:48px;border-radius:14px;background:#eaf1ec;color:var(--green);display:grid;place-items:center;font-weight:900}.certificate-card small{color:var(--muted)}.certificate-card h3{font-size:20px;margin:5px 0 8px}.certificate-card p{margin:0 0 11px;color:var(--muted)}.institution-placeholder{width:72px;height:72px;border-radius:18px;background:#edf2ee;color:var(--green);font:800 26px var(--serif);display:grid;place-items:center;margin:auto}.front-empty{border:1px dashed #cfd7d2;background:rgba(255,255,255,.58);border-radius:16px;padding:34px;text-align:center;color:var(--muted)}
.publication-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.publication-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(25,45,36,.045);transition:transform .35s var(--motion-ease),box-shadow .35s var(--motion-ease)}.publication-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(25,45,36,.1)}.publication-cover{display:block;position:relative;aspect-ratio:16/10;overflow:hidden}.publication-cover img{width:100%;height:100%;object-fit:cover;transition:transform .45s var(--motion-ease)}.publication-card:hover .publication-cover img{transform:scale(1.035)}.publication-featured{position:absolute;left:14px;top:14px;background:var(--green);color:#fff;border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800}.publication-body{padding:20px}.publication-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.publication-meta span,.publication-meta time{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.publication-meta span+span:before,.publication-meta time:before{content:"•";margin-right:8px}.publication-body h3{font-size:24px}.publication-body p{color:var(--muted);margin:0 0 16px}.publication-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.publication-external{font-size:12px;color:var(--muted);font-weight:700}.publication-detail-hero{background:linear-gradient(90deg,#faf7f2,#fbfaf7 58%,#f0ece5);border-bottom:1px solid var(--line)}.publication-detail-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;min-height:460px}.publication-detail-copy{padding:54px 48px 54px 0;display:flex;flex-direction:column;justify-content:center}.publication-detail-media{min-height:460px;overflow:hidden}.publication-detail-media img{width:100%;height:100%;object-fit:cover}.publication-detail-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:10px}.publication-detail-meta span+span:before{content:"•";margin-right:12px}.publication-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:42px;align-items:start}.publication-article .article-content{max-width:none}.publication-article .article-content p{font-size:1.06rem;line-height:1.9;color:#43514d}.publication-side{position:sticky;top:96px;display:grid;gap:12px}.publication-side .sidebox{display:grid;gap:5px;margin:0}.publication-side .sidebox small{font-size:10px;letter-spacing:.08em;color:var(--muted)}.publication-original,.publication-appointment{width:100%}.publication-back{padding-top:8px;border-top:1px solid var(--line)}
@media(max-width:1000px){.certificate-grid,.publication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-detail-hero-grid,.publication-detail-layout{grid-template-columns:1fr}.publication-detail-media{order:-1;min-height:340px;margin-inline:-15px}.publication-detail-media img{height:340px}.publication-detail-copy{padding:38px 0}.publication-side{position:static;grid-template-columns:repeat(3,1fr)}.publication-original,.publication-appointment{grid-column:span 3}}
@media(max-width:650px){.training-timeline:before{left:16px}.training-item{grid-template-columns:1fr;padding-left:38px;gap:8px}.training-year{padding-top:0}.training-year:after{left:-28px;right:auto;top:5px}.training-card{padding:20px}.certificate-grid,.publication-grid{grid-template-columns:1fr}.publication-side{grid-template-columns:1fr}.publication-original,.publication-appointment{grid-column:auto}.publication-detail-media{min-height:280px}.publication-detail-media img{height:280px}.publication-body h3{font-size:22px}}


/* About journey v1.2 */
.about-journey-section{padding-top:56px;padding-bottom:56px}.about-journey-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:48px;align-items:end;margin-bottom:34px}.about-journey-head h2{margin:0;max-width:650px}.about-journey-head>p{margin:0 0 4px;color:var(--muted);max-width:470px;line-height:1.75}.about-journey-timeline{position:relative;display:grid;gap:18px;max-width:980px;margin:0 auto}.about-journey-timeline:before{content:"";position:absolute;left:83px;top:24px;bottom:24px;width:1px;background:#c6d1ca}.about-journey-item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:28px;position:relative}.about-journey-year{position:relative;padding-top:25px;color:var(--green);font:700 18px var(--serif)}.about-journey-year:after{content:"";position:absolute;right:18px;top:31px;width:13px;height:13px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px var(--bg)}.about-journey-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 26px;box-shadow:0 12px 34px rgba(24,47,36,.045)}.about-journey-card h3{margin:0 0 8px;font-size:24px}.about-journey-card p{margin:0;color:var(--muted);max-width:820px;line-height:1.7}.about-journey-section+.small-pad{padding-top:18px}
@media(max-width:800px){.about-journey-head{grid-template-columns:1fr;gap:12px}.about-journey-timeline:before{left:16px}.about-journey-item{grid-template-columns:1fr;padding-left:38px;gap:8px}.about-journey-year{padding-top:0}.about-journey-year:after{left:-28px;right:auto;top:6px}.about-journey-card{padding:20px}.about-journey-section{padding-top:44px;padding-bottom:36px}}
@media(max-width:520px){.about-journey-head{margin-bottom:24px}.about-journey-card h3{font-size:21px}.about-journey-year{font-size:16px}}

/* Appointment premium v1.3 */
.booking-premium-section{padding-top:58px;background:linear-gradient(180deg,var(--bg),#f7f4ee)}
.booking-premium{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:34px;align-items:start}
.booking-trust-panel{position:sticky;top:106px;background:linear-gradient(145deg,#173926,#264f39);color:#fff;border-radius:26px;padding:38px;overflow:hidden;box-shadow:0 26px 70px rgba(18,45,31,.16)}
.booking-trust-panel:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;bottom:-90px;background:rgba(255,255,255,.055)}
.booking-trust-panel .eyebrow{color:#cfddd4}.booking-trust-panel h2{color:#fff;margin-bottom:14px}
.booking-trust-lead{color:#e1e9e4;line-height:1.78;margin:0 0 28px}
.booking-trust-list{display:grid;gap:12px}.booking-trust-item{display:grid;grid-template-columns:46px 1fr;gap:14px;padding:15px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.055);backdrop-filter:blur(8px)}
.trust-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-size:20px}
.booking-trust-item strong,.booking-trust-item small{display:block}.booking-trust-item strong{font-size:14px}.booking-trust-item small{color:#cbd9d1;font-size:12px;line-height:1.55;margin-top:4px}
.booking-security-note{display:grid;grid-template-columns:30px 1fr;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}
.booking-security-note p{margin:0;color:#dce7e1;font-size:12px;line-height:1.6}.booking-security-note strong{color:#fff}
.booking-form-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:0 22px 70px rgba(28,50,40,.09)}
.booking-form-head{padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:26px}.booking-form-head h2{margin:.1rem 0 .55rem}.booking-form-head>p:last-child{margin:0;color:var(--muted)}
.premium-booking-form{display:grid;gap:26px}.form-group-block{display:grid;gap:18px}.form-group-title{display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:start}
.form-group-title>span{width:34px;height:34px;border-radius:10px;background:#eaf1ec;color:var(--green);display:grid;place-items:center;font-weight:900;font-size:12px}.form-group-title strong,.form-group-title small{display:block}.form-group-title small{color:var(--muted);margin-top:3px;font-size:12px}
.premium-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.premium-field{display:grid;gap:8px}.premium-field.wide{grid-column:1/-1}.premium-field>span{font-size:12px;font-weight:800;color:#2e3b36}
.premium-input{position:relative}.premium-input>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-style:normal;color:#738078;font-weight:800;z-index:2;pointer-events:none}
.premium-input input,.premium-input select,.premium-field textarea{width:100%;border:1px solid #d9ded9;background:#fbfcfb;border-radius:13px;padding:13px 14px;outline:none;transition:.2s;border-color:.2s,box-shadow .2s,background .2s}
.premium-input input,.premium-input select{padding-left:40px}.premium-field textarea{resize:vertical;min-height:130px}
.premium-input input:focus,.premium-input select:focus,.premium-field textarea:focus{border-color:#759281;background:#fff;box-shadow:0 0 0 4px rgba(49,92,69,.09)}
.field-help{color:var(--muted);font-size:11px}.appointment-type-grid{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.appointment-type-grid legend{font-size:12px;font-weight:800;margin-bottom:10px;color:#2e3b36}
.appointment-type-card{position:relative;display:grid;gap:5px;padding:17px;border:1px solid #dce1dd;border-radius:16px;background:#fbfcfb;cursor:pointer;transition:.2s}.appointment-type-card:hover{border-color:#9eb1a5;transform:translateY(-2px)}
.appointment-type-card input{position:absolute;right:12px;top:12px;width:auto;accent-color:var(--green)}.appointment-type-card:has(input:checked){border-color:var(--green);background:#f0f5f2;box-shadow:0 0 0 3px rgba(49,92,69,.07)}
.type-mark{width:34px;height:34px;border-radius:11px;background:#e9efeb;color:var(--green);display:grid;place-items:center;font-weight:900;margin-bottom:5px}.appointment-type-card strong{font-size:13px}.appointment-type-card small{color:var(--muted);font-size:11px}
.privacy-consent{display:grid;grid-template-columns:22px 1fr;gap:11px;padding:16px;border:1px solid #dfe4e0;border-radius:15px;background:#fafbf9;cursor:pointer}.privacy-consent input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--green)}.privacy-consent strong,.privacy-consent small{display:block}.privacy-consent strong{font-size:12px}.privacy-consent small{color:var(--muted);font-size:11px;line-height:1.55;margin-top:3px}
.booking-submit{width:100%;border:0;border-radius:14px;background:var(--green);color:#fff;padding:16px 18px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:12px;cursor:pointer;box-shadow:0 14px 30px rgba(49,92,69,.18);transition:.22s}.booking-submit:hover{transform:translateY(-2px);background:#264d39;box-shadow:0 18px 36px rgba(49,92,69,.23)}.booking-submit b{font-size:18px}
.form-submit-note{text-align:center;color:var(--muted);font-size:11px;margin:-12px 0 0}.booking-premium-section .flash{position:static;transform:none;margin:0 0 18px;max-width:none}
.flash.success,.flash.error{border:1px solid transparent;border-radius:14px;padding:14px 16px;font-weight:650}.flash.success{background:#edf7f0;border-color:#cfe5d6;color:#235c3e}.flash.error{background:#fff1f0;border-color:#f0cfcc;color:#923e38}
@media(max-width:980px){.booking-premium{grid-template-columns:1fr}.booking-trust-panel{position:relative;top:auto}.booking-trust-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.booking-premium-section{padding-top:38px}.booking-form-card,.booking-trust-panel{padding:24px;border-radius:20px}.premium-form-grid,.appointment-type-grid,.booking-trust-list{grid-template-columns:1fr}.premium-field.wide{grid-column:auto}.booking-form-head{margin-bottom:22px}.form-group-title{grid-template-columns:34px 1fr}.booking-submit{padding:15px}.appointment-type-card{padding:15px}}
@media(max-width:420px){.booking-form-card,.booking-trust-panel{padding:20px}.booking-premium{gap:20px}.booking-trust-lead{font-size:14px}.form-group-title small{line-height:1.45}}

/* Responsive Header & Mobile Menu v2.2 */
.head-cta{border-radius:12px;white-space:nowrap;flex:0 0 auto;min-width:max-content}
.mobile-booking-link{display:none!important}
@media(min-width:901px) and (max-width:1180px){
  .header-inner{gap:12px}
  .head-cta{padding:10px 13px;font-size:12px;border-radius:11px}
  .main-nav{gap:9px}
}
@media(max-width:900px){
  .site-header{overflow:visible}
  .header-inner{position:relative}
  .menu-btn{display:grid;width:42px;height:42px;place-items:center;margin-left:auto;padding:0;border-radius:12px;background:#eef3ef;color:var(--deep);font-size:24px;line-height:1;transition:transform .28s var(--motion-ease),background .28s var(--motion-ease),color .28s var(--motion-ease)}
  .nav-open .menu-btn{transform:rotate(90deg);background:var(--green);color:#fff}
  .main-nav{display:flex;position:absolute;top:68px;left:0;right:0;margin:0;background:rgba(255,255,255,.985);border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 55px rgba(25,45,36,.16);padding:10px 14px 12px;flex-direction:column;align-items:stretch;gap:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-12px) scale(.985);transform-origin:top center;max-height:calc(100vh - 92px);overflow-y:auto;transition:opacity .24s ease,transform .32s var(--motion-ease),visibility 0s linear .32s}
  .nav-open .main-nav{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .24s ease,transform .32s var(--motion-ease),visibility 0s}
  .main-nav .nav-link{padding:12px 5px;border-bottom:1px solid var(--line);font-size:13px;opacity:0;transform:translateY(-7px);transition:opacity .22s ease,transform .28s var(--motion-ease),background .2s ease,color .2s ease}
  .nav-open .main-nav .nav-link{opacity:1;transform:none}
  .nav-open .main-nav .nav-link:nth-child(1){transition-delay:.03s}
  .nav-open .main-nav .nav-link:nth-child(2){transition-delay:.05s}
  .nav-open .main-nav .nav-link:nth-child(3){transition-delay:.07s}
  .nav-open .main-nav .nav-link:nth-child(4){transition-delay:.09s}
  .nav-open .main-nav .nav-link:nth-child(5){transition-delay:.11s}
  .nav-open .main-nav .nav-link:nth-child(6){transition-delay:.13s}
  .nav-open .main-nav .nav-link:nth-child(7){transition-delay:.15s}
  .nav-open .main-nav .nav-link:nth-child(8){transition-delay:.17s}
  .nav-open .main-nav .nav-link:nth-child(9){transition-delay:.19s}
  .nav-open .main-nav .nav-link:nth-child(10){transition-delay:.21s}
  .main-nav .nav-link:after{bottom:7px}
  .head-cta{display:none!important}
  .mobile-booking-link{display:flex!important;align-items:center;justify-content:center;margin:9px 0 2px;padding:13px 15px!important;border:0!important;border-radius:12px;background:var(--green);color:#fff;font-weight:800;box-shadow:0 10px 24px rgba(49,92,69,.16)}
  .mobile-booking-link:after{display:none!important}
}
@media(max-width:600px){
  .menu-btn{width:40px;height:40px;border-radius:11px}
  .main-nav{top:64px;left:-2px;right:-2px;border-radius:14px;padding-inline:12px}
}

@media(max-width:900px){.main-nav{top:calc(100% + 8px)}}
@media(max-width:600px){.main-nav{top:calc(100% + 6px)}}

@media(prefers-reduced-motion:reduce){.main-nav,.main-nav .nav-link,.menu-btn{transition:none!important}}
