/* ==========================================================================
   Aslanel · main stylesheet
   Design source: "FIRAT ASLANEL_WEB MOCKUP.ai" (1920 px artboard). Every fixed
   number below is measured on that artboard; fluid values scale it down.
   ========================================================================== */

/* ---- Fonts ------------------------------------------------------------- */
@font-face{font-family:Inter;font-weight:100 900;font-style:normal;font-display:swap;src:url("../fonts/InterVariable.woff2") format("woff2")}
@font-face{font-family:Inter;font-weight:100 900;font-style:italic;font-display:swap;src:url("../fonts/InterVariable-Italic.woff2") format("woff2")}

/* ---- Tokens ------------------------------------------------------------ */
:root{
  --c-ink:#0E1A13;      /* header, footer, dark sections */
  --c-deep:#12251B;
  --c-green:#284B38;    /* dark green: reviews title, stars, form labels */
  --c-line:#2D4C37;     /* form hairlines */
  --c-mint:#85B6A4;     /* accent bars, hairlines */
  --c-mint2:#76B8A3;    /* eyebrows on dark */
  --c-sage:#CEDAC4;     /* light green: nav, reviews bg, send button */
  --c-off:#F1F1F1;
  --c-black:#000;
  --c-white:#fff;

  --f-sans:Inter,"Helvetica Neue",Helvetica,Arial,sans-serif;

  --header-h:125px;
  --banner-h:clamp(200px,14.84vw,285px);        /* 285 @1920 */
  --gutter:clamp(20px,7.8125vw,150px);          /* 150 @1920 */
  --fs-display:clamp(42px,4.3229vw,83px);        /* 83 @1920 */
  --lh-display:.9;
  --fs-h2:clamp(30px,2.2917vw,44px);             /* 44 */
  --fs-h2-lg:clamp(32px,2.6042vw,50px);          /* 50 */
  --fs-card:clamp(28px,2.0833vw,40px);           /* 40 */
  --fs-h3:clamp(22px,1.5104vw,29px);             /* 29 */
  --fs-text:19px; --lh-text:26px;
  --fs-eyebrow:18px;
  --fs-label:15px;
  --fs-link:17px;
  --fs-value:22px;
}

/* ---- Reset ------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--c-black);color:var(--c-white);font:300 var(--fs-text)/var(--lh-text) var(--f-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg,video{display:block;max-width:100%}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--c-mint);outline-offset:3px}
.as-skip{position:absolute;left:-999px;top:0;background:var(--c-mint);color:var(--c-ink);padding:8px 14px;z-index:100}
.as-skip:focus{left:8px;top:8px}
.site-main{display:block;background:var(--c-black)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Elementor's base CSS sets `.elementor img{height:auto}` (0,1,1): our cover images must win. */
.elementor .as-about__img,.elementor .as-practice__img,.elementor .as-service__img,.elementor .as-treatment__img,.elementor .as-journal__img,.elementor img.as-hero__video,.as-widget .as-practice__img,.as-widget .as-treatment__img,.as-widget .as-journal__img{height:100%;max-width:none;width:100%}
/* Elementor canvas: our sections are full-bleed, so its containers add nothing. */
.site-main .e-con,.site-main .e-con-inner{--padding-top:0;--padding-bottom:0;--padding-left:0;--padding-right:0;--content-width:100%;--width:100%;max-width:none;padding:0}
.site-main .elementor-widget{margin:0}
.site-main .elementor-section .elementor-container{max-width:none}
.site-main .elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:0}

/* ---- Typography ---------------------------------------------------------- */
.as-display{font-weight:300;font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:-.005em}
.as-h2{font-weight:800;font-size:var(--fs-h2);line-height:1.05;letter-spacing:-.005em}
.as-h2--regular{font-weight:700;line-height:.92}
.as-h2--lg{font-size:var(--fs-h2-lg);line-height:1.06}
.as-h3{font-weight:700;font-size:var(--fs-h3);line-height:1.2}
.as-text{font-weight:300;font-size:var(--fs-text);line-height:var(--lh-text)}
.as-text p{margin:0}.as-text p+p{margin-top:1em}
.as-eyebrow{font:300 var(--fs-eyebrow)/1.3 var(--f-sans);text-transform:uppercase;color:var(--c-mint2);letter-spacing:.08em}
.as-label{font:700 var(--fs-label)/20px var(--f-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--c-green)}
.as-link{display:inline-flex;align-items:center;gap:18px;font-weight:700;font-size:var(--fs-link);line-height:1.3;color:inherit;text-decoration:none}
.as-link>span{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.as-link .as-arrow{width:26px;height:12px;flex:none;transition:transform .25s}
.as-link:hover .as-arrow{transform:translateX(6px)}
.as-link--sm{font-size:var(--fs-link)}
.as-btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 30px;border:1px solid currentColor;font-weight:700;font-size:var(--fs-link);line-height:1;text-decoration:none;color:var(--c-white);background:transparent;transition:background .25s,color .25s,border-color .25s;white-space:nowrap}
.as-btn--outline:hover{background:var(--c-white);color:var(--c-black)}
.as-btn--solid{background:var(--c-black);border-color:var(--c-white)}
.as-btn--solid:hover{background:var(--c-white);color:var(--c-black)}
.as-btn--sage{background:var(--c-sage);border-color:var(--c-sage);color:var(--c-black);min-width:105px}
.as-btn--sage:hover{background:var(--c-green);border-color:var(--c-green);color:var(--c-white)}
.as-symbol{display:block;width:100px;height:auto;color:currentColor}
.as-dl dt{margin-top:33px}.as-dl dt:first-child{margin-top:0}
.as-dl dd{margin-top:14px;font-weight:300;font-size:var(--fs-value);line-height:1.25;color:var(--c-black)}
.as-dl dd a{text-decoration:none}.as-dl dd a:hover{text-decoration:underline}
.as-dl--light dt{color:var(--c-sage);margin-top:15px}.as-dl--light dt:first-child{margin-top:0}
.as-dl--light dd{color:var(--c-sage);margin-top:13px;line-height:27px}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{position:relative;z-index:50;background:var(--c-ink);color:var(--c-sage);height:var(--header-h)}
.site-header__inner{position:relative;display:flex;align-items:center;justify-content:space-between;height:100%;max-width:1920px;margin:0 auto;padding:0 100px 0 80px}
.site-brand{display:flex;align-items:center;gap:25px;color:var(--c-sage);text-decoration:none;transform:translateY(5px);z-index:2}
.site-brand__symbol{width:50px;height:50px;flex:none}
.site-brand__text{display:block}
.site-brand__wordmark{width:238px;height:auto}
.site-brand__claim{display:block;margin-top:6px;font-weight:500;font-size:14px;line-height:1;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.site-nav{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;padding-left:0;pointer-events:none}
.site-nav__list{display:flex;gap:62px;pointer-events:auto}
.site-nav__list a{display:block;font-weight:400;font-size:22px;line-height:1;text-decoration:none;color:var(--c-sage);transition:color .2s}
.site-nav__list a:hover,.site-nav__list .current-menu-item>a{color:var(--c-white)}
.site-nav__list li{position:relative}
.site-nav__list .sub-menu{position:absolute;left:-20px;top:100%;padding:18px 20px;min-width:220px;background:var(--c-ink);display:none;flex-direction:column;gap:12px}
.site-nav__list li:hover>.sub-menu,.site-nav__list li:focus-within>.sub-menu{display:flex}
.site-nav__list .sub-menu a{font-size:18px}
.site-header__tools{display:flex;align-items:center;gap:30px;z-index:2}
.site-lang{position:relative}
.site-lang__toggle{display:inline-flex;align-items:center;gap:17px;font-weight:400;font-size:22px;line-height:1;color:var(--c-sage)}
.site-lang__toggle svg{width:12px;height:8px}
.site-lang__list{position:absolute;right:0;top:calc(100% + 16px);min-width:90px;padding:12px 16px;background:var(--c-ink);display:none;flex-direction:column;gap:10px;border:1px solid rgba(206,218,196,.25)}
.site-lang.is-open .site-lang__list{display:flex}
.site-lang__list a{font-size:18px;text-decoration:none}
.site-lang__list a[aria-current]{color:var(--c-white)}
.site-burger{display:none;width:34px;height:26px;flex-direction:column;justify-content:space-between}
.site-burger span{display:block;height:1.5px;background:var(--c-sage);transition:transform .25s,opacity .25s}
@media (min-width:1280px) and (max-width:1919px){
  .site-nav{position:static;flex:1;padding:0 20px;pointer-events:auto}
  .site-nav__list{gap:clamp(22px,2.6vw,50px)}
  .site-nav__list a{font-size:clamp(17px,1.15vw,22px)}
  .site-header__inner{padding:0 48px 0 40px}
}
@media (max-width:1279px){
  .site-header{height:90px}
  .site-header__inner{padding:0 24px}
  .site-brand{gap:14px;transform:none}
  .site-brand__symbol{width:36px;height:36px}
  .site-brand__wordmark{width:170px}
  .site-brand__claim{font-size:10px;margin-top:4px}
  .site-burger{display:flex}
  .site-nav{position:fixed;inset:0;top:90px;padding:40px 24px;background:var(--c-ink);flex-direction:column;justify-content:flex-start;align-items:flex-start;pointer-events:auto;transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
  .site-nav.is-open{opacity:1;visibility:visible;transform:none}
  .site-nav__list{flex-direction:column;gap:22px}
  .site-nav__list a{font-size:clamp(28px,6vw,40px);font-weight:300}
  .site-nav__list .sub-menu{position:static;display:flex;padding:10px 0 0 14px}
  .site-burger.is-open span:nth-child(1){transform:translateY(12px) rotate(45deg)}
  .site-burger.is-open span:nth-child(2){opacity:0}
  .site-burger.is-open span:nth-child(3){transform:translateY(-12px) rotate(-45deg)}
  body.nav-open{overflow:hidden}
}
@media (max-width:480px){.site-brand__wordmark{width:140px}.site-lang__toggle{font-size:18px}}

/* ==========================================================================
   Hero
   ========================================================================== */
.as-hero{position:relative;height:clamp(560px,48.02vw,922px);overflow:hidden;background:var(--c-black);color:var(--c-white)}
.as-hero__media{position:absolute;inset:0}
.as-hero__media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,var(--as-hero-dark,.45))}
.as-hero__video{width:100%;height:100%;object-fit:cover}
.as-hero__content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(40px,4.6875vw,90px) 20px 0}
.as-hero__symbol{width:clamp(64px,5.2083vw,100px);color:var(--c-white)}
.as-hero__eyebrow{margin-top:clamp(28px,3.125vw,60px);padding-left:26px}
.as-hero__title{margin-top:clamp(28px,2.8125vw,54px);max-width:14ch}
.as-hero__btn{margin-top:clamp(32px,3.3854vw,65px);min-width:244px}
.as-hero__link{margin-top:clamp(26px,2.6042vw,50px);font-size:21px;gap:16px}
.as-hero__link .as-arrow{width:20px}
@media (max-width:767px){.as-hero{height:auto;min-height:560px;padding-bottom:60px}.as-hero__symbol{width:72px}}

/* ==========================================================================
   About
   ========================================================================== */
.as-about{position:relative;background:var(--c-black) url("../img/tex/leaves-dark.webp") center/cover no-repeat;color:var(--c-white);padding-top:63px;isolation:isolate}
.as-about::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.62)}
/* The grid is drawing, not layout: it always goes above the photographs — the line
   crosses the portrait as in the mock, instead of dying at its edge — and no hairline
   ever takes a click away from a link or a button. */
.as-about__rule{position:absolute;left:0;right:0;top:63px;height:1px;background:var(--c-mint);z-index:3;pointer-events:none}
.as-about__frame{position:relative;z-index:1;margin-left:15.26%;width:68.07%;display:grid;grid-template-columns:51.03% 48.97%;min-height:650px}
.as-about__frame::before,.as-about__frame::after{content:"";position:absolute;top:-63px;bottom:0;width:1px;background:var(--c-mint);z-index:2;pointer-events:none}
.as-about__frame::before{left:-1px}.as-about__frame::after{right:-1px}
/* Third hairline of the grid: the column between portrait and panel, only in the strip above the photo (as in the mock). */
.as-about__col{position:absolute;top:-63px;left:51.03%;width:1px;height:63px;background:var(--c-mint);z-index:2;pointer-events:none}
.as-about__media{position:relative;background:#111;min-height:420px}
.as-about__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 7%;filter:grayscale(1)}
.as-about__panel{position:relative;background:var(--c-black);padding:93px 60px 97px 95px}
.as-about__symbol{position:absolute;top:30px;right:25px;width:45px;color:var(--c-white)}
.as-about__title{margin-top:23px;margin-left:-4px;color:var(--c-sage)}
.as-about__text{margin-top:28px;max-width:485px}
.as-about__link{display:flex;margin-top:21px;gap:50px}
.as-about__btn{margin-top:62px;margin-left:5px;min-width:245px}
@media (max-width:1279px){.as-about__frame{margin-left:6%;width:88%}.as-about__panel{padding:70px 40px 70px 50px}}
@media (max-width:1023px){.as-about__frame{grid-template-columns:1fr;margin-left:24px;width:calc(100% - 48px)}.as-about__media{aspect-ratio:1;min-height:0}.as-about__frame::before{left:-1px}.as-about__frame::after{right:-1px}.as-about__col{display:none}}
@media (max-width:767px){.as-about{padding-top:40px}.as-about__rule{top:40px}.as-about__frame::before,.as-about__frame::after{top:-40px}.as-about__panel{padding:56px 24px 56px}.as-about__link{gap:24px}}

/* Merged with the page title above it (About, 18/09): the block grows up behind
   the banner so the leaves are one photograph, and the grid hairlines carry on
   past the title instead of being cut, fading out over their last 200 px. */
.as-banner.as-banner--merge{background:none;z-index:2}
.as-banner.as-banner--merge::before{display:none}
.as-about--merge{--as-strip:63px;margin-top:calc(-1 * var(--banner-h));padding-top:calc(var(--banner-h) + var(--as-strip))}
.as-about--merge .as-about__rule{top:calc(var(--banner-h) + var(--as-strip))}
.as-about--merge .as-about__frame::before,.as-about--merge .as-about__frame::after{top:calc(-1 * (var(--banner-h) + var(--as-strip)));background:linear-gradient(to bottom,rgba(133,182,164,0) 0,var(--c-mint) 200px)}
/* Only those two laterals cross the title. The middle hairline lives in the strip
   above the portrait, and with the banner merged that strip reads as part of the
   heading: a 63 px stub hanging under «Beauty through knowledge». So here the
   divider between portrait and panel starts where the block starts. */
.as-about--merge .as-about__col{display:none}
@media (max-width:767px){.as-about--merge{--as-strip:40px}}

/* On the page that carries the CV: one paragraph, so the block keeps the height
   of the mock and the text sits centred against the portrait. */
.as-about--profile .as-about__frame{min-height:850px}
.as-about--profile .as-about__panel{display:flex;flex-direction:column;justify-content:center;padding-top:80px;padding-bottom:80px}
.as-about__more{margin-top:1em}
.as-about__more p+p{margin-top:1em}
.as-about__toggle{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left}
.as-about__btn--cv{gap:18px}
.as-about__btn--cv .as-arrow{width:26px;height:12px;flex:none;transition:transform .25s}
.as-about__btn--cv:hover .as-arrow{transform:translateX(6px)}
/* About page, whole bio visible (03/11): portrait + lead on top; under it the motto, then one row per
   paragraph (label left, text right) so the three blocks read at the same width and nothing looks lopsided. */
.as-about--full .as-about__frame{min-height:0}
@media (min-width:1024px){.as-about--full .as-about__media{min-height:640px}}
.as-about--full .as-about__text p{font-size:clamp(17px,1.25vw,20px);line-height:1.6}
.as-about__bio{grid-column:1/-1;background:var(--c-black);padding:clamp(72px,7vw,112px) var(--frame-pad,72px) clamp(72px,7vw,112px)}
.as-about__quote{margin:0 0 clamp(56px,5.5vw,88px);text-align:center}
.as-about__quote p{color:var(--c-sage);font-size:clamp(28px,3vw,46px);line-height:1.15;max-width:22ch;margin:0 auto}
.as-about__quote::after{content:"";display:block;width:48px;height:1px;background:var(--c-mint);margin:clamp(28px,2.6vw,40px) auto 0}
.as-about__bio-col{display:grid;grid-template-columns:minmax(150px,24%) 1fr;column-gap:clamp(32px,4vw,64px);padding:36px 0 40px;border-top:1px solid rgba(133,182,164,.4)}
.as-about__bio-col:last-child{border-bottom:1px solid rgba(133,182,164,.4)}
.as-about__bio-label{display:flex;align-items:baseline;gap:14px;margin:6px 0 0;color:var(--c-white)}
.as-about__bio-num{color:var(--c-mint);font-variant-numeric:tabular-nums}
.as-about__bio .as-text{color:rgba(255,255,255,.84);line-height:1.7}
@media (max-width:767px){.as-about__bio{padding:64px 24px}.as-about__bio-col{grid-template-columns:1fr;row-gap:16px;padding:28px 0 32px}.as-about__bio-label{margin:0}}
@media (max-width:1023px){.as-about--profile .as-about__frame{min-height:0}.as-about--profile .as-about__panel{padding-top:64px;padding-bottom:64px}}

/* ==========================================================================
   Partners strip
   ========================================================================== */
.as-partners{background:var(--c-black);border-top:1px solid var(--c-mint);border-bottom:1px solid var(--c-mint);min-height:125px;display:flex;align-items:center;justify-content:center;padding:24px var(--gutter)}
.as-partners__list{width:min(100%,1170px);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:28px 40px}
@media (min-width:1280px){.as-partners{justify-content:flex-start;padding-left:calc(50% - 595px)}.as-partners__list{width:1172px;justify-content:flex-start;flex-wrap:nowrap;gap:0}.as-partners__item:nth-child(1){transform:translateY(5px)}.as-partners__item:nth-child(2){margin-left:122px}.as-partners__item:nth-child(3){margin-left:115px}.as-partners__item:nth-child(4){margin-left:98px}.as-partners__item:nth-child(5){margin-left:75px}}
.as-partners__item a{display:block}
.as-partners__item img{width:auto;filter:brightness(0) invert(1);opacity:.95}
.as-partners__text{display:block;font-weight:800;line-height:1;letter-spacing:.25em;color:var(--c-white)}
@media (max-width:767px){.as-partners__list{justify-content:center;gap:24px 36px}.as-partners__item img{transform:scale(.8);transform-origin:center}}

/* ==========================================================================
   Statement ("Enlight your natural beauty")
   ========================================================================== */
.as-statement{position:relative;background:var(--c-black) var(--as-bg,url("../img/tex/leaves-dark.webp")) center top/cover no-repeat;color:var(--c-white);text-align:center;padding:133px 20px 106px;isolation:isolate}
.as-statement::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.18) 0%,rgba(0,0,0,.38) 55%,#000 96%)}
.as-statement__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.as-statement__glow{margin-top:57px;width:clamp(220px,25vw,480px)}
.as-statement__symbol{width:100%;color:var(--c-white);filter:drop-shadow(0 0 18px rgba(255,255,255,.55)) drop-shadow(0 0 60px rgba(200,230,215,.35))}
.as-statement__text{max-width:660px;margin-top:71px}
.as-statement__btn{margin-top:45px;min-width:270px}
@media (max-width:767px){.as-statement{padding:70px 20px 70px}.as-statement__glow{margin-top:40px}.as-statement__text{margin-top:40px}}

/* ==========================================================================
   Services cards
   ========================================================================== */
.as-services{background:var(--c-black);color:var(--c-white);padding:0 clamp(20px,7.552vw,145px)}
.as-services__head{text-align:center}
.as-services__title{margin-top:29px}
.as-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:70px}
.as-service{position:relative;aspect-ratio:520/670;overflow:hidden;background:#111;color:var(--c-black);isolation:isolate}
.as-service__media{position:absolute;inset:0}
.as-service__img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .6s}
.as-service:hover .as-service__img{transform:scale(1.03)}
.as-service__closed{position:absolute;inset:0;padding:0 47px 90px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(to bottom,rgba(255,255,255,0) 50%,rgba(255,255,255,.85) 82%,#fff 100%);transition:opacity .35s}
.as-service__title{font-weight:800;font-size:var(--fs-card);line-height:1;letter-spacing:-.005em}
/* Icon at the top of the card, white over both states: "+" at rest, rotates into "X" on hover / when open. */
.as-service__toggle{position:absolute;top:40px;right:40px;width:38px;height:38px;color:var(--c-white);z-index:3;filter:drop-shadow(0 1px 8px rgba(0,0,0,.5))}
.as-service__toggle svg{width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.as-service.is-open .as-service__toggle svg{transform:rotate(45deg)}
.as-service__open{position:absolute;inset:0;padding:0 55px 82px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--c-white);background:rgba(0,0,0,.8);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.as-service__text{margin-top:29px;max-width:410px}
.as-service__open .as-link{margin-top:39px;margin-left:5px}
.as-service__bar{position:absolute;left:0;right:0;bottom:0;height:8px;background:var(--c-mint);transform:scaleY(0);transform-origin:bottom;transition:transform .35s;z-index:2}
.as-service.is-open .as-service__closed{opacity:0;pointer-events:none}
.as-service.is-open .as-service__open{opacity:1;visibility:visible}
.as-service.is-open .as-service__bar{transform:none}
.as-service[data-filter]{cursor:pointer}
@media (hover:hover) and (pointer:fine){
  .as-service:hover .as-service__closed{opacity:0;pointer-events:none}
  .as-service:hover .as-service__open{opacity:1;visibility:visible}
  .as-service:hover .as-service__bar{transform:none}
  .as-service:hover .as-service__img{transform:scale(1.03)}
  .as-service:hover .as-service__toggle svg{transform:rotate(45deg)}
}
.as-treatments{scroll-margin-top:100px}
@media (max-width:1279px){.as-treatments{scroll-margin-top:100px}}
@media (max-width:1279px){.as-services__grid{grid-template-columns:1fr 1fr;gap:24px}.as-service__closed{padding:0 30px 80px}.as-service__open{padding:0 32px 60px}.as-service__toggle{top:24px;right:24px}}
@media (max-width:640px){.as-services__grid{grid-template-columns:1fr}.as-service{aspect-ratio:4/5}}

/* ==========================================================================
   All treatments
   ========================================================================== */
.as-treatments{background:var(--c-black);color:var(--c-white);padding:144px var(--gutter) 150px}
.as-treatments__head{padding-left:10px}
.as-treatments__title{margin-top:24px;margin-left:-5px}
.as-tabs{display:flex;flex-wrap:wrap;gap:22px;margin-top:38px;padding-left:10px}
.as-tab{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;border:1px solid var(--c-white);color:var(--c-white);font:400 var(--fs-label)/1 var(--f-sans);text-transform:uppercase;letter-spacing:.06em;transition:background .2s,color .2s}
.as-tab:first-child{min-width:90px}
.as-tab:hover{background:rgba(255,255,255,.12)}
.as-tab.is-active{background:var(--c-white);color:var(--c-ink)}
.as-treatments__grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);column-gap:clamp(24px,5.3125vw,102px);row-gap:105px;margin-top:60px}
/* The card sizes its own type and spacing: the grid goes from three columns to
   one, so the vertical rhythm is measured against the card (cqw), not the page. */
.as-treatment{position:relative;z-index:1;container-type:inline-size}
.as-treatment.is-hidden{display:none}
.as-treatment__inner{display:block;position:relative;color:var(--c-white);text-decoration:none;background:var(--c-black)}
.as-treatment__bar{display:block;height:20px;background:var(--c-mint)}
.as-treatment__media{position:relative;aspect-ratio:470/300;overflow:hidden;background:#1a1a1a}
.as-treatment__img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
/* Hover: the whole photo darkens under the text. Own layer so only its opacity
   animates — the fade below never moves. */
.as-treatment__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.48) 0%,rgba(0,0,0,.66) 24%,rgba(0,0,0,.79) 40%,rgba(0,0,0,.85) 55%,rgba(0,0,0,.85) 100%);opacity:0;transition:opacity .25s ease}
/* Bottom fade of the mock: solid black in the lower quarter, gone by mid height. */
.as-treatment__body{position:absolute;left:0;right:0;top:20px;bottom:0;padding:clamp(18px,7.23cqw,34px) clamp(20px,8.51cqw,40px) clamp(12px,4.26cqw,20px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;background:linear-gradient(to top,#000 0%,#000 25%,rgba(0,0,0,.94) 29%,rgba(0,0,0,.84) 33%,rgba(0,0,0,.7) 37%,rgba(0,0,0,.52) 41%,rgba(0,0,0,.32) 45%,rgba(0,0,0,.14) 48%,rgba(0,0,0,0) 50%)}
.as-treatment__type{font-weight:400;color:var(--c-mint);letter-spacing:.02em}
/* Rest: label and title sit at the bottom. Hover: this spacer grows and lifts
   the label to the top; the title stays in the flow, so nothing jumps. */
.as-treatment__gap{flex:0 1 0;min-height:0;transition:flex-grow .25s ease}
.as-treatment__title{margin-top:20px;font-weight:700;font-size:23px;line-height:1.2}
.as-treatment__more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .25s ease,opacity .25s ease}
.as-treatment__more-in{overflow:hidden;min-height:0}
/* Two lines, like the mock. Capped by max-height and not by line-clamp: the
   -webkit-box display reports a different size to the grid track than it lays
   out, and the reveal below clips whatever sticks out. */
.as-treatment__excerpt{overflow:hidden;max-height:calc(2 * var(--lh-text));margin-top:clamp(10px,2.98cqw,14px);max-width:34ch}
/* Block-level, or the inline-flex box hangs below the line box and the
   underline gets cut by the overflow that animates the reveal. */
.as-treatment__more .as-link{display:flex;width:fit-content;margin-top:clamp(14px,5.32cqw,25px)}
.as-treatment.is-open .as-treatment__media::after,.as-treatment__inner:hover .as-treatment__media::after,.as-treatment__inner:focus-visible .as-treatment__media::after{opacity:1}
.as-treatment.is-open .as-treatment__gap,.as-treatment__inner:hover .as-treatment__gap,.as-treatment__inner:focus-visible .as-treatment__gap{flex-grow:1}
.as-treatment.is-open .as-treatment__more,.as-treatment__inner:hover .as-treatment__more,.as-treatment__inner:focus-visible .as-treatment__more{grid-template-rows:1fr;opacity:1}
@media (max-width:1023px){.as-treatments{padding-top:90px;padding-bottom:90px}.as-treatments__grid{grid-template-columns:1fr 1fr;row-gap:48px}}
@media (max-width:640px){.as-treatments__grid{grid-template-columns:1fr}.as-tabs{gap:12px}.as-tab{height:42px;padding:0 18px;font-size:13px}}

/* ==========================================================================
   Book an appointment
   ========================================================================== */
.as-booking{background:var(--c-white);color:var(--c-black);padding:77px var(--gutter) 95px clamp(20px,8.125vw,156px)}
.as-booking__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,max-content);column-gap:clamp(40px,11.5625vw,222px)}
.as-booking__title{color:var(--c-ink);margin-bottom:39px}
.as-form{max-width:977px}
.as-field{position:relative;display:flex;flex-direction:column}
.as-field+.as-field{margin-top:44px}
.as-field input,.as-field select,.as-field textarea{margin-top:17px;height:40px;padding:0 0 8px;border:0;border-bottom:1px solid var(--c-line);border-radius:0;background:none;font-weight:300;font-size:var(--fs-value);line-height:1;color:var(--c-black);appearance:none;-webkit-appearance:none;outline-offset:6px}
.as-field textarea{height:79px;resize:none;overflow:hidden;line-height:1.3;padding-top:2px}
.as-field select{cursor:pointer;padding-right:40px}
.as-field__chevron{position:absolute;right:-45px;bottom:12px;width:24px;height:14px;color:var(--c-ink);pointer-events:none}
.as-field--hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.as-form__actions{display:flex;align-items:center;gap:24px;margin-top:69px;margin-left:-4px}
.as-form__status{font-weight:300;font-size:17px;color:var(--c-green)}
.as-form__status.is-error{color:#9E1528}
.as-booking__card{padding-top:56px}
.as-booking__symbol{width:80px;color:var(--c-black)}
.as-booking__card .as-h3{margin-top:46px;color:var(--c-deep)}
.as-booking__card .as-dl{margin-top:37px}
@media (max-width:1279px){.as-field__chevron{right:0}.as-field select{padding-right:34px}}
@media (max-width:1279px){.as-booking__inner{grid-template-columns:1fr;row-gap:60px}.as-booking__card{padding-top:0;display:grid;grid-template-columns:80px 1fr;column-gap:40px;align-items:start}.as-booking__symbol{grid-row:1/3}.as-booking__card .as-h3{margin-top:12px}.as-booking__card .as-dl{margin-top:28px}}
@media (max-width:767px){.as-booking__card{grid-template-columns:1fr;row-gap:0}.as-booking__symbol{grid-row:auto;width:64px}}
@media (max-width:767px){.as-booking{padding:56px var(--gutter) 64px}.as-booking__title{margin-bottom:40px}.as-field+.as-field{margin-top:30px}}

/* ==========================================================================
   Visit the clinic
   ========================================================================== */
.as-visit{background:var(--c-ink);color:var(--c-white);padding:90px var(--gutter) 103px clamp(20px,4.6875vw,90px)}
.as-visit__inner{display:grid;grid-template-columns:minmax(0,865fr) minmax(0,705fr);column-gap:clamp(40px,5.7292vw,110px);align-items:start}
.as-visit__map{position:relative;aspect-ratio:865/481;background:#D4D9C3;overflow:hidden}
/* The Google map keeps the frame and the 865/481 of the placeholder; grayscale
   plus a touch of contrast so it reads as black and white like the rest of the
   site, without losing the street names. */
.as-visit__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.06)}
.as-visit__placeholder{position:absolute;inset:0;background-color:#D4D9C3;background-image:repeating-linear-gradient(to bottom,#BEC5B0 0,#BEC5B0 2px,transparent 2px,transparent 43px),repeating-linear-gradient(to right,#BEC5B0 0,#BEC5B0 2px,transparent 2px,transparent 43px)}
.as-visit__pin{position:absolute;left:53%;top:48%;width:24px;height:24px;border-radius:50%;background:#2A3C31;box-shadow:0 0 0 5px rgba(42,60,49,.28);transform:translate(-50%,-50%)}
.as-visit__body{margin-top:-5px}
.as-visit__body .as-dl{margin-top:56px;padding-left:14px}
.as-visit__btn{margin-top:91px;min-width:247px}
.as-visit__link{display:flex;width:max-content;margin-top:30px;color:var(--c-sage)}
@media (max-width:1023px){.as-visit__inner{grid-template-columns:1fr;row-gap:48px}.as-visit__body{margin-top:0}.as-visit__body .as-dl{margin-top:40px}.as-visit__btn{margin-top:48px}}
@media (max-width:767px){.as-visit{padding:56px var(--gutter) 64px}}

/* ==========================================================================
   Reviews
   ========================================================================== */
.as-reviews{background:var(--c-sage);color:var(--c-black);padding:102px 0 142px;border-bottom:5px solid var(--c-white)}
.as-reviews__inner{padding:0 var(--gutter);min-width:0}
.as-reviews__title{color:var(--c-green);margin-left:-6px}
.as-reviews__subtitle{margin-top:36px;color:var(--c-deep)}
.as-reviews__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * clamp(32px,7.3958vw,142px)) / 3);column-gap:clamp(32px,7.3958vw,142px);margin-top:59px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;outline-offset:8px}
.as-reviews__track::-webkit-scrollbar{display:none}
.as-review{display:flex;flex-direction:column;scroll-snap-align:start}
.as-review__stars{display:flex;gap:8px}
.as-review__star{width:42px;height:42px;fill:rgba(40,75,56,.22)}
.as-review__star.is-on{fill:var(--c-green)}
.as-review__name{margin-top:42px;font-weight:700;font-size:27px;line-height:1.2;color:var(--c-green)}
.as-review__text{margin-top:16px;font-style:italic;font-weight:400;font-size:25px;line-height:34px;color:var(--c-black);display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
/* 7 lines, always: a long review opens the popup, it never stretches the carousel (16/09, Irene). */
@media (min-width:641px){.as-review__text{min-height:136px}}
@media (max-width:640px){.as-review__text{min-height:112px}}
.as-reviews__subtitle a{color:inherit;text-decoration:none}
.as-reviews__subtitle a:hover{text-decoration:underline}
.as-review__more{margin-top:auto;padding-top:32px;color:var(--c-ink);align-self:flex-start}
.as-reviews__dots{display:flex;justify-content:center;gap:22px;margin-top:145px}
.as-reviews__dots:empty{display:none}
.as-reviews__dot{width:120px;height:3px;background:rgba(255,255,255,.4);transition:background .2s}
.as-reviews__dot.is-active{background:var(--c-white)}
@media (max-width:1023px){.as-reviews__track{grid-auto-columns:calc((100% - 32px) / 2);column-gap:32px}.as-reviews__dots{margin-top:60px}}
@media (max-width:640px){.as-reviews{padding:56px 0 64px}.as-reviews__track{grid-auto-columns:100%}.as-reviews__subtitle{margin-top:24px}.as-reviews__track{margin-top:32px}.as-review__text{font-size:21px;line-height:30px}.as-reviews__dot{width:60px}}

/* ==========================================================================
   Journal
   ========================================================================== */
.as-journal{background:var(--c-ink);color:var(--c-white);padding:150px clamp(20px,11.6146vw,223px) 10px clamp(20px,8.125vw,156px)}
.as-journal__inner{position:relative;display:grid;grid-template-columns:minmax(0,371fr) minmax(0,1170fr);column-gap:0}
.as-journal__title{margin-top:8px;color:var(--c-sage)}
.as-journal__slides{position:relative;min-width:0}
.as-journal__slide{display:grid;grid-template-columns:490fr 620fr;column-gap:clamp(24px,3.125vw,60px);align-items:end}
.as-journal__slide[hidden]{display:none}
.as-journal__body{text-align:right;padding-bottom:5px}
.as-journal__post-title{color:var(--c-white)}
.as-journal__post-title a{text-decoration:none}
.as-journal__excerpt{margin-top:34px}
.as-journal__more{margin-top:35px;margin-right:8px;color:var(--c-sage)}
.as-journal__media{position:relative;display:block;aspect-ratio:620/773;overflow:hidden;background:#111}
.as-journal__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.as-journal__nav{display:flex;justify-content:flex-end;gap:18px;padding-right:7px;margin-bottom:37px}
.as-journal__arrow{width:26px;height:12px;color:var(--c-white);opacity:.9}
.as-journal__arrow svg{width:100%;height:100%}
.as-journal__arrow:hover{opacity:1}
@media (max-width:1279px){.as-journal{padding:80px var(--gutter) 40px}.as-journal__inner{grid-template-columns:1fr;row-gap:40px}}
@media (max-width:767px){.as-journal__slide{grid-template-columns:1fr;row-gap:28px}.as-journal__body{text-align:left;order:2}.as-journal__media{order:1;aspect-ratio:4/5}.as-journal__nav{justify-content:flex-start;padding-right:0;margin-bottom:24px}}

/* ==========================================================================
   Page banner + practice block (inner pages)
   ========================================================================== */
.as-banner{position:relative;height:var(--banner-h);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--c-black) var(--as-bg,url("../img/tex/leaf-close.webp")) center/cover no-repeat;color:var(--c-white);padding:0 20px;isolation:isolate}
.as-banner::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.45)}
.as-banner__title{position:relative}
.as-practice{position:relative;background:var(--c-black) var(--as-bg,url("../img/tex/leaf-close.webp")) center/cover no-repeat;color:var(--c-white);isolation:isolate}
.as-practice::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.55)}
.as-practice__frame{position:relative;margin-left:7.135%;width:84.53%;display:grid;grid-template-columns:43.62% 56.38%;border-top:1px solid var(--c-mint);min-height:820px}
/* Each block draws its grid inside its own height (18/09, Andrés): these two verticals
   used to start 285 px above the frame, so on About they cut through the logos strip and
   into the block above. Only when the block opens right under the page banner do they
   reach up through the title, as the Practice artboard draws them. */
.as-practice__frame::before,.as-practice__frame::after{content:"";position:absolute;top:0;bottom:0;width:1px;background:var(--c-mint);z-index:2;pointer-events:none}
.as-practice--under-banner .as-practice__frame::before,.as-practice--under-banner .as-practice__frame::after{top:calc(-1 * var(--banner-h))}
.as-practice__frame::before{left:-1px}.as-practice__frame::after{right:-1px}
.as-practice__media{position:relative;background:#111;min-height:420px}
.as-practice__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.as-practice__panel{background:var(--c-black);padding:141px 60px 188px 135px}
.as-practice__title{margin-top:55px;color:var(--c-sage)}
.as-practice__text{margin-top:55px;max-width:580px}
.as-practice__link{margin-top:48px}
@media (max-width:1279px){.as-practice__panel{padding:80px 40px 100px 60px}.as-practice--under-banner .as-practice__frame::before,.as-practice--under-banner .as-practice__frame::after{top:0}}
@media (max-width:1023px){.as-practice__frame{grid-template-columns:1fr;margin-left:24px;width:calc(100% - 48px)}.as-practice__media{aspect-ratio:1;min-height:0}}
@media (max-width:767px){.as-practice__panel{padding:56px 24px 64px}}

/* ==========================================================================
   Video block (room tour): same hairline frame as the practice block
   ========================================================================== */
/* Elementor resets `figure` margins and `.as-btn` sets position:relative later in this file:
   the inner rules carry the section class so they win both. */
.as-videoblock{background:var(--c-black);color:var(--c-white);padding:120px 0 130px;scroll-margin-top:100px}
.as-videoblock__inner{margin-left:7.135%;width:84.53%}
.as-videoblock .as-videoblock__title{margin-top:24px;color:var(--c-sage)}
.as-videoblock .as-videoblock__text{margin-top:34px;max-width:580px}
.as-videoblock .as-videoblock__frame{position:relative;margin:64px 0 0;aspect-ratio:16/9;overflow:hidden;background:#111;border-top:1px solid var(--c-mint)}
.as-videoblock__video{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.as-videoblock__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);transition:opacity .45s,visibility .45s}
.as-videoblock .as-videoblock__play{gap:16px;padding:0 34px;background:rgba(0,0,0,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.as-videoblock .as-videoblock__play:hover{background:var(--c-white);color:var(--c-black)}
.as-videoblock__icon{width:12px;height:14px;flex:none}
.as-videoblock.is-playing .as-videoblock__overlay{opacity:0;visibility:hidden}
.as-videoblock.is-playing .as-videoblock__video{cursor:pointer}
.as-videoblock__progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.22);opacity:0;transition:opacity .4s}
.as-videoblock.is-playing .as-videoblock__progress{opacity:1}
.as-videoblock__progress i{display:block;height:100%;background:var(--c-mint);transform:scaleX(0);transform-origin:left}
@media (max-width:1279px){.as-videoblock{scroll-margin-top:100px}}
@media (max-width:1023px){.as-videoblock{padding:80px 0 90px}.as-videoblock__inner{margin-left:24px;width:calc(100% - 48px)}.as-videoblock .as-videoblock__frame{margin-top:44px}}
@media (max-width:767px){.as-videoblock{padding:64px 0 72px}.as-videoblock .as-videoblock__play{padding:0 24px}}
.elementor .as-videoblock__video,.as-widget .as-videoblock__video{height:100%;max-width:none;width:100%}

/* ==========================================================================
   Generic pages (non-Elementor), archives, single posts
   ========================================================================== */
.as-page{background:var(--c-ink);color:var(--c-white);padding:120px 0}
.as-wrap{width:min(1180px,100% - 2 * var(--gutter));margin:0 auto}
.as-prose .as-eyebrow{margin-bottom:20px}
.as-prose .as-display{margin-bottom:48px;color:var(--c-sage)}
.as-prose p,.as-prose ul,.as-prose ol{margin:0 0 1.2em;max-width:760px;font-weight:300;font-size:var(--fs-text);line-height:var(--lh-text)}
.as-prose ul{padding-left:1.2em;list-style:disc}
.as-prose h2{margin:2em 0 .6em;font-weight:800;font-size:var(--fs-h2);line-height:1.05;color:var(--c-sage)}
.as-prose h3{margin:1.6em 0 .5em;font-weight:400;font-size:var(--fs-h3)}
.as-prose a{color:var(--c-mint)}
.as-single__media{margin:0 0 48px;aspect-ratio:16/8;overflow:hidden}
.as-single__media img{width:100%;height:100%;object-fit:cover}
.as-archive{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:48px 40px}
.as-archive__media{display:block;aspect-ratio:470/270;overflow:hidden;background:#111;border-top:20px solid var(--c-mint)}
.as-archive__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.as-archive__title{margin-top:18px;font-weight:400;font-size:23px;line-height:1.2}
.as-archive__title a{text-decoration:none}
.as-archive__excerpt{margin-top:10px}
.pagination{margin-top:48px}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--c-ink);color:var(--c-white);padding:130px 0 85px}
.site-footer__inner{width:min(1400px,100% - 2 * var(--gutter));margin:0 auto;display:grid;grid-template-columns:448fr 337fr 337fr 278fr;column-gap:0}
.site-footer__logo{display:inline-flex;align-items:center;gap:20px;color:var(--c-white);text-decoration:none}
.site-footer__symbol{width:42px;height:42px;flex:none}
.site-footer__wordmark{width:196px;height:auto}
.site-footer__tagline{margin-top:30px;max-width:300px;font-weight:300;font-size:17px;line-height:27px;color:var(--c-sage);opacity:.9}
.site-footer__label{margin:-4px 0 0;font:700 13px/16px var(--f-sans);letter-spacing:.15em;text-transform:uppercase;color:var(--c-sage);opacity:.85}
.site-footer__list{margin-top:40px}
.site-footer__list li{font-weight:400;font-size:18px;line-height:23px;color:var(--c-white)}
.site-footer__list li+li{margin-top:21px}
.site-footer__list a{text-decoration:none;transition:color .2s}
.site-footer__list a:hover{color:var(--c-sage)}
@media (max-width:1023px){.site-footer{padding:80px 0 60px}.site-footer__inner{grid-template-columns:1fr 1fr;row-gap:48px}.site-footer__brand{grid-column:1/-1}}
@media (max-width:640px){.site-footer__inner{grid-template-columns:1fr;row-gap:40px}.site-footer__list{margin-top:24px}}

/* ==========================================================================
   Inner pages: banner with eyebrow, archive, single treatment, prose inline
   ========================================================================== */
.as-banner--post{height:auto;min-height:clamp(200px,14.84vw,285px);padding:60px 20px}
.as-banner--post .as-eyebrow{margin-bottom:18px}
.as-banner--post .as-banner__title{max-width:18ch;margin:0 auto}
.as-archive-section{background:var(--c-black);color:var(--c-white);padding:90px var(--gutter) 120px}
.as-archive-section__inner{max-width:1620px;margin:0 auto}
.as-archive-section .as-treatments__grid{margin-top:0}
.as-single .as-single__media{aspect-ratio:16/9}
.as-prose-inline p{margin:0}.as-prose-inline p+p{margin-top:1em}
/* treatment detail: the document lists what each service covers under its paragraph */
.as-prose-inline ul{margin-top:1.2em;padding-left:1.1em;list-style:disc}.as-prose-inline li+li{margin-top:.35em}
/* the texts of 12/10/2026 group some lists under sub-headings (Medical dermatology, Pigment, XERF) and close one with a paragraph */
.as-prose-inline h3{margin:1.6em 0 0;font-weight:700;font-size:inherit;line-height:inherit;color:var(--c-white)}.as-prose-inline h3:first-child{margin-top:0}
.as-prose-inline h3+p,.as-prose-inline h3+ul{margin-top:.5em}.as-prose-inline ul+p{margin-top:1.2em}
.as-single-treatment .as-practice__panel{padding-top:110px;padding-bottom:120px}
/* German treatment names run to 23-letter words (Aknenarbenbehandlungen): hyphenate, and never let one widen the grid */
.as-banner__title,.as-practice__title,.as-treatment__title{hyphens:auto;hyphenate-limit-chars:12 5 5;-webkit-hyphenate-limit-before:5;-webkit-hyphenate-limit-after:5;overflow-wrap:break-word}.as-practice__panel{min-width:0}
.as-widget{display:block}
.pagination{display:flex;justify-content:center;gap:14px;margin-top:64px}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--c-white);color:var(--c-white);font:400 15px var(--f-sans);text-decoration:none}
.pagination .page-numbers.current{background:var(--c-white);color:var(--c-ink)}

/* ==========================================================================
   Ultra-wide (> 1920): the design stops scaling and centers
   ========================================================================== */
@media (min-width:1921px){
  .site-header__inner{max-width:1920px}
  .as-about__frame{margin-left:auto;margin-right:auto;width:1307px}
  .as-practice__frame{margin-left:auto;margin-right:auto;width:1623px}
  .as-services__grid,.as-treatments__head,.as-tabs,.as-treatments__grid{max-width:1630px;margin-left:auto;margin-right:auto}
  .as-booking__inner,.as-visit__inner,.as-reviews__inner,.as-journal__inner{max-width:1620px;margin-left:auto;margin-right:auto}
  .as-statement__title,.as-services__title{max-width:1620px;margin-left:auto;margin-right:auto}
  .as-services__title{margin-top:29px}
}

/* ==========================================================================
   Usability: touch targets, sticky mobile header, safe areas
   ========================================================================== */
@media (max-width:1279px){
  .site-header{position:sticky;top:0}
  .site-nav{overflow-y:auto;padding-bottom:calc(40px + env(safe-area-inset-bottom))}
  .site-lang__toggle{min-height:44px;padding:0 6px}
  .site-burger{width:44px;height:44px;padding:9px 5px;box-sizing:border-box}
}
@media (pointer:coarse){
  .as-journal__nav{margin-bottom:16px}
  .as-link{min-height:44px;align-items:center}
  .as-tab{min-height:44px}
  .as-service__toggle{width:48px;height:48px;padding:5px;box-sizing:border-box;top:20px;right:20px}
  .as-journal__arrow{width:44px;height:44px;padding:16px 9px;box-sizing:border-box}
  .as-journal__nav{gap:8px}
  .as-reviews__dot{height:14px;background-clip:content-box;padding:5px 0;box-sizing:content-box}
  .site-footer__list li+li{margin-top:16px}
  .site-footer__list a{display:inline-block;padding:4px 0}
}
@media (max-width:767px){
  .as-hero__content{padding-left:24px;padding-right:24px}
  .as-hero__title{max-width:12ch}
  .as-hero__btn,.as-about__btn,.as-statement__btn,.as-visit__btn{min-width:0;width:100%;max-width:360px}
  .as-treatments,.as-services,.as-booking,.as-visit,.as-reviews__inner,.as-journal,.as-archive-section{padding-left:24px;padding-right:24px}
  .as-treatments__head,.as-tabs{padding-left:0}
  .as-visit__map{margin-left:-24px;margin-right:-24px;width:auto}
  .as-form__actions{flex-direction:column;align-items:flex-start;gap:16px}
  .as-review__text{-webkit-line-clamp:8}
  .as-banner{padding:48px 24px}
  .as-page{padding:64px 0}
  .as-prose .as-display{margin-bottom:28px}
  .site-footer__brand{padding-bottom:8px}
}
@media (max-width:480px){
  .as-hero{min-height:calc(100svh - 90px)}
  .as-partners__item img{transform:scale(.75)}
  .as-partners__text{font-size:20px!important}
  .as-tabs{gap:8px}
  .as-tab{padding:0 14px;font-size:12px}
}
/* Tablet portrait: keep the layout airy */
@media (min-width:768px) and (max-width:1023px){
  .as-services__grid{gap:20px}
  .as-treatments__grid{column-gap:24px}
  .as-booking__inner{row-gap:48px}
  .as-journal__slide{column-gap:32px}
}

/* ==========================================================================
   Carousels (Swiper)
   ========================================================================== */
.as-reviews__swiper{margin-top:59px;overflow:hidden}
.as-reviews__track{display:flex;grid-auto-flow:unset;grid-auto-columns:unset;column-gap:0;margin-top:0;overflow:visible;scroll-snap-type:none}
.as-review{height:auto;width:100%}
.as-reviews__dots .as-reviews__dot{display:block;width:120px;height:3px;border-radius:0;margin:0;opacity:1;background:rgba(255,255,255,.4)}
.as-reviews__dots .as-reviews__dot.is-active{background:var(--c-white)}
.swiper-pagination-lock{display:none}
.as-journal__swiper{overflow:hidden;z-index:1;width:100%}
.as-journal__slide{width:100%;height:auto}
.swiper-slide.as-journal__slide{opacity:0}
.swiper-slide-active.as-journal__slide{opacity:1}
.as-journal__arrow.swiper-button-disabled{opacity:.3;cursor:default}
@media (max-width:1023px){.as-reviews__swiper{margin-top:40px}}
@media (max-width:640px){.as-reviews__swiper{margin-top:32px}}

/* ==========================================================================
   Modal (CV request)
   ========================================================================== */
.as-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.as-modal[hidden]{display:none}
.as-modal__overlay{position:absolute;inset:0;background:rgba(14,26,19,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .35s}
.as-modal__dialog{position:relative;width:min(560px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--c-white);color:var(--c-black);padding:56px 56px 48px;transform:translateY(16px);opacity:0;transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1)}
.as-modal.is-open .as-modal__overlay{opacity:1}
.as-modal.is-open .as-modal__dialog{opacity:1;transform:none}
.as-modal__close{position:absolute;top:22px;right:22px;width:40px;height:40px;padding:8px;color:var(--c-ink)}
.as-modal__close svg{width:100%;height:100%}
.as-modal__symbol{width:56px;color:var(--c-ink)}
.as-modal .as-eyebrow{margin-top:26px;color:var(--c-green)}
.as-modal__title{margin-top:10px;color:var(--c-ink)}
.as-modal__text{margin-top:16px;color:var(--c-black)}
.as-form--modal{margin-top:28px}
.as-form--modal .as-field+.as-field{margin-top:22px}
.as-form--modal .as-field input{height:36px}
.as-modal__consent{margin-top:14px;font-weight:300;font-size:14px;line-height:1.5;color:var(--c-green)}
.as-modal__consent a{color:inherit}
.as-check{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;margin-top:26px;cursor:pointer}
.as-check input{grid-column:1;grid-row:1;width:20px;height:20px;margin:2px 0 0;opacity:0;z-index:1;cursor:pointer}
.as-check__box{grid-column:1;grid-row:1;position:relative;width:20px;height:20px;margin-top:2px;border:1px solid var(--c-green);background:var(--c-white);transition:background .2s,border-color .2s}
.as-check__box::after{content:"";position:absolute;left:5px;top:3px;width:7px;height:12px;border:solid var(--c-white);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .2s}
.as-check input:checked+.as-check__box{background:var(--c-green);border-color:var(--c-green)}
.as-check input:checked+.as-check__box::after{transform:rotate(45deg) scale(1)}
.as-check input:focus-visible+.as-check__box{outline:2px solid var(--c-mint);outline-offset:3px}
.as-check__text{grid-column:2;grid-row:1;font-weight:300;font-size:14px;line-height:1.5;color:var(--c-green)}
.as-form--modal .as-form__actions{margin-top:24px;flex-wrap:wrap}
.as-form--modal.is-done .as-field,.as-form--modal.is-done .as-modal__consent,.as-form--modal.is-done .as-check,.as-form--modal.is-done button[type=submit]{display:none}
body.modal-open{overflow:hidden}
.as-modal__dialog--review{width:min(680px,100%)}
.as-modal__stars{display:flex;gap:8px;margin-bottom:26px}
.as-modal__stars .as-review__star{width:32px;height:32px}
.as-modal__quote{margin-top:16px;font-style:italic;font-weight:400;font-size:21px;line-height:30px;color:var(--c-black);white-space:pre-line}
.as-modal__source{margin-top:34px;color:var(--c-ink);display:inline-flex}
.as-modal__source[hidden]{display:none}
@media (max-width:640px){.as-modal{padding:12px}.as-modal__dialog{padding:48px 24px 32px}.as-modal__stars .as-review__star{width:26px;height:26px}.as-modal__quote{font-size:19px;line-height:28px}}

/* ==========================================================================
   Motion — restrained: fade + 22px lift, 700 ms, staggered by siblings
   ========================================================================== */
.as-reveal{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms);will-change:opacity,transform}
.as-reveal.as-reveal.is-in{opacity:1;transform:none}
.as-reveal.as-display,.as-reveal.as-h2{transform:translateY(28px)}
.as-reveal.as-about__media,.as-reveal.as-practice__media,.as-reveal.as-journal__media,.as-reveal.as-visit__map,.as-reveal.as-videoblock__frame{transform:translateY(0) scale(.985);transition-duration:1.1s,1.2s}
.as-reveal.as-service,.as-reveal.as-treatment{transform:translateY(30px)}
.as-reveal.as-partners__item{transform:translateY(12px)}
.as-service.as-reveal .as-service__img,.as-treatment.as-reveal .as-treatment__img{transform:scale(1.06);transition:transform 1.4s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.as-service.as-reveal.is-in .as-service__img,.as-treatment.as-reveal.is-in .as-treatment__img{transform:scale(1)}
.as-service:hover .as-service__img{transform:scale(1.03)!important}
/* hero: staggered entrance on load */
.as-intro{opacity:0;transform:translateY(18px);transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.as-hero__content.is-in .as-intro{opacity:1;transform:none}
.as-hero__video{opacity:0;animation:as-fade 1.6s ease .2s forwards}
@keyframes as-fade{to{opacity:1}}
/* glowing symbol breathes */
.as-statement__symbol{animation:as-breathe 6s ease-in-out infinite}
@keyframes as-breathe{0%,100%{filter:drop-shadow(0 0 18px rgba(255,255,255,.55)) drop-shadow(0 0 60px rgba(200,230,215,.35))}50%{filter:drop-shadow(0 0 26px rgba(255,255,255,.8)) drop-shadow(0 0 90px rgba(200,230,215,.55))}}
/* hairlines draw in */
.as-about__rule,.as-partners{transform-origin:left center}
.as-about__rule{animation:as-draw 1.4s cubic-bezier(.2,.7,.2,1) .2s both}
@keyframes as-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* links & buttons */
.as-link>span{background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/100% 1px;text-decoration:none;padding-bottom:4px;transition:background-size .35s cubic-bezier(.2,.7,.2,1)}
.as-link:hover>span{background-size:0 1px;background-position:100% 100%}
.as-btn{position:relative;overflow:hidden;isolation:isolate}
.as-btn::before{content:"";position:absolute;inset:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1);z-index:-1;opacity:.12}
.as-btn:hover::before{transform:scaleX(1)}
.site-nav__list a{position:relative}
.site-nav__list a::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.site-nav__list a:hover::after,.site-nav__list .current-menu-item>a::after{transform:scaleX(1)}
.as-tab{transition:background .25s,color .25s,transform .25s}
.as-tab:active{transform:scale(.97)}
.as-review__star{transition:transform .3s}
.as-review:hover .as-review__star.is-on{transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){.as-reveal.as-reveal,.as-intro{opacity:1;transform:none;transition:none}.as-statement__symbol,.as-about__rule,.as-hero__video{animation:none;opacity:1}.as-treatment__gap,.as-treatment__more,.as-treatment__media::after{transition:none}}

/* ==========================================================================
   Book an appointment — CTA strip
   A band, not a section (16/09, Irene): text and button on one line so the same
   component can repeat on every page. Practice details live only on Contact.
   ========================================================================== */
.as-cta{background:var(--c-white);color:var(--c-black);padding:56px var(--gutter)}
.as-cta__inner{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;column-gap:clamp(32px,3.75vw,72px);align-items:center}
.as-cta__head{white-space:nowrap}
.as-cta__eyebrow{color:var(--c-green)}
.as-cta__title{margin-top:8px;color:var(--c-ink)}
.as-cta__text{color:var(--c-black);max-width:62ch;opacity:.8}
.as-cta__actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 28px;justify-content:flex-end}
.as-cta__btn{color:var(--c-black);gap:18px}
.as-cta__btn:hover{color:var(--c-white)}
.as-cta__btn .as-arrow{width:26px;height:12px;transition:transform .3s}
.as-cta__btn:hover .as-arrow{transform:translateX(6px)}
.as-cta__alt{font-weight:300;font-size:var(--fs-link);color:var(--c-green);white-space:nowrap}
.as-cta__alt a{color:var(--c-ink);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.as-cta__note{margin-top:20px;padding:12px 16px;border:1px dashed var(--c-mint);font:400 13px/1.5 var(--f-sans);color:var(--c-green);max-width:560px}
@media (max-width:1279px){.as-cta__inner{grid-template-columns:minmax(0,1fr) max-content;row-gap:14px}.as-cta__head{grid-column:1;white-space:normal}.as-cta__text{grid-column:1;grid-row:2}.as-cta__actions{grid-column:2;grid-row:1/3}}
@media (max-width:767px){.as-cta{padding:40px 24px}.as-cta__inner{grid-template-columns:1fr;row-gap:20px}.as-cta__head,.as-cta__text{grid-column:1}.as-cta__text{grid-row:auto}.as-cta__actions{grid-column:1;grid-row:auto;justify-content:flex-start;gap:14px 24px}.as-cta__btn{width:100%;max-width:360px;justify-content:space-between}}

/* ==========================================================================
   Curriculum vitae — About page
   The CV read as a page, not as a scanned sheet (16/09, Irene): profile and
   facts on the left, collapsible sections on the right, experience as a
   timeline. Everything is text in the DOM, <details> only hides it visually.
   Same visual system as the rest of the site (18/09, Andrés): leaf background,
   mint hairline grid, mono labels, and the + to X icon of the service cards.
   ========================================================================== */
.as-cv{position:relative;background:var(--c-black) url("../img/tex/leaf-close.webp") center/cover no-repeat;color:var(--c-white);padding:63px 0 150px;isolation:isolate;scroll-margin-top:100px}
.as-cv::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,.62)}
@media (max-width:1279px){.as-cv{scroll-margin-top:100px}}
.as-cv__inner{position:relative;z-index:1;margin-left:7.135%;width:84.53%;display:grid;grid-template-columns:38% 62%;border-top:1px solid var(--c-mint);background:var(--c-black)}
.as-cv__inner::before,.as-cv__inner::after{content:"";position:absolute;top:-63px;bottom:0;width:1px;background:var(--c-mint);z-index:2;pointer-events:none}
.as-cv__inner::before{left:-1px}.as-cv__inner::after{right:-1px}
/* Third hairline of the grid: the column between the profile and the sections. */
.as-cv__col{position:absolute;top:-63px;bottom:0;left:38%;width:1px;background:var(--c-mint);z-index:2;pointer-events:none}
.as-cv__head{position:sticky;top:40px;align-self:start;padding:80px 72px 104px 60px}
.as-cv__eyebrow{color:var(--c-mint2)}
.as-cv__title{margin-top:18px;color:var(--c-sage)}
.as-cv__name{margin-top:40px;font-weight:700;font-size:var(--fs-h3);line-height:1.2;color:var(--c-white)}
.as-cv__role{margin-top:8px;font-weight:300;font-size:var(--fs-text);line-height:var(--lh-text);color:var(--c-mint)}
.as-cv__profile{margin-top:28px;color:var(--c-sage)}
.as-cv__facts{margin-top:44px;display:grid;gap:22px}
.as-cv__fact dt{color:var(--c-mint2)}
.as-cv__fact dd{margin-top:6px;font-weight:300;font-size:var(--fs-text);line-height:1.35;color:var(--c-sage)}
.as-cv__download{margin-top:52px;min-width:245px}

.as-cv__groups{padding:36px 0 40px 72px}
.as-cv__group{border-bottom:1px solid rgba(133,182,164,.35)}
.as-cv__group:first-child{border-top:1px solid rgba(133,182,164,.35)}
.as-cv__summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 0;cursor:pointer;list-style:none}
.as-cv__summary::-webkit-details-marker{display:none}
.as-cv__group-title{color:var(--c-white);transition:color .25s}
.as-cv__summary:hover .as-cv__group-title{color:var(--c-mint)}
/* Same icon and same gesture as the service cards: a plus that turns into an X. */
.as-cv__toggle{flex:none;width:34px;height:34px;color:var(--c-mint)}
.as-cv__toggle svg{display:block;width:100%;height:100%;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.as-cv__group[open] .as-cv__toggle svg{transform:rotate(45deg)}
.as-cv__body{padding:4px 0 42px}
.as-cv__intro{color:var(--c-sage);max-width:70ch}

.as-cv__timeline{position:relative;padding-left:34px}
.as-cv__timeline::before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:1px;background:rgba(133,182,164,.45)}
.as-cv__step{position:relative;padding-bottom:36px}
.as-cv__step:last-child{padding-bottom:0}
.as-cv__dot{position:absolute;left:-34px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--c-mint)}
.as-cv__period{color:var(--c-mint2)}
.as-cv__position{margin-top:12px;font-weight:400;font-size:var(--fs-text);line-height:var(--lh-text);color:var(--c-white);max-width:62ch}
.as-cv__institution{margin-top:8px;font-weight:300;font-size:var(--fs-link);line-height:1.5;color:var(--c-mint)}

.as-cv__defs dt{font-weight:700;font-size:var(--fs-text);line-height:1.3;color:var(--c-white)}
.as-cv__defs dd{margin-top:10px;color:var(--c-sage);max-width:70ch}
.as-cv__defs dd+dt{margin-top:30px}

.as-cv__list{display:grid;gap:12px;margin-top:22px}
.as-cv__item{position:relative;padding-left:26px;color:var(--c-sage)}
.as-cv__item::before{content:"";position:absolute;left:0;top:11px;width:12px;height:1px;background:var(--c-mint)}

/* Same chip as the treatment filter tabs, so nothing here looks borrowed. */
.as-cv__tags{display:flex;flex-wrap:wrap;gap:22px;margin-top:26px}
.as-cv__tag{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;border:1px solid var(--c-white);color:var(--c-white);font:400 var(--fs-label)/1 var(--f-sans);text-transform:uppercase;letter-spacing:.06em}

@media (max-width:1279px){
  .as-cv{padding:40px 0 100px}
  .as-cv__inner{grid-template-columns:1fr}
  .as-cv__inner::before,.as-cv__inner::after{top:-40px}
  .as-cv__col{display:none}
  .as-cv__head{position:static;padding:56px 40px 64px}
  .as-cv__groups{padding:0 40px 40px}
}
@media (max-width:1023px){
  .as-cv__inner{margin-left:24px;width:calc(100% - 48px)}
}
@media (max-width:767px){
  .as-cv{padding:40px 0 72px}
  .as-cv__head{padding:48px 24px 56px}
  .as-cv__groups{padding:0 24px 24px}
  .as-cv__summary{padding:22px 0;gap:16px}
  .as-cv__body{padding-bottom:30px}
  .as-cv__download{width:100%;max-width:360px;min-width:0}
  .as-cv__timeline{padding-left:26px}
  .as-cv__dot{left:-26px}
  .as-cv__tags{gap:12px}
  .as-cv__tag{height:42px;padding:0 18px}
}
@media (min-width:1921px){.as-cv__inner{margin-left:auto;margin-right:auto;width:1623px}}
@media (prefers-reduced-motion:reduce){.as-cv__toggle svg{transition:none}}

/* ==========================================================================
   Header · Services panel: every treatment as a card (inc/mega-menu.php)
   Desktop: a band under the header, 7 cards per row, on hover / focus / tap.
   The item is `position:static` so the panel spans the header; the link grows
   downwards (padding + negative margin) so the hover survives the trip from the
   word to the panel. Closed = display:none, so its 14 images only load when it
   opens (display transitions via @starting-style where supported).
   Mobile (< 1280): a "+" toggle in the full-screen menu; the cards become rows.
   ========================================================================== */
.site-nav__list .menu-item--mega{position:static;display:flex;align-items:center;gap:8px}
.site-nav__list .menu-item--mega>a{padding-bottom:56px;margin-bottom:-56px}
.site-nav__list .menu-item--mega>a::after{bottom:48px}
.as-mega-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:var(--c-sage);flex:none}
.as-mega-toggle svg{width:18px;height:18px;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.menu-item--mega.is-open>.as-mega-toggle svg{transform:rotate(45deg)}
.as-mega{position:absolute;left:0;right:0;top:100%;z-index:60;display:none;background:var(--c-ink);color:var(--c-sage);border-top:1px solid rgba(206,218,196,.14);box-shadow:0 40px 60px -30px rgba(0,0,0,.7);max-height:calc(100vh - var(--header-h));overflow-y:auto;opacity:0;translate:0 -8px;transition:opacity .3s cubic-bezier(.2,.7,.2,1),translate .3s cubic-bezier(.2,.7,.2,1),display .3s allow-discrete}
.menu-item--mega:hover>.as-mega,.menu-item--mega:focus-within>.as-mega,.menu-item--mega.is-open>.as-mega{display:block;opacity:1;translate:0 0}
@starting-style{.menu-item--mega:hover>.as-mega,.menu-item--mega:focus-within>.as-mega,.menu-item--mega.is-open>.as-mega{opacity:0;translate:0 -8px}}
.menu-item--mega.is-dismissed>.as-mega{display:none!important}
.as-mega__inner{max-width:1920px;margin:0 auto;padding:38px 100px 52px 80px}
.as-mega__head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;padding-bottom:26px;border-bottom:1px solid rgba(206,218,196,.14)}
.as-mega__eyebrow{font-size:15px}
.as-mega__title{margin-top:10px;font-weight:700;font-size:clamp(26px,1.771vw,34px);line-height:1;color:var(--c-white)}
.as-mega__areas{display:flex;align-items:center;flex-wrap:wrap;gap:14px 36px;padding-bottom:4px}
.site-nav .as-mega a::after{content:none}
.site-nav .as-mega__area{display:inline-flex;align-items:baseline;gap:8px;font:400 var(--fs-label)/1 var(--f-sans);text-transform:uppercase;letter-spacing:.06em;color:var(--c-sage);text-decoration:none;transition:color .2s}
.site-nav .as-mega__area:hover{color:var(--c-white)}
.as-mega__count{font-size:12px;color:var(--c-mint)}
.site-nav .as-mega__all{display:inline-flex;font-weight:700;font-size:var(--fs-link);line-height:1.3;color:var(--c-white)}
.as-mega__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:30px 20px;margin-top:34px}
.as-mega__group,.as-mega__list{display:contents}
.as-mega__group-label{display:none}
.site-nav .as-mega__card{display:flex;flex-direction:column;height:100%;color:var(--c-sage);text-decoration:none;font-size:inherit;line-height:inherit}
.as-mega__bar{display:block;height:5px;background:var(--c-mint);transition:background .25s}
.as-mega__media{display:block;aspect-ratio:470/300;overflow:hidden;background:#1a1a1a}
.as-mega__img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.as-mega__type{display:block;margin-top:12px;font-weight:400;font-size:11px;line-height:1.2;color:var(--c-mint)}
.as-mega__name{display:block;margin-top:6px;font-weight:500;font-size:clamp(14px,.885vw,17px);line-height:1.25;color:var(--c-white);background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 1px;width:fit-content;padding-bottom:3px;transition:background-size .35s cubic-bezier(.2,.7,.2,1)}
.site-nav .as-mega__card:hover .as-mega__img,.site-nav .as-mega__card:focus-visible .as-mega__img{transform:scale(1.04)}
.site-nav .as-mega__card:hover .as-mega__name,.site-nav .as-mega__card:focus-visible .as-mega__name{background-size:100% 1px}
.site-nav .as-mega__card[aria-current] .as-mega__bar{background:var(--c-white)}
.site-nav .as-mega__card[aria-current] .as-mega__name{background-size:100% 1px}
@media (min-width:1280px) and (max-width:1919px){
  .as-mega__inner{padding:30px 48px 40px 40px}
  .as-mega__grid{gap:24px 16px;margin-top:28px}
  .as-mega__areas{gap:12px 24px}
}
@media (min-width:1280px) and (max-width:1439px){
  .as-mega__inner{padding:24px 48px 30px 40px}
  .as-mega__head{padding-bottom:18px}
  .as-mega__title{font-size:24px;margin-top:8px}
  .site-nav .as-mega__area{font-size:13px}
  .as-mega__grid{gap:20px 16px;margin-top:22px}
  .as-mega__media{aspect-ratio:16/9}
  .as-mega__type{font-size:10px;margin-top:10px}
  .as-mega__name{margin-top:5px}
}
@media (max-width:1279px){
  .site-nav__list .menu-item--mega{flex-wrap:wrap;gap:0 10px}
  .site-nav__list .menu-item--mega>a{padding-bottom:0;margin-bottom:0}
  .site-nav__list .menu-item--mega>a::after{bottom:-8px}
  .as-mega-toggle{display:inline-flex}
  .as-mega{position:static;flex-basis:100%;width:100%;max-height:none;overflow:visible;background:transparent;border:0;box-shadow:none;opacity:1;translate:none;transition:none}
  .menu-item--mega:hover>.as-mega,.menu-item--mega:focus-within>.as-mega{display:none}
  .menu-item--mega.is-open>.as-mega{display:block}
  .as-mega__inner{display:flex;flex-direction:column;padding:14px 0 10px 14px}
  .as-mega__head{display:block;order:2;padding-bottom:0;border:0}
  .as-mega__intro,.as-mega__areas li:not(:last-child){display:none}
  .as-mega__areas{padding:0;margin-top:22px}
  .as-mega__grid{display:block;margin-top:0}
  .as-mega__group{display:block}
  .as-mega__group+.as-mega__group{margin-top:22px}
  .as-mega__group-label{display:block;font-size:12px;line-height:1.4;color:var(--c-mint)}
  .as-mega__list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
  .site-nav .as-mega__card{flex-direction:row;align-items:center;gap:14px;min-height:44px}
  .as-mega__bar,.as-mega__type{display:none}
  .as-mega__media{flex:none;width:96px;aspect-ratio:470/300;border-left:3px solid var(--c-mint)}
  .as-mega__name{margin:0;padding:0;font-weight:400;font-size:17px;line-height:1.3;color:var(--c-sage);background:none}
  .site-nav .as-mega__card:hover .as-mega__name,.site-nav .as-mega__card[aria-current] .as-mega__name{color:var(--c-white)}
  .site-nav .as-mega__all{font-size:16px}
}
@media (max-width:480px){
  .as-mega__media{width:80px}
  .as-mega__name{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.as-mega,.as-mega__img,.as-mega__name{transition:none}}

/* ==========================================================================
   SEO headings (inc/seo.php): the H1 carries the keyword as a small kicker
   above the display title, which turns into a paragraph. Area pages get an
   intro paragraph between the banner and the treatments block.
   ========================================================================== */
.as-banner{flex-direction:column}
h1.as-banner__kicker{position:relative;margin:0 0 clamp(10px,1.04vw,20px);max-width:70ch;color:var(--c-mint2)}
p.as-banner__title{margin:0}
h1.as-hero__eyebrow{font-weight:300}
.as-eyebrow__link{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) no-repeat 0 100%/0 1px;transition:background-size .35s cubic-bezier(.2,.7,.2,1)}
.as-eyebrow__link:hover,.as-eyebrow__link:focus-visible{background-size:100% 1px}
.as-hub-intro{background:var(--c-black);color:var(--c-sage);padding:clamp(48px,4.69vw,90px) var(--gutter) 0}
.as-hub-intro__text{max-width:860px;margin:0 auto;text-align:center}
@media (max-width:767px){h1.as-banner__kicker{font-size:12px}}

/* ---- Price list (page prices / preisliste, client's list of 29/10/2026) ---- */
.as-prose .as-prices{width:100%;max-width:760px;margin:0 0 .6em;border-collapse:collapse;font-weight:300;font-size:var(--fs-text);line-height:1.35}
.as-prices th,.as-prices td{padding:14px 0;border-bottom:1px solid rgba(206,218,196,.22);vertical-align:top;text-align:left;font-weight:300}
.as-prices td{white-space:nowrap;text-align:right;padding-left:24px;font-variant-numeric:tabular-nums;color:var(--c-mint)}
.as-prices__note{display:block;margin-top:4px;font-size:.82em;line-height:1.4;opacity:.72}
.as-prose h2+.as-prices{margin-top:0}
@media (max-width:767px){.as-prices th,.as-prices td{padding:11px 0}.as-prices td{padding-left:14px}}
/* Treatment page: "Book" and "Price list" side by side */
.as-practice__links{display:flex;flex-wrap:wrap;gap:14px 40px;margin:48px 0 0}
.as-practice__links .as-practice__link{margin-top:0}
/* Treatment page: FAQ (client, 02/11/2026), native <details>, inside the dark panel */
.as-faq{margin-top:56px;max-width:580px;border-top:1px solid rgba(206,218,196,.28)}
.as-faq__title{margin:28px 0 12px;font-weight:700;font-size:var(--fs-text,inherit);color:var(--c-white)}
.as-faq__item{border-bottom:1px solid rgba(206,218,196,.28)}
.as-faq__q{display:flex;justify-content:space-between;gap:24px;padding:18px 0;cursor:pointer;list-style:none;color:var(--c-white)}
.as-faq__q::-webkit-details-marker{display:none}
.as-faq__q::after{content:"+";flex:none;font-weight:300;transition:transform .2s}
.as-faq__item[open] .as-faq__q::after{transform:rotate(45deg)}
.as-faq__q:focus-visible{outline:1px solid var(--c-sage);outline-offset:4px}
.as-faq__a{padding:0 0 20px;color:var(--c-sage)}
/* Multi-line practice data (hours, getting here): gap between blocks */
.as-gap{display:block;height:.9em}

/* 03/11/2026 (Andrés): everything that sits between the mint frame lines keeps the same margin
   on the left and on the right. One value for all framed panels; text fills the space in between. */
:root{--frame-pad:clamp(40px,5vw,96px)}
@media (min-width:768px){
  .as-about__panel,.as-practice__panel{padding-left:var(--frame-pad);padding-right:var(--frame-pad)}
  .as-about__text,.as-practice__text,.as-faq{max-width:none}
  .as-about__btn{margin-left:0}.as-about__title{margin-left:0}
}
@media (min-width:1024px){
  .as-cv__head,.as-cv__groups{padding-left:var(--frame-pad);padding-right:var(--frame-pad)}
  .as-cv__download{min-width:0;width:100%;white-space:normal;text-align:center}
}

/* ==========================================================================
   Responsive pass (03/11/2026): phones read and book without friction
   ========================================================================== */
/* Booking bar, phones and tablets only */
.as-stickycta{display:none}
@media (max-width:1023px){
  .as-stickycta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(10,15,13,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(133,182,164,.35);transform:translateY(110%);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .as-stickycta[hidden]{display:none}
  .as-stickycta.is-on{transform:none}
  .nav-open .as-stickycta,.modal-open .as-stickycta{transform:translateY(110%)}
  .as-stickycta__book{flex:1;display:flex;align-items:center;justify-content:center;gap:14px;min-height:50px;background:var(--c-sage);color:var(--c-ink);font-weight:700;font-size:16px;text-decoration:none}
  .as-stickycta__book .as-arrow{width:24px;height:11px}
  .as-stickycta__call{flex:none;display:flex;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid var(--c-sage);color:var(--c-sage)}
  .as-stickycta__call svg{width:22px;height:22px}
}
@media (max-width:1023px) and (prefers-reduced-motion:reduce){.as-stickycta{transition:none}}

/* Buttons never wider than their column (CV download, profile link) */
.as-cv__download,.as-about__btn{max-width:100%;white-space:normal;text-align:center}
@media (max-width:1023px){.as-cv__download{min-width:0;width:100%}}
/* Touch: inline phone / mail / area links get a finger-sized hit area without moving the layout */
@media (pointer:coarse){
  .as-dl dd a,.as-booking a[href^="tel"],.as-cta__alt a,.as-prose a[href^="tel"],.as-prose a[href^="mailto"],.as-practice__panel .as-eyebrow a,.site-footer__list a{display:inline-block;padding:11px 0;margin:-11px 0}
  .site-footer__list li+li{margin-top:22px}
}

/* Treatments: phones and tablets get a compact list (thumb, area, title, arrow) instead of 27 tall cards;
   two columns on tablets. Desktop keeps the cards. */
.as-treatment__type{text-shadow:0 1px 10px rgba(0,0,0,.85)}
@media (max-width:1023px){
  .as-treatments__grid{row-gap:0;margin-top:28px}
  .as-treatment{border-top:1px solid rgba(133,182,164,.28);border-bottom:1px solid rgba(133,182,164,.28);margin-top:-1px}
  .as-treatment__type{text-shadow:none}
  .as-treatment__inner{display:grid;grid-template-columns:76px 1fr 24px;align-items:center;column-gap:16px;padding:14px 0;background:none}
  .as-treatment__bar,.as-treatment__gap,.as-treatment__more,.as-treatment__media::after{display:none}
  .as-treatment__media{width:76px;aspect-ratio:1}
  .as-treatment__body{position:static;padding:0;display:block}
  .as-treatment__type{font-size:11px;line-height:1.3;letter-spacing:.04em}
  .as-treatment__title{margin-top:5px;font-size:17px;line-height:1.25}
  .as-treatment__inner::after{content:"";width:24px;height:11px;background:var(--c-mint);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12'%3E%3Cpath d='M0 6h24M19 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 12'%3E%3Cpath d='M0 6h24M19 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='1.4'/%3E%3C/svg%3E") center/contain no-repeat}
  .as-treatment__inner:active{background:rgba(255,255,255,.04)}
}
@media (min-width:641px) and (max-width:1023px){.as-treatments__grid{grid-template-columns:1fr 1fr;column-gap:40px}}
/* Phones: the four filters in a fixed 2×2 grid, all visible at once (a horizontal
   scroller hid the third area and patients did not guess they could swipe). */
@media (max-width:640px){
  .as-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-left:0}
  .as-tab{height:auto;min-height:48px;min-width:0;padding:8px 10px;font-size:12px;line-height:1.25;letter-spacing:.04em;text-align:center;white-space:normal;hyphens:auto}
  .as-tab:first-child{min-width:0}
}

@media (max-width:767px){
  /* Statement: the glowing symbol is decoration, not the message */
  .as-statement{padding-top:88px;padding-bottom:72px}
  .as-statement__glow{width:150px;margin-top:36px}
  .as-statement__text{margin-top:40px}
  /* Visit: data aligned with the title, comfortable size */
  .as-visit__body .as-dl{padding-left:0}
  .as-dl--light dd{font-size:17px;line-height:1.55}
  /* Service cards: no forced hyphen in short names ("Laser-medizin") */
  .as-service__title{hyphens:manual;-webkit-hyphens:manual}
  /* Price list: amounts stay on one line; long product names break instead */
  .as-prices th{overflow-wrap:anywhere;hyphens:auto}
  .as-prices td{padding-left:16px}
}

/* Booking CTA strip: on tablets the actions stack, so the text keeps a readable measure */
@media (max-width:1279px){.as-cta__actions{flex-direction:column;align-items:flex-end}}
@media (max-width:1023px){
  .as-cta__inner{grid-template-columns:1fr;row-gap:20px}
  .as-cta__head,.as-cta__text,.as-cta__actions{grid-column:1;grid-row:auto}
  .as-cta__actions{flex-direction:row;align-items:center;justify-content:flex-start;gap:14px 28px}
}
@media (max-width:767px){.as-cta__actions{flex-direction:column;align-items:stretch}.as-cta__btn{justify-content:space-between}}
.as-cta__alt a{border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}

/* ==========================================================================
   Sticky header on every width; after scrolling it shrinks to the symbol
   (main.js toggles .is-compact).
   ========================================================================== */
.site-header{position:sticky;top:0;transition:height .3s ease}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.site-brand{transition:transform .3s ease}
.site-brand__symbol{transition:width .3s ease,height .3s ease}
.site-brand__text{transition:opacity .2s ease,visibility .2s}
.site-header.is-compact{height:84px}
.site-header.is-compact .site-brand{transform:none}
.site-header.is-compact .site-brand__symbol{width:42px;height:42px}
.site-header.is-compact .site-brand__text{position:absolute;opacity:0;visibility:hidden;pointer-events:none}
@media (max-width:1279px){
  .site-nav{top:var(--hdr,90px)}
  .site-header.is-compact{height:64px;--hdr:64px}
  .site-header.is-compact .site-brand__symbol{width:34px;height:34px}
}
@media (prefers-reduced-motion:reduce){.site-header,.site-brand,.site-brand__symbol,.site-brand__text{transition:none}}
.grecaptcha-badge{visibility:hidden!important} /* replaced by the notice under the CV form (Google's rule) */
.as-recaptcha-note{margin-top:14px;opacity:.7}

/* Treatment page: opening next to the photo, the rest in rows as on About. */
.as-single-treatment .as-practice__frame{min-height:0}
@media (min-width:1024px){.as-single-treatment .as-practice__media{min-height:640px}}
.as-practice__sub{margin:32px 0 0;font-weight:700;font-size:var(--fs-text,inherit);line-height:1.4;color:var(--c-white)}
.as-practice__sub+.as-practice__lead{margin-top:14px}
.as-practice__lead p{font-size:clamp(17px,1.25vw,20px);line-height:1.6}
.as-treat-bio h3.as-about__bio-label{font-weight:300}
.as-treat-bio ul{margin-top:0;padding-left:1.1em}
.as-treat-bio p+ul,.as-treat-bio ul+p{margin-top:1.2em}
@media (min-width:768px){.as-treat-bio ul{columns:2;column-gap:clamp(32px,4vw,64px)}.as-treat-bio li{break-inside:avoid}}
.as-treat-bio .as-faq{margin-top:-18px;max-width:none;border-top:0}
.as-treat-bio .as-faq__item:last-child{border-bottom:0}
.as-treat-bio .as-about__bio-col:last-of-type{border-bottom:1px solid rgba(133,182,164,.4)}
.as-treat-bio__close{margin:clamp(56px,5.5vw,88px) 0 0}
.as-treat-bio__close p{font-size:clamp(22px,2.1vw,32px);line-height:1.25;max-width:32ch}
.as-treat-bio__close::after{display:none}
