/* Public website upgrade layer. Loaded after site.css; only adds/overrides. Palette follows the clinic emblem. */
:root{
  --g:#2a9a44; --g-d:#1a7a33; --g-l:#e5f5ea;
  --b:#1b6fd1; --b-d:#12509c; --b-l:#e4effc;
  --au:#f7961c; --au-d:#c96f00; --au-l:#fff1d9;
  --ink:#12304a; --mut:#53667a;
}
img{height:auto}
.btn-brand,.btn-gold,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}
.btn-gold{--bs-btn-color:#3b2200}
a:focus-visible,button:focus-visible,.btn:focus-visible{outline:3px solid rgba(27,111,209,.5);outline-offset:2px}

/* ---------- navigation ---------- */
.site-nav .brand img{height:52px;width:52px;object-fit:contain}
@media(max-width:575.98px){.site-nav .brand img{height:42px;width:42px}.site-nav .brand-text{font-size:.82rem;max-width:150px}}

/* ---------- hero ---------- */
.hero{background:radial-gradient(900px 480px at 88% -10%,rgba(27,111,209,.16),transparent 60%),radial-gradient(700px 420px at -5% 105%,rgba(42,154,68,.18),transparent 60%),linear-gradient(180deg,#f3fbf6,#fff)}
.hero .badge-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem}
.hero .badge-row span{display:inline-flex;align-items:center;gap:.4rem;background:#fff;border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;font-size:.86rem;font-weight:600;box-shadow:var(--sh)}
.hero .badge-row i{color:var(--g)}
.hero-visual{position:relative;max-width:560px;margin-inline:auto}
.hero-visual .frame{border-radius:32px;overflow:hidden;box-shadow:var(--sh-lg);border:6px solid #fff;background:#fff;aspect-ratio:3/2}
.hero-visual .frame img{width:100%;height:100%;object-fit:cover;display:block}
.hero-visual .emblem{position:absolute;left:-14px;bottom:-26px;width:104px;height:104px;border-radius:50%;background:#fff;padding:6px;box-shadow:var(--sh-lg)}
.hero-visual .emblem img{width:100%;height:100%;object-fit:contain}
.hero-visual .chip{position:absolute;background:#fff;border-radius:14px;box-shadow:var(--sh);padding:.55rem .85rem;font-weight:600;font-size:.86rem;display:flex;gap:.5rem;align-items:center}
.hero-visual .chip i{color:var(--g);font-size:1.1rem}
@media(max-width:575.98px){.hero-visual .chip{display:none}.hero-visual .emblem{width:78px;height:78px;left:-6px;bottom:-18px}}

/* ---------- page head with image ---------- */
.page-head{background:linear-gradient(120deg,var(--g-l),var(--b-l));padding:44px 0}
.page-head h1{font-size:clamp(1.6rem,3.6vw,2.4rem)}
.page-head.has-img{position:relative;color:#fff;background:#12304a;padding:64px 0;overflow:hidden}
.page-head.has-img .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35}
.page-head.has-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,48,74,.92),rgba(18,48,74,.45))}
.page-head.has-img .container{position:relative;z-index:2}
.page-head.has-img .breadcrumb a,.page-head.has-img .breadcrumb-item.active,.page-head.has-img .text-muted{color:#e6eefa!important}
.page-head.has-img .breadcrumb-item+.breadcrumb-item::before{color:#cfe0f5}

/* ---------- service cards ---------- */
.svc-card{display:flex;flex-direction:column;overflow:hidden;padding:0;height:100%}
.svc-card .media{position:relative;aspect-ratio:3/2;background:var(--g-l);overflow:hidden;display:block}
.svc-card .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.svc-card:hover .media img{transform:scale(1.05)}
.svc-card .media .tag{position:absolute;left:12px;top:12px;width:42px;height:42px;border-radius:12px;background:#fff;display:grid;place-items:center;color:var(--g);font-size:1.3rem;box-shadow:var(--sh)}
.svc-card .info{padding:1.15rem 1.2rem 0;flex:1}
.svc-card h3{font-size:1.1rem;margin:0 0 .35rem}
.svc-card h3 a{color:var(--ink)}
.svc-card p{color:var(--mut);font-size:.93rem;margin:0}
.svc-card .actions{display:flex;gap:.5rem;padding:1rem 1.2rem 1.2rem}
.svc-card .actions .btn{flex:1;padding:.5rem .6rem;font-size:.92rem}
@media(max-width:380px){.svc-card .actions{flex-direction:column}}

/* ---------- detail pages ---------- */
.detail-img{border-radius:24px;overflow:hidden;box-shadow:var(--sh);margin-bottom:1.6rem;aspect-ratio:16/9;background:var(--g-l)}
.detail-img img{width:100%;height:100%;object-fit:cover;display:block}
.prose{max-width:none;font-size:1.04rem}
.prose h2{font-size:1.35rem;margin:2rem 0 .7rem;padding-left:.8rem;border-left:5px solid var(--au)}
.prose ul{padding-left:1.2rem}.prose li{margin:.35rem 0}
.prose li::marker{color:var(--g)}
.prose blockquote{background:var(--au-l);border-left:5px solid var(--au);border-radius:12px;padding:1rem 1.2rem;color:#5b4208;margin:1.6rem 0}
.side-card{position:sticky;top:96px}
.side-card .box{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh);padding:1.4rem;margin-bottom:1.2rem}
.side-card .box.book{background:linear-gradient(135deg,var(--g-d),var(--b-d));color:#fff;border:0}
.side-card .rel a{display:flex;gap:.75rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line);color:var(--ink)}
.side-card .rel a:last-child{border:0}
.side-card .rel img{width:56px;height:42px;object-fit:cover;border-radius:8px;flex:none}
@media(max-width:991.98px){.side-card{position:static}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:1.2rem 0}
.facts div{background:var(--g-l);border-radius:14px;padding:.8rem 1rem}
.facts b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--g-d)}

/* ---------- team ---------- */
.doc{position:relative}
.doc .ph{aspect-ratio:1/1;background:linear-gradient(135deg,var(--g-l),var(--b-l))}
.doc .ph img{object-position:center top}
.ribbon{position:absolute;top:12px;left:12px;z-index:2;background:rgba(18,48,74,.85);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:.2rem .6rem}
.doc .body .meta{display:flex;justify-content:center;gap:.8rem;font-size:.82rem;color:var(--mut);margin-top:.4rem;flex-wrap:wrap}
.doc .actions{display:flex;gap:.5rem;justify-content:center;margin-top:.9rem}
.doc .actions .btn{flex:1;padding:.5rem .6rem;font-size:.9rem}
.profile-photo{border-radius:24px;overflow:hidden;box-shadow:var(--sh);background:linear-gradient(135deg,var(--g-l),var(--b-l));position:relative;aspect-ratio:1/1}
.profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.sched{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.sched div{border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem;background:#fff}
.sched b{display:block;color:var(--g-d)}

/* ---------- gallery ---------- */
.gcat{border-radius:999px!important;padding:.4rem 1rem!important}
.gal{cursor:zoom-in}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:.7rem .9rem;background:linear-gradient(transparent,rgba(18,48,74,.78));color:#fff;font-size:.85rem;opacity:0;transform:translateY(8px);transition:.25s}
.gal:hover figcaption,.gal:focus-within figcaption{opacity:1;transform:none}
@media(hover:none){.gal figcaption{opacity:1;transform:none}}
.lb{position:fixed;inset:0;background:rgba(10,24,38,.92);z-index:2000;display:none;align-items:center;justify-content:center;padding:1rem}
.lb.on{display:flex}
.lb img{max-width:min(1100px,96vw);max-height:80vh;border-radius:16px;background:#fff}
.lb .cap{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:#fff}
.lb button{position:absolute;top:14px;right:18px;border:0;background:#fff;border-radius:50%;width:42px;height:42px;font-size:1.3rem}

/* ---------- articles ---------- */
.art-card{display:flex;flex-direction:column;overflow:hidden;height:100%;color:inherit}
.art-card .cover{aspect-ratio:16/10;background:var(--b-l);overflow:hidden}
.art-card .cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.art-card:hover .cover img{transform:scale(1.05)}
.art-card .txt{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.art-card h3{font-size:1.08rem;margin:.1rem 0}
.art-card .more{margin-top:auto;font-weight:700;color:var(--g)}
.art-feature{display:grid;grid-template-columns:1.15fr 1fr;overflow:hidden;color:inherit}
.art-feature .cover{min-height:300px;background:var(--b-l)}
.art-feature .cover img{width:100%;height:100%;object-fit:cover}
.art-feature .txt{padding:2rem}
@media(max-width:767.98px){.art-feature{grid-template-columns:1fr}.art-feature .cover{min-height:0;aspect-ratio:16/10}.art-feature .txt{padding:1.3rem}}
.read-meta{color:var(--mut);font-size:.88rem;display:flex;gap:.9rem;flex-wrap:wrap}

/* ---------- contact ---------- */
.info-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem}
.info-list li{display:flex;gap:.9rem;align-items:flex-start}
.info-list .ico{width:44px;height:44px;border-radius:12px;background:var(--g-l);color:var(--g);display:grid;place-items:center;font-size:1.2rem;flex:none}
.info-list small{display:block;color:var(--mut);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.map-wrap{border-radius:22px;overflow:hidden;box-shadow:var(--sh);border:1px solid var(--line);background:var(--bg);min-height:320px}
.map-wrap iframe{width:100%;height:100%;min-height:340px;border:0;display:block}

/* ---------- booking context banner ---------- */
.book-ctx{display:flex;gap:.9rem;align-items:center;background:var(--g-l);border:1px solid rgba(42,154,68,.25);border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem}
.book-ctx img{width:64px;height:48px;object-fit:cover;border-radius:10px}

/* ---------- misc polish ---------- */
.cta-band{background:linear-gradient(120deg,var(--g-d),var(--b-d))}
.cta-band::after{background:rgba(247,150,28,.28)}
.section{padding:72px 0}
@media(max-width:991.98px){.section{padding:48px 0}}
@media(max-width:575.98px){
  .section{padding:38px 0}
  .section-title{font-size:1.55rem}
  .cta-band{padding:1.8rem 1.3rem;border-radius:22px}
  .page-head{padding:30px 0}.page-head.has-img{padding:44px 0}
  .btn-lg{padding:.7rem 1.2rem}
  .trust{grid-template-columns:1fr 1fr}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.has-cta{padding-bottom:0}
@media(max-width:991.98px){body.has-cta{padding-bottom:72px}}

/* services mega-menu: hover on desktop, caret/click elsewhere */
.site-nav .nav-hover{position:relative}
.site-nav .nav-hover>button.nav-link{border:0;background:none}
@media(min-width:992px){.site-nav .nav-hover:hover>.dropdown-menu{display:block;top:100%;left:50%;transform:translateX(-30%)}}
.site-nav .mega{max-height:70vh;overflow:auto}

/* navbar: never wrap on laptops */
.site-nav .nav{flex-wrap:nowrap}
.site-nav .nav-link{white-space:nowrap;padding:.5rem .62rem}
.site-nav .btn,.site-nav .lang-switch a{white-space:nowrap}
.lang-switch{flex:none}
@media(min-width:992px) and (max-width:1399.98px){.site-nav .brand-text{display:none!important}.site-nav .nav-link{padding:.5rem .5rem;font-size:.94rem}}

/* ======================= v3: photographic redesign ======================= */
/* page banner now an <img> (srcset, no CSS background) */
.page-head.has-img .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38}
.page-head.has-img h1{color:#fff}

/* ---------- full-width photographic hero ---------- */
.hero-photo{position:relative;background:#0c2b45;color:#fff;overflow:hidden}
.hero-photo .carousel,.hero-photo .carousel-inner,.hero-photo .carousel-item{min-height:inherit}
.hs-slide{position:relative;min-height:clamp(560px,86vh,780px);display:flex;align-items:center;padding:84px 0 112px}
.hs-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%}
.hs-overlay{position:absolute;inset:0;background:linear-gradient(95deg,rgba(8,34,56,.94) 0%,rgba(8,34,56,.82) 36%,rgba(8,34,56,.38) 68%,rgba(8,34,56,.12) 100%)}
.hs-content{position:relative;z-index:2}
.hs-text{max-width:620px}
.hs-text>*{animation:hsUp .7s both}.hs-text>*:nth-child(2){animation-delay:.08s}.hs-text>*:nth-child(3){animation-delay:.16s}.hs-text>*:nth-child(4){animation-delay:.24s}.hs-text>*:nth-child(5){animation-delay:.32s}
@keyframes hsUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.hs-eyebrow{display:inline-flex;gap:.5rem;align-items:center;font-weight:700;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#ffd58a;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.22);padding:.35rem .85rem;border-radius:999px}
.hs-text h1,.hs-text .hs-h{display:block;font-size:clamp(2.2rem,5.4vw,4.1rem);line-height:1.08;margin:1.1rem 0 .9rem;font-weight:800;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hs-lead{font-size:clamp(1rem,1.7vw,1.2rem);color:#e3edf7;max-width:54ch;margin:0}
.hs-badges{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.6rem}
.hs-badges span{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:.32rem .8rem;font-size:.85rem;font-weight:600}
.hs-badges i{color:#ffd58a}
.hs-call{margin:1.2rem 0 0;color:#cfe0f0}.hs-call i{color:#ffd58a;margin-right:.45rem}.hs-call a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.hero-photo .btn-outline-light{--bs-btn-hover-color:#0c2b45}
.hero-photo .carousel-indicators{margin-bottom:5.2rem}
.hero-photo + .section-sm{margin-top:-62px;position:relative;z-index:3;padding-top:0}
.hero-photo + .section-sm .trust .t{box-shadow:var(--sh-lg)}
@media(max-width:767.98px){
  .hs-slide{padding:56px 0 96px;min-height:min(640px,92svh)}
  .hs-bg{object-position:68% 30%}
  .hs-overlay{background:linear-gradient(180deg,rgba(8,34,56,.9) 0%,rgba(8,34,56,.78) 55%,rgba(8,34,56,.88) 100%)}
  .hs-text .btn-lg{flex:1 1 100%}
  .hs-badges span{font-size:.8rem}
  .hero-photo + .section-sm{margin-top:-48px}
}

/* ---------- About block ---------- */
.about-media{position:relative;padding:0 0 38px 0}
.about-media .main{border-radius:28px;overflow:hidden;box-shadow:var(--sh-lg);aspect-ratio:4/3;background:var(--g-l)}
.about-media .main img{width:100%;height:100%;object-fit:cover;display:block}
.about-media .inset{position:absolute;right:-14px;bottom:0;width:44%;border-radius:20px;overflow:hidden;border:6px solid #fff;box-shadow:var(--sh-lg);aspect-ratio:4/3;background:var(--g-l)}
.about-media .inset img{width:100%;height:100%;object-fit:cover;display:block}
.about-media .badge-est{position:absolute;left:-10px;top:22px;background:#fff;border-radius:18px;box-shadow:var(--sh-lg);padding:.55rem .9rem .55rem .55rem;display:flex;gap:.6rem;align-items:center}
.about-media .badge-est img{width:46px;height:46px;object-fit:contain}
.about-media .badge-est b{display:block;font-size:1.15rem;line-height:1}.about-media .badge-est small{color:var(--mut)}
@media(max-width:575.98px){.about-media .inset{right:0;width:46%}.about-media .badge-est{left:6px;top:12px}}
.mv{border-radius:18px;padding:1rem 1.1rem;height:100%}.mv p{margin:.3rem 0 0;font-size:.93rem;color:#33475b}
.mv-g{background:var(--g-l)}.mv-b{background:var(--b-l)}
ul.tick{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.55rem}
ul.tick li{position:relative;padding-left:1.7rem;color:var(--mut)}
ul.tick li::before{content:"\F26A";font-family:"bootstrap-icons";position:absolute;left:0;top:.05rem;color:var(--g);font-size:1.05rem}
ul.tick li b{color:var(--ink)}
.why-chip{display:flex;gap:.6rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.65rem .85rem;font-weight:600;font-size:.93rem}
.why-chip i{color:var(--g);font-size:1.2rem}

/* ---------- article extras / notes / booking band ---------- */
.art-card .cover,.art-feature .cover{position:relative}
.cat-chip{position:absolute;left:12px;top:12px;background:rgba(255,255,255,.94);color:var(--g-d);font-weight:700;font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.25rem .7rem;box-shadow:var(--sh)}
.photo-note{font-size:.84rem;color:var(--mut);background:var(--bg);border:1px dashed var(--line);border-radius:12px;padding:.6rem .9rem}
.book-band{background:linear-gradient(120deg,var(--g-d),var(--b-d));color:#fff;border-radius:22px;padding:1.5rem 1.6rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}
.book-band h2{color:#fff}
@media(max-width:575.98px){.book-band{padding:1.2rem}.book-band .btn{flex:1 1 100%}}
.detail-img img,.svc-card .media img,.art-card .cover img,.gal img{background:var(--g-l)}
.gal img{aspect-ratio:3/2}
.gcat{white-space:nowrap}
@media(max-width:575.98px){#gcats{flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:.4rem;-webkit-overflow-scrolling:touch}}

/* ---------- tiny screens (320px) ---------- */
@media(max-width:359.98px){
  .container{padding-inline:14px}
  .hs-text h1,.hs-text .hs-h{font-size:2rem}
  .btn-lg{font-size:.95rem;padding:.65rem 1rem}
  .site-nav .brand img{width:38px;height:38px}
  .lang-switch a{padding:.3rem .5rem}
  .svc-card .actions .btn{font-size:.85rem}
}

/* ---------- fixes from the responsive audit (320px / 1024px) ---------- */
.trust{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
@media(max-width:575.98px){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trust .t{min-width:0;padding:.85rem .9rem}
.trust .t>div{min-width:0}.trust .t b,.trust .t small{overflow-wrap:anywhere}
@media(max-width:399.98px){.trust .t{flex-direction:column;align-items:flex-start;gap:.35rem}.trust .t b{font-size:.95rem}}
@media(min-width:992px) and (max-width:1199.98px){
  .site-nav .nav-link{padding:.45rem .42rem;font-size:.9rem}
  .site-nav .btn-brand{padding:.5rem .85rem;font-size:.9rem}
  .site-nav .container{gap:.4rem!important}
  .lang-switch a{padding:.3rem .5rem}
}

/* about photo: taller + sticky on desktop so it balances the text column */
@media(min-width:992px){
  .about-media{position:sticky;top:104px}
  .about-media .main{aspect-ratio:1/1}
  .about-media .inset{bottom:6px}
}

/* logos with explicit heights must keep them (global img{height:auto} would stretch them) */
.footer .logo-wrap img{height:60px;width:60px;object-fit:contain}
.offcanvas-header img{height:44px;width:44px;object-fit:contain}

/* featured article: portrait photos must not stretch the card */
@media(min-width:768px){.art-feature{align-items:stretch}.art-feature .cover{min-height:0;height:min(440px,46vw);overflow:hidden}.art-feature .cover img{height:100%;object-position:center 30%}}
