
/* v2.1.22 — local Google Sans */
@font-face{
  font-family:"Google Sans Local";
  src:url("../fonts/GoogleSans-Regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"Google Sans Local";
  src:url("../fonts/GoogleSans-Medium.ttf") format("truetype");
  font-style:normal;
  font-weight:500;
  font-display:swap;
}
@font-face{
  font-family:"Google Sans Local";
  src:url("../fonts/GoogleSans-SemiBold.ttf") format("truetype");
  font-style:normal;
  font-weight:600;
  font-display:swap;
}
@font-face{
  font-family:"Google Sans Local";
  src:url("../fonts/GoogleSans-Bold.ttf") format("truetype");
  font-style:normal;
  font-weight:700;
  font-display:swap;
}

html,
body,
button,
input,
textarea,
select{
  font-family:"Google Sans Local","Google Sans",Arial,sans-serif;
}

h1,h2,h3,h4,h5,h6,
.site-nav,
.mobile-menu,
.btn{
  font-family:"Google Sans Local","Google Sans",Arial,sans-serif;
}

/* Mobile menu open: JS fixes the body in place; this prevents touch scrolling. */
@media (max-width:1100px){
  body.mobile-menu-open{
    overflow:hidden;
    overscroll-behavior:none;
    touch-action:none;
  }
}

:root{
--bg:#f7f7f3;--surface:#fff;--surface-soft:#f0f0ea;--text:#171815;--muted:#6f716c;--line:#dedfd8;--accent:#20221e;--warm:#d9c7ae;--container:1380px;--radius:28px;--shadow:0 22px 70px rgba(20,22,18,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 64px),var(--container));margin:auto}.site-main{overflow:clip}.section{padding:112px 0}.eyebrow{margin:0 0 18px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.055em;line-height:.98}h1{font-size:clamp(54px,7vw,112px)}h2{font-size:clamp(42px,5vw,76px)}h3{letter-spacing:-.03em}.lead,.section-heading p,.hero__lead{color:var(--muted);font-size:clamp(18px,1.6vw,22px);line-height:1.65;max-width:760px}.section-heading{max-width:900px;margin-bottom:48px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:0 28px;border-radius:999px;font-size:15px;font-weight:800;transition:.25s ease}.btn--primary{background:var(--text);color:#fff}.btn--primary:hover{transform:translateY(-2px);background:#000}.btn--secondary{background:var(--surface);border:1px solid var(--line)}.btn--secondary:hover{transform:translateY(-2px);border-color:#aaa}.text-link,.section-link{font-weight:800}.section-link{display:inline-block;margin-top:34px}.empty-note{padding:28px;background:var(--surface);border-radius:20px;color:var(--muted)}
/* header */
.site-header{position:fixed;top:18px;left:0;width:100%;z-index:999;display:flex;justify-content:center;transition:transform .35s ease}.site-header.is-hidden{transform:translateY(-150%)}.site-header__inner{width:min(1580px,calc(100% - 28px));min-height:76px;padding:10px 18px 10px 24px;display:flex;align-items:center;gap:28px;border:1px solid rgba(255,255,255,.65);border-radius:22px;background:rgba(255,255,255,.58);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 45px rgba(20,22,18,.05);transition:.35s ease}.site-header.is-scrolled .site-header__inner{min-height:66px;background:rgba(255,255,255,.86)}.site-logo{display:flex;align-items:center;flex:0 0 auto}.site-logo .custom-logo-link,.footer-logo .custom-logo-link{display:flex;align-items:center}.site-logo img{width:auto;height:54px;max-width:320px;object-fit:contain;transition:.35s}.site-header.is-scrolled .site-logo img{height:46px}.site-logo__text{font-weight:900}.site-nav{flex:1;display:flex;justify-content:flex-end}.site-nav__list{display:flex;gap:28px;align-items:center;list-style:none;margin:0;padding:0}.site-nav__list a{font-size:14px;font-weight:650}.site-nav__list a:hover{opacity:.55}.header-cta{padding:16px 24px;border-radius:999px;background:var(--text);color:#fff;font-size:14px;font-weight:800}.menu-toggle{display:none;margin-left:auto;width:50px;height:50px;border:1px solid var(--line);border-radius:999px;background:#fff}.menu-toggle span{display:block;width:22px;height:2px;background:var(--text);margin:5px auto;transition:.25s}.mobile-menu{display:none}
/* shared media placeholders */
.media-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:320px;background:linear-gradient(135deg,#eeeae2,#d9d2c7);color:var(--muted)}
.media-placeholder.tall{min-height:560px}
/* cards / sections */
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.service-card,.team-card{display:flex;flex-direction:column;background:var(--surface);border-radius:24px;overflow:hidden;border:1px solid rgba(0,0,0,.03);transition:.3s ease}.service-card:hover,.team-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.card-media{height:330px;overflow:hidden}.card-media.portrait{height:470px}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.service-card:hover img,.team-card:hover img{transform:scale(1.025)}.card-body{padding:28px}.card-body h2,.card-body h3{font-size:28px;margin-bottom:12px}.card-body p{color:var(--muted)}.text-link{display:inline-block;margin-top:16px;font-size:14px}.about{background:var(--surface)}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:82px;align-items:center}.about__media{position:relative;overflow:hidden;border-radius:var(--radius)}.about__media>img{width:100%;height:680px;object-fit:cover}.image-caption{position:absolute;left:24px;bottom:24px;padding:12px 16px;border-radius:999px;background:rgba(25,27,26,.50);backdrop-filter:blur(12px);font-size:13px}.numbered-list{margin:36px 0;display:grid}.numbered-list article{display:grid;grid-template-columns:54px 1fr;gap:22px;padding:24px 0;border-top:1px solid var(--line)}.numbered-list article>span{font-size:12px;color:var(--muted)}.numbered-list h3{font-size:22px;margin-bottom:8px}.numbered-list p{color:var(--muted);margin:0}.patients__grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:80px}.condition-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}.condition-list span,.tag-list span{padding:10px 15px;border:1px solid var(--line);background:var(--surface);border-radius:999px;font-size:14px}.booking-panel{padding:32px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);position:sticky;top:110px}.booking-panel h3{font-size:34px}.booking-panel .btn{width:100%;margin-top:10px}.booking-qr,.qr-placeholder{width:100%;aspect-ratio:1;object-fit:contain;margin:20px 0;border-radius:20px}.qr-placeholder{display:grid;place-items:center;background:var(--surface-soft);color:var(--muted)}.reviews{background:var(--surface-soft)}.reviews__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}.reviews-placeholder{padding:48px;border-radius:var(--radius);background:var(--surface)}.rating{font-size:64px;font-weight:800;letter-spacing:-.06em}.rating span{display:block;font-size:18px;letter-spacing:.1em;color:#c49a4a}.faq{background:var(--surface)}.faq__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq__intro{position:sticky;top:110px;align-self:start}.faq__items{display:grid;gap:12px}.faq-item{background:var(--bg);border-radius:18px;overflow:hidden}.faq-item summary{list-style:none;cursor:pointer;padding:22px 58px 22px 24px;font-weight:800;position:relative}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:'+';position:absolute;right:24px;font-size:24px;top:50%;transform:translateY(-50%)}.faq-item[open] summary:after{content:'–'}.faq-answer{padding:0 24px 24px;color:var(--muted)}.faq-answer p:last-child{margin-bottom:0}.contact__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:stretch}.contact-data{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:36px 0}.contact-data>*{padding:18px 0;border-top:1px solid var(--line)}.contact-data small,.contact-data strong{display:block}.contact-data small{color:var(--muted);margin-bottom:5px}.contact-actions{display:flex;gap:12px;flex-wrap:wrap}.map-box{border-radius:var(--radius);overflow:hidden;min-height:540px;background:var(--surface-soft)}.map-box iframe{width:100%;height:100%;min-height:540px;border:0}
/* detail pages */
.page-hero,.detail-hero{padding:170px 0 76px;background:var(--surface)}.page-hero h1{max-width:980px}.detail-hero__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.detail-hero__media{height:620px;border-radius:var(--radius);overflow:hidden}.detail-hero__media img{width:100%;height:100%;object-fit:cover}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:70px;align-items:start}.detail-main{display:grid;gap:24px}.content-card,.info-card{padding:38px;border-radius:var(--radius);background:var(--surface)}.content-card h2{font-size:38px}.content-card p,.content-card li{font-size:18px;color:var(--muted)}.check-list{list-style:none;padding:0;display:grid;gap:10px}.check-list li:before{content:'✓';margin-right:10px}.detail-sidebar{position:sticky;top:110px}.info-card h3{font-size:30px}.price-list{margin:20px 0}.price-list>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line)}.info-card .btn{width:100%;margin-top:15px}.person-page{padding:170px 0 110px;background:var(--surface)}.person-grid{display:grid;grid-template-columns:minmax(0,1.15fr) 480px;gap:80px;align-items:start}.person-content h1{font-size:clamp(54px,6vw,96px)}.person-bio{margin-top:50px;font-size:19px;color:var(--muted)}.person-bio h2{color:var(--text);font-size:42px}.person-photo-sticky{position:sticky;top:110px}.person-photo-sticky>img{width:100%;height:650px;object-fit:cover;border-radius:var(--radius)}.person-photo-sticky .btn{width:100%;margin-top:14px}.tag-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.certificates{margin-top:60px}.certificate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.certificate{padding:0;border:0;background:none;cursor:zoom-in;border-radius:16px;overflow:hidden}.certificate img{width:100%;aspect-ratio:4/3;object-fit:cover}.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.86);display:grid;place-items:center;opacity:0;pointer-events:none;transition:.25s}.lightbox.is-open{opacity:1;pointer-events:auto}.lightbox img{max-width:min(90vw,1200px);max-height:88vh}.lightbox__close{position:absolute;right:24px;top:24px;width:50px;height:50px;border:0;border-radius:999px;background:#fff;font-size:30px}.filter-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}.filter-links a{padding:10px 16px;border-radius:999px;border:1px solid var(--line)}.filter-links a.active{background:var(--text);color:#fff}.pricing-list{display:grid}.pricing-service{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:32px 0;border-top:1px solid var(--line)}.pricing-service h2{font-size:32px}.pricing-service p{display:flex;justify-content:space-between;gap:20px;margin:0;padding:8px 0}.content-prose{max-width:900px}.content-prose>*+*{margin-top:1.4em}
/* footer */
.site-footer{background:#1d1f1b;color:#fff;padding:80px 0 28px}.site-footer__grid{display:grid;grid-template-columns:1.35fr .8fr 1fr 1fr;gap:54px}.footer-logo{margin-bottom:22px}.footer-logo img{width:auto;height:60px;max-width:330px;object-fit:contain;filter:brightness(0) invert(1)}.site-footer p,.footer-links a,.footer-links{color:rgba(255,255,255,.65)}.footer-links{list-style:none;padding:0;margin:0;display:grid;gap:10px}.footer-cta{display:inline-flex;margin-top:16px;padding:13px 20px;background:#fff;color:#111;border-radius:999px;font-weight:800}.site-footer__bottom{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:13px}.site-footer__bottom p{margin:0}.legal-menu{display:flex;gap:18px;list-style:none;margin:0;padding:0}.legal-menu a{color:rgba(255,255,255,.7)}
@media(max-width:1100px){.site-nav,.header-cta{display:none}.menu-toggle{display:block}.mobile-menu{position:fixed;top:102px;left:14px;right:14px;display:block;padding:20px;border-radius:22px;background:rgba(255,255,255,.96);box-shadow:var(--shadow);transform:translateY(-10px);opacity:0;pointer-events:none;transition:.25s}.mobile-menu-open .mobile-menu{opacity:1;transform:none;pointer-events:auto}.mobile-menu__list,.mobile-menu .site-nav__list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.mobile-menu a{display:block;padding:15px;border-radius:12px;font-weight:800}.split-grid,.reviews__grid,.faq__grid,.contact__grid,.detail-hero__grid,.person-grid{grid-template-columns:1fr}.patients__grid,.detail-grid{grid-template-columns:1fr}.booking-panel,.detail-sidebar,.person-photo-sticky,.faq__intro{position:static}.person-photo-sticky{order:-1}.person-photo-sticky>img{height:560px}.site-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.container{width:min(calc(100% - 32px),var(--container))}.section{padding:76px 0}.site-header{top:10px}.site-header__inner{width:calc(100% - 20px);min-height:72px;padding:7px 8px 7px 16px}.site-logo img{height:44px;max-width:210px}.menu-toggle{width:46px;height:46px}.contact-actions{display:grid}.contact-actions .btn{width:100%}.cards-grid,.contact-data,.site-footer__grid{grid-template-columns:1fr}.card-media{height:280px}.card-media.portrait{height:430px}.about__media>img{height:470px}.reviews-placeholder{padding:28px}.contact__grid{gap:34px}.map-box,.map-box iframe{min-height:360px}.page-hero,.detail-hero,.person-page{padding-top:125px}.detail-hero__media{height:400px}.content-card,.info-card{padding:25px}.person-photo-sticky>img{height:460px}.certificate-grid{grid-template-columns:repeat(2,1fr)}.pricing-service{grid-template-columns:1fr;gap:12px}.site-footer__bottom{display:grid}.legal-menu{flex-wrap:wrap}}

/* v2.0.1 layout refinements */
@media(min-width:1101px){
  .patients__grid{grid-template-columns:minmax(0,1.35fr) minmax(330px,390px);gap:96px;align-items:start}
  .patients__grid>div:first-child{min-width:0}
  .patients h2{max-width:900px}
  .booking-panel{width:100%}
  .team__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.person-actions{display:grid;gap:10px;margin-top:14px}.person-actions .btn{width:100%;margin:0}
.person-content,.card-body{min-width:0}.card-body p{overflow-wrap:anywhere}

/* =========================================================
   V2.1 — AIRY MINIMAL REDESIGN
   ========================================================= */
:root{
  --bg:#f3f3f1;
  --surface:#ffffff;
  --surface-soft:#f8f8f6;
  --text:#1b1c1a;
  --muted:#777a75;
  --line:#e8e8e4;
  --accent:#111210;
  --container:1420px;
  --radius:24px;
  --shadow:0 18px 55px rgba(17,18,16,.06);
}
body{background:var(--bg)}
.site-main{width:min(1720px,calc(100% - 48px));margin:14px auto 0;background:var(--surface);overflow:clip;border-radius:32px 32px 0 0}
.container{width:min(calc(100% - 72px),var(--container));margin-inline:auto}
.section{padding:88px 0}
h1,h2{font-weight:500;letter-spacing:-.045em;line-height:1.02}
h1{font-size:clamp(46px,5.25vw,78px)}
h2{font-size:clamp(32px,3.5vw,52px)}
h3{font-weight:600}
.eyebrow{font-size:11px;letter-spacing:.2em;font-weight:700;color:#6f726d}
.lead,.section-heading p,.hero__lead{font-size:clamp(16px,1.35vw,19px);line-height:1.65;color:var(--muted)}
.section-heading{max-width:760px;margin-bottom:36px}
.section-heading--row{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;max-width:none}
.section-heading--row>div{max-width:760px}
.section-link--top{margin:0 0 7px;white-space:nowrap;font-size:13px}
.btn{min-height:52px;padding:0 24px;font-size:14px;font-weight:700}
.btn--primary{background:transparent;color:#088087;border:1px solid #088087}
.btn--primary:hover{transform:translateY(-2px);background:#088087;color:#fff;border-color:#088087}

/* header — narrower than content, white, non-transparent */
.site-header{top:14px}
.site-header__inner{width:min(1240px,calc(100% - 36px));min-height:82px;padding:9px 14px 9px 22px;background:#fff;border:1px solid #ecece8;border-radius:18px;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 10px 30px rgba(16,17,15,.06)}
.site-header.is-scrolled .site-header__inner{min-height:66px;background:#fff}
.site-logo img{height:48px;max-width:280px}.site-header.is-scrolled .site-logo img{height:44px}
.site-nav__list{gap:24px}.site-nav__list a{font-size:13px;font-weight:600}.header-cta{padding:14px 22px;font-size:13px}

/* hero — clean integrated composition */
.hero{padding:118px 0 82px;background:#fff}
.hero__grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:46px;align-items:center;min-height:650px}
.hero__content{padding:34px 0 50px;max-width:600px}
.hero__lead{max-width:520px;margin-top:24px}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.hero__media{position:relative;height:640px;border-radius:0 0 0 28px;overflow:hidden;background:#ecece8}
.hero__image,.hero__media>img{width:100%;height:100%;object-fit:cover;object-position:center center}
.hero-benefits{position:absolute;left:16px;right:16px;bottom:16px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(25,27,26,.50);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);border-radius:16px;box-shadow:0 18px 45px rgba(20,22,18,.12);overflow:hidden;color:#fff}
.hero-benefit{min-width:0;min-height:132px;padding:18px 16px;border-right:1px solid rgba(255,255,255,.14)}
.hero-benefit:last-child{border-right:0}
.hero-benefit__icon{height:24px;margin-bottom:12px;display:flex;align-items:center}
.hero-benefit__icon img{max-height:24px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.hero-benefit__icon span{font-size:11px;color:rgba(255,255,255,.75)}
.hero-benefit h3{margin:0 0 5px;font-size:13px;line-height:1.25;font-weight:600;letter-spacing:-.015em;color:#fff}
.hero-benefit p{margin:0;color:rgba(255,255,255,.78);font-size:11px;line-height:1.4}

/* service cards — image-first with inset glass captions */
.services{background:#fff}.services__grid{gap:22px}.service-card,.team-card{background:transparent;border:0;border-radius:20px;overflow:visible}.service-card:hover,.team-card:hover{box-shadow:none}
.card-media{position:relative;height:360px;border-radius:18px;overflow:hidden;background:#ecece8}.card-media.portrait{height:455px}.card-media img{width:100%;height:100%;object-fit:cover}
.media-overlay-card{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 18px 16px;border-radius:14px;background:rgba(25,27,26,.50);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.18);color:#fff}
.media-overlay-card__copy{min-width:0}.media-overlay-card h3{font-size:20px;font-weight:600;letter-spacing:-.025em;margin:0 0 5px}.media-overlay-card p{font-size:13px;line-height:1.45;color:rgba(255,255,255,.82);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.media-overlay-card__arrow{font-size:22px;line-height:1;flex:0 0 auto}.media-overlay-card--compact{padding:16px}.media-overlay-card--compact h3{font-size:18px}.media-overlay-card--compact p{font-size:12px}

/* about */
.about{background:#fff;border-top:1px solid var(--line)}.about__grid{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:72px}.about__content{max-width:600px}.about__media{height:560px;border-radius:18px}.about__media>img,.about__media>.media-placeholder{width:100%;height:100%;object-fit:cover}.numbered-list{margin:28px 0 32px}.numbered-list article{grid-template-columns:40px 1fr;padding:18px 0}.numbered-list h3{font-size:17px;font-weight:600}.numbered-list p{font-size:14px;line-height:1.55}
.image-caption--panel{left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:17px 18px;border-radius:14px;background:rgba(25,27,26,.50);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.18);color:#fff}
.image-caption--panel strong{font-size:18px;font-weight:600}.image-caption--panel span{font-size:13px;color:rgba(255,255,255,.82)}.image-caption--panel b{grid-column:2;grid-row:1/3;align-self:center;font-size:22px;font-weight:400}

/* patients / booking */
.patients{background:#fff;border-top:1px solid var(--line)}.patients__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:center}.patients__copy{max-width:620px}.condition-list{margin-top:26px;gap:8px}.condition-list span{padding:8px 12px;font-size:12px;background:#fff}
.booking-panel{position:static;display:grid;grid-template-columns:190px 1fr;gap:28px;align-items:center;padding:24px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:none}.booking-panel__qr{display:flex}.booking-qr,.qr-placeholder{margin:0;width:100%;aspect-ratio:1;border-radius:16px;border:1px solid var(--line)}.booking-panel__content h3{font-size:30px;font-weight:500;letter-spacing:-.035em;margin-bottom:10px}.booking-panel__content>p:not(.eyebrow){color:var(--muted);font-size:14px;max-width:420px}.booking-panel .btn{width:auto;margin-top:12px}.booking-phone{display:inline-block;margin-left:14px;font-size:13px}

/* team */
.team{background:#fff;border-top:1px solid var(--line)}.team__grid{gap:22px}.team .section-heading{margin-bottom:34px}

/* reviews + faq compact row */
.reviews-faq{background:#fff;border-top:1px solid var(--line)}.reviews-faq__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}.reviews-compact,.faq-compact{min-width:0}.reviews-compact h2,.faq-compact h2{font-size:clamp(30px,3vw,44px)}.reviews-compact .lead,.faq-compact .lead{font-size:15px;margin-bottom:24px}.review-card-demo{padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}.review-card-demo__top{display:flex;align-items:center;gap:12px}.google-g{font-size:20px;font-weight:800;color:#4285f4}.review-stars{color:#e2a026;letter-spacing:.05em}.review-card-demo p{margin:20px 0 18px;color:var(--muted);font-size:14px}.review-card-demo small{color:var(--muted)}.faq__items{gap:9px}.faq-item{background:#fff;border:1px solid var(--line);border-radius:12px}.faq-item summary{padding:17px 50px 17px 18px;font-size:14px;font-weight:600}.faq-answer{padding:0 18px 18px;font-size:14px}

/* contact */
.contact{background:#fff;border-top:1px solid var(--line);padding:66px 0}.contact__grid{grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:48px;align-items:center;padding:26px 30px;border-radius:20px;background:#fafaf8}.contact h2{font-size:clamp(30px,3vw,44px)}.contact .lead{font-size:15px}.contact-data{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:28px 0 0}.contact-data>*{padding:0;border-top:0}.contact-data small{font-size:11px}.contact-data strong{font-size:13px;font-weight:600}.contact-actions{margin-top:24px}.map-box{min-height:290px;border-radius:16px}.map-box iframe{min-height:290px}

/* footer — bright and airy */
.site-footer{width:min(1720px,calc(100% - 48px));margin:0 auto 14px;background:#fff;color:var(--text);padding:58px 0 24px;border-top:1px solid var(--line);border-radius:0 0 32px 32px;overflow:hidden}.footer-logo img{filter:none;height:48px}.site-footer h3{font-size:12px;text-transform:uppercase;letter-spacing:.14em}.site-footer p,.footer-links a,.footer-links{color:var(--muted);font-size:13px}.footer-cta{background:var(--text);color:#fff}.site-footer__bottom{border-top:1px solid var(--line);color:var(--muted)}.legal-menu a{color:var(--muted)}

/* detail pages keep same visual language */
.page-hero,.detail-hero,.person-page{background:#fff}.detail-hero h1,.person-content h1{font-weight:500}.content-card,.info-card{border:1px solid var(--line);box-shadow:none}.person-photo-sticky>img,.detail-hero__media{border-radius:20px}

@media(max-width:1100px){
  .site-main,.site-footer{width:100%}.site-header__inner{width:calc(100% - 28px)}
  .hero__grid,.about__grid,.patients__grid,.reviews-faq__grid,.contact__grid{grid-template-columns:1fr}
  .hero__grid{gap:34px}.hero__content{padding-bottom:10px}.hero__media{height:570px;border-radius:20px}
  .hero-benefits{grid-template-columns:repeat(5,minmax(0,1fr));left:14px;right:14px;bottom:14px}
  .hero-benefit{min-height:118px;padding:16px 13px}
  .hero-benefit h3{font-size:12px}.hero-benefit p{font-size:10px}
  .about__media{height:520px}.booking-panel{grid-template-columns:170px 1fr}
  .contact-data{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:700px){
  .container{width:min(calc(100% - 30px),var(--container))}.section{padding:68px 0}.section-heading--row{display:block}.section-link--top{display:inline-block;margin-top:14px}
  h1{font-size:46px}h2{font-size:34px}.hero{padding:104px 0 58px}.hero__grid{min-height:auto}.hero__content{padding:22px 0 8px}.hero__media{height:520px;border-radius:18px}
  .hero__actions{display:grid}.hero__actions .btn{width:100%}
  .hero-benefits{left:10px;right:10px;bottom:10px;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:14px}
  .hero-benefit{min-height:auto;padding:14px;border-right:1px solid rgba(255,255,255,.14);border-bottom:1px solid rgba(255,255,255,.14)}
  .hero-benefit:nth-child(2n){border-right:0}.hero-benefit:nth-last-child(-n+2){border-bottom:0}.hero-benefit:last-child:nth-child(odd){grid-column:1/-1;border-right:0;border-bottom:0}
  .services__grid,.team__grid{grid-template-columns:1fr}.card-media{height:320px}.card-media.portrait{height:430px}
  .about__media{height:420px}.booking-panel{grid-template-columns:1fr}.booking-panel__qr{max-width:180px}.booking-phone{display:block;margin:12px 0 0}
  .reviews-faq__grid{gap:48px}.contact__grid{padding:22px}.contact-data{grid-template-columns:1fr}.map-box,.map-box iframe{min-height:260px}.site-footer{padding-top:48px}
}

/* v2.1.1 — header proportions + unified photo glass captions */
@media (min-width:701px){
  .site-header__inner{
    width:min(1720px,calc(100% - 48px));
    border-radius:50px;
  }
}

.media-overlay-card,
.image-caption,
.image-caption--panel{
  background:rgba(25,27,26,.50);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}


/* v2.1.6 — page sheet framing */
@media(max-width:1100px){
  .site-main{margin-top:8px;border-radius:24px 24px 0 0}
  .site-footer{margin-bottom:8px;border-radius:0 0 24px 24px}
}
@media(max-width:700px){
  .site-main{margin-top:6px;border-radius:20px 20px 0 0}
  .site-footer{margin-bottom:6px;border-radius:0 0 20px 20px}
}

/* v2.1.7 — header above the page sheet + copyright on outer grey frame */
@media (min-width:1101px){
  .site-main{
    margin-top:116px;
  }
  .site-footer{
    margin-bottom:0;
  }
}

.site-footer-meta{
  width:min(1720px,calc(100% - 48px));
  margin:0 auto 18px;
  background:transparent;
  color:var(--muted);
}

.site-footer-meta .site-footer__bottom{
  margin-top:0;
  padding:18px 8px 2px;
  border-top:0;
  color:var(--muted);
}

.site-footer-meta .site-footer__bottom p{
  color:var(--muted);
}

.site-footer-meta .site-footer__bottom a,
.site-footer-meta .legal-menu a{
  color:var(--muted);
}

@media (max-width:1100px){
  .site-main{
    margin-top:100px;
  }
  .site-footer{
    margin-bottom:0;
  }
  .site-footer-meta{
    width:calc(100% - 24px);
    margin-bottom:12px;
  }
}

@media (max-width:700px){
  .site-main{
    margin-top:88px;
  }
  .site-footer{
    margin-bottom:0;
  }
  .site-footer-meta{
    width:calc(100% - 16px);
    margin-bottom:8px;
  }
  .site-footer-meta .site-footer__bottom{
    padding:14px 6px 2px;
  }
}


/* v2.1.8 — unified CTA buttons */
.btn--primary{
  background:transparent;
  color:#000;
  border:1px solid #088087;
}
.btn--primary:hover{
  transform:translateY(-2px);
  background:#088087;
  color:#fff;
  border-color:#088087;
}
.btn--secondary{
  background:transparent;
  color:#000;
  border:1px solid #FFBD4A;
}
.btn--secondary:hover{
  transform:translateY(-2px);
  background:#FFBD4A;
  color:#000;
  border-color:#FFBD4A;
}
.header-cta.btn--primary{
  background:transparent;
  color:#000;
  border:1px solid #088087;
}
.header-cta.btn--primary:hover{
  background:#088087;
  color:#fff;
  border-color:#088087;
}
.section-link.btn{
  display:inline-flex;
}
.section-link--top.btn{
  margin:0 0 7px;
}
@media(max-width:680px){
  .section-link--top.btn{margin-top:14px;margin-bottom:0;}
}


/* v2.1.9 — Google Sans globally + lighter, airier navigation */
html,
body,
button,
input,
textarea,
select {
  font-family:"Google Sans",sans-serif;
}

.site-nav__list{
  gap:36px;
}

.site-nav__list a{
  font-weight:300;
}

.mobile-menu a,
.mobile-menu .site-nav__list a{
  font-weight:300;
}


/* v2.1.10 — approved homepage refinements */
@media (min-width:1101px){
  .site-header__inner{
    width:min(1720px,calc(100% - 48px));
  }
}

/* Unified homepage eyebrow: same size and primary green */
.eyebrow,
.section-heading p.eyebrow{
  margin:0 0 18px;
  font-size:11px;
  line-height:1.3;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#088087;
}

/* FAQ active item */
.faq-item{
  transition:border-color .25s ease;
}
.faq-item[open]{
  border-color:#FFBD4A;
}

/* Contact details: stable 2 × 2 grid */
.contact-data{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px 28px;
}
.contact-data>*{
  min-width:0;
}
.contact-data strong{
  overflow-wrap:anywhere;
}

/* Back to top */
.back-to-top{
  position:fixed;
  right:26px;
  bottom:26px;
  z-index:950;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid #088087;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#088087;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease,color .25s ease;
  box-shadow:0 8px 24px rgba(20,22,18,.06);
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{
  background:#088087;
  color:#fff;
}
.back-to-top svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(max-width:700px){
  .back-to-top{
    right:16px;
    bottom:16px;
    width:46px;
    height:46px;
  }
}


/* v2.1.11 — final header / booking CTA / contact-hours refinements */

/* Header follows the exact desktop sheet width on every public template,
   including single specialist pages. */
@media (min-width:1101px){
  .site-header__inner,
  body.single-specialists .site-header__inner,
  body.single-services .site-header__inner{
    width:min(1720px,calc(100% - 48px));
  }
}

/* Keep the phone CTA beside QR visually identical to every secondary button. */
.booking-panel .booking-phone.btn--secondary{
  display:inline-flex;
  width:auto;
  margin:12px 0 0 10px;
  padding:0 24px;
  min-height:52px;
  font-size:14px;
  color:#000;
  border:1px solid #FFBD4A;
  background:transparent;
}
.booking-panel .booking-phone.btn--secondary:hover{
  background:#FFBD4A;
  color:#000;
  border-color:#FFBD4A;
}

/* Contact data: two semantic columns.
   Left = phone / e-mail / address, right = opening hours. */
.contact-data{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:30px;
  margin:28px 0 0;
}
.contact-data__details,
.contact-data__hours{
  min-width:0;
}
.contact-data__details{
  display:grid;
  gap:15px;
}
.contact-data__item{
  display:block;
  padding:0;
  min-width:0;
}
.contact-data__item small,
.contact-data__heading{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:11px;
}
.contact-data__item strong{
  display:block;
  font-size:13px;
  font-weight:600;
  overflow-wrap:anywhere;
}
.contact-data__hours{
  padding-left:28px;
  border-left:1px solid var(--line);
}
.opening-hours{
  display:grid;
  gap:5px;
}
.opening-hours__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:baseline;
  font-size:12px;
  line-height:1.45;
}
.opening-hours__row span{
  color:var(--muted);
}
.opening-hours__row strong{
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
}
.opening-hours__empty{
  margin:0;
  color:var(--muted);
  font-size:12px;
}
.footer-hours{
  display:grid;
  gap:3px;
}
.footer-hours span{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
}
.footer-hours b{
  font-weight:500;
}

@media(max-width:700px){
  .booking-panel .booking-phone.btn--secondary{
    display:flex;
    width:100%;
    margin:10px 0 0;
  }
  .contact-data{
    grid-template-columns:1fr;
    gap:24px;
  }
  .contact-data__hours{
    padding:22px 0 0;
    border-left:0;
    border-top:1px solid var(--line);
  }
}


/* v2.1.12 — single-page vertical rhythm + footer breathing room */

/*
 * Homepage visual start:
 * .hero has 104px top padding and .hero__content adds 34px.
 * Single templates do not have that inner content padding, therefore
 * 138px gives their first eyebrow the same vertical start inside the white card.
 */
@media (min-width:701px){
  .detail-hero,
  .person-page{
    padding-top:138px;
  }
}

/* Preserve the more compact responsive rhythm on phones. */
@media (max-width:700px){
  .detail-hero,
  .person-page{
    padding-top:125px;
  }
}

/* More white space between footer content and the rounded bottom edge
   of the main white sheet. Copyright remains outside on the grey frame. */
.site-footer{
  padding-bottom:76px;
}

@media (max-width:700px){
  .site-footer{
    padding-bottom:54px;
  }
}

/* Specialist caption: keep enough room for the optional specialisation line. */
.team-card .media-overlay-card__copy p{
  margin:4px 0 0;
  color:rgba(255,255,255,.82);
  font-size:11px;
  line-height:1.35;
  font-weight:400;
}


/* v2.1.13 — specialist card caption */
.team-card .media-overlay-card{
  align-items:center;
}

.team-card .media-overlay-card__copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:40px;
}

.team-card .media-overlay-card__copy h3,
.team-card .media-overlay-card--compact h3{
  margin:0;
  font-size:20px;
  line-height:1.15;
  font-weight:600;
}

.team-card .media-overlay-card__copy p{
  margin:5px 0 0;
  font-size:12px;
  line-height:1.25;
  font-weight:400;
  color:rgba(255,255,255,.86);
}

.team-card .media-overlay-card__arrow{
  align-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  line-height:1;
}


/* v2.1.14 — clearer hero benefits + animated mobile navigation */

/* Desktop/tablet: four equal benefits across the whole inset panel. */
.hero-benefits{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.hero-benefit{
  padding:20px 20px 18px;
}
.hero-benefit h3{
  font-size:16px;
  line-height:1.22;
  font-weight:600;
}
.hero-benefit p{
  margin-top:7px;
  font-size:12px;
  line-height:1.42;
}

/* Keep all four cards equally distributed at intermediate widths too. */
@media (max-width:1100px) and (min-width:701px){
  .hero-benefits{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .hero-benefit{
    min-height:124px;
    padding:18px 16px;
  }
  .hero-benefit h3{
    font-size:14px;
  }
  .hero-benefit p{
    font-size:11px;
  }
}

/* Mobile: keep the image visible — benefits become a compact 2×2 title panel. */
@media (max-width:700px){
  .hero-benefits{
    left:10px;
    right:10px;
    bottom:10px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-radius:14px;
  }
  .hero-benefit{
    min-height:58px;
    padding:13px 14px;
    display:flex;
    align-items:center;
    border-right:1px solid rgba(255,255,255,.14);
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .hero-benefit:nth-child(2n){
    border-right:0;
  }
  .hero-benefit:nth-last-child(-n+2){
    border-bottom:0;
  }
  .hero-benefit__icon,
  .hero-benefit p{
    display:none;
  }
  .hero-benefit h3{
    margin:0;
    font-size:13px;
    line-height:1.25;
    font-weight:600;
  }
}

/* Burger: three horizontal lines morph smoothly into X. */
.menu-toggle{
  position:relative;
  padding:0;
  cursor:pointer;
}
.menu-toggle span{
  position:absolute;
  left:50%;
  width:22px;
  height:2px;
  margin:0;
  border-radius:2px;
  background:var(--text);
  transform:translateX(-50%);
  transform-origin:center;
  transition:top .24s ease, transform .24s ease, opacity .18s ease;
}
.menu-toggle span:nth-child(1){top:17px}
.menu-toggle span:nth-child(2){top:23px}
.menu-toggle span:nth-child(3){top:29px}

.mobile-menu-open .menu-toggle span:nth-child(1){
  top:23px;
  transform:translateX(-50%) rotate(45deg);
}
.mobile-menu-open .menu-toggle span:nth-child(2){
  opacity:0;
}
.mobile-menu-open .menu-toggle span:nth-child(3){
  top:23px;
  transform:translateX(-50%) rotate(-45deg);
}

/* Mobile dropdown: solid white surface and stronger navigation type. */
@media (max-width:1100px){
  .mobile-menu{
    background:#fff;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    border:1px solid rgba(20,22,18,.06);
  }
  .mobile-menu a,
  .mobile-menu .site-nav__list a{
    font-weight:600;
    font-size:16px;
  }
}


/* v2.1.15 — homepage finishing refinements */

/* Hero image: rounded on all corners. */
.hero__media,
.hero__image,
.hero__media > img,
.hero__media .media-placeholder{
  border-radius:28px;
}

/* Prevent image hover flicker / white flash on service cards. */
.service-card,
.service-card .card-media,
.service-card .card-media img{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0);
}

.service-card{
  will-change:transform;
}

.service-card .card-media{
  overflow:hidden;
  background:transparent;
}

.service-card .card-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .28s ease;
  will-change:transform;
}

/* Keep hover transform on image only and avoid repainting the whole card surface. */
.service-card:hover{
  transform:none;
}

.service-card:hover .card-media img{
  transform:scale(1.02) translateZ(0);
}

/* Mobile: every CTA/button fills the available container width consistently. */
@media (max-width:700px){
  .btn,
  .header-cta,
  .footer-cta,
  .section-link.btn,
  .contact-actions .btn,
  .hero__actions .btn,
  .booking-panel .btn,
  .booking-panel .booking-phone.btn--secondary{
    width:100%;
    max-width:none;
    display:flex;
    justify-content:center;
  }

  .hero__actions,
  .contact-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }

  .booking-panel .booking-phone.btn--secondary{
    margin-left:0;
  }
}


/* v2.1.16 — final homepage polish */

/* Mobile only: remove the redundant header CTA.
   Tablet and desktop keep the booking button. */
@media (max-width:700px){
  .site-header .header-cta{
    display:none !important;
  }
}

/* Desktop contact: let the map fill the panel height while keeping
   the same visual inset at top, bottom and right. */
@media (min-width:981px){
  .contact__grid{
    align-items:stretch;
  }

  .contact .map-box{
    height:100%;
    min-height:100%;
    align-self:stretch;
  }

  .contact .map-box iframe,
  .contact .map-box .media-placeholder{
    display:block;
    width:100%;
    height:100%;
    min-height:100%;
  }
}


/* v2.1.17 — specialist archive cards + refined pricing table */

/* Archive specialists uses the exact same image-overlay language as homepage. */
.archive .team-card .card-media,
.post-type-archive-specialists .team-card .card-media{
  position:relative;
}
.post-type-archive-specialists .team-card .media-overlay-card{
  background:rgba(25,27,26,.50);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* Pricing: three clearly named columns with compact duration/price spacing. */
.pricing-list{
  display:grid;
}

.pricing-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 170px 140px;
  column-gap:28px;
  padding:0 0 16px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:12px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.pricing-service{
  display:grid;
  grid-template-columns:minmax(0,1fr) 338px;
  gap:28px;
  padding:30px 0;
  border-top:0;
  border-bottom:1px solid var(--line);
  align-items:start;
}

.pricing-service__name{
  min-width:0;
}

.pricing-service h2{
  margin:0;
  font-size:30px;
  line-height:1.12;
  font-weight:500;
}

.pricing-service__lead{
  max-width:620px;
  margin:10px 0 0;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
}

.pricing-service__variants{
  display:grid;
  gap:0;
}

.pricing-row{
  display:grid;
  grid-template-columns:170px 140px;
  column-gap:28px;
  padding:8px 0;
  align-items:baseline;
}

.pricing-row__duration{
  color:var(--text);
}

.pricing-row__price{
  text-align:right;
  font-weight:600;
}

@media(max-width:800px){
  .pricing-head{
    display:none;
  }

  .pricing-service{
    grid-template-columns:1fr;
    gap:16px;
    padding:26px 0;
  }

  .pricing-row{
    grid-template-columns:1fr auto;
    gap:20px;
  }

  .pricing-row__price{
    text-align:right;
  }
}


/* v2.1.18 — related specialists + pricing header alignment */
.single-specialists .related-team .team-card .card-media{
  position:relative;
}

.single-specialists .related-team .team-card .media-overlay-card{
  background:rgba(25,27,26,.50);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

/* The price values are right-aligned, so align their column label identically. */
.pricing-head > span:last-child{
  text-align:right;
}


/* v2.1.19 — services archive mirrors homepage cards */
.services-archive__grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.post-type-archive-services .service-card .card-media{
  position:relative;
}

.post-type-archive-services .service-card .media-overlay-card{
  background:rgba(25,27,26,.50);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.post-type-archive-services .service-card .media-overlay-card__copy h3{
  font-size:20px;
  line-height:1.15;
  font-weight:600;
}

.post-type-archive-services .service-card .media-overlay-card__copy p{
  margin-top:5px;
  font-size:12px;
  line-height:1.35;
  color:rgba(255,255,255,.86);
}

@media(max-width:980px){
  .services-archive__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .services-archive__grid{
    grid-template-columns:1fr;
  }
}


/* v2.1.20 — single service details */

/* Sticky visit variants on desktop; the grid container naturally limits
   the sticky element to the height of the service content section. */
@media (min-width:1101px){
  .single-services .detail-sidebar{
    position:sticky;
    top:120px;
    align-self:start;
  }
}

/* Variant table */
.price-list--service{
  margin:22px 0 18px;
}

.price-list--service .price-list__head,
.price-list--service .price-list__row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:baseline;
}

.price-list--service .price-list__head{
  padding:0 0 10px;
  color:var(--muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.price-list--service .price-list__head span:last-child{
  text-align:right;
}

.price-list--service .price-list__row{
  padding:14px 0;
  border-top:1px solid var(--line);
}

.price-list--service .price-list__row strong{
  text-align:right;
  font-weight:600;
  white-space:nowrap;
}

/* Indications follow the same visual language as "Dla kogo" on homepage. */
.content-card--indications h2{
  margin:0;
  font-size:30px;
  line-height:1.12;
  font-weight:600;
  letter-spacing:-.025em;
}

.service-indications{
  margin-top:26px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.service-indications span{
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--text);
  font-size:12px;
  line-height:1.2;
}

@media (max-width:700px){
  .content-card--indications h2{
    font-size:26px;
  }

  .service-indications{
    gap:7px;
  }
}


/* v2.1.21 — sticky sidebar fix
   overflow:hidden on .site-main created a scroll container in Safari and
   prevented descendants from sticking to the viewport. overflow:clip keeps
   the rounded sheet clipping without becoming a scrolling ancestor. */
.site-main{
  overflow:clip;
}

@media (min-width:1101px){
  .single-services .detail-grid{
    align-items:start;
  }

  .single-services .detail-sidebar{
    position:-webkit-sticky;
    position:sticky;
    top:120px;
    align-self:start;
    height:max-content;
  }
}


/* v2.1.23 — larger, cleaner caption on About image */
.about__media .image-caption--panel{
  left:16px;
  right:auto;
  bottom:16px;
  width:min(75%, calc(100% - 32px));
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:18px 20px;
  border-radius:14px;
  background:rgba(25,27,26,.50);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);
}

.about__media .image-caption--panel strong{
  font-size:28px;
  line-height:1.08;
  font-weight:600;
  letter-spacing:-.025em;
}

.about__media .image-caption--panel span{
  font-size:17px;
  line-height:1.45;
  color:rgba(255,255,255,.9);
}

.about__media .image-caption--panel b{
  display:none;
}

@media(max-width:700px){
  .about__media .image-caption--panel{
    left:10px;
    right:10px;
    bottom:10px;
    width:auto;
    max-width:none;
    padding:16px 16px;
  }

  .about__media .image-caption--panel strong{
    font-size:23px;
  }

  .about__media .image-caption--panel span{
    font-size:15px;
  }
}


/* v2.1.25 — global text color + stronger service-card titles */

/* Global typography color.
   Eyebrows keep their accent color. */
h1,
h2,
h3,
h4,
h5,
h6,
p:not(.eyebrow){
  color:#000;
}

.eyebrow{
  color:#088087;
}

/* Service cards: larger title on the glass overlay. */
.service-card .media-overlay-card__copy h3,
.post-type-archive-services .service-card .media-overlay-card__copy h3{
  font-size:24px;
  line-height:1.1;
  font-weight:600;
}

/* Ensure service descriptions on glass follow the requested global black text. */
.service-card .media-overlay-card__copy p{
  color:#000;
}

/* Footer section headings in brand green. */
.site-footer h2,
.site-footer h3,
.site-footer h4{
  color:#088087;
}

/* Contact labels: Telefon, E-mail, Adres, Godziny otwarcia. */
.contact-data__item small,
.contact-data__heading{
  color:#088087;
  font-weight:600;
}

@media(max-width:700px){
  .service-card .media-overlay-card__copy h3,
  .post-type-archive-services .service-card .media-overlay-card__copy h3{
    font-size:19px;
  }
}


/* v2.1.26 — corrected overlay text + contact/footer green accents */

/* All text placed on glass / image overlays must remain white. */
.media-overlay-card,
.media-overlay-card h1,
.media-overlay-card h2,
.media-overlay-card h3,
.media-overlay-card h4,
.media-overlay-card h5,
.media-overlay-card h6,
.media-overlay-card p,
.media-overlay-card span,
.media-overlay-card strong,
.image-caption,
.image-caption h1,
.image-caption h2,
.image-caption h3,
.image-caption h4,
.image-caption h5,
.image-caption h6,
.image-caption p,
.image-caption span,
.image-caption strong,
.image-caption--panel,
.image-caption--panel h1,
.image-caption--panel h2,
.image-caption--panel h3,
.image-caption--panel h4,
.image-caption--panel h5,
.image-caption--panel h6,
.image-caption--panel p,
.image-caption--panel span,
.image-caption--panel strong,
.hero-benefits,
.hero-benefits h3,
.hero-benefits p,
.hero-benefits span{
  color:#fff !important;
}

/* Contact labels — including Godziny otwarcia. */
.contact-data__item small,
.contact-data__heading,
.contact-data__hours > small,
.opening-hours + small{
  color:#088087 !important;
  font-weight:600;
}

/* Footer section headings and footer navigation/contact positions in green. */
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer .footer-links a,
.site-footer .footer-links li,
.site-footer .site-footer__grid li,
.site-footer .site-footer__grid li a,
.site-footer .site-footer__grid p strong,
.site-footer .footer-hours span,
.site-footer .footer-hours b{
  color:#088087;
}

/* Keep ordinary footer descriptive copy readable in black. */
.site-footer .site-footer__brand p,
.site-footer .site-footer__grid > div:last-child > p{
  color:#000;
}

/* Booking button text should retain its button styling, not inherit footer green. */
.site-footer .btn,
.site-footer .footer-cta{
  color:inherit;
}


/* v2.1.27 — footer: only headings use brand green */
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a,
.site-footer span,
.site-footer strong,
.site-footer b,
.site-footer .footer-links,
.site-footer .footer-links li,
.site-footer .footer-links a{
  color:#000 !important;
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6{
  color:#088087 !important;
}

/* Preserve button component colors in footer. */
.site-footer .btn.btn--primary{
  color:#000 !important;
}
.site-footer .btn.btn--primary:hover{
  color:#fff !important;
}
.site-footer .btn.btn--secondary,
.site-footer .btn.btn--secondary:hover{
  color:#000 !important;
}


/* v2.1.28 — footer social media */
.site-footer .footer-socials{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:22px;
}
.site-footer .footer-socials a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  color:#088087 !important;
  transition:opacity .2s ease, transform .2s ease;
}
.site-footer .footer-socials a:hover{
  opacity:.72;
  transform:translateY(-1px);
}
.site-footer .footer-socials svg{
  display:block;
  width:22px;
  height:22px;
  fill:currentColor;
}


/* v2.1.29 — Lighthouse / accessibility cleanup */

/* Skip navigation: invisible until reached by keyboard. */
.skip-link{
  position:fixed;
  z-index:10000;
  top:10px;
  left:10px;
  padding:12px 18px;
  border-radius:999px;
  background:#fff;
  color:#000;
  border:2px solid #088087;
  transform:translateY(-160%);
  transition:transform .2s ease;
}
.skip-link:focus{
  transform:translateY(0);
}

/* Clear keyboard focus without altering the normal visual design. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #088087;
  outline-offset:3px;
}

.media-overlay-card__arrow,
.hero-benefit__icon span{
  pointer-events:none;
}

/* Ensure icon-only controls have a comfortable target. */
.back-to-top,
.footer-socials a,
.menu-toggle,
.lightbox__close{
  min-width:44px;
  min-height:44px;
}

/* Improve summary keyboard affordance while retaining existing design. */
.faq-item summary{
  cursor:pointer;
}

/* Hide closed mobile navigation from pointer interaction consistently. */
.mobile-menu[aria-hidden="true"]{
  pointer-events:none;
}
.mobile-menu[aria-hidden="false"]{
  pointer-events:auto;
}

/* Respect OS accessibility settings and avoid motion-triggered discomfort. */
@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* Screen-reader-only utility for future semantic labels. */
.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}
