
:root{
  --green:#366460;
  --green-dark:#294f4c;
  --brown:#5b4941;
  --brown-dark:#4d3d36;
  --brown-soft:#725e55;
  --ivory:#efe8e0;
  --white:#fffdf9;
  --line:#d8cdc3;
  --muted:#786b64;
  --shadow:0 16px 44px rgba(68,50,43,.12);
  --max:1180px;
}
*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  scroll-padding-top:var(--dd-header-offset, 96px);
}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--brown);
  line-height:1.65;
  background-image:
    linear-gradient(rgba(255,255,255,.28),rgba(255,255,255,.28)),
    url("/assets/images/img-0b774fa4421e605c.webp");
  background-size:cover;
  background-attachment:fixed;
  background-position:center;
}
a{text-decoration:none;color:inherit}
.container{width:min(var(--max),calc(100% - 42px));margin:auto}

.skip-to-content{position:absolute;left:16px;top:12px;z-index:10000;transform:translateY(-160%);background:#294f4c;color:#fff;padding:10px 14px;border-radius:12px;font-weight:700;text-decoration:none;box-shadow:0 10px 28px rgba(25,45,42,.22)}.skip-to-content:focus,.skip-to-content:focus-visible{transform:translateY(0);outline:2px solid #fff;outline-offset:3px}
header{
  position:sticky;top:0;z-index:100;
  background:rgba(249,246,241,.90);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(84,67,59,.14);
}
.nav{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{
  display:flex;
  align-items:center;
  gap:12px;
  /* Content-sized — never reserve 340px (squeezes menu over signature). */
  min-width:0;
  width:max-content;
  height:92px;
  overflow:visible;
}
.main-logo{
  width:92px;
  height:92px;
  object-fit:contain;
  display:block;
  flex:0 0 auto;
}
.brand-lockup{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:82px;
  gap:0;
  overflow:visible;
}
.signature-wordmark{
  width:205px;
  height:auto;
  display:block;
  object-fit:contain;
  object-position:center;
  margin:0 0 3px 0;
  overflow:visible;
}
.profession{
  font-size:.62rem;
  color:var(--brown-dark);
  letter-spacing:.22em;
  font-weight:700;
  line-height:1.0;
  white-space:nowrap;
  text-align:center;
  align-self:center;
  margin-top:-1px;
}
.menu{display:flex;align-items:center;gap:23px;font-size:.91rem}
/* Stretch to nav height so hover never dies in the pill; dropdown sits at 100% (flush). */
.item{
  position:relative;
  padding:0;
  align-self:stretch;
  display:flex;
  align-items:center;
}
.item>a{display:flex;align-items:center;gap:7px;white-space:nowrap;color:var(--brown-dark)}
.chev{font-size:.72rem;color:var(--brown);transform:translateY(1px)}
.dropdown{
  position:absolute;top:100%;left:-14px;min-width:245px;
  background:rgba(255,253,249,.98);border:1px solid var(--line);border-radius:16px;
  padding:9px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(0);transition:.18s ease;
  /* No translateY hop — a gap between pill and panel kills :hover on the way down. */
  margin-top:0;
  z-index:50;
}
/* Invisible hit bridge: pointer can leave the label and still stay over the menu. */
.dropdown::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-18px;
  height:18px;
}
.item:hover .dropdown,
.item:focus-within .dropdown,
.item.menu-open .dropdown{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
header.menus-closed .dropdown,
header.menus-closed .item:hover .dropdown,
header.menus-closed .item:focus-within .dropdown,
header.menus-closed .item.menu-open .dropdown{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform:translateY(0) !important;
}
.dropdown a{display:block;padding:10px 12px;border-radius:10px;color:var(--brown)}
.dropdown a:hover{background:rgba(54,100,96,.09);color:var(--green-dark)}
.actions{display:flex;align-items:center;gap:8px}
.social{
  width:36px;height:36px;min-width:36px;min-height:36px;
  aspect-ratio:1/1;
  border:1px solid rgba(84,67,59,.24);
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--brown-dark);
  transition:.2s;
  background:rgba(255,255,255,.48);
  padding:0;
  overflow:hidden;
}
.social svg{width:17px;height:17px;display:block;fill:currentColor}
.social:hover{background:var(--green);color:#fff;border-color:var(--brown-dark);transform:translateY(-1px)}
.phone{font-size:.82rem;color:var(--brown-soft);white-space:nowrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border-radius:999px;
  border:1px solid var(--green);font-weight:650;font-size:.92rem;transition:.2s
}
.btn.primary{background:var(--green);color:#fff}
.btn.primary:hover{background:var(--green-dark);border-color:var(--brown-dark);transform:translateY(-1px)}
.btn.ghost{color:var(--brown-dark);background:rgba(255,255,255,.4)}
.btn.ghost:hover{background:rgba(54,100,96,.08)}

.hero{padding:86px 0 78px;background:rgba(255,255,255,.22);border-bottom:1px solid rgba(84,67,59,.10)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:62px;align-items:center}
.kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:750;color:var(--brown-dark);margin-bottom:14px}
h1{font-size:clamp(2.8rem,6vw,5.15rem);line-height:.98;letter-spacing:-.045em;margin:0 0 18px;font-weight:650;color:var(--brown-dark)}
.hero h2{font-size:1.55rem;font-weight:500;color:var(--brown-dark);margin:0 0 20px}
.lead{font-size:1.13rem;color:#6a5b54;max-width:640px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.portrait{
  height:565px;
  border-radius:34px;
  background:
    linear-gradient(rgba(255,255,255,.02),rgba(255,255,255,.02)),
    url("/assets/images/img-f724b23d44db0691.webp");
  background-size:cover;
  background-position:center 20%;
  background-repeat:no-repeat;
  border:1px solid rgba(84,67,59,.14);
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.portrait:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(84,67,59,.08), rgba(255,255,255,0) 40%);
  pointer-events:none;
}

.quote-card{
  margin:-42px 24px 0;
  position:relative;
  z-index:2;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(54,100,96,.16);
  border-radius:28px;
  padding:24px 28px 24px 86px;
  box-shadow:0 12px 30px rgba(61,47,42,.08);
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:1.02rem;
  line-height:1.75;
  color:#3f4f49;
  max-width:840px;
}
.quote-card::before{
  content:"❝";
  position:absolute;
  left:26px;
  top:18px;
  font-size:3.2rem;
  line-height:1;
  color:#4d7167;
  font-family:Georgia,"Times New Roman",serif;
}

section{padding:88px 0}
.section-head{max-width:770px;margin-bottom:35px}
.section-head h3{font-size:clamp(2rem,4vw,3.1rem);line-height:1.12;margin:0 0 13px;letter-spacing:-.03em;color:var(--brown-dark)}
.section-head p{color:var(--muted);margin:0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.about-box,.card,.help,details{
  background:rgba(255,253,249,.88);border:1px solid rgba(54,100,96,.20);box-shadow:0 5px 18px rgba(61,47,42,.04)
}
.about-box{border-radius:22px;padding:32px}

.approach{
  background:var(--green);
  color:#fff;
  position:relative;overflow:hidden;
}
.approach:before{
  content:"";position:absolute;inset:0;
  background-image:url("/assets/images/img-0b774fa4421e605c.webp");
  background-size:cover;background-position:center;
  opacity:.06;
}
.approach .container{position:relative;z-index:2}
.approach .kicker{color:#e8ddd3}
.approach h3{color:#fff}
.approach p{color:#e7ded9}
.progress-wrap{display:grid;gap:19px;margin-top:30px}
.progress-item strong{display:block;margin-bottom:8px;font-size:.92rem;color:#fff}
.bar{height:7px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden}
.fill{height:100%;background:#d8c6b9;border-radius:999px}
.loop-placeholder{
  height:330px;border-radius:28px;
  background:linear-gradient(145deg,#d7cbc2,#f6f1eb 58%,#cbd9d6);
  border:1px solid rgba(255,255,255,.22);position:relative;overflow:hidden
}
.loop-placeholder:after{
  content:"Mini calm loop / video";
  position:absolute;right:18px;bottom:16px;font-size:.78rem;color:var(--brown);
  background:rgba(255,253,249,.76);padding:7px 10px;border-radius:999px
}
.approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{border-radius:22px;padding:28px;min-height:230px;transition:.25s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(54,100,96,.45)}
.card .n{font-size:.76rem;letter-spacing:.12em;color:var(--brown-dark);font-weight:750}
.card h4{font-size:1.18rem;margin:20px 0 10px;color:var(--brown-dark)}
.card p{color:var(--muted);font-size:.92rem;margin:0}

.green-band{
  background:
    linear-gradient(rgba(255,255,255,.56),rgba(255,255,255,.56)),
    url("") center/cover no-repeat;
  color:var(--brown);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.green-band .kicker{color:var(--green)}
.green-band .section-head h3{color:var(--brown-dark)}
.green-band .section-head p{color:var(--muted)}
.help-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.help{padding:22px;border-radius:18px;text-align:center;color:var(--brown-dark)}
.help:hover{border-color:rgba(54,100,96,.45)}

.placeholder{border:1px dashed rgba(84,67,59,.4);border-radius:20px;padding:28px;color:var(--muted);background:rgba(255,253,249,.60)}
details{border-radius:16px;padding:0 20px;margin-bottom:12px}
summary{padding:18px 0;cursor:pointer;font-weight:650;color:var(--brown-dark)}
details p{color:var(--muted)}

.contact-card{
  background:var(--brown);color:#fff;border-radius:32px;padding:44px;
  display:grid;grid-template-columns:1fr 1fr;gap:36px;position:relative;overflow:hidden
}
.contact-card .kicker{color:#c7dad7}
.contact-card p{color:#e9dfda}
.field{
  background:rgba(255,253,249,.98);border:none;border-radius:12px;padding:14px;width:100%;
  margin-bottom:12px;font:inherit;color:var(--brown)
}
textarea.field{min-height:110px;resize:vertical}
.contact-card .btn{background:var(--green);color:#fff;border-color:var(--green)}

footer{padding:46px 0 28px;background:rgba(239,232,224,.88)}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:28px}
footer p,footer a{font-size:.88rem;color:var(--muted)}
.legal{border-top:1px solid var(--line);margin-top:30px;padding-top:18px;font-size:.8rem;color:var(--muted)}

@media(max-width:1050px){
  .menu,.social{display:none}
  .phone:not(.header-phone-pill){display:none}
  .hero-grid,.about-grid,.approach-grid,.contact-card{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .help-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .container{width:calc(100% - 26px)}
  .hero{padding-top:54px}
  .portrait{height:390px}
  .cards,.help-grid{grid-template-columns:1fr}
  .contact-card{padding:28px}
  .brand-copy{display:none}
  .brand img{width:74px;height:74px}
}

.help-menu-label{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  font-family:"Comic Sans MS","Trebuchet MS","Segoe UI",sans-serif;
  font-style:italic;
  font-weight:800;
  font-size:.93rem;
  line-height:.88;
  letter-spacing:-.01em;
  color:var(--brown-dark);
  transform:rotate(-4deg);
  text-shadow:0 1px 0 rgba(255,255,255,.45);
}
.help-menu-label .line1{
  display:block;
}
.help-menu-label .line2{
  display:block;
  margin-top:1px;
}
.help-menu-label .qmark{
  display:inline-block;
  font-size:1.18em;
  font-weight:900;
  margin-left:2px;
  color:var(--brown-dark);
  transform:translateY(-1px);
}


/* Homepage content refinements */
.about-intro{font-size:1.06rem;color:var(--muted);max-width:720px}
.about-actions{margin-top:24px;display:flex;gap:12px;flex-wrap:wrap}
.contact-lead{max-width:560px}


/* ===== ABOUT — CONSOLIDATED BASE ===== */
.about-panel{
  background-image:url("/assets/images/img-8cab6c6b67dee23e.webp");
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center;
  border:1px solid rgba(54,100,96,.13);
  box-shadow:0 18px 55px rgba(68,50,43,.08);
}
.about-panel::before,
.about-panel::after,
.about-photo-wrap::before{
  display:none !important;
}

/* ===== FLOATING CONTACT PILL — CONSOLIDATED ===== */
.booking-float{
  position:fixed !important;
  right:max(16px, env(safe-area-inset-right,0px)) !important;
  left:auto !important;
  bottom:calc(var(--dd-booking-float-bottom, 24px) + env(safe-area-inset-bottom,0px)) !important;
  z-index:1000 !important;
  display:flex !important;
  align-items:center !important;
  gap:0 !important;
  /* Cap width against viewport; sit flush on the far right. */
  min-width:0 !important;
  width:auto !important;
  max-width:min(620px, calc(100vw - 24px)) !important;
  padding:0 !important;
  border-radius:26px !important;
  background:var(--green-dark) !important;
  box-shadow:0 14px 34px rgba(41,79,76,.24) !important;
  overflow:visible !important;
  border:none !important;
  transition:max-width .28s ease,border-radius .28s ease,transform .28s ease,box-shadow .28s ease !important;
}
.booking-float .booking-phone,
.booking-float .booking-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column !important;
  gap:4px !important;
  min-height:68px !important;
  color:#fff;
  text-decoration:none;
  font-size:.96rem !important;
  font-weight:500;
  line-height:1.15 !important;
  white-space:nowrap;
  transition:min-height .28s ease,padding .28s ease,font-size .28s ease,gap .28s ease !important;
}
.booking-float .booking-phone{
  flex:0 0 auto;
  min-width:max-content;
  padding:10px 16px 10px 18px !important;
}
.booking-float .booking-cta{
  flex:1 1 auto;
  min-width:0;
  padding:10px 18px !important;
  overflow:hidden !important;
  border-radius:0 26px 26px 0;
}
.booking-float .booking-divider{
  width:1px;
  height:42px !important;
  background:rgba(255,255,255,.72);
  flex:0 0 1px;
  transition:height .28s ease !important;
}
.booking-float .booking-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  line-height:1 !important;
}
.booking-float .booking-icon svg{transition:width .28s ease,height .28s ease !important}
.booking-float .booking-label{display:block !important;color:#fff !important}
.booking-float a:hover{background:rgba(255,255,255,.06)}
.booking-float.is-compact{
  min-width:0 !important;
  max-width:min(600px, calc(100vw - 24px)) !important;
  border-radius:22px !important;
  transform:scale(.96);
  box-shadow:0 10px 26px rgba(41,79,76,.20) !important;
}
.booking-float.is-compact .booking-phone,
.booking-float.is-compact .booking-cta{
  min-height:56px !important;
  gap:2px !important;
  font-size:.86rem !important;
}
.booking-float.is-compact .booking-phone{
  padding:7px 14px 7px 16px !important;
}
.booking-float.is-compact .booking-cta{
  padding:7px 16px !important;
}
.booking-float.is-compact .booking-icon svg{width:17px !important;height:17px !important}
.booking-float.is-compact .booking-divider{height:32px !important}
@media(max-width:700px){
  .booking-float{
    right:max(12px, env(safe-area-inset-right,0px)) !important;
    left:auto !important;
    /* bottom stays on --dd-booking-float-bottom (mobile chrome hides the dock ≤1050) */
    min-width:0 !important;
    width:auto !important;
    max-width:min(460px, calc(100vw - 24px)) !important;
    border-radius:24px !important;
  }
  .booking-float .booking-phone,
  .booking-float .booking-cta{
    min-height:62px !important;
    font-size:.8rem !important;
  }
  .booking-float .booking-phone{
    min-width:min(168px, 48vw);
    padding:8px 10px 8px 12px !important;
  }
  .booking-float .booking-cta{
    padding:8px 12px !important;
  }
  .booking-float .booking-icon svg{width:19px;height:19px}
  .booking-float .booking-divider{height:36px !important}
  .booking-float.is-compact{min-width:0 !important;transform:scale(.97)}
  .booking-float.is-compact .booking-phone,
  .booking-float.is-compact .booking-cta{
    min-height:54px !important;
    font-size:.74rem !important;
  }
  .booking-float.is-compact .booking-phone{
    padding:6px 8px 6px 10px !important;
  }
  .booking-float.is-compact .booking-cta{
    padding:6px 10px !important;
  }
}

/* ===== PROFESSIONAL STANCE ===== */
.professional-stance{
  padding:96px 0;
  background:linear-gradient(180deg,rgba(255,253,249,.96),rgba(239,232,224,.58));
}

.stance-shell{
  border:1px solid rgba(91,73,65,.12);
  border-radius:34px;
  background:rgba(255,253,249,.9);
  box-shadow:var(--shadow);
  overflow:hidden;
}

.stance-top{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:64px;
  padding:64px 68px 58px;
}

.stance-intro h3{
  margin:8px 0 22px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3.35rem);
  line-height:1.04;
  font-weight:500;
  color:var(--brown-dark);
  max-width:720px;
}

.stance-intro p{
  margin:0 0 16px;
  color:var(--brown-soft);
  font-size:1.03rem;
}

.stance-pillars{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:14px;
}

.stance-card{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:16px;
  align-items:start;
  padding:21px 22px;
  border-radius:20px;
  background:#f4efe9;
  border:1px solid rgba(54,100,96,.12);
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.stance-card:hover{
  transform:translateY(-2px);
  background:#f8f4ef;
  box-shadow:0 12px 28px rgba(68,50,43,.08);
}

.stance-num{
  display:flex;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--green);
  color:#fff;
  font-size:.76rem;
  letter-spacing:.08em;
}

.stance-card h4{
  margin:0 0 5px;
  color:var(--green-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.2rem;
  font-weight:500;
}

.stance-card p{
  margin:0;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.55;
}

.stance-video-wrap{
  position:relative;
  height:420px;
  overflow:hidden;
  background:#263b36;
}

.stance-video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 58%;
  transform:scale(1.01);
}

.stance-video-shade{
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(28,42,38,.08),rgba(28,42,38,.24)),
    linear-gradient(90deg,rgba(28,42,38,.18),transparent 45%);
}

.stance-video-caption{
  position:absolute;
  left:36px;
  bottom:30px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,253,249,.84);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  color:var(--green-dark);
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}

@media(max-width:900px){
  .professional-stance{padding:72px 0;}
  .stance-top{
    grid-template-columns:1fr;
    gap:36px;
    padding:48px 34px 42px;
  }
  .stance-video-wrap{height:340px;}
}

@media(max-width:600px){
  .professional-stance{padding:56px 0;}
  .stance-shell{border-radius:26px;}
  .stance-top{padding:36px 22px 30px;}
  .stance-card{
    grid-template-columns:38px 1fr;
    gap:12px;
    padding:18px;
  }
  .stance-video-wrap{height:270px;}
  .stance-video-caption{
    left:18px;
    bottom:18px;
    font-size:.68rem;
  }
}


/* ---- consolidated style block ---- */


/* ===== SINGLE-FILE PAGE ROUTER ===== */
.single-page-view{
  display:none;
}
.single-page-view.is-active{
  display:block;
  animation:none;
}
@keyframes pageFade{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:none}
}

/* Mouse-Back: hide body until route + scroll restore settle (no transition). */
html.is-route-restoring body{
  visibility:hidden !important;
  pointer-events:none !important;
}

/* ===== BRAND LOADER ===== */
#site-loader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:22px;
  background:#f5f0e9;
  transition:opacity .5s ease,visibility .5s ease;
}
#site-loader.loader-done{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.loader-mark{
  position:relative;
  width:150px;
  height:150px;
  display:grid;
  place-items:center;
  overflow:visible;
}
/* Full psi mark at source — never circle-crop (removed brandReveal). */
.loader-mark img{
  position:relative;
  z-index:2;
  width:128px;
  height:128px;
  object-fit:contain;
  opacity:1;
  transform:scale(1);
  clip-path:none;
  -webkit-clip-path:none;
  animation:none;
}
#site-loader .loader-mark{
  overflow:visible !important;
}
#site-loader .loader-mark img,
#site-loader .loader-head,
#site-loader .loader-brain{
  clip-path:none !important;
  -webkit-clip-path:none !important;
}
.loader-halo{
  position:absolute;
  inset:7px;
  border:1px solid rgba(54,100,96,.22);
  border-radius:50%;
  animation:haloPulse 1.35s ease-in-out infinite;
}
.loader-line{
  width:118px;
  height:2px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(54,100,96,.14);
}
.loader-line span{
  display:block;
  width:45%;
  height:100%;
  border-radius:inherit;
  background:var(--green);
  animation:loaderTravel 1.05s ease-in-out infinite;
}
@keyframes haloPulse{
  0%,100%{transform:scale(.92);opacity:.3}
  50%{transform:scale(1.06);opacity:.85}
}
@keyframes loaderTravel{
  0%{transform:translateX(-115%)}
  50%{transform:translateX(70%)}
  100%{transform:translateX(225%)}
}

.bio-page-card{
  margin:70px auto;
  padding:54px 58px;
  border:1px solid rgba(91,73,65,.13);
  border-radius:30px;
  background:linear-gradient(145deg,#fffdf9,#f3ede6);
  box-shadow:var(--shadow);
}
.bio-page-card h3{
  margin:8px 0 18px;
  max-width:760px;
  font-family:Georgia,"Times New Roman",serif;
  color:var(--brown-dark);
  font-size:clamp(2rem,4vw,3.1rem);
  line-height:1.08;
  font-weight:500;
}
.bio-page-card>p{max-width:820px;color:var(--brown-soft)}
.bio-page-grid{
  margin-top:30px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.bio-page-grid>div{
  padding:22px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(54,100,96,.12);
}
.bio-page-grid strong{display:block;color:var(--green-dark);margin-bottom:7px}
.bio-page-grid span{display:block;color:var(--muted);font-size:.94rem}
@media(max-width:800px){
  .bio-page-card{padding:38px 26px}
  .bio-page-grid{grid-template-columns:1fr}
}


/* ---- consolidated style block ---- */


/* ===== HOME CONTENT PRESERVED / FUTURE PAGES ===== */
.placeholder-page{
  min-height:calc(100vh - 90px);
  padding:120px 0 90px;
  background:linear-gradient(180deg,#fffdf9,#f2ebe4);
}
.placeholder-page-card{
  max-width:820px;
  margin:0 auto;
  padding:58px 56px;
  border-radius:32px;
  background:rgba(255,253,249,.92);
  border:1px solid rgba(91,73,65,.13);
  box-shadow:var(--shadow);
  text-align:center;
}
.placeholder-page-card h1{
  margin:8px 0 16px;
  font-family:Georgia,"Times New Roman",serif;
  color:var(--brown-dark);
  font-size:clamp(2.4rem,5vw,4.3rem);
  line-height:1.05;
  font-weight:500;
}
.placeholder-page-card p{
  margin:0 auto 28px;
  color:var(--muted);
  font-size:1.05rem;
}
.placeholder-back{display:inline-flex}

@media(max-width:650px){
  .placeholder-page{padding:90px 0 60px}
  .placeholder-page-card{padding:40px 22px;border-radius:24px}
}


/* ---- consolidated style block ---- */


/* ===== LOADER — FINAL CONSOLIDATED IMPLEMENTATION ===== */
#site-loader .loader-mark{
  position:relative !important;
  width:150px !important;
  height:150px !important;
}

#site-loader .loader-head,
#site-loader .loader-brain{
  position:absolute !important;
  inset:0 !important;
  margin:auto !important;
  width:128px !important;
  height:128px !important;
  object-fit:contain !important;
  clip-path:none !important;
}

#site-loader .loader-head{
  z-index:2 !important;
  opacity:1 !important;
  transform:scale(1) !important;
  animation:none !important;
  filter:none !important;
}

#site-loader .loader-brain{
  z-index:4 !important;
  opacity:0;
  transform:scale(.82);
  transform-origin:50% 31% !important;
  animation:brainBreathingWorking .72s ease-in-out 0s infinite !important;
  will-change:opacity,transform,filter;
}

@keyframes brainBreathingWorking{
  0%{opacity:0;transform:scale(.82);filter:drop-shadow(0 0 0 rgba(150,105,45,0))}
  20%{opacity:.25;transform:scale(.90)}
  48%{opacity:1;transform:scale(1.09);filter:drop-shadow(0 0 7px rgba(150,105,45,.95)) drop-shadow(0 0 15px rgba(150,105,45,.55))}
  68%{opacity:.72;transform:scale(1.01)}
  86%{opacity:.18;transform:scale(.90)}
  100%{opacity:0;transform:scale(.82);filter:drop-shadow(0 0 0 rgba(150,105,45,0))}
}

#site-loader .loader-halo{
  opacity:.18 !important;
  animation:none !important;
}
#site-loader .loader-line{display:none !important}

@media (prefers-reduced-motion:reduce){
  #site-loader .loader-head{animation:none !important;opacity:1 !important}
  #site-loader .loader-brain{animation:none !important;opacity:1 !important;transform:none !important}
}


/* ===== ABOUT PANEL EDGE FIX ===== */
/* Αφαιρεί το πράσινο ίχνος από πάνω αριστερά και κάτω δεξιά,
   χωρίς να πειράζει τα διακοσμητικά πράσινα στοιχεία του background. */
.about-panel{
  border-color:rgba(91,73,65,.10) !important;
}


/* ---- consolidated style block ---- */


/* Remove ONLY the thin green line above the "Σχετικά με τον Δημήτρη Δαδαλή" panel */
.about-panel{
  border-top-color: transparent !important;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT SIGNATURE ===== */
.about-signature{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
}

.about-signature strong{
  color:var(--green-dark);
  font-size:1.08rem;
  font-weight:700;
}

.about-signature span{
  display:block;
  color:var(--brown-soft);
  line-height:1.45;
}

.about-signature .about-credentials{
  margin-top:2px;
  color:var(--green-dark);
  font-size:.95rem;
  font-weight:500;
  letter-spacing:.01em;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT SIGNATURE WITH PHOTO ===== */
.about-signature.about-signature-with-photo{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
}

.about-signature-photo{
  width:72px;
  height:72px;
  flex:0 0 72px;
  border-radius:50%;
  object-fit:cover;
  object-position:50% 22%;
  background:#eee7df;
  border:2px solid rgba(54,100,96,.10);
}

.about-signature-text{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
}

.about-signature-text strong{
  color:var(--green-dark);
  font-size:1.08rem;
  font-weight:700;
  line-height:1.3;
}

.about-signature-text span{
  display:block;
  color:var(--brown-soft);
  line-height:1.35;
}

.about-signature-text .about-credentials{
  margin-top:3px;
  color:var(--green-dark);
  font-size:.94rem;
  font-weight:600;
  letter-spacing:.02em;
}


/* ---- consolidated style block ---- */


/* ===== FLOATING / STICKY MENU BUBBLE ===== */
header{
  position:sticky !important;
  top:0 !important;
  z-index:4000 !important;
  /* Opaque mask: the sticky box itself covers the strip above the pill
     so scrolled copy cannot appear above or through the bar. */
  background:var(--ivory,#efe8e0) !important;
  border-bottom:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  padding:0 !important;
  overflow:visible !important;
  isolation:isolate;
  transition:padding .28s ease;
}
/* Default: bar always receives clicks after home restore / route settle. */
body:not(.psychologist-route):not(.services-route) header,
body:not(.psychologist-route):not(.services-route) header .nav,
body:not(.psychologist-route):not(.services-route) header .nav a,
body:not(.psychologist-route):not(.services-route) header .nav button{
  pointer-events:auto !important;
}

header .nav{
  height:76px !important;
  padding:0 22px !important;
  border-radius:28px !important;
  background:#f9f6f1 !important;
  border:1px solid rgba(54,100,96,.13) !important;
  box-shadow:0 10px 30px rgba(68,50,43,.08) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  /* Clip square logo corners to the pill radius without circle-cropping psi. */
  overflow:hidden;
  transition:
    background .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    height .28s ease,
    transform .28s ease;
}
header .nav:has(.item:hover),
header .nav:has(.item:focus-within),
header .nav:has(.item.menu-open),
header .nav:has(.header-lang.is-open){
  overflow:visible;
}
header.is-scrolled{
  padding:0 !important;
}

header.is-scrolled .nav{
  height:68px !important;
  background:#f9f6f1 !important;
  border-color:rgba(54,100,96,.18) !important;
  box-shadow:0 12px 30px rgba(68,50,43,.11) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* Keep menu text clear even when the bubble becomes more transparent */
header .menu a,
header .brand{
  opacity:1 !important;
}

header .menu a{
  text-shadow:0 1px 0 rgba(255,255,255,.22);
}

@media(max-width:900px){
  header{
    padding:0 !important;
  }
  header .nav{
    height:70px !important;
    border-radius:24px !important;
    padding:0 16px !important;
  }
  header.is-scrolled .nav{
    height:64px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== FLOATING MENU — FIT ALL ITEMS ===== */
header .nav{
  max-width:1360px !important;
  padding:0 16px !important;
  gap:14px !important;
}

header .brand{
  flex:0 0 auto !important;
}

header .brand .main-logo{
  max-width:150px !important;
}

/* Desktop menu starts after brand (v8.13.1). flex-end spilled left over signature. */
header .menu{
  gap:10px !important;
  flex:1 1 auto !important;
  justify-content:flex-start !important;
  min-width:0 !important;
}

header .menu > .item{
  flex:0 0 auto !important;
  align-self:stretch !important;
  display:flex !important;
  align-items:center !important;
  padding:0 !important;
}

header .menu > .item > a{
  padding-left:8px !important;
  padding-right:8px !important;
  font-size:.90rem !important;
  white-space:nowrap !important;
}

@media(max-width:1180px){
  header .nav{
    max-width:calc(100% - 24px) !important;
    padding:0 12px !important;
    gap:10px !important;
  }

  header .brand .main-logo{
    max-width:132px !important;
  }

  header .menu{
    gap:6px !important;
  }

  header .menu > .item > a{
    padding-left:6px !important;
    padding-right:6px !important;
    font-size:.82rem !important;
  }
}

@media(max-width:980px){
  header .brand .main-logo{
    max-width:118px !important;
  }

  header .menu{
    gap:4px !important;
  }

  header .menu > .item > a{
    padding-left:4px !important;
    padding-right:4px !important;
    font-size:.76rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER BRAND / SIGNATURE — FINAL CONSOLIDATED ===== */
/* Brand cluster keeps logo+signature as one unit (centered on ≤1050). */
header .header-brand-cluster{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-width:0;
  max-width:100%;
  overflow:visible;
  transform:none;
}
/* No negative translateX — that pulled the signature over Αρχική.
   Content-sized brand only — never reserve empty min-width. */
header .brand{
  gap:10px !important;
  transform:none !important;
  min-width:0 !important;
  width:max-content !important;
}
header .brand-lockup{
  transform:none !important;
  max-width:210px !important;
  text-decoration:none !important;
  color:inherit !important;
  flex:0 0 auto;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
header .signature-wordmark{
  width:145px !important;
  max-width:145px !important;
  height:auto !important;
  margin:0 auto !important;
  object-fit:contain !important;
  object-position:center center !important;
}
header .brand-lockup > *:not(.signature-wordmark){
  font-size:.82rem !important;
  letter-spacing:.20em !important;
  line-height:1.1 !important;
}
/* Below desktop chrome breakpoint only — do not shrink wordmark on ≥1051. */
@media(max-width:1050px){
  header .brand{transform:none !important}
  header .brand-lockup{transform:none !important;max-width:185px !important}
  header .signature-wordmark{width:132px !important;max-width:132px !important}
  header .brand-lockup > *:not(.signature-wordmark){font-size:.76rem !important}
}


/* ===== HEADER PHONE PILL ===== */
header .header-phone-pill{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  padding:9px 13px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.48) !important;
  border:1px solid rgba(84,67,59,.24) !important;
  color:var(--brown-dark) !important;
  text-decoration:none !important;
  font-size:.84rem !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  transition:
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    transform .22s ease,
    box-shadow .22s ease !important;
}

header .header-phone-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}

header .header-phone-pill:hover{
  background:var(--green) !important;
  color:#fff !important;
  border-color:var(--green) !important;
  transform:translateY(-1px);
  box-shadow:0 7px 18px rgba(54,100,96,.18);
}

@media(max-width:1180px){
  header .header-phone-pill{
    padding:8px 10px !important;
    gap:5px !important;
    font-size:.78rem !important;
  }
  header .header-phone-pill svg{
    width:14px;
    height:14px;
  }
}


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ===== HEADER APPOINTMENT PILL ===== */
header .btn.primary{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:36px !important;
  padding:8px 13px !important;
  border-radius:999px !important;
  background:var(--green) !important;
  border:1px solid var(--green) !important;
  color:#fff !important;
  font-size:.84rem !important;
  font-weight:600 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  box-shadow:none !important;
  transition:
    transform .22s ease,
    box-shadow .22s ease,
    filter .22s ease !important;
}

header .btn.primary:hover{
  transform:scale(1.06) !important;
  box-shadow:0 8px 18px rgba(54,100,96,.18) !important;
  filter:brightness(1.03);
}

@media(max-width:1180px){
  header .btn.primary{
    min-height:34px !important;
    padding:8px 10px !important;
    font-size:.78rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== LOADER IDENTITY — APPEARS AFTER LOGO ===== */
#site-loader .loader-identity{
  margin-top:14px;
  text-align:center;
  opacity:0;
  transform:translateY(7px);
  animation:loaderIdentityIn .32s ease-out .34s forwards;
  pointer-events:none;
}

#site-loader .loader-name{
  color:var(--brown-dark);
  font-family:Georgia, "Times New Roman", serif;
  font-size:1.22rem;
  font-weight:600;
  line-height:1.15;
  letter-spacing:.01em;
  white-space:nowrap;
}

#site-loader .loader-profession{
  margin-top:5px;
  color:var(--green-dark);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
}

@keyframes loaderIdentityIn{
  from{
    opacity:0;
    transform:translateY(7px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media (prefers-reduced-motion:reduce){
  #site-loader .loader-identity{
    animation:none;
    opacity:1;
    transform:none;
  }
}


/* ---- consolidated style block ---- */


/* ===== LOADER TEXT — ELEGANT REVEAL EFFECT ===== */
#site-loader .loader-name{
  opacity:0;
  filter:blur(6px);
  transform:translateY(8px) scale(.97);
  letter-spacing:.08em;
  animation:loaderNameReveal .55s cubic-bezier(.2,.8,.2,1) .38s forwards;
}

#site-loader .loader-profession{
  opacity:0;
  transform:translateY(8px);
  letter-spacing:.34em;
  animation:loaderProfessionReveal .48s cubic-bezier(.2,.8,.2,1) .66s forwards;
}

@keyframes loaderNameReveal{
  0%{
    opacity:0;
    filter:blur(6px);
    transform:translateY(8px) scale(.97);
    letter-spacing:.08em;
  }
  100%{
    opacity:1;
    filter:blur(0);
    transform:translateY(0) scale(1);
    letter-spacing:.01em;
  }
}

@keyframes loaderProfessionReveal{
  0%{
    opacity:0;
    transform:translateY(8px);
    letter-spacing:.34em;
  }
  100%{
    opacity:1;
    transform:translateY(0);
    letter-spacing:.22em;
  }
}

@media (prefers-reduced-motion:reduce){
  #site-loader .loader-name,
  #site-loader .loader-profession{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== REPLAY LOADER TEXT EFFECT ON EVERY PAGE CHANGE ===== */
#site-loader .loader-name,
#site-loader .loader-profession{
  animation:none !important;
}

#site-loader.replay-text .loader-name{
  animation:loaderNameReveal .55s cubic-bezier(.2,.8,.2,1) .38s forwards !important;
}

#site-loader.replay-text .loader-profession{
  animation:loaderProfessionReveal .48s cubic-bezier(.2,.8,.2,1) .66s forwards !important;
}


/* ---- consolidated style block ---- */


/* ===== MENU SUBMENU CHEVRONS ===== */
header .chev{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:4px !important;
  line-height:0 !important;
  transition:transform .22s ease, color .22s ease !important;
}

header .chev svg{
  display:block;
  width:12px;
  height:12px;
}

header .item:hover > a .chev,
header .item:focus-within > a .chev{
  transform:rotate(180deg);
}


/* ---- consolidated style block ---- */


/* ===== HEADER SIGNATURE — FINAL HANDWRITING HOVER ===== */
header .signature-wordmark{
  opacity:1 !important;
  transform:none !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
  -webkit-mask-image:none;
  mask-image:none;
}

/* The final trigger area is the signature lockup, not the whole brand. */
header .brand-lockup:hover .signature-wordmark,
header .brand-lockup:focus-within .signature-wordmark{
  animation:signatureHandwrite 1.75s linear both !important;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 82%,rgba(0,0,0,.72) 91%,transparent 100%) !important;
  mask-image:linear-gradient(90deg,#000 0%,#000 82%,rgba(0,0,0,.72) 91%,transparent 100%) !important;
  -webkit-mask-repeat:no-repeat !important;
  mask-repeat:no-repeat !important;
  -webkit-mask-position:left center !important;
  mask-position:left center !important;
}

@keyframes signatureHandwrite{
  0%{-webkit-mask-size:0% 100%;mask-size:0% 100%;}
  47%{-webkit-mask-size:53% 100%;mask-size:53% 100%;}
  56%{-webkit-mask-size:53% 100%;mask-size:53% 100%;}
  100%{-webkit-mask-size:112% 100%;mask-size:112% 100%;}
}

@media (prefers-reduced-motion:reduce){
  header .brand-lockup:hover .signature-wordmark,
  header .brand-lockup:focus-within .signature-wordmark{
    animation:none !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER LOGO — BRAIN BRIGHTENS WHILE HOVERED ===== */
header .header-logo-hover{
  position:relative;
  display:block;
  flex:0 0 auto;
  width:74px;
  height:74px;
  line-height:0;
  /* Contain oversized logo bitmap; do not circle-crop the psi mark. */
  overflow:hidden;
}
header.is-scrolled .header-logo-hover{
  width:60px;
  height:60px;
}

header .header-logo-hover .main-logo{
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:contain !important;
}

header .header-logo-brain{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  opacity:0;
  transform:scale(1);
  transform-origin:50% 31%;
  filter:
    brightness(1.12)
    contrast(1.12)
    saturate(1.10)
    drop-shadow(0 0 1.5px rgba(150,105,45,.35));
  transition:opacity .18s ease, filter .18s ease;
}

/* Stable effect: stays visible for as long as the cursor remains on the logo. */
header .header-logo-hover:hover .header-logo-brain{
  opacity:.68;
  filter:
    brightness(1.22)
    contrast(1.18)
    saturate(1.16)
    drop-shadow(0 0 2.5px rgba(150,105,45,.46));
}

@media(max-width:1180px){
  header .header-logo-hover{
    width:74px;
    height:74px;
  }
}


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ===== TESTIMONIALS — LARGE BOTTOM SHOWCASE ===== */


@media(max-width:980px){
}

@media(max-width:620px){
}


/* ---- consolidated style block ---- */


/* ===== TESTIMONIALS — REAL SLIDER BEHAVIOR ===== */


@media(max-width:980px){
}

@media(max-width:620px){
}


/* ---- consolidated style block ---- */


/* ===== ACTIVE MENU PAGE INDICATOR ===== */
header .menu > .item > a,
header .menu .dropdown > a{
  position:relative;
  transition:
    color .2s ease,
    font-weight .2s ease;
}

/* Current page: slightly bolder label */
header .menu a.active-page{
  color:var(--green-dark) !important;
  font-weight:700 !important;
}

/* Subtle underline under the active top-level menu item */
header .menu > .item > a.active-page::after{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  bottom:8px;
  height:2px;
  border-radius:999px;
  background:rgba(54,100,96,.58);
  transform:scaleX(1);
  transform-origin:center;
}

/* If a submenu page is active, highlight its parent top-level menu as well */
header .menu > .item.has-active-child > a{
  color:var(--green-dark) !important;
  font-weight:700 !important;
}

header .menu > .item.has-active-child > a::after{
  content:"";
  position:absolute;
  left:10%;
  right:10%;
  bottom:8px;
  height:2px;
  border-radius:999px;
  background:rgba(54,100,96,.58);
}

/* Active submenu entry */
header .menu .dropdown > a.active-page{
  font-weight:700 !important;
  color:var(--green-dark) !important;
}


/* ---- consolidated style block ---- */


/* ===== ACTIVE MENU — LINE CLEARLY BELOW TEXT ===== */
header .menu > .item > a.active-page::after,
header .menu > .item.has-active-child > a::after{
  left:8% !important;
  right:8% !important;
  bottom:-6px !important;
  height:2px !important;
  background:rgba(54,100,96,.58) !important;
  border-radius:999px !important;
}

header .menu > .item > a{
  padding-bottom:4px !important;
}

/* ===== SOCIAL ICONS — STRONGER, EACH IN ITS OWN BRAND COLOR ===== */
header a.social{
  background:rgba(255,255,255,.62) !important;
  transition:
    color .2s ease,
    border-color .2s ease,
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease !important;
}

header a.social[aria-label="Facebook"]{
  color:#1877F2 !important;
  border-color:rgba(24,119,242,.30) !important;
}

header a.social[aria-label="LinkedIn"]{
  color:#0A66C2 !important;
  border-color:rgba(10,102,194,.30) !important;
}

header a.social[aria-label="Instagram"]{
  color:#E4405F !important;
  border-color:rgba(228,64,95,.30) !important;
}

header a.social[aria-label="Facebook"]:hover{
  color:#1877F2 !important;
  background:rgba(24,119,242,.10) !important;
  border-color:rgba(24,119,242,.58) !important;
  box-shadow:0 5px 14px rgba(24,119,242,.14) !important;
  transform:translateY(-1px) scale(1.04);
}

header a.social[aria-label="LinkedIn"]:hover{
  color:#0A66C2 !important;
  background:rgba(10,102,194,.10) !important;
  border-color:rgba(10,102,194,.58) !important;
  box-shadow:0 5px 14px rgba(10,102,194,.14) !important;
  transform:translateY(-1px) scale(1.04);
}

header a.social[aria-label="Instagram"]:hover{
  color:#E4405F !important;
  background:rgba(228,64,95,.10) !important;
  border-color:rgba(228,64,95,.58) !important;
  box-shadow:0 5px 14px rgba(228,64,95,.14) !important;
  transform:translateY(-1px) scale(1.04);
}


/* ---- consolidated style block ---- */


/* ===== HEADER LANGUAGE + LOGIN ===== */
header .actions{
  gap:8px !important;
  flex-wrap:nowrap !important;
}

/* Header booking CTA removed — booking via #bookingFloat + Περισσότερα only. */
.header-book-pill,
.header-book-icon,
.header-book-label{
  display:none !important;
}

/* Header language: flag toggle + dropdown (replaces EL/EN/DE pill row). */
header .language-switch{
  display:none !important;
}
.footer-language-switch.language-switch{
  display:inline-flex !important;
}

header .header-lang{
  position:relative;
  flex:0 0 auto;
  z-index:6;
}

header .header-lang-toggle{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:40px;
  height:40px;
  min-width:40px;
  padding:0;
  border-radius:999px;
  border:1px solid rgba(84,67,59,.18);
  background:rgba(255,255,255,.72);
  color:var(--green-dark);
  font:inherit;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}

header .header-lang-toggle:hover,
header .header-lang.is-open .header-lang-toggle{
  background:#fff;
  border-color:rgba(54,100,96,.28);
  box-shadow:0 4px 14px rgba(54,100,96,.12);
}

header .header-lang-toggle .flag-svg{
  display:block;
  width:22px;
  height:15px;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(54,100,96,.16);
}

header .header-lang-code{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
  border:0;
}

header .header-lang-caret{
  display:none;
}

header .header-lang-dropdown{
  position:absolute;
  top:100%;
  right:0;
  min-width:176px;
  margin-top:0;
  padding:6px;
  border-radius:14px;
  border:1px solid rgba(54,100,96,.16);
  background:rgba(255,253,249,.98);
  box-shadow:0 16px 40px rgba(39,49,45,.16);
  backdrop-filter:blur(12px);
  display:grid;
  gap:2px;
  z-index:14000;
}
header .header-lang-dropdown::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  height:12px;
}

header .header-lang-dropdown[hidden]{
  display:none !important;
}

header .header-lang-option{
  appearance:none;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  padding:10px 12px;
  border-radius:10px;
  color:var(--green-dark);
  font:inherit;
  font-size:.86rem;
  font-weight:650;
  cursor:pointer;
  text-align:left;
}

header .header-lang-option:hover,
header .header-lang-option:focus-visible{
  background:rgba(54,100,96,.1);
}

header .header-lang-option.is-active{
  background:rgba(54,100,96,.14);
}

header .header-lang-option .flag-svg{
  display:block;
  width:22px;
  height:15px;
  border-radius:2px;
  box-shadow:0 0 0 1px rgba(54,100,96,.16);
  flex:0 0 auto;
}

header .header-lang-option-code{
  margin-left:auto;
  font-size:.72rem;
  letter-spacing:.06em;
  opacity:.62;
}

header .login-icon{
  width:36px;
  height:36px;
  min-width:36px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--brown-dark);
  background:rgba(255,255,255,.48);
  border:1px solid rgba(84,67,59,.24);
  text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}

header .login-icon:hover,
header .login-icon.active-page{
  color:#fff !important;
  background:var(--green) !important;
  border-color:var(--green) !important;
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(54,100,96,.16);
}

/* Prevent the generic active-menu underline from affecting the user icon */
header .login-icon::after{display:none !important;}

@media(max-width:1180px){
  header .language-switch{margin-left:0;}
  header .lang-btn{
    min-width:24px;
    height:26px;
    padding:0 4px;
    font-size:.62rem;
  }
  header .login-icon{
    width:32px;
    height:32px;
    min-width:32px;
  }
}


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ===== Η ΟΠΤΙΚΗ ΜΟΥ — CARDS + ANIMATED BARS ===== */
#my-perspective-home{
  padding:88px 0 84px;
  background:rgba(249,246,241,.78);
}

#my-perspective-home .perspective-top{
  margin-bottom:34px;
  max-width:880px;
}

#my-perspective-home .perspective-top .kicker{
  margin-bottom:12px;
  color:var(--green-dark);
  font-weight:800;
}

#my-perspective-home .perspective-top h3{
  margin:0;
  color:var(--brown-dark);
  font-size:clamp(2.1rem,4vw,3.55rem);
  line-height:1.05;
  letter-spacing:-.04em;
}

#my-perspective-home .perspective-layout{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(310px,.72fr);
  gap:42px;
  align-items:start;
}

#my-perspective-home .perspective-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

#my-perspective-home .perspective-card{
  min-height:250px;
  padding:28px 30px 30px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(84,67,59,.10);
  box-shadow:0 12px 30px rgba(72,55,47,.035);
}

#my-perspective-home .perspective-card-num{
  display:block;
  margin-bottom:34px;
  color:rgba(54,100,96,.38);
  font-size:.80rem;
  font-weight:800;
  letter-spacing:.16em;
}

#my-perspective-home .perspective-card h4{
  margin:0 0 16px;
  color:var(--green-dark);
  font-size:1.35rem;
  line-height:1.25;
  font-weight:700;
}

#my-perspective-home .perspective-card p{
  margin:0;
  color:rgba(84,67,59,.73);
  font-size:.98rem;
  line-height:1.72;
}

#my-perspective-home .perspective-bars{
  position:sticky;
  top:118px;
  display:flex;
  flex-direction:column;
  gap:38px;
  padding:16px 0 0;
}

#my-perspective-home .perspective-bar-item h4{
  margin:0 0 14px;
  color:var(--green-dark);
  font-size:1.22rem;
  line-height:1.25;
  font-weight:700;
}

#my-perspective-home .perspective-bar-track{
  width:100%;
  height:8px;
  border-radius:999px;
  background:rgba(54,100,96,.14);
  overflow:hidden;
}

#my-perspective-home .perspective-bar-fill{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:var(--green-dark);
}

@media(max-width:1050px){
  #my-perspective-home .perspective-layout{
    grid-template-columns:1fr;
  }
  #my-perspective-home .perspective-bars{
    position:static;
    max-width:760px;
    padding-top:8px;
  }
}

@media(max-width:720px){
  #my-perspective-home{
    padding:68px 0 62px;
  }
  #my-perspective-home .perspective-cards{
    grid-template-columns:1fr;
  }
  #my-perspective-home .perspective-card{
    min-height:0;
  }
}


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ---- consolidated style block ---- */


/* ===== Η ΟΠΤΙΚΗ ΜΟΥ — CARD HOVER COLOR ===== */
#my-perspective-home .perspective-card{
  transition:
    background .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    transform .28s ease,
    color .28s ease !important;
}

#my-perspective-home .perspective-card:hover{
  background:var(--green-dark) !important;
  border-color:var(--green-dark) !important;
  box-shadow:0 16px 34px rgba(41,79,76,.18) !important;
  transform:translateY(-4px) !important;
}

#my-perspective-home .perspective-card:hover .perspective-card-num{
  color:rgba(255,255,255,.58) !important;
}

#my-perspective-home .perspective-card:hover h4{
  color:#fff !important;
}

#my-perspective-home .perspective-card:hover p{
  color:rgba(255,255,255,.84) !important;
}


/* ---- consolidated style block ---- */


/* ===== Η ΟΠΤΙΚΗ ΜΟΥ — REFINED BACKGROUND ===== */
#my-perspective-home{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 18%, rgba(54,100,96,.16) 0%, rgba(54,100,96,.08) 18%, transparent 42%),
    radial-gradient(circle at 88% 16%, rgba(164,128,84,.14) 0%, rgba(164,128,84,.07) 16%, transparent 38%),
    radial-gradient(circle at 76% 82%, rgba(54,100,96,.10) 0%, transparent 34%),
    linear-gradient(135deg, #f7f4ef 0%, #eef3f0 46%, #f8f4ee 100%) !important;
}

#my-perspective-home::before,
#my-perspective-home::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  filter:blur(10px);
  opacity:.52;
}

#my-perspective-home::before{
  width:340px;
  height:340px;
  left:-120px;
  bottom:-110px;
  background:rgba(54,100,96,.10);
}

#my-perspective-home::after{
  width:290px;
  height:290px;
  right:-90px;
  top:42px;
  background:rgba(164,128,84,.09);
}

#my-perspective-home > .container{
  position:relative;
  z-index:1;
}

/* Slightly refine the cards against the new background */
#my-perspective-home .perspective-card{
  background:rgba(255,255,255,.72) !important;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
  border-color:rgba(54,100,96,.10) !important;
}

#my-perspective-home .perspective-bar-track{
  background:rgba(54,100,96,.13) !important;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT FINAL — MATCH ANNA REFERENCE COMPOSITION ===== */

#about{
  /* Keep head CTA clear of sticky header when section enters the viewport */
  padding:calc(var(--dd-header-offset, 96px) + 8px) 0 30px !important;
  scroll-margin-top:var(--dd-header-offset, 96px);
}

#about .about-panel{
  box-sizing:border-box !important;
  width:100% !important;
  height:clamp(720px, calc(100svh - 118px), 880px) !important;
  min-height:0 !important;
  padding:46px 62px 0 !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto auto minmax(0,1fr) !important;
  row-gap:30px !important;
  overflow:hidden !important;
  position:relative !important;
  border-radius:28px !important;
}

/* Title left / Learn more right — same top composition as reference */
#about .about-showcase-head{
  grid-row:1 !important;
  grid-column:1 !important;
  width:100% !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:30px !important;
  margin:0 !important;
  padding:0 !important;
}

#about .about-showcase-head h3{
  margin:0 !important;
  color:var(--green-dark) !important;
  font-size:clamp(2.35rem,3.35vw,3.45rem) !important;
  line-height:1 !important;
  letter-spacing:-.045em !important;
  font-weight:800 !important;
}

#about .about-showcase-head .btn{
  flex:0 0 auto !important;
  min-width:245px !important;
  min-height:58px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 28px !important;
  border-radius:9px !important;
  font-size:1.08rem !important;
}

/* Three topics in ONE horizontal row, exactly like the reference */
#about .about-points{
  grid-row:2 !important;
  grid-column:1 !important;
  width:100% !important;
  max-width:none !important;
  margin:36px 0 0 !important;
  padding:0 18px !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:54px !important;
  align-items:start !important;
}

#about .about-point{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  text-align:center !important;
}

#about .about-point strong{
  display:block !important;
  margin:0 auto 14px !important;
  max-width:330px !important;
  color:var(--green-dark) !important;
  font-size:clamp(1.72rem,2.25vw,2.35rem) !important;
  line-height:1.03 !important;
  letter-spacing:-.035em !important;
  font-weight:800 !important;
}

#about .about-point span{
  display:block !important;
  margin:0 auto !important;
  max-width:330px !important;
  color:rgba(56,48,43,.88) !important;
  font-size:.98rem !important;
  line-height:1.48 !important;
  font-weight:500 !important;
}

/* Bottom composition: portrait left, quote/text card right */
#about .about-story{
  grid-row:3 !important;
  grid-column:1 !important;
  min-height:0 !important;
  width:100% !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:44% 56% !important;
  gap:34px !important;
  align-items:end !important;
  position:relative !important;
  z-index:2 !important;
}

/* Portrait at lower-left, large and completely uncropped */
#about .about-photo-wrap{
  min-height:0 !important;
  height:100% !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  overflow:visible !important;
  position:relative !important;
}

#about .about-photo{
  position:relative !important;
  z-index:2 !important;
  width:min(100%,455px) !important;
  max-width:455px !important;
  height:auto !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  margin:0 auto !important;
  transform:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* White card low-right, like the reference */
#about .about-quote{
  align-self:end !important;
  width:calc(100% - 18px) !important;
  max-width:650px !important;
  margin:0 0 38px auto !important;
  padding:58px 48px 34px !important;
  box-sizing:border-box !important;
  position:relative !important;
  background:rgba(255,255,255,.86) !important;
  border:1px solid rgba(54,100,96,.04) !important;
  border-radius:28px !important;
  box-shadow:none !important;
  color:rgba(55,48,43,.92) !important;
}

#about .about-quote::before{
  content:"“" !important;
  position:absolute !important;
  top:-35px !important;
  left:48px !important;
  color:var(--green-dark) !important;
  font-family:Georgia,serif !important;
  font-size:7.6rem !important;
  line-height:1 !important;
  font-weight:700 !important;
}

#about .about-quote p{
  width:100% !important;
  max-width:none !important;
  margin:0 0 19px !important;
  color:rgba(55,48,43,.92) !important;
  font-size:.96rem !important;
  line-height:1.65 !important;
  letter-spacing:0 !important;
}

#about .about-quote p:last-of-type{
  margin-bottom:22px !important;
}

#about .about-signature{
  margin-top:10px !important;
}

#about .about-signature-photo{
  width:52px !important;
  height:52px !important;
}

#about .about-signature-text strong{
  font-size:.98rem !important;
}

#about .about-signature-text span{
  font-size:.78rem !important;
  line-height:1.25 !important;
}

/* Keep the same composition on normal laptop/desktop widths */
@media(max-width:1180px) and (min-width:821px){
  #about .about-panel{
    height:clamp(720px, calc(100svh - 104px), 850px) !important;
    padding:38px 38px 0 !important;
  }

  #about .about-points{
    gap:30px !important;
    padding:0 !important;
    margin-top:24px !important;
  }

  #about .about-point strong{
    font-size:clamp(1.55rem,2.1vw,2rem) !important;
  }

  #about .about-story{
    grid-template-columns:42% 58% !important;
    gap:20px !important;
  }

  #about .about-photo{
    width:min(100%,410px) !important;
    max-width:410px !important;
  }

  #about .about-quote{
    width:100% !important;
    padding:52px 34px 28px !important;
    margin-bottom:28px !important;
  }

  #about .about-quote::before{
    left:34px !important;
  }
}

/* Tablet/mobile: preserve hierarchy but stack safely */
@media(max-width:820px){
  #about .about-panel{
    height:auto !important;
    min-height:0 !important;
    padding:28px 22px 0 !important;
    overflow:visible !important;
    row-gap:28px !important;
  }

  #about .about-showcase-head{
    align-items:flex-start !important;
  }

  #about .about-showcase-head .btn{
    min-width:auto !important;
    min-height:48px !important;
    padding:0 18px !important;
    font-size:.92rem !important;
  }

  #about .about-points{
    grid-template-columns:1fr !important;
    gap:28px !important;
    margin:12px 0 8px !important;
    padding:0 !important;
  }

  #about .about-point strong,
  #about .about-point span{
    max-width:none !important;
  }

  #about .about-story{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }

  #about .about-photo{
    width:min(100%,470px) !important;
  }

  #about .about-quote{
    width:100% !important;
    max-width:none !important;
    margin:0 0 28px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== ABOUT — RESTORE ROUND SIGNATURE PHOTO ===== */
#about .about-signature.about-signature-with-photo{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  gap:16px !important;
  margin-top:10px !important;
  padding-top:4px !important;
}

#about .about-signature-photo{
  width:72px !important;
  height:72px !important;
  flex:0 0 72px !important;
  display:block !important;
  border-radius:50% !important;
  object-fit:cover !important;
  object-position:50% 22% !important;
  background:#eee7df !important;
  border:2px solid rgba(54,100,96,.10) !important;
  overflow:hidden !important;
  transform:none !important;
  box-shadow:none !important;
}

#about .about-signature-text{
  min-width:0 !important;
}

#about .about-signature-text strong{
  color:var(--green-dark) !important;
  font-size:1.08rem !important;
  font-weight:700 !important;
  line-height:1.3 !important;
}

#about .about-signature-text span{
  display:block !important;
  color:var(--brown-soft) !important;
  font-size:.82rem !important;
  line-height:1.35 !important;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT — RAISE TEXT BUBBLE SO IT FITS FULLY ===== */
#about .about-quote{
  margin-bottom:58px !important;
  padding:52px 46px 30px !important;
  transform:translateY(-10px) !important;
}

#about .about-quote::before{
  top:-31px !important;
}

@media(max-width:1180px) and (min-width:821px){
  #about .about-quote{
    margin-bottom:46px !important;
    padding:48px 32px 26px !important;
    transform:translateY(-8px) !important;
  }
}

@media(max-width:820px){
  #about .about-quote{
    margin-bottom:28px !important;
    transform:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== ABOUT — RAISE / COMPACT TEXT BUBBLE MORE ===== */
#about .about-quote{
  margin-bottom:92px !important;
  padding:44px 42px 24px !important;
  transform:translateY(-28px) !important;
}

#about .about-quote::before{
  top:-28px !important;
}

#about .about-quote p{
  margin-bottom:15px !important;
  line-height:1.58 !important;
}

#about .about-quote p:last-of-type{
  margin-bottom:16px !important;
}

#about .about-signature{
  margin-top:6px !important;
}

@media(max-width:1180px) and (min-width:821px){
  #about .about-quote{
    margin-bottom:72px !important;
    padding:42px 30px 22px !important;
    transform:translateY(-22px) !important;
  }
}

@media(max-width:820px){
  #about .about-quote{
    margin-bottom:28px !important;
    transform:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== ABOUT — FIT BUBBLE WITHOUT OVERLAPPING THE 3 TITLES ===== */

/* Give the lower row a little more usable height instead of pushing the bubble upward */
#about .about-panel{
  grid-template-rows:auto auto minmax(0,1fr) !important;
  row-gap:20px !important;
}

/* Keep the three topic headings safely separated from the lower content */
#about .about-points{
  margin-top:26px !important;
  margin-bottom:8px !important;
}

/* Reset the aggressive upward movement that caused the overlap */
#about .about-quote{
  align-self:end !important;
  margin:0 0 24px auto !important;
  transform:none !important;
  padding:42px 42px 22px !important;
}

/* Keep the quote mark inside the bubble area */
#about .about-quote::before{
  top:-27px !important;
}

/* Compact only enough to fit, while preserving readability */
#about .about-quote p{
  margin:0 0 16px !important;
  font-size:.96rem !important;
  line-height:1.60 !important;
}

#about .about-quote p:last-of-type{
  margin-bottom:16px !important;
}

#about .about-signature{
  margin-top:6px !important;
}

/* Normal laptop widths */
@media(max-width:1180px) and (min-width:821px){
  #about .about-panel{
    row-gap:16px !important;
  }

  #about .about-points{
    margin-top:18px !important;
    margin-bottom:6px !important;
  }

  #about .about-quote{
    margin-bottom:18px !important;
    padding:38px 30px 20px !important;
    transform:none !important;
  }

  #about .about-quote p{
    font-size:.93rem !important;
    line-height:1.55 !important;
    margin-bottom:14px !important;
  }
}

@media(max-width:820px){
  #about .about-quote{
    margin:0 0 28px !important;
    transform:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== SERVICES — REFERENCE-INSPIRED LIST ===== */
#services{
  position:relative !important;
  padding:56px 0 72px !important;
  background:
    radial-gradient(circle at 94% 12%, rgba(54,100,96,.08), transparent 24%),
    radial-gradient(circle at 4% 82%, rgba(164,128,84,.06), transparent 24%),
    linear-gradient(180deg,#f7f7f5 0%,#f3f4f1 100%) !important;
  overflow:hidden !important;
}

#services .services-reference-wrap{
  position:relative;
  z-index:2;
}

#services .services-reference-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:32px;
  margin-bottom:28px;
}

#services .services-reference-head .kicker{
  display:none !important;
}

#services .services-reference-head h3{
  margin:0 0 10px !important;
  color:var(--green-dark) !important;
  font-size:clamp(2.6rem,4vw,4rem) !important;
  line-height:.98 !important;
  letter-spacing:-.045em !important;
}

#services .services-mode{
  margin:0 !important;
  color:rgba(62,49,43,.74) !important;
  font-size:1rem !important;
  line-height:1.5 !important;
  font-weight:500 !important;
}

#services .services-mode span{
  padding:0 8px;
  color:var(--green);
}

#services .services-all-btn{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 26px;
  border-radius:10px;
  background:var(--green-dark);
  color:#fff;
  text-decoration:none;
  font-weight:650;
  font-size:.98rem;
  box-shadow:0 10px 24px rgba(41,79,76,.12);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

#services .services-all-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 30px rgba(41,79,76,.18);
  background:var(--green);
}

#services .services-reference-list{
  display:flex;
  flex-direction:column;
  gap:22px;
}

#services .service-reference-card{
  display:grid;
  grid-template-columns:86px 190px minmax(0,1fr) 58px;
  gap:26px;
  align-items:center;
  min-height:166px;
  padding:24px 30px 24px 24px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(54,100,96,.05);
  box-shadow:0 8px 28px rgba(58,45,39,.035);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

#services .service-reference-card:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 34px rgba(58,45,39,.07);
  border-color:rgba(54,100,96,.12);
}

#services .service-number{
  color:var(--green-dark);
  font-size:2.55rem;
  line-height:1;
  font-weight:800;
  letter-spacing:-.05em;
  text-align:center;
}

#services .service-thumb{
  width:190px;
  height:124px;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(58,45,39,.08);
}

#services .service-thumb svg{
  display:block;
  width:100%;
  height:100%;
}

#services .service-reference-copy{
  min-width:0;
}

#services .service-reference-copy h4{
  margin:0 0 12px !important;
  color:var(--green-dark) !important;
  font-size:clamp(1.28rem,1.8vw,1.72rem) !important;
  line-height:1.16 !important;
  letter-spacing:-.025em !important;
  font-weight:760 !important;
}

#services .service-reference-copy p{
  margin:0 !important;
  max-width:880px;
  color:rgba(62,49,43,.78) !important;
  font-size:.97rem !important;
  line-height:1.62 !important;
}

#services .service-reference-arrow{
  width:50px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  justify-self:end;
  border-radius:50%;
  color:var(--green-dark);
  text-decoration:none;
  font-size:2rem;
  line-height:1;
  transition:background .2s ease, color .2s ease, transform .2s ease;
}

#services .service-reference-card:hover .service-reference-arrow{
  background:var(--green-dark);
  color:#fff;
  transform:translateX(3px);
}

@media(max-width:1050px){
  #services .service-reference-card{
    grid-template-columns:70px 160px minmax(0,1fr) 48px;
    gap:20px;
  }

  #services .service-thumb{
    width:160px;
    height:108px;
  }

  #services .service-number{
    font-size:2.15rem;
  }
}

@media(max-width:820px){
  #services{
    padding:42px 0 54px !important;
  }

  #services .services-reference-head{
    flex-direction:column;
    gap:18px;
  }

  #services .services-all-btn{
    min-height:46px;
  }

  #services .service-reference-card{
    grid-template-columns:58px minmax(0,1fr) 44px;
    grid-template-areas:
      "number image arrow"
      "copy copy copy";
    gap:16px;
    padding:20px;
  }

  #services .service-number{
    grid-area:number;
    font-size:1.8rem;
  }

  #services .service-thumb{
    grid-area:image;
    width:150px;
    height:100px;
    justify-self:start;
  }

  #services .service-reference-copy{
    grid-area:copy;
  }

  #services .service-reference-arrow{
    grid-area:arrow;
  }
}

@media(max-width:520px){
  #services .service-reference-card{
    grid-template-columns:52px minmax(0,1fr) 40px;
  }

  #services .service-thumb{
    width:128px;
    height:86px;
  }

  #services .service-reference-copy h4{
    font-size:1.22rem !important;
  }

  #services .service-reference-copy p{
    font-size:.92rem !important;
    line-height:1.55 !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== SERVICES — REALISTIC PHOTO THUMBNAILS ===== */
#services .service-thumb img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
}


/* ---- consolidated style block ---- */


/* ===== SERVICES — REMOVE "ALL SERVICES" BUTTON ===== */
#services .services-reference-head{
  justify-content:flex-start !important;
}


/* ---- consolidated style block ---- */


/* ===== JOURNEY — STICKY SCROLL PIN + PAIR DOT REVEAL =====
   Desktop: sticky travel (~1 segment per pair) + sticky panel.
   Document scroll progress drives pairs 01+02 → 03+04 → 05+06.
   Reached dots stay filled; new pair fades in. No wheel hijack.
   overflow must stay visible so position:sticky can work. */
#journey{
  position:relative;
  padding:48px 0 54px !important;
  background:
    radial-gradient(circle at 8% 18%, rgba(54,100,96,.07), transparent 28%),
    radial-gradient(circle at 90% 78%, rgba(164,128,84,.055), transparent 26%),
    #f5f2ec !important;
  overflow:visible;
}

#journey .journey-panel{
  min-height:520px;
  padding:38px 34px 52px;
  border-radius:28px;
  background:rgba(250,248,244,.82);
  border:1px solid rgba(54,100,96,.07);
  box-shadow:0 14px 40px rgba(58,45,39,.045);
  overflow:visible;
}

#journey .journey-head{
  max-width:950px;
  margin:0 0 36px;
}

#journey .journey-kicker{
  margin-bottom:12px;
  color:var(--green-dark);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.16em;
}

#journey .journey-head h3{
  margin:0 0 14px;
  color:#1d2d2a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.35rem,4.6vw,4.45rem);
  font-weight:400;
  line-height:1.02;
  letter-spacing:-.045em;
}

#journey .journey-head h3 span{
  position:relative;
  display:inline-block;
}

#journey .journey-head h3 span::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-3px;
  height:3px;
  background:var(--green-dark);
  opacity:.9;
}

#journey .journey-head > p{
  max-width:760px;
  margin:0;
  color:rgba(55,48,43,.78);
  font-size:1rem;
  line-height:1.65;
}

#journey .journey-timeline{
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:16px;
  padding:0 4px;
  min-width:0;
  width:100%;
  box-sizing:border-box;
}

#journey .journey-track{
  position:absolute;
  left:calc(8.333% + 6px);
  right:calc(8.333% + 6px);
  top:31px;
  height:2px;
  background:rgba(54,100,96,.18);
  overflow:hidden;
  z-index:0;
  pointer-events:none;
}

#journey .journey-track-fill{
  width:var(--journey-progress,0%);
  height:100%;
  background:var(--green-dark);
  transition:none;
}

#journey .journey-step{
  position:relative;
  z-index:2;
  min-width:0;
  max-width:100%;
  text-align:center;
  overflow:visible;
}

#journey .journey-node{
  width:62px;
  height:62px;
  margin:0 auto 44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:2px solid rgba(54,100,96,.55);
  background:#f5f2ec;
  color:var(--green-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1rem;
  font-weight:700;
  box-shadow:0 0 0 7px #f5f2ec;
  transition:none;
}

@keyframes journey-copy-in{
  from{
    opacity:0;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@keyframes journey-node-pop{
  0%{
    transform:scale(.42);
    opacity:.35;
  }
  58%{
    transform:scale(1.14);
    opacity:1;
  }
  100%{
    transform:scale(1);
    opacity:1;
  }
}

@keyframes journey-node-fill{
  0%{
    transform:scale(.72);
    box-shadow:0 0 0 7px #f5f2ec, inset 0 0 0 28px #f5f2ec;
  }
  55%{
    transform:scale(1.08);
    box-shadow:0 0 0 7px #f5f2ec, inset 0 0 0 0 transparent, 0 10px 24px rgba(41,79,76,.16);
  }
  100%{
    transform:scale(1);
    box-shadow:0 0 0 7px #f5f2ec, 0 10px 24px rgba(41,79,76,.16);
  }
}

@keyframes journey-node-bounce{
  0%{
    transform:translateY(14px) scale(.55);
    opacity:.25;
  }
  62%{
    transform:translateY(-4px) scale(1.1);
    opacity:1;
  }
  100%{
    transform:translateY(0) scale(1);
    opacity:1;
  }
}

@keyframes journey-node-ring{
  0%{
    transform:scale(.5);
    box-shadow:0 0 0 0 rgba(54,100,96,.35), 0 0 0 7px #f5f2ec;
  }
  55%{
    transform:scale(1.12);
    box-shadow:0 0 0 14px rgba(54,100,96,0), 0 0 0 7px #f5f2ec, 0 10px 24px rgba(41,79,76,.16);
  }
  100%{
    transform:scale(1);
    box-shadow:0 0 0 7px #f5f2ec, 0 10px 24px rgba(41,79,76,.16);
  }
}

@keyframes journey-node-spin-in{
  0%{
    transform:scale(.4) rotate(-28deg);
    opacity:0;
  }
  70%{
    transform:scale(1.1) rotate(4deg);
    opacity:1;
  }
  100%{
    transform:scale(1) rotate(0deg);
    opacity:1;
  }
}

@keyframes journey-node-soft{
  0%{
    transform:scale(.6);
    filter:blur(2px);
    opacity:0;
  }
  100%{
    transform:scale(1);
    filter:blur(0);
    opacity:1;
  }
}

#journey .journey-copy{
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  overflow:visible;
  max-height:none;
  transition:none;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

#journey .journey-copy h4{
  min-height:56px;
  margin:0 0 11px;
  color:#282c2a;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
  font-weight:700;
  line-height:1.28;
}

#journey .journey-copy p{
  margin:0 auto;
  max-width:190px;
  max-height:none;
  color:rgba(55,48,43,.76);
  font-size:.79rem;
  line-height:1.55;
  overflow:visible;
  display:block;
  -webkit-line-clamp:unset;
  line-clamp:unset;
  text-overflow:clip;
  white-space:normal;
}

#journey .journey-step.is-reached .journey-node,
#journey .journey-step.is-active .journey-node{
  border-color:var(--green-dark);
  background:var(--green-dark);
  color:#fff;
  box-shadow:
    0 0 0 7px #f5f2ec,
    0 10px 24px rgba(41,79,76,.16);
}

#journey .journey-step[data-step="1"].is-reached .journey-node{
  animation:journey-node-pop .42s cubic-bezier(.22,1.15,.36,1) both;
}
#journey .journey-step[data-step="2"].is-reached .journey-node{
  animation:journey-node-fill .46s ease-out both;
}
#journey .journey-step[data-step="3"].is-reached .journey-node{
  animation:journey-node-bounce .48s cubic-bezier(.22,1.2,.36,1) both;
}
#journey .journey-step[data-step="4"].is-reached .journey-node{
  animation:journey-node-ring .5s cubic-bezier(.22,.9,.36,1) both;
}
#journey .journey-step[data-step="5"].is-reached .journey-node{
  animation:journey-node-spin-in .46s cubic-bezier(.22,1.1,.36,1) both;
}
#journey .journey-step[data-step="6"].is-reached .journey-node{
  animation:journey-node-soft .4s ease-out both;
}

/* Cumulatively keep every reached step's copy visible; the newly
   appeared pair (.is-active) fades in. Older .is-reached copy stays put. */
#journey .journey-step.is-reached .journey-copy{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}

#journey .journey-step.is-active .journey-copy{
  animation:journey-copy-in .34s ease-out both;
}

@media (prefers-reduced-motion:reduce){
  #journey .journey-copy{
    transform:none;
  }
  #journey .journey-step.is-reached .journey-node,
  #journey .journey-step.is-active .journey-node{
    animation:none !important;
    transform:none;
    filter:none;
    opacity:1;
  }
  #journey .journey-step.is-reached .journey-copy,
  #journey .journey-step.is-active .journey-copy{
    animation:none;
    opacity:1;
    transform:none;
  }
}

/* Desktop sticky pin: taller travel ≈ 1 slower segment per pair.
   JS wheel-gates inside the pin only; free natural scroll when fully past
   (FAQ upward must never snap back into Education). */
@media (min-width:901px) and (prefers-reduced-motion:no-preference){
  #journey.is-scroll-lock{
    height:calc(100svh + clamp(1100px, 150vh, 1800px));
    padding:0 !important;
    overflow:visible;
    max-height:none;
  }
  #journey.is-scroll-lock .journey-pin{
    position:sticky;
    top:calc(var(--dd-header-offset, 96px) + 6px);
    z-index:3;
    display:flex;
    align-items:center;
    min-height:calc(100svh - var(--dd-header-offset, 96px) - 18px);
    max-height:none;
    overflow:visible;
    padding:28px 0 36px;
    box-sizing:border-box;
  }
  #journey.is-scroll-lock .container,
  #journey.is-scroll-lock .journey-panel{
    width:100%;
    max-width:100%;
    max-height:none;
    overflow:visible;
  }
  #journey.is-scroll-lock .journey-step:not(.is-reached) .journey-node{
    border-color:rgba(54,100,96,.45);
    background:#f5f2ec;
    color:var(--green-dark);
    transform:none;
    animation:none;
    filter:none;
    box-shadow:0 0 0 7px #f5f2ec;
  }
}

/* Laptop tuning */
@media(max-width:1180px) and (min-width:901px){
  #journey .journey-panel{
    padding-left:24px;
    padding-right:24px;
    padding-bottom:48px;
  }

  #journey .journey-timeline{
    gap:10px;
  }

  #journey .journey-copy h4{
    font-size:.94rem;
  }

  #journey .journey-copy p{
    max-width:165px;
    font-size:.73rem;
  }
}

/* Narrow: vertical timeline, all steps visible, no sticky trap. */
@media(max-width:900px){
  #journey{
    padding:36px 0 44px !important;
    height:auto !important;
  }

  #journey .journey-pin{
    position:static !important;
    min-height:0 !important;
    padding:0 !important;
  }

  #journey .journey-panel{
    min-height:0;
    padding:28px 22px;
  }

  #journey .journey-timeline{
    display:flex;
    flex-direction:column;
    gap:24px;
    padding-left:0;
  }

  #journey .journey-track{
    display:none;
  }

  #journey .journey-step{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:18px;
    text-align:left;
  }

  #journey .journey-node{
    margin:0;
    animation:none !important;
    transform:none !important;
    filter:none !important;
  }

  #journey .journey-copy,
  #journey .journey-step.is-reached .journey-copy,
  #journey .journey-step.is-active .journey-copy{
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
    animation:none;
  }

  #journey .journey-copy h4{
    min-height:0;
  }

  #journey .journey-copy p{
    max-width:none;
    margin:0;
  }
}


/* ---- consolidated style block ---- */


/* ===== METHODOLOGY — NATURAL SCROLL, SEQUENTIAL REVEAL ===== */
#my-perspective-home .perspective-card,
#my-perspective-home .perspective-bar-item{
  opacity:0 !important;
  transform:translateY(24px) !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:
    opacity .55s ease,
    transform .62s cubic-bezier(.22,.8,.28,1),
    background .22s ease,
    box-shadow .22s ease !important;
}

#my-perspective-home .perspective-card.is-revealed,
#my-perspective-home .perspective-bar-item.is-revealed{
  opacity:1 !important;
  transform:translateY(0) !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Each matching line fills only when that methodology item is revealed. */
#my-perspective-home .perspective-bar-fill{
  width:0 !important;
  transition:width .8s cubic-bezier(.22,.8,.28,1) .08s !important;
}

#my-perspective-home .perspective-bar-item.is-revealed .perspective-bar-fill{
  width:100% !important;
}

/* Slightly wider copy area for the longer methodology language. */
#my-perspective-home .perspective-card p{
  line-height:1.62 !important;
}

#my-perspective-home .perspective-card h4{
  line-height:1.15 !important;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT — KEEP THE TEXT BUBBLE FULLY VISIBLE ===== */
@media(min-width:821px){
  #about .about-panel{
    height:clamp(752px, calc(100svh - 88px), 912px) !important;
  }

  #about .about-quote{
    margin-bottom:30px !important;
    transform:translateY(-6px) !important;
  }
}

@media(max-width:1180px) and (min-width:821px){
  #about .about-panel{
    height:clamp(742px, calc(100svh - 82px), 882px) !important;
  }

  #about .about-quote{
    margin-bottom:24px !important;
    transform:translateY(-5px) !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== JOURNEY — LEARN MORE BUTTON ===== */
#journey .journey-head{
  max-width:none !important;
  width:100% !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:32px !important;
}

#journey .journey-head-copy{
  max-width:950px !important;
  min-width:0 !important;
}

#journey .journey-more-btn{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:210px !important;
  min-height:54px !important;
  padding:0 26px !important;
  margin-top:4px !important;
  border-radius:999px !important;
  background:var(--green-dark) !important;
  color:#fff !important;
  text-decoration:none !important;
  font-size:.98rem !important;
  font-weight:700 !important;
  box-shadow:0 10px 26px rgba(41,79,76,.14) !important;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease !important;
}

#journey .journey-more-btn:hover{
  transform:translateY(-2px) !important;
  background:var(--green) !important;
  box-shadow:0 14px 30px rgba(41,79,76,.20) !important;
}

@media(max-width:760px){
  #journey .journey-head{
    flex-direction:column !important;
    gap:18px !important;
  }

  #journey .journey-more-btn{
    min-width:0 !important;
    min-height:48px !important;
    padding:0 20px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== JOURNEY — SHOW "LEARN MORE" WITH STEP 06 (instant) ===== */
#journey .journey-more-btn{
  opacity:0 !important;
  visibility:hidden !important;
  transform:none !important;
  pointer-events:none !important;
  transition:none !important;
}

#journey .journey-more-btn.is-visible{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  pointer-events:auto !important;
}


/* ---- consolidated style block ---- */


/* ===== ABOUT / Η ΟΠΤΙΚΗ ΜΟΥ — SEQUENTIAL SCROLL REVEAL ===== */

/* Main portrait remains permanently visible. */
#about .about-photo-wrap,
#about .about-photo{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}

/* About pillars + CTA stay visible — no scroll reveal (was trapping
   "Μάθετε περισσότερα" under the sticky header when it faded in late). */
#about .about-reveal-item,
#about .about-reveal-item.is-revealed,
#about .about-reveal-final,
#about .about-reveal-final.is-revealed{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  pointer-events:auto !important;
  transition:none !important;
}

#about .about-showcase-head{
  position:relative;
  z-index:2;
}

/* Keep bubble fully visible, as in the corrected version. */
@media(min-width:821px){
  #about .about-panel{
    height:clamp(752px, calc(100svh - 88px), 912px) !important;
  }

  #about .about-quote{
    margin-bottom:30px !important;
  }
}

@media(max-width:1180px) and (min-width:821px){
  #about .about-panel{
    height:clamp(742px, calc(100svh - 82px), 882px) !important;
  }

  #about .about-quote{
    margin-bottom:24px !important;
  }
}

/* Mobile uses the same fade/slide reveal as desktop; JS reveals on scroll. */


/* ---- consolidated style block ---- */


/* ===== TESTIMONIALS — VOICES DARK SHOWCASE ===== */


@media(max-width:980px){
}

@media(max-width:620px){


}


/* ---- consolidated style block ---- */


/* ===== REFERENCE-STYLE FOOTER ===== */
.site-footer-v2{
  margin:0 !important;
  padding:0 !important;
  background:#f8f6f2 !important;
  color:var(--brown-dark) !important;
}

.site-footer-v2 a{
  text-decoration:none;
}

.footer-support-strip{
  padding:36px 0 42px;
  background:#eeece7;
  border-top:1px solid rgba(54,100,96,.07);
  border-bottom:1px solid rgba(84,67,59,.08);
}

.footer-support-title{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:24px;
  color:var(--green-dark);
  font-size:.78rem;
  letter-spacing:.16em;
}
.footer-support-title span{
  width:28px;
  height:2px;
  background:var(--green);
  border-radius:99px;
}
.footer-support-title strong{
  font-weight:800;
}

.footer-support-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:18px;
}

.footer-support-card{
  min-height:88px;
  padding:18px 20px;
  border-radius:20px;
  border:1px solid rgba(84,67,59,.15);
  background:rgba(255,255,255,.78);
  display:flex;
  align-items:flex-start;
  gap:14px;
  color:var(--brown-dark) !important;
  box-shadow:0 6px 18px rgba(68,50,43,.025);
  transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.footer-support-card:hover{
  transform:translateY(-3px);
  border-color:rgba(54,100,96,.32);
  box-shadow:0 12px 26px rgba(68,50,43,.06);
}
.footer-support-icon{
  width:24px;
  height:24px;
  flex:0 0 24px;
  color:var(--green);
}
.footer-support-icon svg,
.footer-location svg,
.footer-socials-v2 svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.footer-support-card span:last-child{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.footer-support-card b{
  color:var(--brown-dark);
  font-size:.98rem;
  font-weight:750;
}
.footer-support-card em{
  color:var(--muted);
  font-size:.91rem;
  font-style:normal;
  overflow-wrap:anywhere;
}

.footer-main-v2{
  padding:66px 0 28px;
  background:#faf9f6;
}

.footer-columns-v2{
  display:grid;
  grid-template-columns:1.35fr .78fr .78fr 1fr;
  gap:54px;
  align-items:start;
}

.footer-brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:13px;
  color:var(--brown-dark) !important;
}
.footer-brand-lockup img{
  width:45px;
  height:45px;
  object-fit:contain;
  filter:saturate(.8);
}
.footer-brand-lockup strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.42rem;
  font-weight:500;
  letter-spacing:-.02em;
}

.footer-brand-quote{
  max-width:385px;
  margin:26px 0 13px;
  color:var(--muted) !important;
  font-size:.98rem !important;
  line-height:1.68;
}
.footer-languages-text{
  margin:0 0 22px;
  color:var(--muted) !important;
  font-size:.86rem !important;
}
.footer-location{
  display:flex;
  align-items:center;
  gap:9px;
  margin:0 0 22px;
  color:var(--muted) !important;
  font-size:.9rem !important;
}
.footer-location span{
  width:20px;
  height:20px;
  color:var(--green);
}

.footer-socials-v2{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:22px;
}
.footer-socials-v2 a{
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid rgba(84,67,59,.13);
  display:grid;
  place-items:center;
  color:var(--green) !important;
  background:#fff;
  transition:transform .2s ease,background .2s ease,color .2s ease;
}
.footer-socials-v2 a:hover{
  transform:translateY(-2px);
  background:var(--green);
  color:#fff !important;
}
.footer-socials-v2 svg{
  width:17px;
  height:17px;
}
.footer-socials-v2 a[aria-label="Facebook"] svg,
.footer-socials-v2 a[aria-label="LinkedIn"] svg{
  fill:currentColor;
  stroke:none;
}

.footer-language-switch{
  width:max-content;
  background:#fff !important;
  border:1px solid rgba(84,67,59,.13) !important;
  box-shadow:none !important;
}

.footer-link-col h4,
.footer-professional-col h4{
  margin:4px 0 24px;
  color:rgba(84,67,59,.63);
  font-size:.78rem;
  letter-spacing:.16em;
  font-weight:750;
}
.footer-link-col{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.footer-link-col a{
  margin-bottom:19px;
  color:var(--muted) !important;
  font-size:.92rem !important;
  transition:color .18s ease,transform .18s ease;
}
.footer-link-col a:hover{
  color:var(--green-dark) !important;
  transform:translateX(3px);
}
.footer-link-col .footer-legal-heading{
  margin-top:8px;
  margin-bottom:20px;
}

.footer-professional-col p{
  margin:0 0 13px;
  color:var(--muted) !important;
  font-size:.9rem !important;
  line-height:1.52;
}
.footer-professional-col p strong{
  color:var(--brown-dark);
  font-weight:700;
}
.footer-professional-note{
  margin-top:17px !important;
  padding-top:17px;
  border-top:1px solid rgba(84,67,59,.11);
  font-size:.82rem !important;
}

.footer-bottom-v2{
  margin-top:52px;
  padding-top:22px;
  border-top:1px solid rgba(84,67,59,.13);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:rgba(84,67,59,.55);
  font-size:.78rem;
}
.footer-bottom-v2 a{
  color:var(--green-dark) !important;
  font-weight:650;
}

@media(max-width:1120px){
  .footer-support-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .footer-columns-v2{
    grid-template-columns:1.25fr 1fr 1fr;
  }
  .footer-professional-col{
    grid-column:2 / 4;
  }
}

@media(max-width:760px){
  .footer-support-strip{
    padding:30px 0 32px;
  }
  .footer-support-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .footer-support-card{
    min-height:82px;
    padding:15px 15px;
  }
  .footer-main-v2{
    padding:48px 0 24px;
  }
  .footer-columns-v2{
    grid-template-columns:1fr 1fr;
    gap:38px 26px;
  }
  .footer-brand-col{
    grid-column:1 / -1;
  }
  .footer-professional-col{
    grid-column:1 / -1;
  }
}

@media(max-width:520px){
  .footer-support-grid{
    grid-template-columns:1fr;
  }
  .footer-columns-v2{
    grid-template-columns:1fr;
  }
  .footer-brand-col,
  .footer-professional-col{
    grid-column:auto;
  }
  .footer-bottom-v2{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ---- consolidated style block ---- */


/* ===== FOOTER REFINEMENTS ===== */
.site-footer-v2 .footer-support-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

/* Footer language selector: one clean segmented box instead of bubble-like buttons */
.site-footer-v2 .footer-language-switch{
  display:inline-grid !important;
  grid-template-columns:repeat(3,42px) !important;
  gap:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  border:1px solid rgba(84,67,59,.16) !important;
  border-radius:12px !important;
  background:#fff !important;
}

.site-footer-v2 .footer-language-switch .lang-btn{
  min-width:42px !important;
  width:42px !important;
  height:38px !important;
  padding:0 !important;
  border-radius:0 !important;
  border-right:1px solid rgba(84,67,59,.12) !important;
  background:transparent !important;
  color:rgba(84,67,59,.68) !important;
  font-size:.72rem !important;
  font-weight:750 !important;
}

.site-footer-v2 .footer-language-switch .lang-btn:last-child{
  border-right:0 !important;
}

.site-footer-v2 .footer-language-switch .lang-btn:hover{
  background:rgba(54,100,96,.07) !important;
  color:var(--green-dark) !important;
}

.site-footer-v2 .footer-language-switch .lang-btn.is-active{
  background:var(--green) !important;
  color:#fff !important;
}

@media(max-width:960px){
  .site-footer-v2 .footer-support-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:520px){
  .site-footer-v2 .footer-support-grid{
    grid-template-columns:1fr !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== FOOTER LANGUAGE SWITCH — ATTACHED SQUARE BUBBLES ===== */
.site-footer-v2 .footer-language-switch{
  display:inline-flex !important;
  align-items:center !important;
  gap:0 !important;
  width:max-content !important;
  padding:0 !important;
  margin:0 !important;
  overflow:visible !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.site-footer-v2 .footer-language-switch .lang-btn{
  position:relative !important;
  min-width:39px !important;
  width:39px !important;
  height:39px !important;
  padding:0 !important;
  margin:0 0 0 -1px !important;
  border:1px solid rgba(84,67,59,.14) !important;
  border-radius:0 !important;
  background:#fff !important;
  color:var(--green-dark) !important;
  font-size:.69rem !important;
  font-weight:800 !important;
  letter-spacing:.035em !important;
  box-shadow:0 5px 13px rgba(68,50,43,.035) !important;
  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    transform .18s ease,
    box-shadow .18s ease !important;
}

/* Soft square-bubble corners only on the outside edges, so all 3 remain joined */
.site-footer-v2 .footer-language-switch .lang-btn:first-child{
  margin-left:0 !important;
  border-radius:11px 0 0 11px !important;
}
.site-footer-v2 .footer-language-switch .lang-btn:last-child{
  border-radius:0 11px 11px 0 !important;
}

/* Slightly rounded centre segment without breaking the joined look */
.site-footer-v2 .footer-language-switch .lang-btn:not(:first-child):not(:last-child){
  border-radius:0 !important;
}

.site-footer-v2 .footer-language-switch .lang-btn:hover{
  z-index:2 !important;
  background:rgba(54,100,96,.075) !important;
  color:var(--green-dark) !important;
  border-color:rgba(54,100,96,.30) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 16px rgba(68,50,43,.055) !important;
}

.site-footer-v2 .footer-language-switch .lang-btn.is-active{
  z-index:3 !important;
  background:var(--green) !important;
  color:#fff !important;
  border-color:var(--green) !important;
  box-shadow:0 7px 16px rgba(54,100,96,.16) !important;
}


/* ---- consolidated style block ---- */


/* ===== QUICK LINKS — REFERENCE INSPIRED ===== */
#quick-links{
  /* Reserve room so the phone/call dock never crushes card titles. */
  --dd-float-clear-right:calc(
    min(460px, 42vw) + 28px
    + env(safe-area-inset-right,0px)
  );
  --dd-float-clear-bottom:calc(
    var(--dd-booking-float-bottom,16px) + var(--dd-booking-float-height,68px) + 36px
    + env(safe-area-inset-bottom,0px)
  );
  padding:86px 0 max(74px, var(--dd-float-clear-bottom)) !important;
  background:#f0eee9 !important;
  border-top:1px solid rgba(84,67,59,.06);
  border-bottom:1px solid rgba(84,67,59,.06);
}

/* Right-column / full-width cards: keep copy clear of the fixed FAB column. */
#quick-links .quick-links-grid-top .quick-link-card:last-child,
#quick-links .quick-links-grid-middle .quick-link-card:last-child,
#quick-links .quick-links-bottom .quick-link-strip:last-child{
  padding-right:max(32px, var(--dd-float-clear-right));
}

/* ≤1050: FAB is the only bottom-right chrome — every card/strip can pass under it. */
@media (max-width:1050px){
  #quick-links .quick-link-card,
  #quick-links .quick-link-strip{
    padding-right:max(24px, var(--dd-float-clear-right)) !important;
  }
}

/* Desktop home: booking LEFT + FAB RIGHT — clear via section padding, NEVER crush card copy. */
@media (min-width:1051px){
  body:has(#home.is-active) #quick-links{
    --dd-float-clear-right:calc(
      28px + env(safe-area-inset-right,0px)
    );
    --dd-float-clear-bottom:calc(
      var(--dd-booking-float-bottom,16px) + var(--dd-booking-float-height,68px)
      + 48px + env(safe-area-inset-bottom,0px)
    );
    padding-bottom:max(96px, var(--dd-float-clear-bottom)) !important;
  }
  /* Only the rightmost cells need FAB inset — left cards stay full-width readable. */
  body:has(#home.is-active) #quick-links .quick-links-grid-top .quick-link-card:last-child,
  body:has(#home.is-active) #quick-links .quick-links-grid-middle .quick-link-card:last-child,
  body:has(#home.is-active) #quick-links .quick-links-bottom .quick-link-strip:last-child{
    padding-right:max(28px, var(--dd-float-clear-right));
  }
}

#quick-links .quick-links-head{
  max-width:700px;
  margin-bottom:54px;
}

#quick-links .quick-links-head .kicker{
  margin-bottom:14px;
  color:var(--green-dark);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.15em;
}

#quick-links .quick-links-head h3{
  margin:0;
  color:#222a27;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.85rem,5vw,5rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:400;
}

#quick-links .quick-links-head h3 span{
  position:relative;
  white-space:nowrap;
}

#quick-links .quick-links-head h3 span::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.02em;
  height:3px;
  border-radius:99px;
  background:var(--green-dark);
}

#quick-links .quick-links-head p{
  margin:22px 0 0;
  max-width:600px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.7;
}

#quick-links .quick-links-grid{
  display:grid;
  gap:20px;
}

#quick-links .quick-links-grid-top{
  grid-template-columns:1.18fr .82fr;
  margin-bottom:20px;
}

#quick-links .quick-links-grid-middle{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-bottom:32px;
}

#quick-links .quick-link-card,
#quick-links .quick-link-strip{
  position:relative;
  color:inherit !important;
  text-decoration:none !important;
  border:1px solid rgba(84,67,59,.12);
  border-top:3px solid rgba(54,100,96,.36);
  background:
    linear-gradient(145deg,rgba(255,255,255,.56),rgba(255,255,255,.20));
  transition:
    transform .22s ease,
    border-color .22s ease,
    background .22s ease,
    box-shadow .22s ease;
}

#quick-links .quick-link-card{
  min-height:208px;
  padding:28px 28px 24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}

#quick-links .quick-link-large{
  min-height:220px;
}

#quick-links .quick-link-card:hover,
#quick-links .quick-link-strip:hover{
  transform:translateY(-4px);
  border-color:rgba(54,100,96,.30);
  border-top-color:var(--green);
  background:
    linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.42));
  box-shadow:0 16px 34px rgba(54,100,96,.075);
}

#quick-links h4{
  margin:0 0 12px;
  color:#252c29;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
  line-height:1.1;
  font-weight:400;
}

#quick-links .quick-link-card p,
#quick-links .quick-link-strip p{
  margin:0;
  max-width:470px;
  color:var(--muted);
  font-size:.94rem;
  line-height:1.58;
}

#quick-links .quick-link-cta{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:26px;
  color:var(--green-dark);
  font-size:.88rem;
  font-weight:750;
}

#quick-links .quick-link-cta b{
  font-size:1.15rem;
  font-weight:400;
  transition:transform .2s ease;
}

#quick-links a:hover .quick-link-cta b{
  transform:translateX(5px);
}

#quick-links .quick-links-bottom{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

#quick-links .quick-link-strip{
  min-height:102px;
  padding:22px 24px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  border-top-width:0;
  border-left:3px solid rgba(54,100,96,.36);
}

#quick-links .quick-link-strip:hover{
  border-left-color:var(--green);
}

#quick-links .quick-link-strip h4{
  margin-bottom:7px;
  font-family:inherit;
  font-size:1rem;
  font-weight:750;
}

#quick-links .quick-link-strip .quick-link-cta{
  margin:0;
  white-space:nowrap;
}

@media(max-width:980px){
  #quick-links .quick-links-grid-top,
  #quick-links .quick-links-grid-middle{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  #quick-links .quick-link-card{min-width:0}

  #quick-links .quick-links-grid-middle .quick-link-card:last-child{
    grid-column:1 / -1;
  }

  #quick-links .quick-links-bottom{
    grid-template-columns:1fr;
  }
}

/* Laptop mid-width: keep 3 cols readable — minmax(0,1fr) already set; avoid overlap */
@media (min-width:981px) and (max-width:1280px){
  #quick-links .quick-links-grid-middle{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
  }
  #quick-links .quick-link-card{
    min-width:0;
    padding:22px 18px 20px;
  }
  #quick-links h4{
    font-size:clamp(1.15rem,1.6vw,1.4rem);
  }
  #quick-links .quick-link-card p,
  #quick-links .quick-link-strip p{
    font-size:.88rem;
    overflow-wrap:anywhere;
    hyphens:auto;
  }
}

@media(max-width:680px){
  #quick-links{
    padding:58px 0 max(54px, var(--dd-float-clear-bottom)) !important;
  }

  #quick-links .quick-links-head{
    margin-bottom:34px;
  }

  #quick-links .quick-links-head h3{
    font-size:clamp(2.55rem,13vw,3.8rem);
  }

  #quick-links .quick-links-head h3 span{
    white-space:normal;
  }

  #quick-links .quick-links-grid-top,
  #quick-links .quick-links-grid-middle{
    grid-template-columns:minmax(0,1fr);
    gap:14px;
    margin-bottom:14px;
  }

  #quick-links .quick-links-grid-middle .quick-link-card:last-child{
    grid-column:auto;
  }

  /* Single column: every card can pass under the FAB — clear the right edge. */
  #quick-links .quick-link-card{
    min-height:178px;
    padding:23px max(21px, calc(var(--dd-float-clear-right) - 4px)) 21px 21px;
  }

  #quick-links .quick-links-bottom{
    gap:14px;
  }

  #quick-links .quick-link-strip{
    grid-template-columns:1fr;
    gap:4px;
    min-height:0;
    padding:20px max(20px, calc(var(--dd-float-clear-right) - 4px)) 20px 20px;
  }

  #quick-links .quick-link-strip .quick-link-cta{
    margin-top:15px;
  }
}


/* ---- consolidated style block ---- */


/* ===== HOME HELP — RHETORICAL EDITORIAL SECTION ===== */
#help{
  position:relative !important;
  padding:104px 0 96px !important;
  overflow:hidden !important;
  background:
    radial-gradient(circle at 86% 18%, rgba(255,255,255,.055), transparent 26%),
    radial-gradient(circle at 12% 86%, rgba(183,149,98,.08), transparent 24%),
    #294f4c !important;
  border:0 !important;
  color:#fff !important;
}

#help::before{
  content:"“";
  position:absolute;
  right:4vw;
  top:-54px;
  color:rgba(255,255,255,.035);
  font-family:Georgia,"Times New Roman",serif;
  font-size:28rem;
  line-height:1;
  pointer-events:none;
}

#help .help-editorial{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:54px;
  align-items:start;
}

#help .help-editorial-side{
  padding-top:13px;
}

#help .kicker{
  color:rgba(255,255,255,.64) !important;
  font-size:.73rem !important;
  font-weight:800 !important;
  letter-spacing:.16em !important;
}

#help .help-editorial-line{
  display:block;
  width:72px;
  height:2px;
  margin-top:20px;
  border-radius:99px;
  background:#b79562;
}

#help .help-editorial-content{
  max-width:1010px;
}

#help .help-editorial-content h3{
  margin:0 0 38px !important;
  max-width:980px !important;
  color:#fff !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:clamp(3.15rem,6.1vw,6.7rem) !important;
  line-height:.94 !important;
  letter-spacing:-.052em !important;
  font-weight:400 !important;
}

#help .help-editorial-copy{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:34px;
  max-width:930px;
}

#help .help-editorial-copy p{
  margin:0 !important;
  color:rgba(255,255,255,.78) !important;
  font-size:1.02rem !important;
  line-height:1.78 !important;
}

#help .help-editorial-bottom{
  margin-top:38px;
  padding-top:30px;
  border-top:1px solid rgba(255,255,255,.13);
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:34px;
}

#help .help-editorial-thought{
  margin:0 !important;
  max-width:680px;
  color:#fff !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.22rem,2vw,1.65rem) !important;
  line-height:1.45 !important;
  font-style:italic;
}

#help .help-editorial-btn{
  flex:0 0 auto;
  min-height:52px;
  padding:0 24px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.28);
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#294f4c !important;
  background:#f8f5ef;
  text-decoration:none !important;
  font-weight:750;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}

#help .help-editorial-btn:hover{
  transform:translateY(-3px);
  background:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.12);
}

#help .help-editorial-btn span{
  font-size:1.12rem;
  transition:transform .2s ease;
}

#help .help-editorial-btn:hover span{
  transform:translateX(4px);
}

/* ===== FULL HELP PAGE ===== */
#help-page{
  padding:72px 0 96px !important;
  background:#f5f1eb !important;
}

#help-page .help-full-hero{
  max-width:1030px;
  padding:42px 0 54px;
  border-bottom:1px solid rgba(84,67,59,.13);
}

#help-page .help-full-hero .kicker{
  margin-bottom:18px;
  color:var(--green);
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.15em;
}

#help-page .help-full-hero h1{
  margin:0;
  color:var(--brown-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.3rem,6.7vw,6.8rem);
  line-height:.94;
  letter-spacing:-.052em;
  font-weight:400;
}

#help-page .help-full-intro{
  max-width:780px;
  margin:28px 0 0;
  color:var(--muted);
  font-size:1.12rem;
  line-height:1.72;
}

#help-page .help-full-reading{
  max-width:820px;
  margin:58px auto 0;
}

#help-page .help-full-reading > p{
  margin:0 0 28px;
  color:rgba(84,67,59,.86);
  font-size:1.08rem;
  line-height:1.86;
}

#help-page blockquote{
  margin:44px 0;
  padding:8px 0 8px 28px;
  border-left:3px solid var(--green);
  color:var(--green-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.55rem,3vw,2.25rem);
  line-height:1.42;
  font-style:italic;
}

#help-page .help-full-closing{
  margin-top:52px;
  padding:32px 34px;
  border-radius:24px;
  background:var(--green-dark);
  color:#fff;
  display:flex;
  flex-direction:column;
  gap:8px;
}

#help-page .help-full-closing strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.45rem;
  line-height:1.35;
  font-weight:400;
}

#help-page .help-full-closing span{
  color:rgba(255,255,255,.74);
  font-size:.98rem;
  line-height:1.6;
}

#help-page .help-full-actions{
  margin-top:34px;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

@media(max-width:820px){
  #help{
    padding:72px 0 68px !important;
  }

  #help .help-editorial{
    grid-template-columns:1fr;
    gap:26px;
  }

  #help .help-editorial-side{
    padding-top:0;
  }

  #help .help-editorial-content h3{
    margin-bottom:30px !important;
    font-size:clamp(1.8rem,8vw,2.6rem) !important;
  }

  #help .help-editorial-copy{
    grid-template-columns:1fr;
    gap:18px;
  }

  #help .help-editorial-bottom{
    align-items:flex-start;
    flex-direction:column;
  }

  #help .help-editorial-btn{
    min-height:50px;
  }

  #help-page{
    padding:42px 0 70px !important;
  }

  #help-page .help-full-hero{
    padding:28px 0 40px;
  }

  #help-page .help-full-hero h1{
    font-size:clamp(1.9rem,8.5vw,2.7rem);
  }

  #help-page .help-full-reading{
    margin-top:42px;
  }

  #help-page .help-full-reading > p{
    font-size:1rem;
    line-height:1.78;
  }
}


/* ---- consolidated style block ---- */


/* ===== HELP HOME — FINAL EXCERPT ===== */
#help .help-editorial-copy{
  grid-template-columns:1.12fr .88fr !important;
  gap:42px !important;
}

#help .help-editorial-bottom{
  justify-content:flex-end !important;
  margin-top:34px !important;
}

@media(max-width:820px){
  #help .help-editorial-copy{
    grid-template-columns:1fr !important;
    gap:20px !important;
  }

  #help .help-editorial-bottom{
    justify-content:flex-start !important;
  }
}


/* ---- consolidated style block ---- */


#help .help-editorial-bottom{
  justify-content:space-between !important;
  align-items:flex-end !important;
  gap:34px !important;
}

@media(max-width:820px){
  #help .help-editorial-bottom{
    align-items:flex-start !important;
    flex-direction:column !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER HELP QUESTION BUBBLE ===== */
header .menu > .item > a.help-menu-bubble{
  width:176px !important;
  height:39px !important;
  min-height:39px !important;
  padding:0 12px !important;
  border-radius:999px !important;
  border:1px solid rgba(84,67,59,.24) !important;
  background:rgba(255,255,255,.58) !important;
  color:var(--brown-dark) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-decoration:none !important;
  box-sizing:border-box !important;
  box-shadow:0 5px 13px rgba(68,50,43,.035) !important;
  transition:
    background .2s ease,
    color .2s ease,
    border-color .2s ease,
    transform .2s ease,
    box-shadow .2s ease !important;
}

header .menu > .item > a.help-menu-bubble:hover{
  background:var(--green) !important;
  color:#fff !important;
  border-color:var(--green-dark) !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 18px rgba(54,100,96,.14) !important;
}

header .help-menu-bubble-label{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  font-family:inherit !important;
  font-style:normal !important;
  font-weight:750 !important;
  font-size:.64rem !important;
  line-height:1.08 !important;
  letter-spacing:.005em !important;
  text-align:center !important;
  transform:none !important;
  text-shadow:none !important;
  white-space:normal !important;
}

header .help-menu-bubble-line{
  display:block !important;
  white-space:nowrap !important;
}

@media(max-width:1180px){
  header .menu > .item > a.help-menu-bubble{
    width:158px !important;
    height:37px !important;
    min-height:37px !important;
    padding:0 9px !important;
  }

  header .help-menu-bubble-label{
    font-size:.58rem !important;
  }
}

@media(max-width:1050px){
  header .menu > .item > a.help-menu-bubble{
    width:148px !important;
  }

  header .help-menu-bubble-label{
    font-size:.55rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER HELP QUESTION — VISUAL EMPHASIS ===== */
header .menu > .item > a.help-menu-bubble{
  background:
    linear-gradient(145deg, rgba(255,255,255,.92), rgba(245,239,230,.82)) !important;
  border:1px solid rgba(54,100,96,.34) !important;
  box-shadow:
    0 7px 18px rgba(54,100,96,.10),
    inset 0 1px 0 rgba(255,255,255,.72) !important;
}

header .help-menu-bubble-label{
  font-family:Georgia, "Times New Roman", serif !important;
  font-style:italic !important;
  font-weight:700 !important;
  font-size:.675rem !important;
  line-height:1.03 !important;
  letter-spacing:-.015em !important;
  color:var(--green-dark) !important;
  transform:skewX(-4deg) !important;
  text-shadow:0 .4px 0 rgba(255,255,255,.9) !important;
}

header .help-menu-bubble-line{
  white-space:nowrap !important;
}

header .help-menu-bubble-qmark{
  display:inline-block !important;
  margin-left:3px !important;
  font-family:Georgia, "Times New Roman", serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:1.34em !important;
  line-height:.75 !important;
  color:var(--brown) !important;
  transform:translateY(-1px) rotate(-7deg) !important;
}

header .menu > .item > a.help-menu-bubble:hover{
  background:var(--green) !important;
  border-color:var(--green-dark) !important;
  box-shadow:0 9px 22px rgba(54,100,96,.18) !important;
}

header .menu > .item > a.help-menu-bubble:hover .help-menu-bubble-label,
header .menu > .item > a.help-menu-bubble:hover .help-menu-bubble-qmark{
  color:#fff !important;
}

@media(max-width:1180px){
  header .help-menu-bubble-label{
    font-size:.61rem !important;
  }
}

@media(max-width:1050px){
  header .help-menu-bubble-label{
    font-size:.575rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER HELP QUESTION — NO BUBBLE, HANDWRITTEN EMPHASIS ===== */
header .menu > .item > a[href="#help-page"]{
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  padding-left:6px !important;
  padding-right:6px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
}

header .menu > .item > a[href="#help-page"]:hover{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  transform:none !important;
}

header .help-menu-question{
  display:inline-flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  font-family:"Comic Sans MS","Trebuchet MS","Segoe UI",sans-serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:.80rem !important;
  line-height:.88 !important;
  letter-spacing:-.025em !important;
  color:var(--brown-dark) !important;
  transform:rotate(-6deg) skewX(-6deg) !important;
  transform-origin:center !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.9),
    1px 2px 3px rgba(68,50,43,.18) !important;
  white-space:nowrap !important;
  transition:
    color .18s ease,
    transform .18s ease,
    text-shadow .18s ease !important;
}

header .help-menu-question .line1,
header .help-menu-question .line2{
  display:block !important;
  white-space:nowrap !important;
}

header .help-menu-question .line2{
  margin-top:1px !important;
}

header .help-menu-question .qmark{
  display:inline-block !important;
  margin-left:2px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:1.32em !important;
  line-height:.7 !important;
  color:var(--green-dark) !important;
  transform:translateY(-1px) rotate(-7deg) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.9),
    1px 2px 3px rgba(54,100,96,.16) !important;
}

header .menu > .item > a[href="#help-page"]:hover .help-menu-question{
  color:var(--green-dark) !important;
  transform:rotate(-4deg) skewX(-7deg) translateY(-1px) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.95),
    1px 3px 5px rgba(54,100,96,.20) !important;
}

@media(max-width:1180px){
  header .help-menu-question{
    font-size:.72rem !important;
  }
}

@media(max-width:1080px){
  header .help-menu-question{
    font-size:.66rem !important;
    letter-spacing:-.03em !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER QUESTION — STRONG COMPACT PILL ===== */
header .menu > .item > a.help-menu-impact{
  width:154px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 10px !important;
  border-radius:999px !important;
  border:1px solid rgba(54,100,96,.36) !important;
  background:rgba(255,255,255,.66) !important;
  box-shadow:
    0 7px 18px rgba(54,100,96,.10),
    inset 0 1px 0 rgba(255,255,255,.80) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  transition:
    transform .18s ease,
    background .18s ease,
    border-color .18s ease,
    box-shadow .18s ease !important;
}

header .help-menu-impact-label{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  color:var(--green-dark) !important;
  font-family:"Trebuchet MS","Segoe UI",sans-serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:.84rem !important;
  line-height:.92 !important;
  letter-spacing:-.025em !important;
  text-align:center !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.95),
    1px 2px 4px rgba(68,50,43,.17) !important;
  transform:skewX(-5deg) !important;
}

header .help-menu-impact-line{
  display:block !important;
  white-space:nowrap !important;
}

header .help-menu-impact-q{
  display:inline-block !important;
  margin-left:2px !important;
  color:var(--brown) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.28em !important;
  font-style:italic !important;
  font-weight:900 !important;
  line-height:.7 !important;
  transform:translateY(-1px) rotate(-7deg) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.95),
    1px 2px 4px rgba(54,100,96,.16) !important;
}

header .menu > .item > a.help-menu-impact:hover{
  background:var(--green) !important;
  border-color:var(--green-dark) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px rgba(54,100,96,.18) !important;
}

header .menu > .item > a.help-menu-impact:hover .help-menu-impact-label,
header .menu > .item > a.help-menu-impact:hover .help-menu-impact-q{
  color:#fff !important;
}

@media(max-width:1180px){
  header .menu > .item > a.help-menu-impact{
    width:146px !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 8px !important;
  }
  header .help-menu-impact-label{
    font-size:.77rem !important;
  }
}

@media(max-width:1080px){
  header .menu > .item > a.help-menu-impact{
    width:138px !important;
  }
  header .help-menu-impact-label{
    font-size:.71rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER QUESTION — BOLDER / BIGGER / BLACK / SLANTED ===== */
header .menu > .item > a.help-menu-impact{
  width:154px !important;
  height:42px !important;
  min-height:42px !important;
  padding:0 9px !important;
  background:rgba(255,255,255,.66) !important;
  border:1px solid rgba(34,34,34,.20) !important;
}

header .help-menu-impact-label{
  color:#1d1d1d !important;
  font-family:"Comic Sans MS","Trebuchet MS","Segoe UI",sans-serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:.91rem !important;
  line-height:.82 !important;
  letter-spacing:-.045em !important;
  transform:translateY(-2px) rotate(-5deg) skewX(-5deg) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    1px 2px 3px rgba(0,0,0,.20) !important;
}

header .help-menu-impact-q{
  color:#111 !important;
  font-weight:900 !important;
  font-size:1.30em !important;
  transform:translateY(-2px) rotate(-8deg) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    1px 2px 3px rgba(0,0,0,.18) !important;
}

header .menu > .item > a.help-menu-impact:hover{
  background:#fff !important;
  border-color:rgba(0,0,0,.34) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px rgba(0,0,0,.12) !important;
}

header .menu > .item > a.help-menu-impact:hover .help-menu-impact-label,
header .menu > .item > a.help-menu-impact:hover .help-menu-impact-q{
  color:#000 !important;
}

@media(max-width:1180px){
  header .menu > .item > a.help-menu-impact{
    width:146px !important;
  }
  header .help-menu-impact-label{
    font-size:.83rem !important;
  }
}

@media(max-width:1080px){
  header .menu > .item > a.help-menu-impact{
    width:138px !important;
  }
  header .help-menu-impact-label{
    font-size:.76rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== HEADER CTA — ΝΑ ΜΙΛΗΣΩ? ===== */
header .menu > .item > a.help-menu-short{
  width:auto !important;
  min-width:104px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 14px !important;
  border-radius:999px !important;
  border:1px solid rgba(34,34,34,.20) !important;
  background:rgba(255,255,255,.68) !important;
  box-shadow:
    0 7px 18px rgba(0,0,0,.08),
    inset 0 1px 0 rgba(255,255,255,.85) !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}

header .help-menu-short-label{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#111 !important;
  font-family:"Comic Sans MS","Trebuchet MS","Segoe UI",sans-serif !important;
  font-style:italic !important;
  font-weight:900 !important;
  font-size:1rem !important;
  line-height:1 !important;
  letter-spacing:-.035em !important;
  white-space:nowrap !important;
  transform:translateY(-1px) rotate(-5deg) skewX(-4deg) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.98),
    1px 2px 3px rgba(0,0,0,.18) !important;
}

header .help-menu-short-q{
  display:inline-block !important;
  margin-left:3px !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:1.25em !important;
  font-style:italic !important;
  font-weight:900 !important;
  line-height:.8 !important;
  transform:translateY(-1px) rotate(-8deg) !important;
}

header .menu > .item > a.help-menu-short:hover{
  background:#fff !important;
  border-color:rgba(0,0,0,.34) !important;
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px rgba(0,0,0,.12) !important;
}

@media(max-width:1180px){
  header .menu > .item > a.help-menu-short{
    min-width:96px !important;
    padding:0 12px !important;
  }
  header .help-menu-short-label{
    font-size:.92rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== ΝΑ ΜΙΛΗΣΩ? — SAME TEXT COLOR AS THE REST OF THE MENU ===== */
header .help-menu-short-label,
header .help-menu-short-q{
  color:var(--brown-dark) !important;
}

header .help-menu-short-label{
  font-weight:900 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55) !important;
}

header .help-menu-short-q{
  font-weight:900 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55) !important;
}

/* Keep the green hover behavior */
header .menu > .item > a.help-menu-short:hover .help-menu-short-label,
header .menu > .item > a.help-menu-short:hover .help-menu-short-q{
  color:#fff !important;
}


/* ---- consolidated style block ---- */


/* ===== ΝΑ ΜΙΛΗΣΩ? — CLEAN FINAL STATE ===== */
header .menu > .item > a.help-menu-short{
  background:rgba(255,255,255,.48) !important;
  border:1px solid rgba(84,67,59,.24) !important;
  color:var(--brown-dark) !important;
  box-shadow:none !important;
  transform:none !important;
  transition:
    background .20s ease,
    color .20s ease,
    border-color .20s ease,
    transform .20s ease !important;
}

header .help-menu-short-label,
header .help-menu-short-q{
  color:var(--brown-dark) !important;
  animation:none !important;
}

header .help-menu-short-label{
  font-weight:900 !important;
  font-style:italic !important;
  transform:none !important;
  text-shadow:0 1px 0 rgba(255,255,255,.50) !important;
}

header .help-menu-short-q{
  transform:translateY(-1px) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.50) !important;
}

/* Only the simple hover effect remains */
header .menu > .item > a.help-menu-short:hover{
  background:var(--green) !important;
  border-color:var(--brown-dark) !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:none !important;
}

header .menu > .item > a.help-menu-short:hover .help-menu-short-label,
header .menu > .item > a.help-menu-short:hover .help-menu-short-q{
  color:#fff !important;
  animation:none !important;
}


/* ---- consolidated style block ---- */


/* ===== ΝΑ ΜΙΛΗΣΩ? — STABLE HOVER, NO NEIGHBOUR MOVEMENT =====
   Greek fits ~104px; EN/DE must grow (never fixed max) or text spills onto Contact. */
header .menu > .item > a.help-menu-short,
header .menu > .item > a.help-menu-short:hover{
  width:auto !important;
  min-width:104px !important;
  max-width:none !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 12px !important;
  margin:0 !important;
  box-sizing:border-box !important;
  transform:none !important;
  overflow:hidden !important;
}

html[lang="en"] header .menu > .item > a.help-menu-short,
html[lang="de"] header .menu > .item > a.help-menu-short,
html[lang="en"] header .menu > .item > a.help-menu-short:hover,
html[lang="de"] header .menu > .item > a.help-menu-short:hover{
  min-width:0 !important;
  padding:0 10px !important;
}

html[lang="en"] header .help-menu-short-label,
html[lang="de"] header .help-menu-short-label{
  font-size:.78rem !important;
  letter-spacing:-.045em !important;
}

html[lang="en"] header .help-menu-short-q,
html[lang="de"] header .help-menu-short-q{
  font-size:1.05em !important;
  margin-left:2px !important;
}

header .menu > .item > a.help-menu-short:hover{
  background:var(--green) !important;
  border-color:var(--brown-dark) !important;
  color:#fff !important;
  box-shadow:none !important;
}

header .help-menu-short-label,
header .help-menu-short-q,
header .menu > .item > a.help-menu-short:hover .help-menu-short-label,
header .menu > .item > a.help-menu-short:hover .help-menu-short-q{
  transform:none !important;
  animation:none !important;
  font-weight:900 !important;
}

header .menu > .item > a.help-menu-short:hover .help-menu-short-label,
header .menu > .item > a.help-menu-short:hover .help-menu-short-q{
  color:#fff !important;
}


/* ---- consolidated style block ---- */


/* ===== FAQ HOME — REFERENCE INSPIRED ===== */
#faq-home{
  padding:92px 0 88px !important;
  background:#f1efe9 !important;
  border-top:1px solid rgba(84,67,59,.08);
}

#faq-home .faq-home-grid{
  display:grid;
  grid-template-columns:minmax(300px,.76fr) minmax(0,1.55fr);
  gap:86px;
  align-items:start;
}

#faq-home .faq-home-intro{
  position:sticky;
  top:112px;
}

#faq-home .kicker{
  margin-bottom:14px;
  color:var(--green-dark);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.15em;
}

#faq-home h3{
  margin:0;
  color:#232927;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3rem,5vw,5.25rem);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:400;
}

#faq-home h3 span{
  position:relative;
  white-space:nowrap;
}

#faq-home h3 span::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.01em;
  height:3px;
  border-radius:99px;
  background:var(--green-dark);
  transform:rotate(-1deg);
}

#faq-home .faq-home-lead{
  max-width:470px;
  margin:24px 0 0;
  color:var(--muted);
  font-size:1rem;
  line-height:1.72;
}

#faq-home .faq-home-photo-wrap{
  width:min(100%,380px);
  margin-top:38px;
  aspect-ratio:4 / 4.55;
  overflow:hidden;
  border-radius:2px;
  background:rgba(54,100,96,.08);
  box-shadow:0 18px 42px rgba(68,50,43,.07);
}

#faq-home .faq-home-photo{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 22%;
}

#faq-home .faq-home-list{
  border-top:1px solid rgba(84,67,59,.16);
}

#faq-home .faq-item{
  border-bottom:1px solid rgba(84,67,59,.16);
}

#faq-home .faq-item summary{
  position:relative;
  list-style:none;
  min-height:80px;
  padding:25px 48px 25px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  cursor:pointer;
  color:#252a28;
  font-size:1.08rem;
  font-weight:760;
  line-height:1.35;
  transition:color .18s ease;
}

#faq-home .faq-item summary::-webkit-details-marker{
  display:none;
}

#faq-home .faq-item summary:hover{
  color:var(--green-dark);
}

#faq-home .faq-chevron{
  position:absolute;
  right:4px;
  top:50%;
  width:10px;
  height:10px;
  border-right:2px solid var(--green-dark);
  border-bottom:2px solid var(--green-dark);
  transform:translateY(-68%) rotate(45deg);
  transition:transform .24s ease;
}

#faq-home .faq-item[open] .faq-chevron{
  transform:translateY(-22%) rotate(225deg);
}

#faq-home .faq-answer{
  overflow:hidden;
}

#faq-home .faq-answer p{
  margin:0;
  padding:0 54px 25px 0;
  max-width:980px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.76;
}

#faq-home .faq-item[open] .faq-answer{
  animation:faqAnswerIn .24s ease both;
}

@keyframes faqAnswerIn{
  from{opacity:0;transform:translateY(-5px)}
  to{opacity:1;transform:none}
}

@media(max-width:980px){
  #faq-home{
    padding:72px 0 68px !important;
  }

  #faq-home .faq-home-grid{
    grid-template-columns:1fr;
    gap:48px;
  }

  #faq-home .faq-home-intro{
    position:relative;
    top:auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(220px,320px);
    column-gap:34px;
    align-items:end;
  }

  #faq-home .faq-home-intro .kicker,
  #faq-home .faq-home-intro h3,
  #faq-home .faq-home-intro .faq-home-lead{
    grid-column:1;
  }

  #faq-home .faq-home-photo-wrap{
    grid-column:2;
    grid-row:1 / span 3;
    margin-top:0;
  }
}

@media(max-width:680px){
  #faq-home{
    padding:58px 0 54px !important;
  }

  #faq-home .faq-home-intro{
    display:block;
  }

  #faq-home h3{
    font-size:clamp(2.75rem,12vw,4rem);
  }

  #faq-home .faq-home-photo-wrap{
    width:100%;
    max-width:360px;
    margin-top:30px;
  }

  #faq-home .faq-item summary{
    min-height:72px;
    padding:22px 40px 22px 0;
    font-size:1rem;
  }

  #faq-home .faq-answer p{
    padding:0 8px 22px 0;
    font-size:.96rem;
  }
}


/* ---- consolidated style block ---- */


/* ===== FAQ REFINEMENTS ===== */

/* Large editorial title removed; keep the intro compact. */
#faq-home .faq-home-intro{
  padding-top:4px;
}

/* Show the same portrait exactly as a standalone full image. */
#faq-home .faq-home-photo-wrap{
  width:min(100%,455px) !important;
  max-width:455px !important;
  height:auto !important;
  aspect-ratio:auto !important;
  margin-top:34px !important;
  overflow:visible !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}

#faq-home .faq-home-photo{
  display:block !important;
  width:100% !important;
  max-width:455px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:none !important;
}

/* Since there is no large heading anymore, give the lead a little more breathing room. */
#faq-home .faq-home-lead{
  margin-top:18px !important;
}

@media(max-width:980px){
  #faq-home .faq-home-intro{
    display:block !important;
  }

  #faq-home .faq-home-photo-wrap{
    width:min(100%,420px) !important;
    margin-top:28px !important;
  }
}

@media(max-width:680px){
  #faq-home .faq-home-photo-wrap{
    width:100% !important;
    max-width:390px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== BOOKING SECTION — REFERENCE INSPIRED ===== */
#contact.booking-section{
  padding:96px 0 !important;
  background:#1f332d !important;
  color:#fff !important;
}

#contact .booking-layout{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.42fr);
  gap:72px;
  align-items:center;
}

#contact .booking-editorial{
  padding:20px 0 12px;
}

#contact .booking-editorial .kicker{
  margin-bottom:12px;
  color:rgba(255,255,255,.68);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.15em;
}

#contact .booking-editorial h3{
  margin:0;
  max-width:560px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.1rem,5.3vw,5.5rem);
  line-height:.96;
  letter-spacing:-.05em;
  font-weight:400;
}

#contact .booking-editorial h3 span{
  position:relative;
  white-space:nowrap;
}

#contact .booking-editorial h3 span::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:.01em;
  height:3px;
  border-radius:99px;
  background:#c3a06a;
  transform:rotate(-1deg);
}

#contact .booking-editorial > p{
  max-width:500px;
  margin:28px 0 0;
  color:rgba(255,255,255,.74);
  font-size:1rem;
  line-height:1.72;
}

#contact .booking-contact-mini{
  margin-top:38px;
  padding-top:24px;
  border-top:1px solid rgba(255,255,255,.12);
}

#contact .booking-contact-mini > span{
  display:block;
  color:rgba(255,255,255,.62);
  font-size:.86rem;
  margin-bottom:12px;
}

#contact .booking-contact-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

#contact .booking-contact-actions a{
  min-height:38px;
  padding:0 15px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  text-decoration:none;
  font-size:.86rem;
  font-weight:700;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

#contact .booking-contact-actions a:hover{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.40);
  transform:translateY(-1px);
}

#contact.booking-section,
#contact .booking-panel{
  scroll-margin-top:calc(var(--dd-header-offset, 96px) + 16px);
}

#contact .booking-panel{
  background:#f8f7f3;
  color:#243d35;
  border-radius:30px;
  padding:34px 34px 28px;
  box-shadow:0 22px 50px rgba(12,24,20,.18);
  overflow:visible;
}

#contact .booking-meta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding-bottom:20px;
  color:#69706b;
  font-size:.78rem;
  border-bottom:1px solid rgba(84,67,59,.12);
}

#contact .booking-step{
  padding:22px 0;
  border-bottom:1px solid rgba(84,67,59,.12);
}

#contact .booking-label{
  margin-bottom:12px;
  color:#66706a;
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.12em;
}

#contact .booking-choice-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

#contact .booking-choice-row.is-missing-field{
  outline:2px solid rgba(180,35,24,.55);
  outline-offset:4px;
  border-radius:16px;
}

#contact .booking-times-section.is-needs-attention .booking-time-grid,
#contact .booking-time-grid.is-needs-attention{
  border-radius:16px;
  box-shadow:0 0 0 3px rgba(142,60,53,.16);
}

#contact .booking-choice,
#contact .booking-time{
  appearance:none;
  border:1px solid rgba(84,67,59,.17);
  background:#fff;
  color:#272a28;
  min-height:44px;
  padding:0 18px;
  border-radius:999px;
  font:inherit;
  font-size:.88rem;
  font-weight:750;
  cursor:pointer;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}

#contact .booking-choice:hover,
#contact .booking-time:hover{
  border-color:rgba(54,100,96,.40);
  transform:translateY(-1px);
}

#contact .booking-choice.is-selected,
#contact .booking-time.is-selected{
  background:#243d35;
  border-color:#243d35;
  color:#fff;
}

#contact .booking-topic{
  width:100%;
  min-height:118px;
  resize:vertical;
  padding:16px 18px;
  border-radius:18px;
  border:1px solid rgba(84,67,59,.17);
  background:#fff;
  color:#272a28;
  font:inherit;
  line-height:1.55;
  box-sizing:border-box;
  outline:none;
}

#contact .booking-topic:focus,
#contact .booking-input:focus{
  border-color:rgba(54,100,96,.55);
  box-shadow:0 0 0 3px rgba(54,100,96,.08);
}

#contact .booking-input.is-missing-field{
  border-color:#b42318;
  box-shadow:0 0 0 3px rgba(180,35,24,.12);
}

#contact .booking-optional{
  font-weight:500;
  opacity:.72;
  text-transform:none;
  letter-spacing:0;
}

#contact .booking-helper{
  margin-top:8px;
  color:#7a7f7b;
  font-size:.76rem;
  line-height:1.5;
}

#contact .booking-two-col{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:22px;
}

#contact .booking-input{
  width:100%;
  min-height:48px;
  padding:0 15px;
  border-radius:14px;
  border:1px solid rgba(84,67,59,.17);
  background:#fff;
  color:#272a28;
  font:inherit;
  box-sizing:border-box;
  outline:none;
}

#contact .booking-time-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}

#contact .booking-time{
  width:100%;
  padding:0 12px;
}

#contact .booking-time-wide{
  grid-column:1 / -1;
}

#contact .booking-fields-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

#contact .booking-field{
  display:grid;
  gap:7px;
  min-width:0;
  color:#4e5852;
  font-size:.78rem;
  font-weight:750;
}

#contact .booking-field-error{
  min-height:1.2em;
  color:#9f241a;
  font-size:.74rem;
  font-weight:650;
  line-height:1.25;
}

#contact .booking-field-full{
  grid-column:1 / -1;
}

#contact .booking-summary{
  margin-top:22px;
  padding:18px 18px;
  border-radius:18px;
  background:#ebe9e3;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}

#contact .booking-summary strong{
  display:block;
  margin-bottom:4px;
  color:#243d35;
  font-size:.94rem;
}

#contact .booking-summary span{
  display:block;
  color:#747a76;
  font-size:.76rem;
  line-height:1.45;
}

#contact .booking-schedule-pick{
  display:inline-flex;
  align-items:center;
  margin-top:10px;
  padding:7px 12px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:750;
  line-height:1.3;
  border:1px solid transparent;
}

#contact .booking-schedule-pick.is-missing{
  color:#873c36;
  background:rgba(142,60,53,.08);
  border-color:rgba(142,60,53,.16);
}

#contact .booking-schedule-pick.is-set{
  color:#294f4c;
  background:rgba(41,79,76,.1);
  border-color:rgba(41,79,76,.16);
}

#contact .booking-schedule-pick.is-pulse{
  animation:bookingCalPulse 1.1s ease 2;
}

#contact .booking-calendar-required{
  margin-top:6px;
  margin-bottom:2px;
  color:#6b5a50;
  font-weight:650;
}

#contact .booking-submit,
#contact .booking-primary{
  min-height:46px;
  padding:0 22px;
  border:0;
  border-radius:999px;
  background:#3f6658;
  color:#fff;
  font:inherit;
  font-size:.88rem;
  font-weight:800;
  cursor:pointer;
  transition:background .18s ease,transform .18s ease;
}

#contact .booking-submit:hover,
#contact .booking-primary:hover{
  background:#294f4c;
  transform:translateY(-1px);
}

#contact .booking-contact-inline{
  margin-top:14px;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  color:#7a7f7b;
  font-size:.76rem;
}

#contact .booking-contact-inline a{
  color:#243d35;
  font-weight:800;
  text-decoration:none;
  padding:5px 9px;
  border-radius:999px;
}

#contact .booking-contact-inline a:hover{
  background:rgba(54,100,96,.08);
}

@media(max-width:1020px){
  #contact .booking-layout{
    grid-template-columns:1fr;
    gap:42px;
  }

  #contact .booking-editorial{
    max-width:760px;
  }
}

@media(max-width:680px){
  #contact.booking-section{
    padding:64px 0 !important;
  }

  #contact .booking-editorial h3{
    font-size:clamp(2.8rem,12vw,4.2rem);
  }

  #contact .booking-panel{
    padding:24px 18px 20px;
    border-radius:24px;
  }

  #contact .booking-two-col,
  #contact .booking-fields-grid{
    grid-template-columns:1fr;
  }

  #contact .booking-field-full{
    grid-column:auto;
  }

  #contact .booking-summary{
    grid-template-columns:1fr;
  }

  #contact .booking-submit,
  #contact .booking-primary{
    width:100%;
  }

  #contact .booking-contact-inline{
    justify-content:flex-start;
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   PSYCHOLOGIST — LONGFORM STORY PAGE
   ========================================================= */

#psychologist-page{
  background:#f5f1eb;
  color:var(--brown-dark);
}

#psychologist-page .psych-story-shell{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

#psychologist-page .psych-story-shell::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-5;
  pointer-events:none;
  opacity:.42;
  background-image:
    radial-gradient(circle at 20% 12%, rgba(54,100,96,.065) 0 1px, transparent 1px),
    radial-gradient(circle at 74% 64%, rgba(84,67,59,.045) 0 1px, transparent 1px);
  background-size:28px 28px,34px 34px;
}

#psychologist-page .psych-cloud{
  position:absolute;
  z-index:-2;
  width:420px;
  height:190px;
  border-radius:50%;
  filter:blur(30px);
  pointer-events:none;
  opacity:.34;
  background:
    radial-gradient(circle at 32% 50%, rgba(255,255,255,.96) 0 30%, transparent 31%),
    radial-gradient(circle at 54% 38%, rgba(255,255,255,.92) 0 34%, transparent 35%),
    radial-gradient(circle at 70% 56%, rgba(255,255,255,.88) 0 27%, transparent 28%);
  animation:psychCloudDrift 18s ease-in-out infinite alternate;
}

#psychologist-page .psych-cloud-a{top:260px;left:-110px}
#psychologist-page .psych-cloud-b{top:1180px;right:-120px;animation-duration:23s}
#psychologist-page .psych-cloud-c{top:2700px;left:12%;opacity:.24;animation-duration:27s}

@keyframes psychCloudDrift{
  from{transform:translate3d(-16px,0,0)}
  to{transform:translate3d(22px,-16px,0)}
}

/* reveal */
#psychologist-page [data-psych-reveal]{
  opacity:0;
  transform:translateY(30px);
  transition:
    opacity .72s ease,
    transform .78s cubic-bezier(.2,.78,.24,1);
}

#psychologist-page [data-psych-reveal].is-visible{
  opacity:1;
  transform:none;
}

/* HERO */
#psychologist-page .psych-story-hero{
  position:relative;
  min-height:calc(100vh - 70px);
  display:flex;
  align-items:center;
  padding:92px 0 84px;
  background:
    radial-gradient(circle at 84% 18%,rgba(54,100,96,.10),transparent 28%),
    linear-gradient(180deg,#f8f4ee 0%,#f2ede6 100%);
  border-bottom:1px solid rgba(84,67,59,.10);
}

#psychologist-page .psych-story-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.74fr);
  gap:72px;
  align-items:center;
}

#psychologist-page .psych-story-hero-copy{
  position:relative;
  z-index:2;
}

#psychologist-page .psych-story-hero .kicker,
#psychologist-page .psych-story-section .kicker,
#psychologist-page .psych-story-closing .kicker{
  color:var(--green-dark);
  font-size:.74rem;
  font-weight:850;
  letter-spacing:.16em;
}

#psychologist-page .psych-story-hero h1{
  margin:18px 0 26px;
  max-width:850px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(4rem,7.4vw,8.1rem);
  line-height:.88;
  font-weight:400;
  letter-spacing:-.06em;
  color:#242a27;
}

#psychologist-page .psych-story-hero h1 em{
  color:var(--green-dark);
  font-weight:400;
}

#psychologist-page .psych-story-lead{
  max-width:760px;
  margin:0;
  color:var(--muted);
  font-size:1.08rem;
  line-height:1.82;
}

#psychologist-page .psych-story-nav{
  margin-top:34px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

#psychologist-page .psych-story-nav a{
  min-height:42px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  border:1px solid rgba(54,100,96,.20);
  background:rgba(255,255,255,.56);
  color:var(--green-dark);
  text-decoration:none;
  font-size:.84rem;
  font-weight:750;
  transition:.18s ease;
}

#psychologist-page .psych-story-nav a:hover{
  background:var(--green);
  border-color:var(--green);
  color:#fff;
  transform:translateY(-2px);
}

#psychologist-page .psych-story-hero-visual{
  position:relative;
  min-height:600px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

#psychologist-page .psych-photo-frame{
  position:absolute;
  inset:22px 0 0 30px;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  border-radius:45% 45% 28px 28px;
  background:
    radial-gradient(circle at 50% 38%,rgba(255,255,255,.90),rgba(54,100,96,.075) 58%,transparent 59%);
  overflow:hidden;
}

#psychologist-page .psych-main-photo{
  width:min(100%,500px);
  max-height:570px;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 20px 26px rgba(58,45,39,.16));
}

#psychologist-page .psych-float-bubble{
  position:absolute;
  z-index:3;
  padding:11px 16px;
  border-radius:999px;
  border:1px solid rgba(54,100,96,.14);
  background:rgba(255,255,255,.84);
  backdrop-filter:blur(12px);
  box-shadow:0 12px 28px rgba(68,50,43,.08);
  color:var(--green-dark);
  font-size:.84rem;
  font-weight:800;
  animation:psychBubbleFloat 5s ease-in-out infinite alternate;
}

#psychologist-page .psych-float-one{top:19%;left:0}
#psychologist-page .psych-float-two{top:43%;right:-12px;animation-delay:-1.6s}
#psychologist-page .psych-float-three{bottom:12%;left:10%;animation-delay:-3s}

@keyframes psychBubbleFloat{
  from{transform:translateY(0)}
  to{transform:translateY(-10px)}
}

#psychologist-page .psych-scroll-note{
  position:absolute;
  left:50%;
  bottom:20px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  color:rgba(84,67,59,.42);
  font-size:.63rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}

#psychologist-page .psych-scroll-note i{
  display:block;
  width:1px;
  height:36px;
  background:linear-gradient(var(--green),transparent);
}

/* GENERIC SECTIONS */
#psychologist-page .psych-story-section{
  position:relative;
  padding:118px 0 126px;
}

#psychologist-page .psych-section-number{
  margin-bottom:44px;
  color:rgba(54,100,96,.20);
  font-family:Georgia,"Times New Roman",serif;
  font-size:6.5rem;
  line-height:.8;
}

#psychologist-page .psych-section-number.light{
  color:rgba(255,255,255,.17);
}

/* PERSPECTIVE */
#psychologist-page .psych-perspective-section{
  min-height:1100px;
  background:#f6f1ea;
}

#psychologist-page .psych-ghost-photo{
  position:absolute;
  right:-4%;
  top:180px;
  width:430px;
  height:700px;
  opacity:.045;
  filter:grayscale(1);
  pointer-events:none;
}

#psychologist-page .psych-ghost-photo img{
  width:100%;
  height:100%;
  object-fit:contain;
}

#psychologist-page .psych-perspective-grid{
  display:grid;
  grid-template-columns:minmax(290px,.72fr) minmax(0,1.25fr);
  gap:86px;
  align-items:start;
}

#psychologist-page .psych-sticky-heading{
  position:sticky;
  top:120px;
}

#psychologist-page .psych-sticky-heading h2,
#psychologist-page .psych-journey-head h2,
#psychologist-page .psych-method-head h2,
#psychologist-page .psych-story-closing h2{
  margin:14px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3rem,5vw,5.2rem);
  line-height:.97;
  font-weight:400;
  letter-spacing:-.045em;
  color:#252b28;
}

#psychologist-page .psych-long-copy{
  position:relative;
  z-index:2;
  max-width:810px;
}

#psychologist-page .psych-long-copy > p{
  margin:0 0 34px;
  color:rgba(84,67,59,.88);
  font-size:1.075rem;
  line-height:1.95;
}

#psychologist-page .psych-quote-bubble{
  width:min(84%,650px);
  margin:56px 0;
  padding:28px 32px;
  border-radius:28px 28px 28px 8px;
  background:#fff;
  border:1px solid rgba(54,100,96,.13);
  box-shadow:0 18px 38px rgba(68,50,43,.07);
  color:var(--green-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.45rem,2.4vw,2.15rem);
  line-height:1.45;
  font-style:italic;
}

#psychologist-page .psych-bubble-right{
  margin-left:auto;
}

#psychologist-page .psych-word-cloud{
  margin:48px 0 52px;
  min-height:190px;
  position:relative;
}

#psychologist-page .psych-word-cloud span{
  position:absolute;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 15px;
  border-radius:999px;
  color:var(--green-dark);
  border:1px solid rgba(54,100,96,.14);
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 20px rgba(68,50,43,.055);
  font-size:.84rem;
  font-weight:800;
}

#psychologist-page .psych-word-cloud span:nth-child(1){left:2%;top:20px}
#psychologist-page .psych-word-cloud span:nth-child(2){left:30%;top:0}
#psychologist-page .psych-word-cloud span:nth-child(3){right:5%;top:34px}
#psychologist-page .psych-word-cloud span:nth-child(4){left:18%;bottom:15px}
#psychologist-page .psych-word-cloud span:nth-child(5){right:26%;bottom:0}

/* JOURNEY */
#psychologist-page .psych-journey-section{
  background:#294f4c;
  color:#fff;
}

#psychologist-page .psych-journey-head{
  display:grid;
  grid-template-columns:1fr .78fr;
  gap:60px;
  align-items:end;
  margin-bottom:70px;
}

#psychologist-page .psych-journey-head .kicker{
  color:rgba(255,255,255,.58);
}

#psychologist-page .psych-journey-head h2{
  color:#fff;
}

#psychologist-page .psych-journey-head > p{
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:1.03rem;
  line-height:1.78;
}

#psychologist-page .psych-timeline{
  position:relative;
  max-width:1050px;
  margin:0 auto;
}

#psychologist-page .psych-timeline::before{
  content:"";
  position:absolute;
  left:177px;
  top:24px;
  bottom:24px;
  width:1px;
  background:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.45),rgba(255,255,255,.08));
}

#psychologist-page .psych-time-card{
  position:relative;
  display:grid;
  grid-template-columns:145px 64px minmax(0,1fr);
  gap:0;
  padding:0 0 54px;
}

#psychologist-page .psych-year{
  padding-top:7px;
  color:#c9ab7a;
  font-size:.79rem;
  font-weight:850;
  letter-spacing:.12em;
  text-align:right;
}

#psychologist-page .psych-time-dot{
  position:relative;
}

#psychologist-page .psych-time-dot::before{
  content:"";
  position:absolute;
  left:50%;
  top:9px;
  width:13px;
  height:13px;
  border-radius:50%;
  transform:translateX(-50%);
  background:#f7f2eb;
  border:3px solid #b89460;
  box-shadow:0 0 0 7px rgba(255,255,255,.05);
}

#psychologist-page .psych-time-content{
  padding:0 0 0 18px;
}

#psychologist-page .psych-time-label{
  display:block;
  margin-bottom:7px;
  color:rgba(255,255,255,.46);
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.14em;
}

#psychologist-page .psych-time-content h3{
  margin:0 0 12px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.65rem,2.8vw,2.45rem);
  font-weight:400;
}

#psychologist-page .psych-time-content p{
  margin:0;
  max-width:720px;
  color:rgba(255,255,255,.70);
  font-size:.98rem;
  line-height:1.78;
}

#psychologist-page .psych-time-card-now .psych-time-content{
  padding:26px 28px 28px;
  margin-left:18px;
  border-radius:24px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.10);
}

#psychologist-page .psych-journey-bubble{
  max-width:760px;
  margin:34px 0 0 auto;
  padding:24px 28px;
  border-radius:24px 24px 8px 24px;
  background:#f6f1ea;
  color:var(--green-dark);
  box-shadow:0 18px 42px rgba(0,0,0,.12);
}

#psychologist-page .psych-journey-bubble strong{
  display:block;
  margin-bottom:5px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.45rem;
  font-weight:400;
}

#psychologist-page .psych-journey-bubble span{
  color:var(--muted);
  line-height:1.55;
}

/* METHOD */
#psychologist-page .psych-method-section{
  background:#f4efe8;
}

#psychologist-page .psych-method-head{
  max-width:950px;
  margin-bottom:68px;
}

#psychologist-page .psych-method-head h2 em{
  color:var(--green-dark);
  font-weight:400;
}

#psychologist-page .psych-method-head > p{
  max-width:790px;
  margin:26px 0 0;
  color:var(--muted);
  font-size:1.06rem;
  line-height:1.82;
}

#psychologist-page .psych-method-chapters{
  max-width:1050px;
  margin-left:auto;
  border-top:1px solid rgba(84,67,59,.15);
}

#psychologist-page .psych-method-card{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:34px;
  padding:38px 10px 40px 0;
  border-bottom:1px solid rgba(84,67,59,.15);
}

#psychologist-page .psych-method-index{
  color:rgba(54,100,96,.36);
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.5rem;
}

#psychologist-page .psych-method-card h3{
  margin:0 0 12px;
  color:#252b28;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.75rem,3vw,2.6rem);
  font-weight:400;
}

#psychologist-page .psych-method-card p{
  margin:0;
  max-width:750px;
  color:var(--muted);
  line-height:1.82;
  font-size:1rem;
}

#psychologist-page .psych-method-statement{
  max-width:900px;
  margin:72px 0 0 auto;
  padding:34px 38px;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(54,100,96,.12);
  box-shadow:0 16px 38px rgba(68,50,43,.06);
}

#psychologist-page .psych-method-statement span{
  display:block;
  margin-bottom:8px;
  color:var(--green);
  font-size:.79rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#psychologist-page .psych-method-statement strong{
  color:var(--green-dark);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.55rem,2.6vw,2.35rem);
  line-height:1.4;
  font-weight:400;
}

/* CLOSING */
#psychologist-page .psych-story-closing{
  padding:84px 0;
  background:#e9e2d8;
  border-top:1px solid rgba(84,67,59,.08);
}

#psychologist-page .psych-story-closing-inner{
  display:grid;
  grid-template-columns:1fr auto;
  gap:48px;
  align-items:end;
}

#psychologist-page .psych-story-closing h2{
  max-width:820px;
  font-size:clamp(2.7rem,4.8vw,4.8rem);
}

#psychologist-page .psych-closing-actions{
  min-width:230px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

#psychologist-page .psych-closing-actions .btn{
  width:100%;
}

#psychologist-page .psych-back-home{
  margin-top:5px;
  text-align:center;
  color:var(--muted);
  font-size:.82rem;
  text-decoration:none;
}

/* Responsive */
@media(max-width:1050px){
  #psychologist-page .psych-story-hero-grid,
  #psychologist-page .psych-perspective-grid,
  #psychologist-page .psych-journey-head{
    grid-template-columns:1fr;
  }

  #psychologist-page .psych-story-hero-visual{
    min-height:520px;
    max-width:560px;
    width:100%;
    margin:0 auto;
  }

  #psychologist-page .psych-sticky-heading{
    position:relative;
    top:auto;
    max-width:720px;
  }

  #psychologist-page .psych-perspective-grid{
    gap:48px;
  }

  #psychologist-page .psych-journey-head{
    gap:24px;
  }

  #psychologist-page .psych-story-closing-inner{
    grid-template-columns:1fr;
  }

  #psychologist-page .psych-closing-actions{
    max-width:320px;
  }
}

@media(max-width:720px){
  #psychologist-page .psych-story-hero{
    min-height:auto;
    padding:70px 0 62px;
  }

  #psychologist-page .psych-story-hero h1{
    font-size:clamp(3.2rem,15vw,5.4rem);
  }

  #psychologist-page .psych-story-hero-grid{
    gap:38px;
  }

  #psychologist-page .psych-story-hero-visual{
    min-height:430px;
  }

  #psychologist-page .psych-photo-frame{
    inset:10px 0 0;
  }

  #psychologist-page .psych-float-one{left:3%}
  #psychologist-page .psych-float-two{right:2%}
  #psychologist-page .psych-float-three{left:8%}

  #psychologist-page .psych-story-section{
    padding:82px 0 88px;
  }

  #psychologist-page .psych-section-number{
    font-size:4.8rem;
    margin-bottom:30px;
  }

  #psychologist-page .psych-sticky-heading h2,
  #psychologist-page .psych-journey-head h2,
  #psychologist-page .psych-method-head h2,
  #psychologist-page .psych-story-closing h2{
    font-size:clamp(2.65rem,12vw,4.15rem);
  }

  #psychologist-page .psych-long-copy > p{
    font-size:1rem;
    line-height:1.82;
  }

  #psychologist-page .psych-quote-bubble{
    width:100%;
    margin:38px 0;
    padding:24px;
  }

  #psychologist-page .psych-word-cloud{
    min-height:240px;
  }

  #psychologist-page .psych-timeline::before{
    left:14px;
  }

  #psychologist-page .psych-time-card{
    grid-template-columns:30px minmax(0,1fr);
    padding-bottom:44px;
  }

  #psychologist-page .psych-year{
    grid-column:2;
    grid-row:1;
    text-align:left;
    padding:0 0 8px 18px;
  }

  #psychologist-page .psych-time-dot{
    grid-column:1;
    grid-row:1 / span 2;
  }

  #psychologist-page .psych-time-dot::before{
    left:14px;
  }

  #psychologist-page .psych-time-content{
    grid-column:2;
    grid-row:2;
    padding-left:18px;
  }

  #psychologist-page .psych-time-card-now .psych-time-content{
    margin-left:0;
    padding:22px;
  }

  #psychologist-page .psych-method-card{
    grid-template-columns:1fr;
    gap:12px;
    padding:30px 0;
  }

  #psychologist-page .psych-method-index{
    font-size:1.65rem;
  }

  #psychologist-page .psych-method-statement{
    margin-top:48px;
    padding:28px 24px;
  }

  #psychologist-page .psych-story-closing{
    padding:66px 0;
  }

  #psychologist-page .psych-ghost-photo{
    display:none;
  }
}

@media(prefers-reduced-motion:reduce){
  #psychologist-page .psych-cloud,
  #psychologist-page .psych-float-bubble{
    animation:none !important;
  }

  #psychologist-page [data-psych-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== PSYCHOLOGIST — PERSPECTIVE COPY REFINEMENT ===== */
#psychologist-page .psych-perspective-chapter{margin:0 0 52px;}
#psychologist-page .psych-perspective-chapter h3{
  margin:0 0 20px;max-width:760px;color:#26302c;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.75rem,2.8vw,2.55rem);line-height:1.18;
  font-weight:400;letter-spacing:-.025em;
}
#psychologist-page .psych-perspective-chapter p{
  margin:0 0 22px;color:rgba(84,67,59,.88);
  font-size:1.045rem;line-height:1.92;
}
#psychologist-page .psych-perspective-chapter strong{color:var(--green-dark);font-weight:760;}
#psychologist-page .psych-perspective-section .psych-quote-bubble{margin-top:44px;margin-bottom:54px;}
@media(max-width:720px){
  #psychologist-page .psych-perspective-chapter{margin-bottom:42px;}
  #psychologist-page .psych-perspective-chapter h3{font-size:clamp(1.55rem,7vw,2.05rem);}
  #psychologist-page .psych-perspective-chapter p{font-size:.99rem;line-height:1.82;}
}


/* ---- consolidated style block ---- */


/* ===== Η ΟΠΤΙΚΗ ΜΟΥ — COMPACT EDITORIAL LAYOUT ===== */
#psychologist-page .psych-perspective-section{
  min-height:0 !important;
  padding:76px 0 84px !important;
  background:#f6f1ea !important;
}

#psychologist-page .psych-perspective-section .psych-section-number{
  display:none !important;
}

#psychologist-page .psych-perspective-section .psych-ghost-photo{
  display:none !important;
}

#psychologist-page .psych-perspective-grid{
  grid-template-columns:minmax(285px,340px) minmax(0,1fr) !important;
  gap:54px !important;
  align-items:start !important;
}

#psychologist-page .psych-perspective-section .psych-sticky-heading{
  position:sticky !important;
  top:112px !important;
}

#psychologist-page .psych-perspective-section .psych-sticky-heading h2{
  margin-top:12px !important;
  font-size:clamp(2.45rem,3.7vw,3.85rem) !important;
  line-height:1.01 !important;
  letter-spacing:-.04em !important;
}

#psychologist-page .psych-perspective-portrait{
  margin-top:28px !important;
  width:100% !important;
  max-width:330px !important;
}

#psychologist-page .psych-perspective-portrait img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:430px !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  filter:none !important;
}

#psychologist-page .psych-perspective-section .psych-long-copy{
  max-width:none !important;
}

#psychologist-page .psych-perspective-section .psych-perspective-chapter{
  margin:0 0 30px !important;
}

#psychologist-page .psych-perspective-section .psych-perspective-chapter h3{
  margin:0 0 14px !important;
  max-width:none !important;
  font-size:clamp(1.45rem,2vw,1.95rem) !important;
  line-height:1.18 !important;
  letter-spacing:-.018em !important;
}

#psychologist-page .psych-perspective-section .psych-perspective-chapter p{
  margin:0 0 13px !important;
  font-size:.98rem !important;
  line-height:1.68 !important;
}

#psychologist-page .psych-perspective-section .psych-quote-bubble{
  width:100% !important;
  max-width:none !important;
  margin:25px 0 30px !important;
  padding:18px 22px !important;
  border-radius:18px 18px 18px 7px !important;
  font-size:clamp(1.18rem,1.65vw,1.55rem) !important;
  line-height:1.42 !important;
  box-shadow:0 10px 24px rgba(68,50,43,.05) !important;
}

#psychologist-page .psych-perspective-section .psych-bubble-right{
  margin-left:0 !important;
}

@media(max-width:980px){
  #psychologist-page .psych-perspective-grid{
    grid-template-columns:1fr !important;
    gap:34px !important;
  }

  #psychologist-page .psych-perspective-section .psych-sticky-heading{
    position:relative !important;
    top:auto !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(190px,280px) !important;
    gap:28px !important;
    align-items:end !important;
  }

  #psychologist-page .psych-perspective-section .psych-sticky-heading .kicker,
  #psychologist-page .psych-perspective-section .psych-sticky-heading h2{
    grid-column:1 !important;
  }

  #psychologist-page .psych-perspective-portrait{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    margin-top:0 !important;
  }
}

@media(max-width:680px){
  #psychologist-page .psych-perspective-section{
    padding:62px 0 68px !important;
  }

  #psychologist-page .psych-perspective-section .psych-sticky-heading{
    display:block !important;
  }

  #psychologist-page .psych-perspective-portrait{
    width:min(100%,320px) !important;
    margin-top:24px !important;
  }

  #psychologist-page .psych-perspective-section .psych-perspective-chapter{
    margin-bottom:26px !important;
  }

  #psychologist-page .psych-perspective-section .psych-perspective-chapter p{
    font-size:.96rem !important;
    line-height:1.64 !important;
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   ΨΥΧΟΛΟΓΟΣ — REFERENCE-INSPIRED PROFESSIONAL LAYOUT
   Biography copy is unchanged.
   ========================================================= */

#psychologist-page #psych-who{
  display:block !important;
  min-height:0 !important;
  padding:0 0 92px !important;
  background:#f8faf8 !important;
  overflow:visible !important;
}

/* Hero image */
#psychologist-page #psych-who .psych-ref-hero{
  position:relative;
  width:100% !important;
  min-height:560px;
  margin:0;
  background:
    linear-gradient(180deg,rgba(23,29,26,.08),rgba(23,29,26,.14)),
    var(--psych-ref-bg);
  background-size:cover;
  background-position:center center;
  overflow:visible;
}

/* Circular portrait overlaps the exact lower edge of the hero */
#psychologist-page #psych-who .psych-ref-portrait{
  position:absolute;
  right:11.5%;
  bottom:-112px;
  width:250px;
  height:250px;
  z-index:10;
}

#psychologist-page #psych-who .psych-ref-portrait-inner{
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
  background:#f8faf8;
  border:8px solid #f8faf8;
  box-shadow:0 14px 32px rgba(50,45,40,.12);
}

#psychologist-page #psych-who .psych-ref-portrait .psych-photo-frame{
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  position:relative !important;
  inset:auto !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:50% !important;
  overflow:hidden !important;
  background:transparent !important;
  box-shadow:none !important;
}

#psychologist-page #psych-who .psych-ref-portrait .psych-photo-frame::before{
  display:none !important;
}

#psychologist-page #psych-who .psych-ref-portrait .psych-main-photo{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:50% 28% !important;
  border-radius:50% !important;
  filter:none !important;
}

/* Name and subtitle under the image, aligned like the reference */
#psychologist-page #psych-who .psych-ref-intro{
  padding-top:158px !important;
  padding-bottom:26px !important;
  text-align:left !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy{
  max-width:850px !important;
  margin:0 !important;
  text-align:left !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy > .kicker{
  margin:0 0 8px !important;
  color:#315a50 !important;
  font-family:"Avenir Next","Segoe UI","Trebuchet MS",Arial,sans-serif !important;
  font-size:clamp(3.35rem,5vw,5.15rem) !important;
  line-height:.98 !important;
  letter-spacing:-.05em !important;
  font-weight:650 !important;
  text-transform:none !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-who-subtitle{
  margin:0 !important;
  color:#496b62 !important;
  font-family:"Avenir Next","Segoe UI","Trebuchet MS",Arial,sans-serif !important;
  font-size:clamp(1.65rem,2.5vw,2.5rem) !important;
  line-height:1.08 !important;
  letter-spacing:-.025em !important;
  font-weight:400 !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-lead{
  max-width:720px !important;
  margin:24px 0 0 !important;
  color:#62716c !important;
  font-family:"Avenir Next","Segoe UI","Trebuchet MS",Arial,sans-serif !important;
  font-size:.99rem !important;
  line-height:1.72 !important;
}

/* Existing in-page navigation stays, but becomes understated */
#psychologist-page #psych-who .psych-ref-intro .psych-story-nav{
  margin:24px 0 0 !important;
  justify-content:flex-start !important;
  gap:8px !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-nav a{
  min-height:37px !important;
  padding:0 14px !important;
  border-radius:9px !important;
  background:#fff !important;
  border:1px solid rgba(49,90,80,.13) !important;
  color:#315a50 !important;
  box-shadow:none !important;
  font-family:"Avenir Next","Segoe UI","Trebuchet MS",Arial,sans-serif !important;
  font-size:.8rem !important;
}

/* Compact professional biography in continuous balanced columns */
#psychologist-page #psych-who .psych-professional-bio{
  position:relative !important;
  margin:24px auto 0 !important;
  padding-top:38px !important;
  border-top:1px solid rgba(49,90,80,.10) !important;
}

#psychologist-page #psych-who .psych-bio-flow{
  columns:3 300px !important;
  column-gap:42px !important;
  column-fill:balance !important;
}

#psychologist-page #psych-who .psych-bio-flow p{
  margin:0 0 18px !important;
  color:#456159 !important;
  font-family:"Avenir Next","Segoe UI","Trebuchet MS",Arial,sans-serif !important;
  font-size:.955rem !important;
  line-height:1.72 !important;
  text-align:left !important;
  break-inside:avoid !important;
  orphans:3 !important;
  widows:3 !important;
}

#psychologist-page #psych-who .psych-bio-flow strong{
  color:#31594f !important;
  font-weight:650 !important;
}

/* Remove experimental decoration only in this biography section */
#psychologist-page #psych-who .psych-scroll-note,
#psychologist-page #psych-who .psych-float-bubble{
  display:none !important;
}

@media(max-width:1080px){
  #psychologist-page #psych-who .psych-ref-hero{
    min-height:470px;
  }
  #psychologist-page #psych-who .psych-ref-portrait{
    right:8%;
    width:220px;
    height:220px;
    bottom:-98px;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:138px !important;
  }
  #psychologist-page #psych-who .psych-bio-flow{
    columns:2 300px !important;
  }
}

@media(max-width:760px){
  #psychologist-page #psych-who .psych-ref-hero{
    min-height:340px;
    background-position:center center;
  }
  #psychologist-page #psych-who .psych-ref-portrait{
    right:50%;
    transform:translateX(50%);
    width:188px;
    height:188px;
    bottom:-84px;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:125px !important;
    text-align:center !important;
  }
  #psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy{
    text-align:center !important;
    margin:0 auto !important;
  }
  #psychologist-page #psych-who .psych-ref-intro .psych-story-lead{
    margin-left:auto !important;
    margin-right:auto !important;
  }
  #psychologist-page #psych-who .psych-ref-intro .psych-story-nav{
    justify-content:center !important;
  }
  #psychologist-page #psych-who .psych-bio-flow{
    columns:1 !important;
  }
}

@media(max-width:520px){
  #psychologist-page #psych-who .psych-ref-hero{
    min-height:280px;
  }
  #psychologist-page #psych-who .psych-ref-portrait{
    width:164px;
    height:164px;
    bottom:-73px;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:108px !important;
  }
  #psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy > .kicker{
    font-size:clamp(2.45rem,11vw,3.15rem) !important;
  }
  #psychologist-page #psych-who .psych-ref-intro .psych-who-subtitle{
    font-size:1.42rem !important;
  }
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-who .psych-ref-hero{
  min-height:535px !important;
  background-size:cover !important;
  background-position:center center !important;
}
#psychologist-page #psych-who .psych-ref-portrait{
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:258px !important;
  height:258px !important;
  bottom:-118px !important;
}
#psychologist-page #psych-who .psych-ref-intro{
  padding-top:166px !important;
}
@media(max-width:760px){
  #psychologist-page #psych-who .psych-ref-portrait{
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== Final requested layout: office image -> centered portrait -> name -> role -> biography ===== */

#psychologist-page #psych-who .psych-ref-portrait{
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:258px !important;
  height:258px !important;
  bottom:-118px !important;
}

/* Center only the name and professional title under the portrait */
#psychologist-page #psych-who .psych-ref-intro{
  padding-top:166px !important;
  padding-bottom:8px !important;
  text-align:center !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy{
  max-width:920px !important;
  margin:0 auto !important;
  text-align:center !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy > .kicker{
  margin:0 0 8px !important;
  text-align:center !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-who-subtitle{
  margin:0 !important;
  text-align:center !important;
}

/* The user asked for the biography to begin directly beneath the title.
   Keep these existing elements in the file, but do not show them here. */
#psychologist-page #psych-who .psych-ref-intro .psych-story-lead,
#psychologist-page #psych-who .psych-ref-intro .psych-story-nav{
  display:none !important;
}

/* Biography copy stays exactly as already written. */
#psychologist-page #psych-who .psych-professional-bio{
  margin:32px auto 0 !important;
  padding-top:38px !important;
}

/* Keep the generated office crop fully visible as the hero image */
#psychologist-page #psych-who .psych-ref-hero{
  min-height:535px !important;
  background-size:cover !important;
  background-position:center center !important;
}

@media(max-width:760px){
  #psychologist-page #psych-who .psych-ref-portrait{
    left:50% !important;
    right:auto !important;
    transform:translateX(-50%) !important;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:130px !important;
  }
}


/* ---- consolidated style block ---- */


/* Robust hero image rendering: use a real <img>, not a CSS data-URI background */
#psychologist-page #psych-who .psych-ref-hero{
  position:relative !important;
  width:100% !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  overflow:visible !important;
}
#psychologist-page #psych-who .psych-ref-office-image{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:none !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
}
#psychologist-page #psych-who .psych-ref-portrait{
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  bottom:-118px !important;
  z-index:10 !important;
}
#psychologist-page #psych-who .psych-ref-intro{
  padding-top:166px !important;
}
@media(max-width:760px){
  #psychologist-page #psych-who .psych-ref-portrait{
    bottom:-84px !important;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:125px !important;
  }
}
@media(max-width:520px){
  #psychologist-page #psych-who .psych-ref-portrait{
    bottom:-73px !important;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:108px !important;
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   ΨΥΧΟΛΟΓΟΣ — FINAL TOP HERO
   Full previous office image, no blur/duplicate side effects.
   Header overlays the image only on this route.
   Biography text untouched.
   ========================================================= */

/* Header overlays the hero ONLY on the Psychologist page */
body.psychologist-route header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:4000 !important;
  padding:12px 0 0 !important;
  background:transparent !important;
  border:0 !important;
  pointer-events:none !important;
}

body.psychologist-route header .nav{
  pointer-events:auto !important;
  background:rgba(249,246,241,.66) !important;
  border:1px solid rgba(255,255,255,.28) !important;
  box-shadow:0 10px 28px rgba(28,22,18,.12) !important;
  backdrop-filter:blur(14px) saturate(118%) !important;
  -webkit-backdrop-filter:blur(14px) saturate(118%) !important;
}

/* The page itself begins at the absolute top of the viewport */
body.psychologist-route #psychologist-page,
body.psychologist-route #psych-who{
  margin-top:0 !important;
  padding-top:0 !important;
}

#psychologist-page #psych-who{
  background:#f8faf8 !important;
  overflow:visible !important;
}

/* Full image: larger than before, but still short enough for portrait/name/bio to enter first screen */
#psychologist-page #psych-who .psych-ref-hero{
  position:relative !important;
  width:100vw !important;
  height:clamp(560px,70vh,680px) !important;
  min-height:0 !important;
  max-height:680px !important;
  margin:0 calc(50% - 50vw) !important;
  overflow:visible !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#17110d !important;
  box-shadow:none !important;
}

/* No side blur, no duplicated background, no artificial overlay */
#psychologist-page #psych-who .psych-ref-hero::before,
#psychologist-page #psych-who .psych-ref-hero::after{
  content:none !important;
  display:none !important;
}

/* Show the COMPLETE generated image, with no crop */
#psychologist-page #psych-who .psych-ref-office-image{
  display:block !important;
  width:auto !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto !important;
}

/* Portrait sits across the image/white boundary */
#psychologist-page #psych-who .psych-ref-portrait{
  position:absolute !important;
  left:50% !important;
  right:auto !important;
  bottom:-88px !important;
  transform:translateX(-50%) !important;
  width:188px !important;
  height:188px !important;
  z-index:10 !important;
}

#psychologist-page #psych-who .psych-ref-portrait-inner{
  border:7px solid #f8faf8 !important;
  box-shadow:0 15px 34px rgba(39,35,31,.14) !important;
}

/* Name / title follow immediately after portrait */
#psychologist-page #psych-who .psych-ref-intro{
  padding-top:112px !important;
  padding-bottom:0 !important;
  text-align:center !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy{
  max-width:920px !important;
  margin:0 auto !important;
  text-align:center !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-story-hero-copy > .kicker{
  margin:0 0 5px !important;
  font-size:clamp(2.7rem,4vw,4rem) !important;
  line-height:.98 !important;
}

#psychologist-page #psych-who .psych-ref-intro .psych-who-subtitle{
  margin:0 !important;
  font-size:clamp(1.35rem,1.9vw,1.9rem) !important;
  line-height:1.08 !important;
}

/* Keep the approved clean intro: directly into the biography */
#psychologist-page #psych-who .psych-ref-intro .psych-story-lead,
#psychologist-page #psych-who .psych-ref-intro .psych-story-nav{
  display:none !important;
}

#psychologist-page #psych-who .psych-professional-bio{
  margin-top:18px !important;
  padding-top:24px !important;
}

/* Responsive */
@media(max-width:900px){
  #psychologist-page #psych-who .psych-ref-hero{
    height:clamp(430px,62vh,560px) !important;
  }
  #psychologist-page #psych-who .psych-ref-portrait{
    width:172px !important;
    height:172px !important;
    bottom:-80px !important;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:101px !important;
  }
}

@media(max-width:620px){
  body.psychologist-route header .nav{
    background:rgba(249,246,241,.76) !important;
  }
  #psychologist-page #psych-who .psych-ref-hero{
    height:420px !important;
  }
  #psychologist-page #psych-who .psych-ref-portrait{
    width:154px !important;
    height:154px !important;
    bottom:-71px !important;
  }
  #psychologist-page #psych-who .psych-ref-intro{
    padding-top:92px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== ΨΥΧΟΛΟΓΟΣ — FULL BLEED HERO, NO BLUR ===== */

/* Full viewport width, edge to edge */
#psychologist-page #psych-who .psych-ref-hero{
  position:relative !important;
  width:100vw !important;
  height:clamp(560px,70vh,680px) !important;
  min-height:0 !important;
  max-height:680px !important;
  margin:0 calc(50% - 50vw) !important;
  padding:0 !important;
  overflow:visible !important;
  display:block !important;
  background:none !important;
  box-shadow:none !important;
}

/* Absolutely no blurred / duplicated side image */
#psychologist-page #psych-who .psych-ref-hero::before,
#psychologist-page #psych-who .psych-ref-hero::after{
  content:none !important;
  display:none !important;
}

/* The actual image fills from far left to far right */
#psychologist-page #psych-who .psych-ref-office-image{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:cover !important;
  object-position:center center !important;
}

/* Keep portrait/name/biography positioning exactly as already set */
#psychologist-page #psych-who .psych-ref-portrait{
  left:50% !important;
  right:auto !important;
  bottom:-88px !important;
  transform:translateX(-50%) !important;
}

@media(max-width:900px){
  #psychologist-page #psych-who .psych-ref-hero{
    height:clamp(430px,62vh,560px) !important;
  }
}

@media(max-width:620px){
  #psychologist-page #psych-who .psych-ref-hero{
    height:420px !important;
  }
}


/* ---- consolidated style block ---- */


/* Show a little more of the office image vertically */
#psychologist-page #psych-who .psych-ref-hero{
  height:clamp(620px,76vh,760px) !important;
  max-height:760px !important;
}

@media(max-width:900px){
  #psychologist-page #psych-who .psych-ref-hero{
    height:clamp(500px,68vh,620px) !important;
  }
}

@media(max-width:620px){
  #psychologist-page #psych-who .psych-ref-hero{
    height:470px !important;
  }
}


/* ---- consolidated style block ---- */


/* ===== Remove the large empty area after the biography ===== */
#psychologist-page #psych-who,
#psychologist-page #psych-who.psych-story-hero{
  min-height:0 !important;
  height:auto !important;
  padding-bottom:24px !important;
  margin-bottom:0 !important;
}

#psychologist-page #psych-who .psych-professional-bio{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

#psychologist-page #psych-who .psych-bio-flow{
  margin-bottom:0 !important;
  padding-bottom:0 !important;
}

/* Decorative element was occupying unnecessary vertical space */
#psychologist-page #psych-who .psych-bio-botanical{
  display:none !important;
  height:0 !important;
  margin:0 !important;
  padding:0 !important;
}

#psychologist-page #psych-who .psych-scroll-note{
  display:none !important;
  height:0 !important;
  margin:0 !important;
}

#psychologist-page #psych-journey{
  margin-top:0 !important;
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-journey .psych-journey-head{
  display:block !important;
  margin-bottom:54px !important;
}

#psychologist-page #psych-journey .psych-journey-head > div{
  max-width:760px !important;
}

#psychologist-page #psych-journey .psych-training-list{
  max-width:790px;
  margin:14px 0 0;
  padding:0;
  list-style:none;
  color:rgba(255,255,255,.72);
  font-size:.95rem;
  line-height:1.68;
}

#psychologist-page #psych-journey .psych-training-list li{
  position:relative;
  margin:0 0 9px;
  padding-left:18px;
}

#psychologist-page #psych-journey .psych-training-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.72em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#c9ab7a;
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-journey .psych-training-list li strong{
  color:rgba(255,255,255,.96) !important;
  font-weight:700 !important;
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-perspective .psych-perspective-grid{
  align-items:start;
  gap:clamp(24px, 4vw, 64px);
}
#psychologist-page #psych-perspective .psych-sticky-heading{
  position:sticky;
  top:108px;
}
#psychologist-page #psych-perspective .psych-long-copy{
  width:100%;
}
#psychologist-page #psych-perspective .psych-bubble-flow{
  display:flex;
  flex-direction:column;
  gap:22px;
  padding-top:4px;
}
#psychologist-page #psych-perspective .perspective-bubble{
  position:relative;
  width:min(100%, 560px);
  padding:20px 22px 22px;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(33,79,71,.10);
  border-radius:30px;
  box-shadow:0 18px 46px rgba(17,49,44,.10);
  opacity:0;
  transform:translateY(36px) scale(.97);
  transition:opacity .65s ease, transform .65s ease, box-shadow .35s ease;
}
#psychologist-page #psych-perspective .perspective-bubble::after{
  content:'';
  position:absolute;
  width:18px;
  height:18px;
  border-radius:50%;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(33,79,71,.10);
  bottom:-10px;
}
#psychologist-page #psych-perspective .perspective-left{ align-self:flex-start; border-bottom-left-radius:12px; }
#psychologist-page #psych-perspective .perspective-left::after{ left:26px; }
#psychologist-page #psych-perspective .perspective-center{ align-self:center; border-bottom-left-radius:18px; border-bottom-right-radius:18px; }
#psychologist-page #psych-perspective .perspective-center::after{ left:50%; transform:translateX(-50%); }
#psychologist-page #psych-perspective .perspective-right{ align-self:flex-end; border-bottom-right-radius:12px; }
#psychologist-page #psych-perspective .perspective-right::after{ right:26px; }
#psychologist-page #psych-perspective .perspective-bubble.bubble-visible{
  opacity:1;
  transform:translateY(0) scale(1);
}
#psychologist-page #psych-perspective .perspective-bubble:hover{
  box-shadow:0 22px 54px rgba(17,49,44,.14);
}
#psychologist-page #psych-perspective .perspective-bubble-meta{
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:700;
  color:#6f827d;
  margin-bottom:8px;
}
#psychologist-page #psych-perspective .perspective-bubble h3{
  margin:0 0 10px;
  font-size:clamp(22px,2vw,28px);
  line-height:1.16;
  color:#1f3b36;
}
#psychologist-page #psych-perspective .perspective-bubble p{
  margin:0;
  font-size:clamp(15px,1.26vw,18px);
  line-height:1.72;
  color:#34504a;
}
#psychologist-page #psych-methodology .psych-method-head{
  max-width:680px;
  margin-bottom:22px;
}
#psychologist-page #psych-methodology .psych-method-head h2{
  margin:6px 0 0;
}
#psychologist-page #psych-methodology .psych-method-chapters{
  margin-top:0;
}
@media (max-width: 1024px){
  #psychologist-page #psych-perspective .psych-sticky-heading{
    position:relative;
    top:auto;
  }
}
@media (max-width: 820px){
  #psychologist-page #psych-perspective .psych-bubble-flow{
    gap:18px;
  }
  #psychologist-page #psych-perspective .perspective-bubble,
  #psychologist-page #psych-perspective .perspective-left,
  #psychologist-page #psych-perspective .perspective-center,
  #psychologist-page #psych-perspective .perspective-right{
    align-self:stretch;
    width:100%;
  }
  #psychologist-page #psych-perspective .perspective-bubble::after{
    left:24px !important;
    right:auto !important;
    transform:none !important;
  }
}


/* ---- consolidated style block ---- */


#home .hero-actions .btn.ghost{
  background:rgba(255,255,255,.52);
  border-color:rgba(45,88,82,.50);
  color:var(--brown-dark);
}
#home .hero-actions .btn.ghost:hover{
  background:rgba(54,100,96,.09);
  border-color:var(--green);
}


/* ---- consolidated style block ---- */


/* HOME EDUCATION — keep node/track snappy; copy uses journey-copy-in only */
@media(min-width:901px){
  #journey .journey-node,
  #journey .journey-track-fill{
    transition:none !important;
    animation:none !important;
  }
  #journey .journey-copy{
    transition:none !important;
  }
}

/* PSYCHOLOGIST / Η ΟΠΤΙΚΗ ΜΟΥ — restored editorial reading layout */
#psychologist-page #psych-perspective .psych-long-copy{
  max-width:790px !important;
}

#psychologist-page #psych-perspective .psych-perspective-chapter{
  margin-bottom:38px !important;
}

#psychologist-page #psych-perspective .psych-perspective-chapter h3{
  margin-bottom:14px !important;
  line-height:1.16 !important;
}

#psychologist-page #psych-perspective .psych-perspective-chapter p{
  max-width:760px !important;
  margin:0 0 13px !important;
  line-height:1.72 !important;
}

#psychologist-page #psych-perspective .psych-quote-bubble{
  margin-top:8px !important;
  margin-bottom:34px !important;
}

/* Disable any leftover bubble-flow presentation from the previous experiment. */
#psychologist-page #psych-perspective .psych-bubble-flow,
#psychologist-page #psych-perspective .perspective-bubble{
  all:unset;
}


/* ---- consolidated style block ---- */


#journey .journey-head{
  margin-bottom:22px !important;
}
#journey .journey-head-copy{
  max-width:760px !important;
}
#journey .journey-kicker{
  margin-bottom:0 !important;
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-journey .psych-timeline{
  padding-bottom:8px !important;
}
#psychologist-page #psych-journey .psych-time-card-now{
  margin-bottom:0 !important;
}
header .item .dropdown a{
  white-space:normal;
}


/* ---- consolidated style block ---- */


.site-footer-v2 .footer-link-col a{
  line-height:1.35;
}
.site-footer-v2 .footer-link-col h4 + a{
  margin-top:2px;
}


/* ---- consolidated style block ---- */


/* ==========================================
   HOME / ΕΚΠΑΙΔΕΥΣΗ
   ========================================== */
#journey .journey-head-copy{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
}

#journey .journey-kicker{
  margin:0 !important;
  font-size:clamp(2.25rem,3.4vw,3.25rem) !important;
  line-height:.98 !important;
  letter-spacing:-.035em !important;
  font-weight:800 !important;
  text-transform:none !important;
  color:var(--green-dark) !important;
}

#journey .journey-head-copy p{
  margin:0 !important;
  max-width:540px !important;
  font-size:.94rem !important;
  line-height:1.35 !important;
  letter-spacing:.015em !important;
  color:rgba(56,48,43,.66) !important;
}

/* ==========================================
   HOME / Η ΟΠΤΙΚΗ ΜΟΥ
   Main section title must clearly dominate
   the three supporting titles.
   ========================================== */
#about .about-showcase-head h3{
  font-size:clamp(2.75rem,4vw,4rem) !important;
  line-height:.98 !important;
  font-weight:800 !important;
  letter-spacing:-.045em !important;
}

#about .about-points{
  gap:18px !important;
  margin-top:20px !important;
  margin-bottom:10px !important;
}

#about .about-point{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

#about .about-point strong{
  max-width:310px !important;
  margin:0 auto 8px !important;
  font-size:clamp(1.18rem,1.65vw,1.55rem) !important;
  line-height:1.14 !important;
  letter-spacing:-.018em !important;
  font-weight:650 !important;
}

#about .about-point span{
  max-width:305px !important;
  margin:0 auto !important;
  font-size:.91rem !important;
  line-height:1.48 !important;
  font-weight:400 !important;
  color:rgba(56,48,43,.72) !important;
}

/* ==========================================
   HOME / lower-right speech bubble
   Always visible; no reveal animation can hide it.
   ========================================== */
#about .about-panel,
#about .about-story{
  overflow:visible !important;
}

#about .about-quote{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  pointer-events:auto !important;
  position:relative !important;
  z-index:8 !important;
}

#about .about-quote p,
#about .about-signature{
  opacity:1 !important;
  visibility:visible !important;
}

@media(max-width:760px){
  #journey .journey-kicker{
    font-size:clamp(2rem,8vw,2.75rem) !important;
  }

  #about .about-showcase-head h3{
    font-size:clamp(2.4rem,10vw,3.1rem) !important;
  }

  #about .about-point strong{
    max-width:none !important;
  }

  #about .about-point span{
    max-width:none !important;
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   HOME — refined typography for Education & Perspective
   ========================================================= */

/* ΕΚΠΑΙΔΕΥΣΗ: more editorial, warmer and clearer */
#journey .journey-kicker{
  font-family:Georgia, "Times New Roman", serif !important;
  font-size:clamp(2.55rem,3.75vw,3.65rem) !important;
  font-weight:700 !important;
  letter-spacing:-.045em !important;
  line-height:.98 !important;
}

#journey .journey-head-copy p{
  margin-top:3px !important;
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size:1.03rem !important;
  line-height:1.38 !important;
  font-weight:550 !important;
  letter-spacing:.01em !important;
  color:#795845 !important;
  opacity:1 !important;
}

/* Η ΟΠΤΙΚΗ ΜΟΥ: main title clearly editorial and distinct */
#about .about-showcase-head h3{
  font-family:Georgia, "Times New Roman", serif !important;
  font-weight:700 !important;
  letter-spacing:-.045em !important;
}

/* Supporting titles: elegant but quieter than the main heading */
#about .about-point strong{
  font-family:Georgia, "Times New Roman", serif !important;
  font-size:clamp(1.22rem,1.58vw,1.52rem) !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  letter-spacing:-.015em !important;
}

/* Supporting descriptions: clean, highly readable sans-serif */
#about .about-point span{
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size:.93rem !important;
  line-height:1.52 !important;
  font-weight:450 !important;
  color:rgba(56,48,43,.80) !important;
}

/* Personal quote: slightly more refined reading type */
#about .about-quote p{
  font-family:Georgia, "Times New Roman", serif !important;
  line-height:1.68 !important;
  letter-spacing:-.008em !important;
}

@media(max-width:760px){
  #journey .journey-kicker{
    font-size:clamp(2.25rem,9vw,3rem) !important;
  }

  #journey .journey-head-copy p{
    font-size:.99rem !important;
  }
}


/* ---- consolidated style block ---- */


/* ΕΚΠΑΙΔΕΥΣΗ — ίδια γραμματοσειρά με τις υπόλοιπες ενότητες της αρχικής */
#journey .journey-kicker{
  font-family:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}


/* ---- consolidated style block ---- */


#home .hero-actions .about-me-btn{
  display:inline-flex !important;
  align-items:center !important;
  gap:0 !important;
  overflow:hidden !important;
}

#home .hero-actions .about-me-btn .about-me-arrow{
  display:inline-block;
  width:0;
  margin-left:0;
  opacity:0;
  transform:translateX(-5px);
  transition:
    width .22s ease,
    margin-left .22s ease,
    opacity .22s ease,
    transform .22s ease;
}

@media (hover:hover) and (pointer:fine){
  #home .hero-actions .about-me-btn:hover .about-me-arrow{
    width:1.15em;
    margin-left:8px;
    opacity:1;
    transform:translateX(0);
  }
}

#home .hero-actions .about-me-btn:focus-visible .about-me-arrow{
  width:1.15em;
  margin-left:8px;
  opacity:1;
  transform:translateX(0);
}


/* ---- consolidated style block ---- */


/* ΑΡΧΙΚΗ / HERO — τα λόγια δίπλα στην εικόνα εμφανίζονται λίγο μετά τη φόρτωση */
#home .quote-card.hero-quote-delay{
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(12px) !important;
  transition:
    opacity .8s ease,
    transform .8s ease,
    visibility 0s linear .8s !important;
}

#home .quote-card.hero-quote-delay.hero-quote-visible{
  opacity:1 !important;
  visibility:visible !important;
  transform:translateY(0) !important;
  transition:
    opacity .8s ease,
    transform .8s ease,
    visibility 0s linear 0s !important;
}

@media (prefers-reduced-motion: reduce){
  #home .quote-card.hero-quote-delay{
    transition:none !important;
    transform:none !important;
  }
}


/* ---- consolidated style block ---- */


#contact-page.contact-page-v2 {
  background:#f5f4f0 !important;
  color:#2f443b !important;
  padding:120px 0 96px !important;
}

#contact-page .contact-shell {
  display:flex;
  flex-direction:column;
  gap:36px;
}

#contact-page .contact-hero {
  position:relative;
  overflow:hidden;
  border-radius:34px;
  background:linear-gradient(180deg,#f9f8f4 0%, #f3f1ed 100%);
  box-shadow:0 18px 50px rgba(63,54,44,.08);
  padding:64px 60px 0;
  min-height:590px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr);
  gap:34px;
  align-items:end;
}

#contact-page .contact-hero-copy {
  padding-bottom:56px;
  position:relative;
  z-index:2;
  min-width:0;
}

#contact-page .contact-breadcrumb {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:28px;
  color:#496356;
  font-size:.92rem;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}

#contact-page .contact-breadcrumb a {
  color:#496356;
  text-decoration:none;
}

#contact-page .contact-breadcrumb span.sep {
  opacity:.55;
}

#contact-page .contact-hero h1 {
  margin:0;
  max-width:640px;
  font-size:clamp(3.2rem, 6vw, 5.35rem);
  line-height:.98;
  letter-spacing:-.045em;
  color:#365b47;
  font-weight:700;
}

#contact-page .contact-phone-pill {
  margin-top:34px;
  display:inline-flex;
  align-items:center;
  gap:16px;
  min-height:70px;
  padding:0 30px;
  border-radius:18px;
  background:#456b52;
  color:#fff;
  text-decoration:none;
  font-size:1.08rem;
  font-weight:700;
  box-shadow:0 16px 30px rgba(69,107,82,.18);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

#contact-page .contact-phone-pill:hover {
  transform:translateY(-2px);
  box-shadow:0 20px 34px rgba(69,107,82,.24);
  background:#3d5e48;
}

#contact-page .contact-phone-pill svg {
  width:24px;
  height:24px;
  flex:0 0 24px;
}

#contact-page .contact-hero-note {
  margin:34px 0 0;
  max-width:680px;
  color:#506057;
  font-size:1.18rem;
  line-height:1.72;
}

#contact-page .contact-hero-figure {
  position:relative;
  min-height:520px;
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  z-index:1;
}

#contact-page .contact-hero-figure::before {
  content:"";
  position:absolute;
  left:-20px;
  right:0;
  bottom:12px;
  height:180px;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22420%22%20height%3D%22180%22%20viewBox%3D%220%200%20420%20180%22%20fill%3D%22none%22%3E%0A%20%20%3Cg%20stroke%3D%22%23bad7cb%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20opacity%3D%220.9%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M18%20154C101%20124%20154%20114%20209%20114C259%20114%20318%20127%20397%20156%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M110%20121C99%2088%20106%2055%20130%2031C142%2061%20135%2097%20110%20121Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M154%20117C143%2084%20150%2051%20174%2027C186%2057%20179%2093%20154%20117Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M205%20115C194%2082%20201%2049%20225%2025C237%2055%20230%2091%20205%20115Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M252%20118C241%2085%20248%2052%20272%2028C284%2058%20277%2094%20252%20118Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M300%20126C289%2093%20296%2060%20320%2036C332%2066%20325%20102%20300%20126Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M71%20136C57%20108%2061%2082%2082%2061C96%2088%2091%20116%2071%20136Z%22/%3E%0A%20%20%20%20%3Cpath%20d%3D%22M346%20139C333%20111%20338%2085%20359%2064C373%2091%20368%20118%20346%20139Z%22/%3E%0A%20%20%3C/g%3E%0A%3C/svg%3E");
  background-repeat:no-repeat;
  background-size:contain;
  background-position:left bottom;
  opacity:.92;
  pointer-events:none;
}

#contact-page .contact-hero-photo-frame {
  position:relative;
  z-index:2;
  width:min(100%, 365px);
  display:flex;
  justify-content:flex-end;
  align-items:flex-end;
}

#contact-page .contact-hero-photo {
  width:100%;
  height:520px;
  object-fit:cover;
  object-position:50% 30%;
  border-radius:30px 30px 0 0;
  background:#f0ece8;
  box-shadow:0 16px 34px rgba(63,52,45,.10);
}

#contact-page .contact-approach {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(250px, .42fr);
  gap:36px;
  align-items:start;
  padding:30px 4px 0;
}

#contact-page .contact-approach h2,
#contact-page .contact-form-card h2 {
  margin:0 0 20px;
  color:#365b47;
  font-size:clamp(2.2rem,4vw,3.25rem);
  letter-spacing:-.03em;
  font-weight:700;
}

#contact-page .contact-approach p {
  margin:0;
  max-width:840px;
  color:#445149;
  font-size:1.18rem;
  line-height:1.78;
}

#contact-page .contact-approach-list {
  margin:32px 0 0;
  padding:0;
  list-style:none;
  display:grid;
  gap:16px;
}

#contact-page .contact-approach-list li {
  display:flex;
  align-items:flex-start;
  gap:14px;
  color:#3b4f45;
  font-size:1.1rem;
  line-height:1.55;
}

#contact-page .contact-approach-list .tick {
  width:24px;
  height:24px;
  border-radius:7px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(69,107,82,.10);
  color:#456b52;
  margin-top:2px;
  flex:0 0 24px;
  font-size:14px;
  font-weight:900;
}

#contact-page .contact-duration {
  background:#f1efec;
  border-radius:28px;
  padding:28px 28px 30px;
  box-shadow:0 10px 28px rgba(63,54,44,.06);
}

#contact-page .contact-duration-badge {
  width:190px;
  max-width:100%;
  aspect-ratio:1 / 1;
  border-radius:28px;
  margin:0 auto 28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f8f7f5;
  color:#456b52;
  font-size:4rem;
  font-weight:800;
  letter-spacing:-.04em;
}

#contact-page .contact-duration h3 {
  margin:0 0 14px;
  color:#365b47;
  font-size:1.75rem;
  letter-spacing:-.02em;
}

#contact-page .contact-duration p {
  color:#445149;
  font-size:1.08rem;
  line-height:1.76;
}

#contact-page .contact-info-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:24px;
}

#contact-page .contact-info-card {
  background:#faf9f6;
  border-radius:22px;
  padding:28px 28px 26px;
  box-shadow:0 10px 26px rgba(63,54,44,.05);
  display:flex;
  gap:16px;
  align-items:flex-start;
}

#contact-page .contact-info-icon {
  width:52px;
  height:52px;
  border-radius:16px;
  background:rgba(207,148,74,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#cf944a;
  flex:0 0 52px;
}

#contact-page .contact-info-icon svg { width:24px; height:24px; }

#contact-page .contact-info-card h3 {
  margin:2px 0 10px;
  color:#22362f;
  font-size:1.5rem;
  font-weight:600;
}

#contact-page .contact-info-card p,
#contact-page .contact-info-card a {
  margin:0;
  color:#bf7f27;
  font-size:1.08rem;
  line-height:1.65;
  text-decoration:none;
  word-break:break-word;
}

#contact-page .contact-form-stage {
  position:relative;
  overflow:hidden;
  border-radius:34px;
  padding:22px;
  background:linear-gradient(rgba(235,228,218,.50), rgba(235,228,218,.50)), url("/assets/images/img-96221dfb2f07922c.webp");
  background-size:cover;
  background-position:center;
  box-shadow:0 18px 50px rgba(63,54,44,.08);
}

#contact-page .contact-form-card {
  background:rgba(255,255,255,.96);
  border-radius:28px;
  padding:50px 56px;
}

#contact-page .contact-form-card p.form-lead {
  margin:0 0 34px;
  color:#414943;
  font-size:1.2rem;
  line-height:1.78;
  text-align:center;
  max-width:980px;
}

#contact-page .contact-form-card .form-kicker {
  text-align:center;
  color:#cf944a;
  font-size:.95rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:12px;
}

#contact-page .contact-form-card h2 {
  text-align:center;
  color:#cf944a;
}

#contact-page .contact-form {
  display:grid;
  gap:22px;
}

#contact-page .contact-field {
  display:grid;
  gap:10px;
}

#contact-page .contact-field label {
  color:#2d3732;
  font-size:1rem;
  font-weight:600;
}

#contact-page .contact-field label .required {
  color:#cf944a;
}

#contact-page .contact-field input,
#contact-page .contact-field textarea {
  width:100%;
  border:1px solid rgba(56,72,64,.12);
  border-radius:14px;
  background:#fbfbf9;
  color:#26322c;
  font:inherit;
  padding:16px 18px;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

#contact-page .contact-field textarea {
  min-height:260px;
  resize:vertical;
}

#contact-page .contact-field input:focus,
#contact-page .contact-field textarea:focus {
  outline:none;
  border-color:rgba(207,148,74,.72);
  box-shadow:0 0 0 4px rgba(207,148,74,.12);
  background:#fff;
}

#contact-page .contact-submit-wrap {
  display:flex;
  justify-content:center;
  padding-top:6px;
}

#contact-page .contact-submit {
  min-width:210px;
  min-height:56px;
  border:none;
  border-radius:16px;
  background:#d8961f;
  color:#fff;
  font:inherit;
  font-weight:700;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  box-shadow:0 14px 26px rgba(216,150,31,.20);
}

#contact-page .contact-submit:hover {
  transform:translateY(-1px);
  background:#c98917;
}

@media (max-width: 1100px) {
  #contact-page .contact-hero {
    grid-template-columns:minmax(0,1fr);
    padding:58px 42px 0;
    min-height:auto;
  }

  #contact-page .contact-hero-copy {
    padding-bottom:18px;
    width:100%;
    max-width:100%;
  }

  #contact-page .contact-hero-figure {
    min-height:auto;
    justify-content:center;
  }

  #contact-page .contact-hero-figure::before {
    left:0;
    height:150px;
  }

  #contact-page .contact-hero-photo-frame {
    justify-content:center;
  }

  #contact-page .contact-hero-photo {
    width:min(100%, 380px);
    height:430px;
  }

  #contact-page .contact-approach {
    grid-template-columns:1fr;
  }

  #contact-page .contact-duration {
    max-width:360px;
  }
}

@media (max-width: 900px) {
  #contact-page .contact-info-grid {
    grid-template-columns:1fr;
  }

  #contact-page .contact-form-card {
    padding:42px 26px;
  }
}

@media (max-width: 700px) {
  #contact-page.contact-page-v2 {
    padding:104px 0 72px !important;
  }

  #contact-page .contact-hero {
    padding:38px 22px 0;
    border-radius:26px;
  }

  #contact-page .contact-breadcrumb {
    font-size:.78rem;
    gap:8px;
  }

  #contact-page .contact-phone-pill {
    width:100%;
    justify-content:center;
    font-size:1rem;
    padding:0 18px;
  }

  #contact-page .contact-hero-actions,
  #contact-page .contact-phone-pill,
  #contact-page .contact-email-pill{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  #contact-page .contact-phone-pill span,
  #contact-page .contact-email-pill span{
    min-width:0;
    overflow-wrap:anywhere;
  }

  #contact-page .contact-hero-note,
  #contact-page .contact-approach p,
  #contact-page .contact-form-card p.form-lead {
    font-size:1.02rem;
  }

  #contact-page .contact-approach-list li {
    font-size:1rem;
  }

  #contact-page .contact-duration-badge {
    width:150px;
    font-size:3rem;
  }

  #contact-page .contact-form-stage {
    padding:14px;
    border-radius:26px;
  }

  #contact-page .contact-field textarea {
    min-height:220px;
  }
}


/* ---- consolidated style block ---- */


/* =========================================
   CONTACT PAGE — match site green / brown palette
   ========================================= */
#contact-page.contact-page-v2{
  background:#f6f4ef !important;
  color:#3f342f !important;
}

#contact-page .contact-hero{
  background:
    radial-gradient(circle at 86% 18%, rgba(54,100,96,.08), transparent 30%),
    linear-gradient(180deg,#faf8f3 0%,#f2eee7 100%) !important;
}

#contact-page .contact-breadcrumb,
#contact-page .contact-breadcrumb a{
  color:#365f59 !important;
}

#contact-page .contact-hero h1,
#contact-page .contact-approach h2,
#contact-page .contact-duration h3,
#contact-page .contact-info-card h3{
  color:#294f4c !important;
}

#contact-page .contact-phone-pill{
  background:#294f4c !important;
  color:#fff !important;
  box-shadow:0 16px 30px rgba(41,79,76,.18) !important;
}

#contact-page .contact-phone-pill:hover{
  background:#365f59 !important;
}

#contact-page .contact-approach p,
#contact-page .contact-duration p{
  color:#594b44 !important;
}

#contact-page .contact-approach-list li{
  color:#4a403a !important;
}

#contact-page .contact-approach-list .tick{
  background:rgba(54,100,96,.10) !important;
  color:#294f4c !important;
}

#contact-page .contact-duration{
  background:#eee9e1 !important;
}

#contact-page .contact-duration-badge{
  background:#f8f5ef !important;
  color:#7a5a46 !important;
}

#contact-page .contact-info-card{
  background:#fbfaf7 !important;
}

#contact-page .contact-info-icon{
  background:rgba(122,90,70,.10) !important;
  color:#7a5a46 !important;
}

#contact-page .contact-info-card p,
#contact-page .contact-info-card a{
  color:#7a5a46 !important;
}

#contact-page .contact-form-stage{
  background:
    linear-gradient(rgba(239,234,225,.54),rgba(239,234,225,.54)),
    var(--contact-form-bg, none) !important;
  background-size:cover !important;
  background-position:center !important;
}

#contact-page .contact-form-card{
  background:rgba(252,250,246,.96) !important;
}

#contact-page .contact-form-card .form-kicker{
  color:#7a5a46 !important;
}

#contact-page .contact-form-card h2{
  color:#294f4c !important;
}

#contact-page .contact-form-card p.form-lead{
  color:#5c4e47 !important;
}

#contact-page .contact-field label{
  color:#3f342f !important;
}

#contact-page .contact-field label .required{
  color:#7a5a46 !important;
}

#contact-page .contact-field input,
#contact-page .contact-field textarea{
  background:#fffdf9 !important;
  color:#332b27 !important;
  border-color:rgba(54,100,96,.16) !important;
}

#contact-page .contact-field input:focus,
#contact-page .contact-field textarea:focus{
  border-color:#365f59 !important;
  box-shadow:0 0 0 4px rgba(54,100,96,.10) !important;
}

#contact-page .contact-submit{
  background:#294f4c !important;
  color:#fff !important;
  box-shadow:0 14px 26px rgba(41,79,76,.18) !important;
}

#contact-page .contact-submit:hover{
  background:#365f59 !important;
}


/* ---- consolidated style block ---- */


#contact-page .contact-duration-badge{
  font-size:4rem !important;
  letter-spacing:-.04em !important;
  font-weight:800 !important;
}


/* ---- consolidated style block ---- */


#services .service-reference-copy p{
  line-height:1.62 !important;
}


/* ---- consolidated style block ---- */


#service-children,
#service-adults,
#service-parents,
#service-professionals{
  scroll-margin-top:120px;
}


/* ---- consolidated style block ---- */


.back-to-top-bubble{
  position:fixed;
  left:24px;
  right:auto;
  bottom:24px;
  z-index:1300;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:0 18px 0 13px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:#365f59;
  color:#fff;
  box-shadow:0 14px 34px rgba(41,79,76,.24);
  font:inherit;
  font-size:.88rem;
  font-weight:750;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  pointer-events:none;
  transition:
    opacity .24s ease,
    transform .24s ease,
    visibility 0s linear .24s,
    background .18s ease,
    box-shadow .18s ease;
}

.back-to-top-bubble.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
  transition:
    opacity .24s ease,
    transform .24s ease,
    visibility 0s linear 0s,
    background .18s ease,
    box-shadow .18s ease;
}

.back-to-top-bubble:hover{
  background:#294f4c;
  box-shadow:0 16px 38px rgba(41,79,76,.30);
}

.back-to-top-icon{
  width:28px;
  height:28px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.13);
  color:#fff;
  font-size:1.05rem;
  line-height:1;
}

@media(max-width:700px){
  .back-to-top-bubble{
    left:14px;
    right:auto;
    bottom:14px;
    min-height:44px;
    padding:0 14px 0 11px;
    font-size:.82rem;
  }

  .back-to-top-icon{
    width:25px;
    height:25px;
  }
}

@media(prefers-reduced-motion:reduce){
  .back-to-top-bubble{
    transition:none !important;
  }
}


/* ---- consolidated style block ---- */


#psychologist-page #psych-perspective .psych-perspective-chapter{
  position:relative;
  margin-bottom:64px;
}
#psychologist-page #psych-perspective .psych-perspective-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:24px;
  margin-bottom:14px;
  padding:0 10px;
  border:1px solid rgba(54,100,96,.20);
  border-radius:999px;
  color:var(--green-dark);
  background:rgba(54,100,96,.055);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
}
#psychologist-page #psych-perspective .psych-perspective-chapter h3{
  margin-bottom:18px;
}
#psychologist-page #psych-perspective .psych-perspective-section .psych-quote-bubble,
#psychologist-page #psych-perspective .psych-quote-bubble{
  margin-top:4px;
  margin-bottom:64px;
}
@media(max-width:720px){
  #psychologist-page #psych-perspective .psych-perspective-chapter{
    margin-bottom:50px;
  }
  #psychologist-page #psych-perspective .psych-quote-bubble{
    margin-bottom:50px;
  }
}


/* ---- consolidated style block ---- */


#contact-page .contact-hero-actions{
  margin-top:34px;
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

#contact-page .contact-hero-actions .contact-phone-pill{
  margin-top:0;
}

#contact-page .contact-email-pill{
  display:inline-flex;
  align-items:center;
  gap:14px;
  min-height:70px;
  padding:0 24px;
  border-radius:18px;
  background:#456b52;
  color:#fff;
  text-decoration:none;
  font-size:1rem;
  font-weight:700;
  box-shadow:0 16px 30px rgba(69,107,82,.18);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

#contact-page .contact-email-pill:hover{
  transform:translateY(-2px);
  box-shadow:0 20px 34px rgba(69,107,82,.24);
  background:#3d5e48;
}

#contact-page .contact-email-pill svg{
  width:24px;
  height:24px;
  flex:0 0 24px;
}

@media(max-width:760px){
  #contact-page .contact-hero-actions{
    align-items:stretch;
  }

  #contact-page .contact-hero-actions .contact-phone-pill,
  #contact-page .contact-email-pill{
    width:100%;
    justify-content:flex-start;
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   EXPANDED SERVICES PAGE
   ========================================================= */
#services-page.services-detail-page{
  background:#f7f3ee;
  color:#2f3d37;
  overflow:clip;
}

#services-page .services-detail-hero{
  position:relative;
  padding:150px 0 78px;
  background:
    radial-gradient(circle at 83% 22%, rgba(193,215,204,.34), transparent 34%),
    linear-gradient(180deg,#f8f5f0 0%,#f3eee8 100%);
  border-bottom:1px solid rgba(67,92,78,.10);
}

#services-page .services-detail-hero::after{
  content:"";
  position:absolute;
  right:-80px;
  bottom:-105px;
  width:330px;
  height:330px;
  border:1px solid rgba(64,102,87,.12);
  border-radius:50%;
  pointer-events:none;
}

#services-page .services-detail-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.55fr);
  gap:72px;
  align-items:end;
}

#services-page .services-detail-hero-copy .kicker,
#services-page .services-detail-heading .kicker,
#services-page .services-detail-closing .kicker{
  color:#876d5e;
  letter-spacing:.18em;
  font-weight:800;
}

#services-page .services-detail-hero h1{
  margin:16px 0 26px;
  max-width:900px;
  color:#365f59;
  font-size:clamp(3rem,6.1vw,6.4rem);
  line-height:.98;
  letter-spacing:-.052em;
  font-weight:700;
}

#services-page .services-detail-hero h1 span{
  color:#8a6b5c;
}

#services-page .services-detail-hero-copy>p{
  max-width:810px;
  margin:0;
  font-size:1.14rem;
  line-height:1.8;
  color:#4e5c55;
}

#services-page .services-detail-mode{
  margin-top:30px;
  display:flex;
  align-items:center;
  gap:13px;
  flex-wrap:wrap;
  color:#365f59;
  font-weight:700;
  font-size:.95rem;
}

#services-page .services-detail-mode i{
  width:5px;
  height:5px;
  border-radius:50%;
  background:#9b7a67;
}

#services-page .services-detail-hero-note{
  position:relative;
  margin-bottom:10px;
  padding:34px 34px 30px;
  border-radius:28px 28px 28px 8px;
  background:#365f59;
  color:#fff;
  box-shadow:0 24px 55px rgba(48,79,70,.18);
}

#services-page .services-detail-note-mark{
  display:block;
  height:35px;
  font-family:Georgia,serif;
  font-size:4.2rem;
  line-height:.8;
  opacity:.34;
}

#services-page .services-detail-hero-note p{
  margin:8px 0 0;
  font-family:Georgia,serif;
  font-size:1.13rem;
  line-height:1.67;
}

#services-page .services-detail-nav-wrap{
  position:sticky;
  top:88px;
  z-index:24;
  padding:13px 0;
  background:rgba(247,243,238,.90);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(67,92,78,.10);
}

#services-page .services-detail-nav{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

#services-page .services-detail-nav a{
  min-height:54px;
  padding:10px 15px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid rgba(54,95,89,.13);
  border-radius:999px;
  background:rgba(255,255,255,.64);
  color:#4b5b54;
  text-decoration:none;
  text-align:center;
  font-size:.84rem;
  font-weight:700;
  transition:background .22s ease,color .22s ease,transform .22s ease,border-color .22s ease;
}

#services-page .services-detail-nav a span{
  color:#997663;
  font-size:.72rem;
  letter-spacing:.08em;
}

#services-page .services-detail-nav a:hover,
#services-page .services-detail-nav a.is-current{
  transform:translateY(-1px);
  background:#365f59;
  border-color:#365f59;
  color:#fff;
}

#services-page .services-detail-nav a.is-current span{
  color:#d9c8bc;
}

#services-page .services-detail-section{
  scroll-margin-top:180px;
  padding:105px 0 112px;
  position:relative;
}

#services-page .services-detail-section-alt{
  background:#efebe5;
}

#services-page .services-detail-section+ .services-detail-section{
  border-top:1px solid rgba(67,92,78,.08);
}

#services-page .services-detail-grid{
  display:grid;
  grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr);
  gap:72px;
  align-items:start;
}

#services-page .services-detail-grid-reverse{
  grid-template-columns:minmax(0,1.28fr) minmax(300px,.72fr);
}

#services-page .services-detail-grid-reverse .services-detail-media{
  grid-column:2;
  grid-row:1;
}

#services-page .services-detail-grid-reverse .services-detail-copy{
  grid-column:1;
  grid-row:1;
}

#services-page .services-detail-media{
  position:sticky;
  top:180px;
}

#services-page .services-detail-number{
  position:absolute;
  top:-38px;
  left:-2px;
  z-index:3;
  color:#9b7a67;
  font-family:Georgia,serif;
  font-size:4.4rem;
  line-height:1;
  opacity:.55;
}

#services-page .services-detail-image-wrap{
  position:relative;
  overflow:hidden;
  border-radius:34px 34px 10px 34px;
  aspect-ratio:4/5;
  background:#ded8d1;
  box-shadow:0 24px 55px rgba(53,68,60,.12);
}

#services-page .services-detail-image-wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(31,49,42,.13));
  pointer-events:none;
}

#services-page .services-detail-image{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  image-rendering:auto;
  transition:transform .75s cubic-bezier(.2,.75,.2,1);
}

#services-page .services-detail-section:hover .services-detail-image{
  transform:scale(1.025);
}

#services-page .services-pop-note{
  position:relative;
  z-index:4;
  width:calc(100% - 34px);
  margin:-54px 0 0 34px;
  padding:25px 26px 25px 29px;
  border-radius:22px 22px 22px 7px;
  background:#fff;
  border:1px solid rgba(67,92,78,.08);
  box-shadow:0 20px 42px rgba(58,71,64,.14);
}

#services-page .services-pop-note span{
  position:absolute;
  left:16px;
  top:11px;
  color:#a68776;
  font-family:Georgia,serif;
  font-size:2.5rem;
  opacity:.45;
}

#services-page .services-pop-note p{
  margin:0;
  padding-left:16px;
  color:#4c5b54;
  font-family:Georgia,serif;
  font-size:1rem;
  line-height:1.62;
}

#services-page .services-detail-copy{
  min-width:0;
}

#services-page .services-detail-heading{
  padding-bottom:34px;
}

#services-page .services-detail-heading h2{
  margin:12px 0 23px;
  color:#365f59;
  font-size:clamp(2.45rem,4.5vw,4.8rem);
  line-height:1.02;
  letter-spacing:-.045em;
}

#services-page .services-detail-lead{
  margin:0;
  max-width:860px;
  color:#45564e;
  font-size:1.16rem;
  line-height:1.82;
}

#services-page .services-detail-panel{
  margin-top:12px;
  padding:30px 32px;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(67,92,78,.08);
  box-shadow:0 16px 38px rgba(57,72,64,.06);
}

#services-page .services-detail-panel h3,
#services-page .services-detail-text h3{
  margin:0 0 19px;
  color:#3c5f52;
  font-size:1.38rem;
  letter-spacing:-.015em;
}

#services-page .services-example-list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px 24px;
}

#services-page .services-example-list li{
  position:relative;
  padding:0 0 0 25px;
  color:#4b5852;
  line-height:1.55;
}

#services-page .services-example-list li::before{
  content:"";
  position:absolute;
  left:1px;
  top:.58em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#7e9b8c;
  box-shadow:0 0 0 5px rgba(126,155,140,.11);
}

#services-page .services-mini-grid{
  margin-top:20px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

#services-page .services-mini-card{
  min-height:170px;
  padding:25px 23px;
  border-radius:22px;
  background:#e8efeb;
  border:1px solid rgba(64,96,82,.07);
}

#services-page .services-detail-section-alt .services-mini-card{
  background:#f8f5f1;
}

#services-page .services-mini-card strong{
  display:block;
  margin-bottom:11px;
  color:#365f59;
  font-size:1rem;
}

#services-page .services-mini-card p{
  margin:0;
  color:#55625c;
  line-height:1.6;
  font-size:.93rem;
}

#services-page .services-detail-text{
  margin-top:38px;
  padding:0 4px;
}

#services-page .services-detail-text p{
  margin:0 0 16px;
  color:#4b5952;
  font-size:1.04rem;
  line-height:1.78;
}

#services-page .services-detail-closing{
  padding:88px 0 95px;
  background:#365f59;
  color:#fff;
}

#services-page .services-detail-closing-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:60px;
  align-items:center;
}

#services-page .services-detail-closing .kicker{
  color:#d6c4b8;
}

#services-page .services-detail-closing h2{
  margin:13px 0 17px;
  color:#fff;
  font-size:clamp(2.3rem,4.5vw,4.4rem);
  line-height:1.03;
  letter-spacing:-.04em;
}

#services-page .services-detail-closing p{
  margin:0;
  max-width:740px;
  color:rgba(255,255,255,.78);
  line-height:1.72;
  font-size:1.03rem;
}

#services-page .services-detail-closing-actions{
  min-width:215px;
  display:flex;
  flex-direction:column;
  gap:11px;
}

#services-page .services-detail-closing-actions .btn{
  justify-content:center;
  text-align:center;
}

#services-page .services-detail-closing .btn.primary{
  background:#fff;
  color:#365f59;
  border-color:#fff;
}

#services-page .services-detail-closing .btn.ghost{
  color:#fff;
  border-color:rgba(255,255,255,.45);
}

#services-page .services-detail-back{
  margin-top:9px;
  color:rgba(255,255,255,.70);
  text-decoration:none;
  font-size:.87rem;
  text-align:center;
}

#services-page .services-detail-back:hover{
  color:#fff;
}

/* Services stay visible — no scroll reveal. */
#services-page .services-reveal{
  opacity:1;
  transform:none;
  transition:none;
}

#services-page .services-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion:reduce){
  #services-page .services-reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  #services-page .services-detail-image{
    transition:none!important;
  }
}

@media(max-width:1050px){
  #services-page .services-detail-hero-inner{
    grid-template-columns:1fr;
    gap:36px;
  }
  #services-page .services-detail-hero-note{
    max-width:680px;
  }
  #services-page .services-detail-grid,
  #services-page .services-detail-grid-reverse{
    grid-template-columns:minmax(260px,.62fr) minmax(0,1fr);
    gap:44px;
  }
  #services-page .services-detail-grid-reverse .services-detail-media{
    grid-column:1;
  }
  #services-page .services-detail-grid-reverse .services-detail-copy{
    grid-column:2;
  }
  #services-page .services-mini-grid{
    grid-template-columns:1fr;
  }
  #services-page .services-mini-card{
    min-height:0;
  }
}

@media(max-width:780px){
  #services-page .services-detail-hero{
    padding:122px 0 58px;
  }
  #services-page .services-detail-nav-wrap{
    top:76px;
  }
  #services-page .services-detail-nav{
    display:flex;
    overflow-x:auto;
    padding-bottom:3px;
    scrollbar-width:none;
  }
  #services-page .services-detail-nav::-webkit-scrollbar{
    display:none;
  }
  #services-page .services-detail-nav a{
    flex:0 0 auto;
    min-width:165px;
  }
  #services-page .services-detail-section{
    padding:82px 0 88px;
    scroll-margin-top:155px;
  }
  #services-page .services-detail-grid,
  #services-page .services-detail-grid-reverse{
    grid-template-columns:1fr;
    gap:62px;
  }
  #services-page .services-detail-grid-reverse .services-detail-media,
  #services-page .services-detail-grid-reverse .services-detail-copy{
    grid-column:auto;
    grid-row:auto;
  }
  #services-page .services-detail-media{
    position:relative;
    top:auto;
    max-width:520px;
  }
  #services-page .services-example-list{
    grid-template-columns:1fr;
  }
  #services-page .services-detail-closing-inner{
    grid-template-columns:1fr;
    gap:38px;
  }
  #services-page .services-detail-closing-actions{
    max-width:320px;
  }
}

@media(max-width:520px){
  #services-page .services-detail-hero h1{
    font-size:clamp(2.65rem,13vw,4.25rem);
  }
  #services-page .services-detail-hero-note{
    padding:28px 26px 25px;
  }
  #services-page .services-detail-panel{
    padding:25px 22px;
  }
  #services-page .services-pop-note{
    width:calc(100% - 18px);
    margin-left:18px;
  }
  #services-page .services-detail-heading h2{
    font-size:clamp(2.2rem,11vw,3.7rem);
  }
}


/* ---- consolidated style block ---- */


/* =========================================================
   SERVICES — TRUE TOP IMAGE
   The image begins at the absolute top of the viewport,
   behind the floating menu. Existing Services content is
   simply pushed down below the image.
   ========================================================= */

body.services-route header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:4000 !important;
  padding:12px 0 0 !important;
  background:transparent !important;
  border:0 !important;
  pointer-events:none !important;
}

body.services-route header .nav{
  pointer-events:auto !important;
  background:rgba(249,246,241,.66) !important;
  border:1px solid rgba(255,255,255,.28) !important;
  box-shadow:0 10px 28px rgba(28,22,18,.12) !important;
  backdrop-filter:blur(14px) saturate(118%) !important;
  -webkit-backdrop-filter:blur(14px) saturate(118%) !important;
}

body.services-route #services-page{
  margin-top:0 !important;
  padding-top:0 !important;
}

/* Full-width top image, with only a modest crop from the bottom. */
#services-page .services-absolute-top-image{
  position:relative;
  width:100vw;
  height:clamp(600px,55.8vw,1000px);
  margin:0 calc(50% - 50vw);
  overflow:hidden;
  background:#e8e2da;
}

#services-page .services-absolute-top-image img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center top;
}

/* Existing Services hero starts normally AFTER the image. */
#services-page .services-detail-hero{
  margin-top:0 !important;
}

@media(max-width:780px){
  #services-page .services-absolute-top-image{
    height:clamp(430px,68vw,620px);
  }
}

@media(max-width:520px){
  #services-page .services-absolute-top-image{
    height:clamp(390px,78vw,520px);
  }
  #services-page .services-absolute-top-image img{
    object-position:center top;
  }
}


/* ---- consolidated style block ---- */


/*
  Ανεβάζει ολόκληρο το επάνω περιεχόμενο των Υπηρεσιών
  (ΥΠΗΡΕΣΙΕΣ, τίτλο, παράγραφο, τρόπο συνεδρίας και πράσινο note)
  χωρίς να αλλάζει την εικόνα ή τα υπόλοιπα sections.
*/
#services-page .services-detail-hero-inner{
  position:relative;
  z-index:3;
  transform:translateY(-510px);
  margin-bottom:-510px;
}


/* ---- consolidated style block ---- */


/* CONTACT PAGE — only color corrections, no layout changes */

/* Header: email exactly the same green as the phone button */
#contact-page .contact-email-pill{
  background:#294f4c !important;
  color:#fff !important;
  box-shadow:0 16px 30px rgba(41,79,76,.18) !important;
}
#contact-page .contact-email-pill:hover{
  background:#365f59 !important;
  box-shadow:0 20px 34px rgba(41,79,76,.24) !important;
}

/* Session duration bubble — site palette */
#contact-page .contact-duration{
  background:var(--ivory) !important;
}
#contact-page .contact-duration-badge{
  background:var(--white) !important;
  color:var(--green-dark) !important;
}
#contact-page .contact-duration h3{
  color:var(--green-dark) !important;
}
#contact-page .contact-duration p{
  color:var(--brown) !important;
}

/* Email / phone / location cards — remove the foreign gold/orange accents */
#contact-page .contact-info-card{
  background:var(--white) !important;
}
#contact-page .contact-info-icon{
  background:rgba(54,100,96,.10) !important;
  color:var(--green) !important;
}
#contact-page .contact-info-card h3{
  color:var(--green-dark) !important;
}
#contact-page .contact-info-card p,
#contact-page .contact-info-card a{
  color:var(--green) !important;
}

/* Contact form — same green / brown / ivory palette used across the site */
#contact-page .contact-form-stage{
  background:
    linear-gradient(rgba(239,232,224,.64),rgba(239,232,224,.64)),
    var(--contact-form-bg, none) !important;
  background-size:cover !important;
  background-position:center !important;
}
#contact-page .contact-form-card{
  background:rgba(255,253,249,.97) !important;
}
#contact-page .contact-form-card .form-kicker,
#contact-page .contact-form-card h2{
  color:var(--green-dark) !important;
}
#contact-page .contact-form-card p.form-lead{
  color:var(--brown) !important;
}
#contact-page .contact-field label{
  color:var(--brown-dark) !important;
}
#contact-page .contact-field label .required{
  color:var(--green) !important;
}
#contact-page .contact-field input,
#contact-page .contact-field textarea{
  background:var(--white) !important;
  color:var(--brown-dark) !important;
  border-color:rgba(54,100,96,.18) !important;
}
#contact-page .contact-field input:focus,
#contact-page .contact-field textarea:focus{
  border-color:var(--green) !important;
  box-shadow:0 0 0 4px rgba(54,100,96,.10) !important;
}
#contact-page .contact-submit{
  background:var(--green-dark) !important;
  color:#fff !important;
  box-shadow:0 14px 26px rgba(41,79,76,.18) !important;
}
#contact-page .contact-submit:hover{
  background:var(--green) !important;
}


/* ---- consolidated style block ---- */


#services-page #services-children-detail .services-detail-topics{
  margin:28px 0 30px;
  padding:28px;
  border:1px solid rgba(54,95,89,.12);
  border-radius:26px;
  background:rgba(255,255,255,.68);
}

#services-page #services-children-detail .services-detail-topics > h3{
  margin:0 0 10px;
  color:var(--green-dark);
}

#services-page #services-children-detail .services-detail-topics-intro{
  margin:0 0 20px;
  color:var(--brown);
  line-height:1.75;
}

#services-page #services-children-detail .services-detail-topics-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

#services-page #services-children-detail .services-detail-topic-card{
  padding:20px;
  border-radius:20px;
  background:rgba(247,243,238,.92);
  border:1px solid rgba(54,95,89,.08);
}

#services-page #services-children-detail .services-detail-topic-card h4{
  margin:0 0 9px;
  color:var(--green-dark);
  font-size:1rem;
  line-height:1.35;
}

#services-page #services-children-detail .services-detail-topic-card p{
  margin:0;
  color:var(--brown);
  line-height:1.68;
}

#services-page #services-children-detail .services-detail-topics-note{
  margin-top:16px;
  padding:16px 18px;
  border-radius:18px;
  background:rgba(54,95,89,.09);
  border:1px solid rgba(54,95,89,.10);
}

#services-page #services-children-detail .services-detail-topics-note p{
  margin:0;
  color:var(--brown-dark);
  line-height:1.7;
}

#services-page #services-children-detail .services-detail-topics-note strong{
  color:var(--green-dark);
}

@media(max-width:900px){
  #services-page #services-children-detail .services-detail-topics-grid{
    grid-template-columns:1fr;
  }
}

@media(max-width:520px){
  #services-page #services-children-detail .services-detail-topics{
    padding:20px;
    border-radius:22px;
  }
}


/* ---- consolidated style block ---- */


:root{
  --app-green:#365f59;
  --app-green-dark:#294f4c;
  --app-ivory:#f7f3ee;
  --app-white:#fffdf9;
  --app-brown:#8a6b5c;
  --app-border:rgba(54,95,89,.14);
}
.app-shell-container{padding-top:128px;padding-bottom:90px;}
.app-panel{background:var(--app-white);border:1px solid var(--app-border);border-radius:30px;padding:clamp(24px,4vw,46px);box-shadow:0 22px 60px rgba(36,48,44,.08)}
.app-panel h1{margin:8px 0 10px;color:var(--app-green-dark)}
.app-panel h2{color:var(--app-green-dark)}
.app-lead{max-width:760px;color:var(--app-brown);line-height:1.75}
.app-back-link{margin-top:28px}
.app-auth-tabs{display:flex;gap:8px;margin:26px 0 18px}
.app-auth-tab,.app-mini-btn{border:1px solid var(--app-border);background:#fff;border-radius:999px;padding:10px 16px;cursor:pointer;color:var(--app-green-dark);font-weight:700}
.app-auth-tab.is-active{background:var(--app-green-dark);color:#fff}
.app-auth-form{display:grid;gap:14px;max-width:560px}
.app-auth-form label,.app-block-form label,.app-week-grid label{display:grid;gap:7px;color:var(--app-brown);font-weight:700;font-size:.92rem}
.app-auth-form input,.app-block-form input,.app-week-grid input{width:100%;min-height:48px;border:1px solid var(--app-border);border-radius:14px;padding:0 14px;background:#fff;color:#302b28;font:inherit;outline:none}
.app-auth-form input:focus,.app-block-form input:focus,.app-week-grid input:focus{border-color:var(--app-green);box-shadow:0 0 0 4px rgba(54,95,89,.09)}
.app-form-status{min-height:24px;margin-top:10px;color:var(--app-green-dark);font-size:.92rem}
.app-form-status.is-error{color:#8e3c35}
.app-account-head,.app-admin-top,.app-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.app-account-head strong{display:block;color:var(--app-green-dark);font-size:1.2rem}
.app-account-head span{display:block;color:var(--app-brown);margin-top:4px}
.app-account-actions{display:flex;gap:10px;flex-wrap:wrap}
.app-list{display:grid;gap:12px;margin-top:16px}.app-list.compact{gap:8px}
.app-list-item{border:1px solid var(--app-border);border-radius:18px;padding:16px;background:rgba(247,243,238,.6)}
.app-list-item strong{color:var(--app-green-dark)}.app-list-item p{margin:6px 0;color:var(--app-brown);line-height:1.55}.app-list-item small{color:#76706b}
.app-item-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.app-item-actions{display:flex;gap:7px;flex-wrap:wrap}
.app-action-btn{border:1px solid var(--app-border);background:#fff;color:var(--app-green-dark);border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer;font-size:.82rem}
.app-action-btn.primary{background:var(--app-green-dark);color:#fff;border-color:var(--app-green-dark)}
.app-action-btn.danger{color:#873c36;border-color:rgba(135,60,54,.2)}
.app-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:28px 0}
.app-stat{padding:20px;border-radius:22px;background:var(--app-ivory);border:1px solid var(--app-border)}
.app-stat span{display:block;color:var(--app-brown);font-size:.82rem;font-weight:700}.app-stat strong{display:block;color:var(--app-green-dark);font-size:2rem;margin-top:5px}
.app-admin-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:18px;margin-top:18px}.app-admin-grid-lower{grid-template-columns:1.2fr .8fr}
.app-admin-card{border:1px solid var(--app-border);border-radius:24px;padding:22px;background:#fff}.app-admin-card h2{margin:0 0 10px}.app-card-note{color:var(--app-brown);line-height:1.6}
.app-week-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.app-block-form{display:grid;gap:12px}.app-admin-locked{text-align:center;padding:46px 16px}.app-notifications-card{margin-top:18px}
.app-status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.75rem;font-weight:800;background:rgba(54,95,89,.09);color:var(--app-green-dark)}
.app-status-pill.pending{background:rgba(184,132,69,.12);color:#805c35}.app-status-pill.cancelled{background:rgba(135,60,54,.10);color:#873c36}
.app-form-status.booking-status{margin:10px 0 0}
.app-form-status.booking-status.is-error{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(142,60,53,.08);
  border:1px solid rgba(142,60,53,.14);
  color:#b42318;
  font-weight:650;
}
.booking-date-options{margin-top:9px}.booking-date-select{width:100%;min-height:48px;border:1px solid rgba(54,95,89,.18);border-radius:14px;padding:0 14px;background:#fff;color:#3c3733;font:inherit}.booking-slots-hint{grid-column:1/-1;color:#746b64;font-size:.88rem;line-height:1.5;padding:8px 0}
.contact-map-stage{padding:60px 0;background:#f7f3ee}.contact-map-card{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.45fr);gap:26px;align-items:stretch}.contact-map-copy{padding:22px 4px}.contact-map-copy h2{margin:8px 0 12px;color:#294f4c}.contact-map-copy p{color:#8a6b5c;line-height:1.7}.contact-map-frame{min-height:390px;border-radius:26px;overflow:hidden;border:1px solid rgba(54,95,89,.12);box-shadow:0 18px 45px rgba(38,48,44,.08)}.contact-map-frame iframe{display:block;width:100%;height:100%;min-height:390px;border:0}

@media(max-width:950px){.app-stat-grid{grid-template-columns:repeat(2,1fr)}.app-admin-grid,.app-admin-grid-lower,.contact-map-card{grid-template-columns:1fr}.app-week-grid{grid-template-columns:1fr}.contact-map-frame{min-height:330px}}
@media(max-width:620px){.app-shell-container{padding-top:104px}.app-panel{border-radius:22px;padding:20px}.app-account-head,.app-admin-top,.app-card-head,.app-item-row{flex-direction:column}.app-stat-grid{grid-template-columns:1fr 1fr}}

/* Modern account login / register flow */
.app-auth-view{max-width:560px;margin-top:28px}
.app-auth-switch{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:18px;color:var(--app-brown);font-size:.92rem}
.app-auth-switch-link{border:0;background:transparent;padding:0;color:var(--app-green-dark);font:inherit;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.app-auth-switch-link:hover{color:var(--app-green)}
/* Modern appointment calendar */
.booking-calendar-step{display:block!important}
.booking-calendar-step.is-needs-attention .modern-booking-calendar{
  border-color:rgba(142,60,53,.45);
  box-shadow:0 0 0 3px rgba(142,60,53,.16),0 16px 38px rgba(42,62,56,.06);
  animation:bookingCalPulse 1.1s ease 2;
}
.booking-calendar-step.is-needs-attention .booking-calendar-required{
  color:#873c36;
  font-weight:800;
}
@media(max-width:620px){
  .booking-calendar-step{
    margin-top:8px;
    padding:14px 12px 16px;
    border-radius:20px;
    border:1px solid rgba(54,95,89,.16);
    background:linear-gradient(180deg,rgba(255,253,249,.98),rgba(247,243,238,.92));
    box-shadow:0 10px 28px rgba(42,62,56,.06);
  }
  .booking-calendar-step .booking-label{
    font-size:.82rem;
  }
  .booking-calendar-step .booking-calendar-required{
    font-size:.84rem;
    line-height:1.45;
  }
  .app-form-status.booking-status.is-error{
    margin-top:12px;
    padding:12px 14px;
    border-radius:14px;
    background:rgba(142,60,53,.08);
    border:1px solid rgba(142,60,53,.14);
  }
}
@keyframes bookingCalPulse{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
.modern-booking-calendar{margin-top:10px;border:1px solid rgba(54,95,89,.13);border-radius:24px;background:rgba(255,253,249,.96);padding:18px;box-shadow:0 16px 38px rgba(42,62,56,.06)}
.booking-calendar-head{display:grid;grid-template-columns:44px 1fr 44px;gap:12px;align-items:center;margin-bottom:16px}
.booking-calendar-heading{text-align:center;min-width:0}
.booking-calendar-heading span{display:block;color:#8a6b5c;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.booking-calendar-heading strong{display:block;margin-top:4px;color:#294f4c;font-size:clamp(1.12rem,2.2vw,1.38rem);text-transform:capitalize}
.booking-month-nav{width:44px;height:44px;border-radius:14px;border:1px solid rgba(54,95,89,.14);background:#fff;color:#294f4c;font-size:1.75rem;line-height:1;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease}
.booking-month-nav:hover:not(:disabled){transform:translateY(-1px);background:#f7f3ee;border-color:rgba(54,95,89,.24)}
.booking-month-nav:disabled{opacity:.28;cursor:not-allowed}
.booking-weekdays,.booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.booking-weekdays{margin-bottom:7px}
.booking-weekdays span{text-align:center;color:#8a6b5c;font-size:.72rem;font-weight:800;padding:5px 0;text-transform:uppercase}
.booking-day-spacer{aspect-ratio:1/1}
.booking-day{position:relative;aspect-ratio:1/1;min-width:0;border:1px solid rgba(54,95,89,.09);border-radius:16px;background:#f8f5f1;color:#a39a94;font:inherit;cursor:not-allowed;display:flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease}
.booking-day-number{font-size:.94rem;font-weight:750}
.booking-day.is-available{background:#fff;color:#294f4c;border-color:rgba(54,95,89,.18);cursor:pointer}
.booking-day.is-available:hover{transform:translateY(-2px);border-color:rgba(54,95,89,.36);box-shadow:0 8px 18px rgba(41,79,76,.10)}
.booking-day.is-today:after{content:'';position:absolute;inset:5px;border:1px solid rgba(54,95,89,.34);border-radius:12px;pointer-events:none}
.booking-day.is-selected{background:#294f4c;color:#fff;border-color:#294f4c;box-shadow:0 9px 22px rgba(41,79,76,.22)}
.booking-day.is-selected:after{border-color:rgba(255,255,255,.44)}
.booking-day-dot{position:absolute;left:50%;bottom:7px;width:4px;height:4px;border-radius:99px;background:#365f59;transform:translateX(-50%);opacity:0}
.booking-day.is-available .booking-day-dot{opacity:1}
.booking-day.is-selected .booking-day-dot{background:#fff}
.booking-month-empty{margin-top:14px;padding:12px 14px;border-radius:14px;background:#f7f3ee;color:#8a6b5c;font-size:.88rem;line-height:1.5;text-align:center}
.booking-times-section{margin-top:18px;border-top:1px solid rgba(54,95,89,.11);padding-top:18px}
.booking-times-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:12px}
.booking-times-kicker{display:block;color:#8a6b5c;font-size:.72rem;font-weight:800;letter-spacing:.08em}
.booking-times-head strong{display:block;color:#294f4c;margin-top:4px;font-size:1rem;line-height:1.4}
.booking-times-count{flex:0 0 auto;color:#8a6b5c;font-size:.78rem;font-weight:800}
.modern-booking-time-grid{display:flex!important;flex-wrap:wrap!important;gap:9px!important}
.modern-booking-time-grid .booking-time{min-width:78px!important;width:auto!important;padding:10px 15px!important;border-radius:999px!important;background:#fff!important;color:#294f4c!important;border:1px solid rgba(54,95,89,.18)!important}
.modern-booking-time-grid .booking-time:hover{border-color:rgba(54,95,89,.40)!important;transform:translateY(-1px)}
.modern-booking-time-grid .booking-time.is-selected{background:#294f4c!important;color:#fff!important;border-color:#294f4c!important;box-shadow:0 7px 18px rgba(41,79,76,.18)}
.modern-booking-time-grid .booking-slots-hint{width:100%;padding:12px 0!important;color:#7d746e}
.booking-calendar-error{margin-top:12px;padding:13px 14px;border-radius:14px;background:rgba(142,60,53,.07);color:#873c36;border:1px solid rgba(142,60,53,.12);font-size:.88rem;line-height:1.55}
@media(max-width:620px){.modern-booking-calendar{padding:13px;border-radius:20px}.booking-weekdays,.booking-month-grid{gap:4px}.booking-day{border-radius:12px}.booking-day-number{font-size:.85rem}.booking-day.is-today:after{inset:3px;border-radius:9px}.booking-day-dot{bottom:5px}.booking-times-head{align-items:flex-start;flex-direction:column}.modern-booking-time-grid .booking-time{min-width:72px!important;padding:9px 13px!important}}

/* A seven-column calendar is tight on 320px devices. Let it use the booking
   panel's side padding so each day remains a comfortable touch target. */
@media(max-width:360px){
  #contact .modern-booking-calendar{
    margin-inline:-9px;
    padding:10px 6px;
  }
  #contact .booking-weekdays,
  #contact .booking-month-grid{gap:3px}
}


/* ---- consolidated style block ---- */


@media(max-width:650px){
  .brand{min-width:auto;height:80px;gap:8px}
  .main-logo{width:74px;height:74px}
  .signature-wordmark{width:146px;height:auto;margin-bottom:2px;padding:0}
  .profession{font-size:.54rem;letter-spacing:.18em}
}


/* ---- consolidated style block ---- */


.admin-v2-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.admin-v2-tabs button{border:1px solid var(--app-border);background:#fff;border-radius:999px;padding:10px 15px;cursor:pointer;color:var(--app-brown);font-weight:700}.admin-v2-tabs button.is-active{background:var(--app-green);color:#fff;border-color:var(--app-green)}.admin-v2-section{display:none}.admin-v2-section.is-active{display:block}.schedule-settings-row,.date-override-tools,.custom-slot-row,.block-v2-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:14px 0}.schedule-settings-row label,.date-override-tools label,.block-v2-form label{display:grid;gap:6px}.smart-week-grid{display:grid;gap:10px;margin:16px 0}.smart-day{border:1px solid var(--app-border);border-radius:16px;padding:14px;background:rgba(248,246,241,.55)}.smart-day-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.smart-day-controls{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px;margin-top:10px}.slot-preview,.slot-toggle-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.slot-chip{border:1px solid rgba(54,100,96,.25);background:#fff;border-radius:999px;padding:7px 10px;font-size:.86rem}.slot-toggle{cursor:pointer}.slot-toggle.is-on{background:var(--app-green);border-color:var(--app-green);color:#fff}.block-v2-form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto}.whole-day-check{display:flex!important;align-items:center;gap:8px!important}.message-status{padding:7px 9px;border-radius:10px;border:1px solid var(--app-border);background:#fff}.message-reply{width:100%;min-height:90px;margin-top:10px;padding:10px;border:1px solid var(--app-border);border-radius:12px;resize:vertical}.message-history{margin-top:10px;padding-top:10px;border-top:1px dashed var(--app-border)}.message-history-entry{padding:8px 10px;background:rgba(248,246,241,.6);border-radius:10px;margin-top:7px}.contact-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.contact-actions a{font-size:.82rem;text-decoration:none;border:1px solid var(--app-border);padding:6px 9px;border-radius:999px}.admin-search{width:100%;padding:11px 13px;border:1px solid var(--app-border);border-radius:12px;margin:8px 0 12px}.patient-list-btn{width:100%;text-align:left;border:0;background:transparent;cursor:pointer;padding:0}.patient-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.patient-form-grid label{display:grid;gap:5px}.patient-form-grid .wide{grid-column:1/-1}.patient-form-grid textarea{min-height:86px}.patient-form-grid input,.patient-form-grid textarea,.patient-form-grid select{width:100%;padding:9px;border:1px solid var(--app-border);border-radius:10px}.session-form{margin-top:20px;padding-top:16px;border-top:1px solid var(--app-border)}.security-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.security-check{padding:12px;border:1px solid var(--app-border);border-radius:14px}.security-check strong{display:block}.security-check.ok strong{color:#2f6b55}.security-check.warn strong{color:#8b6228}.booking-login-required{margin:12px 0;padding:12px 14px;border:1px solid rgba(140,100,45,.25);background:#fff8e9;border-radius:14px}.booking-time-range{display:block;font-size:.74rem;opacity:.75;margin-top:2px}@media(max-width:950px){.patient-admin-grid{grid-template-columns:1fr!important}.block-v2-form{grid-template-columns:1fr 1fr}.smart-day-controls{grid-template-columns:1fr 1fr 1fr}}@media(max-width:620px){.smart-day-controls,.patient-form-grid,.security-status-grid,.block-v2-form{grid-template-columns:1fr}.schedule-settings-row,.date-override-tools,.custom-slot-row{align-items:stretch;flex-direction:column}.admin-v2-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.admin-v2-tabs button{white-space:nowrap}}

/* ===== ADMIN BOOKING WORKFLOW V3 ===== */
.admin-day-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0}.admin-day-toolbar label{display:grid;gap:6px;font-size:.84rem}.admin-day-toolbar input{padding:10px 12px;border:1px solid rgba(40,54,79,.18);border-radius:10px;background:#fff}.daily-appointment{display:grid;grid-template-columns:92px 1fr;gap:16px;align-items:center;padding:14px 4px;border-bottom:1px solid rgba(40,54,79,.1)}.daily-time{font-weight:800;font-size:1.05rem}.daily-time small{display:block;font-weight:500;opacity:.65}.appointment-change-note{margin-top:10px;padding:9px 11px;border-radius:10px;background:rgba(54,119,193,.08);font-size:.88rem}.app-action-btn.warning{border-color:#d49b16;color:#855d00;background:#fff8e8}.admin-confirm-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:18px}.admin-confirm-modal[hidden]{display:none}.admin-confirm-backdrop{position:absolute;inset:0;background:rgba(16,24,40,.58);backdrop-filter:blur(5px)}.admin-confirm-card{position:relative;width:min(620px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.25)}.admin-confirm-x{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:28px;cursor:pointer}.admin-confirm-card h3{margin:0 35px 16px 0}.admin-confirm-summary{padding:14px;border-radius:12px;background:#f6f8fb;margin-bottom:16px}.admin-confirm-comment{display:grid;gap:7px;margin-top:16px;font-size:.9rem;font-weight:600}.admin-confirm-comment textarea{min-height:90px;resize:vertical;padding:11px;border:1px solid rgba(40,54,79,.18);border-radius:10px;font:inherit}.admin-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.admin-green-confirm{background:#238547!important;border-color:#238547!important;color:#fff!important}.admin-green-confirm:hover{filter:brightness(.95)}.admin-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.admin-confirm-grid label,.admin-manual-booking>label{display:grid;gap:6px;font-size:.86rem}.admin-confirm-grid input,.admin-confirm-grid select,.admin-manual-booking select,.admin-manual-booking input{width:100%;padding:10px 11px;border:1px solid rgba(40,54,79,.18);border-radius:10px;background:#fff}.email-preview-box{padding:13px;border:1px solid rgba(40,54,79,.14);border-radius:10px;background:#fff}.message-card{padding:0!important;overflow:hidden}.message-card-head{width:100%;border:0;background:transparent;padding:14px 16px;display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;text-align:left;cursor:pointer}.message-card-head small{display:block;margin-top:4px;opacity:.65}.message-card-body{padding:4px 16px 16px;border-top:1px solid rgba(40,54,79,.1)}.message-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.message-dot.blue{background:#2673d9;box-shadow:0 0 0 4px rgba(38,115,217,.12)}.message-dot.yellow{background:#d8a017;box-shadow:0 0 0 4px rgba(216,160,23,.13)}.user-change-panel{margin-top:12px;padding:12px;border-radius:12px;background:#f6f8fb;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.user-change-panel[hidden]{display:none}.user-change-panel label{display:grid;gap:5px;font-size:.85rem}.user-change-panel input,.user-change-panel select{padding:9px;border:1px solid rgba(40,54,79,.18);border-radius:9px;background:#fff}.appointment-lock-note{display:block;max-width:330px;line-height:1.35;opacity:.7}.app-status-pill.pending{background:#e9f2ff;color:#225da7}.app-status-pill.confirmed{background:#e8f7ed;color:#287143}.app-status-pill.cancelled{background:#fcebec;color:#9b3138}
@media(max-width:700px){.admin-confirm-grid{grid-template-columns:1fr}.user-change-panel{grid-template-columns:1fr}.daily-appointment{grid-template-columns:76px 1fr}.admin-confirm-card{padding:20px 16px}}

/* Minimal online patient record */
.patient-minimal-note{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(31,91,74,.18);border-radius:12px;background:rgba(31,91,74,.055);font-size:.9rem;line-height:1.45}

/* Admin v5: explicit destructive controls */
.appointment-admin-item,.patient-list-item{position:relative}
.round-delete-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:#b42318;color:#fff;font-size:22px;line-height:28px;font-weight:700;cursor:pointer;display:grid;place-items:center;z-index:2;box-shadow:0 4px 12px rgba(180,35,24,.18)}
.round-delete-x:hover{transform:scale(1.05)}
.appointment-admin-item .app-item-row{padding-right:38px}
.patient-list-item .patient-list-btn{padding-right:44px}
.app-status-pill.no_show{border-color:rgba(180,35,24,.35);background:rgba(180,35,24,.08)}


/* ===== ADMIN CALENDAR & PATIENT POLISH V6 ===== */
.admin-daily-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:8px 0 18px}.admin-daily-summary>div{padding:11px 12px;border:1px solid rgba(40,54,79,.10);border-radius:13px;background:#fafbfc}.admin-daily-summary span{display:block;font-size:.72rem;opacity:.68}.admin-daily-summary strong{display:block;margin-top:2px;font-size:1.08rem}.admin-appointment-tools{display:grid;grid-template-columns:minmax(220px,1fr) 220px;gap:10px;align-items:center;margin:10px 0 14px}.admin-appointment-tools .admin-search{margin:0}.admin-appointment-tools select{width:100%;padding:11px 13px;border:1px solid var(--app-border);border-radius:12px;background:#fff}.daily-appointment{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;border-radius:12px;padding:13px 10px}.daily-appointment:hover{background:rgba(45,83,78,.045)}.daily-appointment.cancelled{opacity:.62}.daily-appointment.no_show{background:rgba(180,35,24,.035)}.daily-title,.appointment-title-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.daily-person p{margin:4px 0 0}.appointment-admin-item{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.appointment-admin-item.is-focused{box-shadow:0 0 0 3px rgba(41,79,76,.16);border-color:rgba(41,79,76,.42);transform:translateY(-1px)}.appointment-main h4{margin:8px 0 2px;font-size:1.02rem}.appointment-main p{margin:3px 0}.appointment-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.finance-pill,.auto-pill,.change-pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.74rem;font-weight:700}.finance-pill.paid{background:#e8f7ed;color:#287143}.finance-pill.unpaid{background:#fff1df;color:#8a5600}.auto-pill{background:#eef2f6;color:#566273}.change-pill{background:#e9f2ff;color:#225da7}.app-action-btn.primary-soft{border-color:rgba(41,79,76,.32);background:rgba(41,79,76,.07);color:#294f4c}.internal-only-note{padding:10px 12px;border-radius:10px;background:#f6f8fb;font-size:.84rem;color:#59616d}.patient-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:0 0 16px}.patient-summary-strip>div{padding:12px;border-radius:13px;background:#f8faf9;border:1px solid rgba(41,79,76,.12)}.patient-summary-strip>div.warn{background:#fff8ea;border-color:rgba(186,125,10,.20)}.patient-summary-strip span{display:block;font-size:.73rem;opacity:.7}.patient-summary-strip strong{display:block;margin-top:4px;font-size:.96rem}.patient-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.patient-save-row span{font-size:.78rem;opacity:.65}.patient-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:18px 0 10px}.patient-section-head h3{margin:0}.patient-section-head p{margin:4px 0 0;font-size:.82rem;opacity:.68}.next-appointment-card{display:grid;gap:4px;padding:14px 16px;border-radius:15px;background:rgba(41,79,76,.065);border:1px solid rgba(41,79,76,.16)}.next-appointment-card span,.next-appointment-card small{font-size:.78rem;opacity:.72}.next-appointment-card strong{font-size:1.03rem}.muted-card{opacity:.72}.initial-request-link{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid rgba(40,54,79,.10)}.initial-request-link p{margin:4px 0 0;font-size:.84rem;opacity:.68}.session-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.session-row p{margin:4px 0 0}.session-finance{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.manual-session-details{margin-top:18px;padding:12px 14px;border:1px dashed rgba(40,54,79,.18);border-radius:13px}.manual-session-details summary{cursor:pointer;font-weight:700}.manual-session-details>p{font-size:.82rem;opacity:.68}.status-cancelled{opacity:.77}.status-no_show{border-left:3px solid rgba(180,35,24,.45)}
@media(max-width:980px){.admin-daily-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.admin-daily-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-appointment-tools{grid-template-columns:1fr}.patient-summary-strip{grid-template-columns:1fr 1fr}.session-row{align-items:flex-start;flex-direction:column}.session-finance{justify-content:flex-start}.initial-request-link{align-items:flex-start;flex-direction:column}}

/* v8.2 admin cancellation release choice */
.admin-reopen-choice{display:flex;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid rgba(41,79,76,.16);border-radius:12px;background:rgba(41,79,76,.05);font-weight:700}.admin-reopen-choice input{width:auto!important;margin:0}

/* === Admin v8.6 modern workspace === */
body.admin-route{background:#f4f6f8;color:#24313a}
body.admin-route header,body.admin-route .booking-float,body.admin-route .back-to-top-bubble{display:none!important}
/* Keep floating chrome out of the way until the necessary-cookies notice is
   acknowledged — it should not compete with (or hide behind) that notice. */
body:not(.cookies-acked):not(.admin-route) .booking-float,
body:not(.cookies-acked):not(.admin-route) .back-to-top-bubble,
body:not(.cookies-acked):not(.admin-route) .scroll-promo,
body:not(.cookies-acked):not(.admin-route) .scroll-promo-backdrop{display:none!important}
body.admin-route .app-admin-page .app-shell-container{padding-top:28px;padding-bottom:48px;max-width:1500px}
body.admin-route .app-admin-page .app-panel{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0}
body.admin-route .app-admin-top{background:linear-gradient(135deg,#fff 0%,#f8fbfa 100%);border:1px solid rgba(36,72,68,.10);border-radius:24px;padding:24px 26px;box-shadow:0 12px 32px rgba(33,49,46,.06);align-items:center}
body.admin-route .app-admin-top .kicker{font-size:.72rem;letter-spacing:.14em;font-weight:850;color:#66817d}
body.admin-route .app-admin-top h1{font-size:clamp(1.65rem,2.5vw,2.25rem);margin:4px 0 3px;color:#203f3c}
body.admin-route .app-admin-top .app-lead{margin:0;color:#6a7674}
body.admin-route .app-admin-top .btn{min-height:42px;border-radius:12px;padding:0 15px}
body.admin-route #adminContent{display:grid;grid-template-columns:220px minmax(0,1fr);gap:22px;align-items:start;margin-top:20px}
body.admin-route #adminContent[hidden]{display:none!important}
body.admin-route .app-stat-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0}
body.admin-route .app-stat{position:relative;overflow:hidden;padding:17px 18px;border-radius:18px;background:#fff;border:1px solid rgba(36,72,68,.10);box-shadow:0 8px 22px rgba(33,49,46,.045)}
body.admin-route .app-stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#6f918c}
body.admin-route .app-stat span{font-size:.76rem;letter-spacing:.01em;color:#74817f}
body.admin-route .app-stat strong{font-size:1.7rem;color:#244b47;margin-top:4px}
body.admin-route .admin-v2-tabs{grid-column:1;display:grid;gap:6px;position:sticky;top:18px;margin:0;padding:10px;background:#fff;border:1px solid rgba(36,72,68,.10);border-radius:18px;box-shadow:0 10px 26px rgba(33,49,46,.05)}
body.admin-route .admin-v2-tabs button{position:relative;width:100%;text-align:left;border:0;background:transparent;border-radius:12px;padding:12px 13px;color:#65726f;font-size:.9rem;font-weight:750;transition:.18s ease}
body.admin-route .admin-v2-tabs button:hover{background:#f3f7f6;color:#244b47}
body.admin-route .admin-v2-tabs button.is-active{background:#eaf2f0;color:#234b47;box-shadow:none}
body.admin-route .admin-v2-tabs button.is-active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:5px;background:#315f5a}
body.admin-route .admin-v2-section{grid-column:2;min-width:0}
body.admin-route .app-admin-card{border:1px solid rgba(36,72,68,.10);border-radius:20px;padding:22px;background:#fff;box-shadow:0 8px 24px rgba(33,49,46,.045)}
body.admin-route .app-admin-card h2{font-size:1.18rem;color:#244b47;margin-bottom:6px}
body.admin-route .app-card-note{font-size:.88rem;color:#75807e;line-height:1.55}
body.admin-route .admin-card-eyebrow{margin-bottom:6px;font-size:.68rem;letter-spacing:.10em;font-weight:850;color:#7f9a96}
body.admin-route .app-admin-grid{gap:16px;margin-top:0;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)}
body.admin-route .app-notifications-card{margin-top:16px}
body.admin-route input,body.admin-route select,body.admin-route textarea{font:inherit}
body.admin-route .admin-search,body.admin-route .patient-form-grid input,body.admin-route .patient-form-grid select,body.admin-route .patient-form-grid textarea,body.admin-route .schedule-settings-row input,body.admin-route .schedule-settings-row select,body.admin-route .date-override-tools input,body.admin-route .custom-slot-row input,body.admin-route .block-v2-form input{border:1px solid #dce5e3;background:#fbfcfc;border-radius:12px;min-height:43px;transition:border-color .15s,box-shadow .15s,background .15s}
body.admin-route .admin-search:focus,body.admin-route .patient-form-grid input:focus,body.admin-route .patient-form-grid select:focus,body.admin-route .patient-form-grid textarea:focus,body.admin-route .schedule-settings-row input:focus,body.admin-route .schedule-settings-row select:focus,body.admin-route .date-override-tools input:focus,body.admin-route .custom-slot-row input:focus,body.admin-route .block-v2-form input:focus{outline:0;border-color:#6f918c;background:#fff;box-shadow:0 0 0 4px rgba(74,120,113,.10)}
body.admin-route .btn,body.admin-route .app-mini-btn,body.admin-route .app-action-btn{border-radius:11px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
body.admin-route .btn:hover,body.admin-route .app-mini-btn:hover,body.admin-route .app-action-btn:hover{transform:translateY(-1px)}
body.admin-route .btn.primary,body.admin-route .app-mini-btn.primary,body.admin-route .app-action-btn.primary{background:#2f5c57;border-color:#2f5c57;color:#fff;box-shadow:0 6px 14px rgba(47,92,87,.16)}
body.admin-route .app-list{gap:9px}
body.admin-route .app-list-item{background:#fff;border:1px solid #e1e8e6;border-radius:15px;padding:14px;box-shadow:none}
body.admin-route .daily-appointment{background:#fff;border:1px solid #e2e9e7;border-radius:14px;padding:12px 14px;margin-bottom:8px;text-align:left;width:100%;cursor:pointer}
body.admin-route .daily-appointment:hover{border-color:#aac0bc;background:#fbfdfc}
body.admin-route .booking-auto-setting{background:#f8faf9;border-color:#e2e9e7;border-radius:14px;padding:13px 14px;margin:10px 0}
body.admin-route .schedule-settings-row{padding:13px;background:#f7f9f9;border:1px solid #e6eceb;border-radius:14px;margin:14px 0}
body.admin-route .smart-week-grid{gap:9px}
body.admin-route .smart-day{padding:14px 15px;border-radius:15px;border:1px solid #dfe8e6;background:#fff;transition:.18s ease}
body.admin-route .smart-day.is-disabled{background:#f7f8f8;border-color:#eaeeee}
body.admin-route .smart-day.is-disabled .smart-day-controls{opacity:.48}
body.admin-route .smart-day-head>div{display:grid;gap:2px}
body.admin-route .smart-day-head strong{font-size:1rem;color:#294e4a}
body.admin-route .smart-day-head small{font-size:.75rem;color:#82908d}
body.admin-route .smart-day-controls label{display:grid;gap:5px;font-size:.76rem;color:#6c7a77;font-weight:700}
body.admin-route .smart-day-controls input,body.admin-route .smart-day-controls select{width:100%;min-height:40px;border:1px solid #dce5e3;border-radius:10px;background:#fbfcfc;padding:0 9px}
body.admin-route .modern-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
body.admin-route .modern-toggle input{position:absolute;opacity:0;pointer-events:none}
body.admin-route .modern-toggle span{position:relative;width:42px;height:24px;border-radius:999px;background:#cdd7d5;transition:.18s}
body.admin-route .modern-toggle span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.18s}
body.admin-route .modern-toggle input:checked+span{background:#3c716b}
body.admin-route .modern-toggle input:checked+span:after{transform:translateX(18px)}
body.admin-route .modern-toggle b{font-size:.76rem;color:#667572;min-width:52px}
body.admin-route .slot-preview{padding-top:8px;border-top:1px dashed #e2e9e7}
body.admin-route .slot-chip{background:#eef5f3;border:1px solid #d4e5e1;color:#315e59;border-radius:9px;padding:6px 8px;font-size:.75rem}
body.admin-route .weekend-locked-note{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:13px;background:#f8f8f8;border:1px dashed #dce2e1;color:#7d8785;font-size:.8rem}
body.admin-route .availability-empty,body.admin-route .availability-loading{font-size:.8rem;color:#8a9593;padding:4px 0}
body.admin-route .availability-empty-card{padding:14px;border-radius:12px;background:#f7f9f9;border:1px dashed #d9e2e0;color:#788481;font-size:.84rem}
body.admin-route .availability-empty-card.compact{width:100%}
body.admin-route .availability-empty-card.error{background:#fff7f7;border-color:#ebcccc;color:#9b4b4b}
body.admin-route .availability-block-row{display:flex;align-items:center;justify-content:space-between;gap:14px}
body.admin-route .availability-block-row p{margin:3px 0 0;font-size:.84rem}
body.admin-route .override-mode-note{padding:10px 12px;border-radius:11px;background:#f5f8f7;border:1px solid #e1e8e6;margin:8px 0 4px}
body.admin-route .slot-toggle{display:inline-flex;align-items:center;gap:3px;border-radius:10px;padding:8px 10px}
body.admin-route .slot-toggle b{margin-left:4px;font-size:1rem;line-height:1}
body.admin-route #availabilityStatus{margin-top:12px;padding:0;font-weight:700;color:#34705f}
body.admin-route #availabilityStatus.is-error{color:#a34a4a}
body.admin-route .app-back-link{margin:22px 0 0 242px;border-radius:11px}
body.admin-route .admin-confirm-card{border-radius:20px;box-shadow:0 28px 80px rgba(20,36,33,.22)}
body.admin-route .security-check{background:#fbfcfc;border-color:#e1e8e6}
@media(max-width:1120px){body.admin-route #adminContent{grid-template-columns:180px minmax(0,1fr)}body.admin-route .app-stat-grid{grid-template-columns:repeat(3,1fr)}body.admin-route .app-admin-grid{grid-template-columns:1fr}body.admin-route .app-back-link{margin-left:202px}}
@media(max-width:820px){body.admin-route .app-admin-page .app-shell-container{padding:16px 12px 34px}body.admin-route .app-admin-top{padding:18px;border-radius:18px}body.admin-route #adminContent{display:block;margin-top:14px}body.admin-route .app-stat-grid{grid-template-columns:repeat(2,1fr);margin-bottom:12px}body.admin-route .admin-v2-tabs{position:sticky;top:0;z-index:25;display:flex;overflow-x:auto;flex-wrap:nowrap;border-radius:14px;margin:0 0 12px;padding:7px;scrollbar-width:none}body.admin-route .admin-v2-tabs::-webkit-scrollbar{display:none}body.admin-route .admin-v2-tabs button{width:auto;white-space:nowrap;padding:10px 12px}body.admin-route .admin-v2-tabs button.is-active:before{display:none}body.admin-route .admin-v2-section{width:100%}body.admin-route .app-back-link{margin-left:0}body.admin-route .app-admin-card{padding:17px;border-radius:17px}}
@media(max-width:560px){body.admin-route .app-stat-grid{grid-template-columns:1fr 1fr}body.admin-route .app-stat{padding:14px}body.admin-route .app-stat strong{font-size:1.45rem}body.admin-route .app-admin-top .app-account-actions{width:100%}body.admin-route .app-admin-top .app-account-actions .btn{flex:1}.smart-day-head{align-items:flex-start}.smart-day-controls{grid-template-columns:1fr 1fr!important}.smart-day-controls label:last-child{grid-column:1/-1}.availability-block-row{align-items:flex-start!important;flex-direction:column}.block-v2-form{grid-template-columns:1fr!important}}

/* === v8.7 monthly availability calendar === */
body.admin-route .availability-month-card{overflow:hidden}
body.admin-route .availability-month-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}
body.admin-route .availability-month-head h2{margin:0 0 5px}
body.admin-route .availability-month-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
body.admin-route .availability-month-nav strong{min-width:150px;text-align:center;color:#294e4a;font-size:1rem}
body.admin-route .availability-month-nav .month-arrow{width:40px;min-width:40px;padding:0}
body.admin-route .availability-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:0 0 7px;padding:0 2px}
body.admin-route .availability-weekdays span{text-align:center;font-size:.7rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#82908d}
body.admin-route .availability-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;min-height:410px}
body.admin-route .availability-calendar-blank{min-height:94px;border-radius:14px;background:#fafbfb;border:1px dashed #edf1f0}
body.admin-route .availability-month-day{position:relative;display:flex;min-height:94px;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;padding:12px;border:1px solid transparent;border-radius:15px;text-align:left;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background .14s ease;color:#2d3b39}
body.admin-route .availability-month-day:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(33,49,46,.08)}
body.admin-route .availability-month-day.is-open{background:#edf7f1;border-color:#c8e3d2}
body.admin-route .availability-month-day.is-closed{background:#fff1f0;border-color:#eed0cd}
body.admin-route .availability-month-day.is-weekend{background:repeating-linear-gradient(135deg,#f8eeee 0,#f8eeee 8px,#f5e8e7 8px,#f5e8e7 16px);color:#8a5a56}
body.admin-route .availability-month-day.is-selected{outline:3px solid rgba(47,92,87,.24);border-color:#2f5c57;box-shadow:0 8px 20px rgba(47,92,87,.10)}
body.admin-route .availability-month-day .month-day-number{font-size:1.02rem;font-weight:850;line-height:1;color:#263f3c}
body.admin-route .availability-month-day strong{font-size:.76rem;line-height:1.2}
body.admin-route .availability-month-day.is-open strong{color:#2f6d4b}
body.admin-route .availability-month-day.is-closed strong{color:#9c4e48}
body.admin-route .availability-month-day small{font-size:.67rem;color:#75817f;line-height:1.25}
body.admin-route .availability-month-day i{position:absolute;right:9px;top:9px;font-style:normal;font-size:.58rem;color:#c19745}
body.admin-route .availability-calendar-legend{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid #edf1f0;color:#71807d;font-size:.76rem}
body.admin-route .availability-calendar-legend span{display:inline-flex;align-items:center;gap:6px}
body.admin-route .legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.05)}
body.admin-route .legend-dot.open{background:#b9dfc7}.legend-dot.closed{background:#e7b4af}.legend-dot.special{background:#d4ad5f}.legend-dot.selected{background:#2f5c57}
body.admin-route .availability-day-card{margin-top:16px}
body.admin-route .availability-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:15px}
body.admin-route .availability-day-head h2{margin:0 0 5px}
body.admin-route .day-state-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
body.admin-route .day-state-btn{border:1px solid #dbe4e2;border-radius:999px;padding:9px 13px;background:#fff;color:#677571;font-weight:800;cursor:pointer;transition:.15s ease}
body.admin-route .day-state-btn.open.is-active{background:#e7f5ec;border-color:#9fd0af;color:#286344;box-shadow:0 0 0 3px rgba(83,153,107,.08)}
body.admin-route .day-state-btn.closed.is-active{background:#fff0ef;border-color:#dfaaa5;color:#94463f;box-shadow:0 0 0 3px rgba(170,79,70,.07)}
body.admin-route .day-state-btn:disabled{opacity:.48;cursor:not-allowed}
body.admin-route .day-schedule-builder{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr)) auto;gap:10px;align-items:end;padding:14px;background:#f7faf9;border:1px solid #e2ebe9;border-radius:15px;margin-bottom:13px}
body.admin-route .day-schedule-builder label{display:grid;gap:5px;font-size:.76rem;color:#6c7a77;font-weight:750}
body.admin-route .day-schedule-builder input,body.admin-route .day-schedule-builder select{width:100%;min-height:42px;border:1px solid #dce5e3;border-radius:10px;background:#fff;padding:0 10px}
body.admin-route .day-schedule-builder.is-disabled{opacity:.52}
body.admin-route .availability-day-warning{padding:11px 13px;margin:0 0 12px;border-radius:12px;background:#fff6e8;border:1px solid #efd8ad;color:#805f27;font-size:.84rem;font-weight:650}
body.admin-route .selected-day-slot-count{grid-column:1/-1;width:100%;font-size:.76rem;font-weight:800;color:#60706d;margin-bottom:2px}
body.admin-route .day-closed-message{display:grid;gap:3px}
body.admin-route .day-closed-message strong{color:#934b45}
body.admin-route .day-closed-message span{font-size:.78rem;color:#7d8684}
body.admin-route .availability-day-save-row{margin-top:14px}
body.admin-route .availability-details-card{margin-top:16px;padding:0!important;overflow:hidden}
body.admin-route .availability-details-card>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;cursor:pointer;background:#fff}
body.admin-route .availability-details-card>summary::-webkit-details-marker{display:none}
body.admin-route .availability-details-card>summary span{display:grid;gap:3px}
body.admin-route .availability-details-card>summary strong{font-size:1rem;color:#294e4a}
body.admin-route .availability-details-card>summary small{font-size:.78rem;color:#7c8886;font-weight:500}
body.admin-route .availability-details-card>summary b{font-size:1.1rem;color:#80908d;transition:transform .15s}
body.admin-route .availability-details-card[open]>summary b{transform:rotate(180deg)}
body.admin-route .availability-details-body{padding:4px 20px 20px;border-top:1px solid #edf1f0}
body.admin-route .month-loading{grid-column:1/-1;align-self:center;text-align:center;padding:60px 0}
@media(max-width:900px){body.admin-route .availability-month-head{align-items:flex-start;flex-direction:column}body.admin-route .availability-month-nav{justify-content:flex-start}body.admin-route .availability-month-grid{gap:5px}body.admin-route .availability-month-day{min-height:82px;padding:10px}body.admin-route .availability-calendar-blank{min-height:82px}body.admin-route .day-schedule-builder{grid-template-columns:1fr 1fr}body.admin-route .day-schedule-builder button{grid-column:1/-1}}
@media(max-width:620px){body.admin-route .availability-weekdays{gap:3px}body.admin-route .availability-month-grid{gap:3px;min-height:0}body.admin-route .availability-calendar-blank{min-height:60px;border-radius:10px}body.admin-route .availability-month-day{min-height:64px;border-radius:10px;padding:7px 6px;gap:2px}body.admin-route .availability-month-day .month-day-number{font-size:.88rem}body.admin-route .availability-month-day strong{font-size:.62rem}body.admin-route .availability-month-day small{display:none}body.admin-route .availability-month-day i{right:6px;top:5px;font-size:.45rem}body.admin-route .availability-day-head{flex-direction:column}body.admin-route .day-state-actions{justify-content:flex-start}.availability-calendar-legend{gap:9px!important}.availability-calendar-legend span{font-size:.68rem}.day-schedule-builder{grid-template-columns:1fr 1fr!important}}

/* v8.8 explicit next-month publishing */
body.admin-route .booking-month-public-control{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:14px 16px;border:1px solid #dfe7e4;border-radius:16px;background:#f8faf9}
body.admin-route .booking-month-public-control strong{display:block;color:#173e37;margin-bottom:3px}
body.admin-route .booking-month-public-control .app-card-note{margin:0;max-width:760px}
body.admin-route .app-mini-btn.danger-soft{background:#fff2f0;border-color:#e2b5af;color:#8c4038}
@media(max-width:700px){body.admin-route .booking-month-public-control{align-items:stretch;flex-direction:column}body.admin-route .booking-month-public-control button{width:100%}}

/* Email template builder — drag chips + live preview */
body.admin-route .email-builder-editor label{display:grid;gap:6px;color:#294e4a;font-weight:600;font-size:.9rem}
body.admin-route .email-builder-editor input,body.admin-route .email-builder-editor select,body.admin-route .email-builder-editor textarea{border:1px solid #dce5e3;background:#fbfcfc;border-radius:12px;min-height:43px;padding:10px 12px;font:inherit;color:#243937;transition:border-color .15s,box-shadow .15s,background .15s}
body.admin-route .email-builder-editor textarea{min-height:220px;resize:vertical;line-height:1.55}
body.admin-route .email-builder-editor input:focus,body.admin-route .email-builder-editor select:focus,body.admin-route .email-builder-editor textarea:focus{outline:0;border-color:#6f918c;background:#fff;box-shadow:0 0 0 4px rgba(74,120,113,.10)}
body.admin-route .email-builder{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);gap:22px;align-items:start;margin-top:8px}
body.admin-route .email-builder-editor{display:grid;gap:12px}
body.admin-route .email-builder-hint{margin:0;color:#6d7a77;font-size:.9rem;line-height:1.55}
body.admin-route .email-chip-tray{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px;border:1px dashed #c9d6d2;border-radius:16px;background:linear-gradient(180deg,#f7faf9,#f2f6f5)}
body.admin-route .email-chip-tray-label{flex:1 0 100%;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:#5f726e;text-transform:uppercase}
body.admin-route .email-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;max-width:100%;padding:8px 12px;border:1px solid #c9d8d4;border-radius:12px;background:#fff;color:#234842;cursor:grab;text-align:left;box-shadow:0 1px 0 rgba(35,72,66,.04);transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}
body.admin-route .email-chip:hover,body.admin-route .email-chip:focus-visible{outline:0;border-color:#6f918c;background:#f4faf8;box-shadow:0 4px 14px rgba(35,72,66,.08);transform:translateY(-1px)}
body.admin-route .email-chip:active,body.admin-route .email-chip.is-dragging{cursor:grabbing;opacity:.85}
body.admin-route .email-chip b{font-size:.86rem;font-weight:700}
body.admin-route .email-chip small{font-size:.72rem;color:#7a8885;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.admin-route .email-chip.is-teams{border-color:#7aa8c4;background:#f3f8fc;color:#1d4a63}
body.admin-route .email-chip.is-teams:hover,body.admin-route .email-chip.is-teams:focus-visible{border-color:#4d86a8;background:#eaf4fb}
body.admin-route .email-builder-scope-badge{margin:0 0 4px;padding:8px 12px;border-radius:10px;background:#eef6f3;border:1px solid #cfe0db;color:#1f524a;font-size:.86rem;font-weight:700;line-height:1.4}
body.admin-route .email-filler-hints{margin-top:4px;padding-top:12px;border-top:1px dashed #b7c9d4;display:grid;gap:8px}
body.admin-route .email-filler-hints[hidden]{display:none!important}
body.admin-route .email-filler-hints-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#8a5a12}
body.admin-route .email-filler-hints-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
body.admin-route .email-filler-hints-list li{display:grid;grid-template-columns:minmax(72px,92px) minmax(0,1fr) auto;gap:8px 10px;align-items:center;padding:8px 10px;border-radius:10px;background:#fff8eb;border:1px solid #efd8ad;font-size:.84rem}
body.admin-route .email-filler-hints-list li span{color:#6a7673;font-weight:600}
body.admin-route .email-filler-hints-list li strong{color:#173e37;font-weight:700;overflow-wrap:anywhere;min-width:0}
body.admin-route .email-filler-insert{appearance:none;border:1px solid #d4b06a;border-radius:8px;background:#fff;color:#855d00;font:inherit;font-size:.78rem;font-weight:700;padding:6px 10px;cursor:pointer;white-space:nowrap}
body.admin-route .email-filler-insert:hover,body.admin-route .email-filler-insert:focus-visible{outline:0;background:#fff3d6;border-color:#c7963a}
@media(max-width:640px){body.admin-route .email-filler-hints-list li{grid-template-columns:1fr;gap:4px}body.admin-route .email-filler-insert{justify-self:start}}
body.admin-route .email-builder-hint[hidden]{display:none!important}
body.admin-route .email-teams-sample-panel{display:grid;gap:12px;padding:14px 16px;border:1px solid #c5d8e6;border-radius:16px;background:linear-gradient(180deg,#f5f9fc,#eef4f9)}
body.admin-route .email-teams-sample-panel[hidden]{display:none!important}
body.admin-route .email-teams-sample-head strong{display:block;color:#1d4a63;font-size:.95rem}
body.admin-route .email-teams-sample-head p{margin:6px 0 0;color:#5a6f7a;font-size:.86rem;line-height:1.5;font-weight:500}
body.admin-route .email-teams-sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.admin-route .email-teams-sample-grid .wide{grid-column:1/-1}
body.admin-route .freeform-email-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
body.admin-route .freeform-email-form .wide,body.admin-route .freeform-email-form .email-chip-tray,body.admin-route .freeform-email-form .email-teams-sample-panel,body.admin-route .freeform-email-form .email-filler-panel,body.admin-route .freeform-email-form .email-builder-hint,body.admin-route .freeform-email-form .email-builder-actions,body.admin-route .freeform-email-form #adminSendEmailStatus{grid-column:1/-1}
body.admin-route .freeform-email-form label{display:grid;gap:6px;color:#294e4a;font-weight:600;font-size:.9rem}
body.admin-route .freeform-email-form input,body.admin-route .freeform-email-form select,body.admin-route .freeform-email-form textarea{border:1px solid #dce5e3;background:#fbfcfc;border-radius:12px;min-height:43px;padding:10px 12px;font:inherit;color:#243937;width:100%;box-sizing:border-box}
body.admin-route .freeform-email-form textarea{min-height:200px;resize:vertical;line-height:1.55}
body.admin-route .admin-send-values-grid{grid-template-columns:1fr 1fr}
@media(max-width:640px){body.admin-route .email-teams-sample-grid,body.admin-route .admin-send-values-grid,body.admin-route .freeform-email-form{grid-template-columns:1fr}}
body.admin-route .email-drop-target.is-drop-hover{border-color:#6f918c!important;background:#f3faf7!important;box-shadow:0 0 0 4px rgba(74,120,113,.12)!important}
body.admin-route .email-builder-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
body.admin-route .teams-email-composer{display:grid;gap:10px;padding:14px 16px;margin:0 0 4px;border:1px solid #c5d8e6;border-radius:14px;background:linear-gradient(180deg,#f5f9fc,#eef4f9)}
body.admin-route .teams-email-composer-head{display:grid;gap:4px}
body.admin-route .teams-email-composer-head strong{color:#1d4a63;font-size:.95rem}
body.admin-route .teams-email-composer-head p{margin:0;color:#5a6f7a;font-size:.86rem;line-height:1.45}
body.admin-route .teams-email-composer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
body.admin-route .teams-email-composer-grid .wide{grid-column:1/-1}
body.admin-route .teams-email-live-preview{margin-top:4px;padding:12px 14px;border:1px dashed #b7c9c4;border-radius:12px;background:#f7faf9}
body.admin-route .teams-email-live-preview-label{display:block;margin-bottom:8px;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#5f726e}
body.admin-route .teams-email-live-preview-subject{font-weight:700;color:#173e37;margin-bottom:8px;line-height:1.35}
body.admin-route .teams-email-live-preview-body{color:#2a3835;font-size:.9rem;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:640px){body.admin-route .teams-email-composer-grid{grid-template-columns:1fr}}
body.admin-route .email-builder-preview{position:sticky;top:18px}
body.admin-route .email-preview-kicker{margin:0 0 10px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6d7a77}
body.admin-route .email-preview-frame{border:1px solid #d7e1de;border-radius:18px;overflow:hidden;background:#eef2f1;box-shadow:0 18px 40px rgba(28,42,40,.08)}
body.admin-route .email-preview-chrome{padding:14px 16px;background:#f8faf9;border-bottom:1px solid #e1e8e6}
body.admin-route .email-preview-meta{display:grid;grid-template-columns:42px 1fr;gap:8px;font-size:.82rem;margin-bottom:6px;color:#6a7673}
body.admin-route .email-preview-meta strong{color:#243937;font-weight:600;overflow-wrap:anywhere}
body.admin-route .email-preview-subject{margin-top:8px;font-size:1.05rem;font-weight:700;color:#173e37;line-height:1.35}
body.admin-route .email-preview-body-wrap{padding:22px 18px 20px;background:linear-gradient(180deg,#f4f7f6 0%,#ffffff 48px);min-height:280px}
body.admin-route .email-preview-logo{display:block;margin:0 auto 16px;width:56px;height:56px;border-radius:50%;object-fit:cover;background:#e8efed;box-shadow:0 4px 14px rgba(28,42,40,.08)}
body.admin-route .email-preview-body{color:#2a3835;font-size:.95rem;line-height:1.65}
body.admin-route .email-preview-body p{margin:0 0 14px}
body.admin-route .email-preview-empty{color:#8a9693;font-style:italic}
body.admin-route .email-preview-token{display:inline;padding:.05em .28em;margin:0 1px;border-radius:6px;background:#e5f2ee;color:#1f524a;font-style:normal;font-weight:600;box-decoration-break:clone;-webkit-box-decoration-break:clone}
body.admin-route .email-preview-footer{margin-top:22px;padding-top:16px;border-top:1px solid #e6ecea;color:#6a7673;font-size:.86rem;line-height:1.55;text-align:center}
body.admin-route .email-preview-footer strong{color:#294e4a}
@media(max-width:980px){body.admin-route .email-builder{grid-template-columns:1fr}body.admin-route .email-builder-preview{position:static}}

/* v8.10 — compact Contact page: location directly after hero */
#contact-page .contact-map-stage-compact{
  padding:10px 0 0;
  background:transparent;
}
#contact-page .contact-map-stage-compact .contact-map-card{
  background:#faf8f3;
  border:1px solid rgba(54,95,89,.10);
  border-radius:28px;
  padding:24px;
  box-shadow:0 12px 32px rgba(38,48,44,.05);
}
#contact-page .contact-map-stage-compact .contact-map-copy{
  padding:18px 8px;
  align-self:center;
}
#contact-page .contact-map-stage-compact .contact-map-frame,
#contact-page .contact-map-stage-compact .contact-map-frame iframe{
  min-height:320px;
}
@media(max-width:950px){
  #contact-page .contact-map-stage-compact .contact-map-card{padding:18px}
  #contact-page .contact-map-stage-compact .contact-map-frame,
  #contact-page .contact-map-stage-compact .contact-map-frame iframe{min-height:300px}
}
@media(max-width:620px){
  #contact-page .contact-map-stage-compact{padding-top:0}
  #contact-page .contact-map-stage-compact .contact-map-card{padding:14px;border-radius:22px}
  #contact-page .contact-map-stage-compact .contact-map-copy{padding:10px 4px}
  #contact-page .contact-map-stage-compact .contact-map-frame,
  #contact-page .contact-map-stage-compact .contact-map-frame iframe{min-height:270px}
}

/* v8.10.2 — compact contact details + original session-duration card */
#contact-page .contact-details-compact{
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(360px,1.18fr);
  gap:24px;
  align-items:stretch;
}
#contact-page .contact-info-stack{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
#contact-page .contact-info-stack .contact-info-card{
  padding:18px 20px;
  min-height:0;
  border-radius:18px;
  align-items:center;
  gap:14px;
}
#contact-page .contact-info-stack .contact-info-icon{
  width:44px;
  height:44px;
  flex-basis:44px;
  border-radius:14px;
}
#contact-page .contact-info-stack .contact-info-icon svg{
  width:21px;
  height:21px;
}
#contact-page .contact-info-stack .contact-info-card h3{
  margin-bottom:4px;
  font-size:1.05rem;
}
#contact-page .contact-info-stack .contact-info-card p,
#contact-page .contact-info-stack .contact-info-card a{
  font-size:.96rem;
  line-height:1.45;
}
#contact-page .contact-details-compact .contact-duration{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
@media(max-width:900px){
  #contact-page .contact-details-compact{grid-template-columns:1fr;}
  #contact-page .contact-details-compact .contact-duration{height:auto;}
}
@media(max-width:620px){
  #contact-page .contact-details-compact{gap:16px;}
  #contact-page .contact-info-stack{gap:10px;}
  #contact-page .contact-info-stack .contact-info-card{padding:15px 16px;}
}

/* =========================================================
   SERVICES v8.10.4 — SOFTER HERO TRANSITION
   Keeps the existing Services image/title concept, but lets
   the photo dissolve into the page instead of ending abruptly.
   ========================================================= */
#services-page .services-absolute-top-image{
  height:clamp(660px,60vw,1080px);
  overflow:hidden;
  isolation:isolate;
}

#services-page .services-absolute-top-image::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:clamp(230px,20vw,340px);
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(248,245,240,0) 0%,
    rgba(248,245,240,.08) 28%,
    rgba(248,245,240,.30) 52%,
    rgba(248,245,240,.72) 78%,
    #f8f5f0 100%
  );
}

#services-page .services-absolute-top-image img{
  position:relative;
  z-index:0;
}

#services-page .services-detail-hero{
  padding:120px 0 68px;
  margin-top:-1px !important;
  background:
    radial-gradient(circle at 83% 24%, rgba(193,215,204,.30), transparent 36%),
    linear-gradient(180deg,#f8f5f0 0%,#f3eee8 100%);
}

#services-page .services-detail-hero-inner{
  transform:translateY(-420px);
  margin-bottom:-420px;
}

@media(max-width:1050px){
  #services-page .services-absolute-top-image{
    height:clamp(600px,70vw,860px);
  }

  #services-page .services-absolute-top-image::after{
    height:clamp(210px,24vw,300px);
  }

  #services-page .services-detail-hero{
    padding-top:108px;
  }

  #services-page .services-detail-hero-inner{
    transform:translateY(-350px);
    margin-bottom:-350px;
  }
}

@media(max-width:780px){
  #services-page .services-absolute-top-image{
    height:clamp(470px,82vw,640px);
  }

  #services-page .services-absolute-top-image::after{
    height:210px;
  }

  #services-page .services-detail-hero{
    padding:88px 0 54px;
  }

  #services-page .services-detail-hero-inner{
    transform:translateY(-255px);
    margin-bottom:-255px;
  }
}

@media(max-width:520px){
  #services-page .services-absolute-top-image{
    height:clamp(420px,102vw,530px);
  }

  #services-page .services-absolute-top-image::after{
    height:190px;
  }

  #services-page .services-detail-hero{
    padding-top:76px;
  }

  #services-page .services-detail-hero-inner{
    transform:translateY(-215px);
    margin-bottom:-215px;
  }
}


/* v8.11 — legal pages */
.legal-page{
  background:
    radial-gradient(circle at 90% 4%, rgba(55,111,104,.10), transparent 28%),
    linear-gradient(180deg,#f8f5f0 0%,#f3eee8 100%);
  min-height:70vh;
  padding:clamp(110px,12vw,160px) 22px 76px;
}
.legal-back{
  display:inline-flex;
  align-items:center;
  margin:0 0 18px;
  min-height:42px;
}
.psychologist-story-page,
.services-detail-page{
  position:relative;
}
.legal-shell{width:min(980px,100%);margin:0 auto;}
.legal-kicker{font-size:.78rem;letter-spacing:.22em;font-weight:800;color:#1f5b57;margin-bottom:16px;}
.legal-page h1{font-family:var(--font-display,Georgia,serif);font-size:clamp(1.55rem,7.2vw,5rem);line-height:1.12;letter-spacing:-.035em;color:#15343a;margin:0 0 12px;max-width:900px;overflow-wrap:anywhere;word-break:break-word;hyphens:auto;}
.legal-updated{font-size:.9rem;color:#7a7168;margin:0 0 26px;}
.legal-lead{font-size:clamp(1.06rem,2vw,1.25rem);line-height:1.75;color:#5c5148;max-width:850px;margin:0 0 30px;}
.legal-tabs{display:flex;gap:9px;flex-wrap:wrap;padding:10px;background:rgba(255,255,255,.58);border:1px solid rgba(25,60,58,.10);border-radius:20px;margin:0 0 24px;position:sticky;top:86px;z-index:4;backdrop-filter:blur(14px);box-shadow:0 12px 34px rgba(30,52,48,.06);}
.legal-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 15px;border-radius:13px;color:#34534f;text-decoration:none;font-weight:700;font-size:.9rem;transition:.18s ease;}
.legal-tabs a:hover,.legal-tabs a.is-active{background:#1f5b57;color:#fff;}
.legal-card{background:rgba(255,255,255,.72);border:1px solid rgba(40,63,57,.09);border-radius:24px;padding:clamp(22px,4vw,34px);margin:0 0 16px;box-shadow:0 16px 45px rgba(50,44,37,.045);}
.legal-card h2{font-family:var(--font-display,Georgia,serif);font-size:clamp(1.45rem,3vw,2rem);color:#153f3b;margin:0 0 12px;line-height:1.15;}
.legal-card p,.legal-card li{font-size:1rem;line-height:1.78;color:#584f48;}
.legal-card p{margin:0 0 12px;}.legal-card p:last-child{margin-bottom:0;}
.legal-card ul{margin:8px 0 0;padding-left:22px;}.legal-card li+li{margin-top:8px;}
.legal-card a{color:#1f5b57;font-weight:700;text-underline-offset:3px;}
.legal-card code{background:#edf2ef;border:1px solid #dce7e1;padding:2px 7px;border-radius:7px;color:#1f4c47;}
.legal-table-wrap{overflow-x:auto;margin-top:18px;border:1px solid rgba(31,91,87,.12);border-radius:16px;-webkit-overflow-scrolling:touch;}
.legal-table{width:100%;border-collapse:collapse;min-width:0;background:rgba(255,255,255,.65);}
.legal-table th,.legal-table td{text-align:left;padding:14px 16px;border-bottom:1px solid rgba(31,91,87,.10);vertical-align:top;color:#534b45;overflow-wrap:anywhere;word-break:break-word;}
.legal-table th{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#1f5b57;background:#eef3f0;}
.legal-table tr:last-child td{border-bottom:0;}
@media(max-width:780px){
  .legal-page{padding:96px 15px calc(72px + env(safe-area-inset-bottom,0px));}
  .legal-tabs{top:70px;overflow-x:auto;flex-wrap:wrap;gap:8px;padding:7px;padding-right:max(7px,72px);border-radius:16px;scrollbar-width:thin;scroll-padding-inline-end:72px;}
  .legal-tabs::-webkit-scrollbar{height:4px;}
  .legal-tabs a{white-space:normal;overflow-wrap:anywhere;min-height:38px;padding:7px 12px;}
  .legal-card{border-radius:20px;padding:21px 18px;}
  .legal-table thead{display:none;}
  .legal-table tr,.legal-table td{display:block;width:100%;}
  .legal-table td{padding:10px 14px;}
  .legal-table td:first-child{padding-top:14px;font-weight:700;color:#1f5b57;}
  .legal-table td:last-child{padding-bottom:14px;}
}

/* =========================================================
   SERVICES v8.12 — COMPACT ABOVE-THE-FOLD HERO
   On desktop, the top image finishes earlier and the Services
   heading/content starts higher, while keeping the soft fade.
   ========================================================= */
@media (min-width:1051px){
  #services-page .services-absolute-top-image{
    height:clamp(560px,78vh,980px);
    height:clamp(560px,78svh,980px);
  }

  #services-page .services-absolute-top-image::after{
    height:clamp(210px,22vh,310px);
    height:clamp(210px,22svh,310px);
  }

  #services-page .services-detail-hero{
    padding:92px 0 60px;
  }

  #services-page .services-detail-hero-inner{
    transform:translateY(clamp(-340px,-31vh,-250px));
    margin-bottom:clamp(-340px,-31vh,-250px);
    transform:translateY(clamp(-340px,-31svh,-250px));
    margin-bottom:clamp(-340px,-31svh,-250px);
  }
}


/* ===== v8.13 QA FIX: MOBILE NAVIGATION ===== */
.mobile-menu-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:40px;height:40px;border:1px solid rgba(54,100,96,.20);border-radius:999px;background:rgba(255,253,249,.86);cursor:pointer;flex:0 0 auto}
.mobile-menu-toggle span{display:block;width:17px;height:1.7px;background:var(--green-dark);border-radius:999px}
.mobile-navigation{position:fixed;z-index:9998;top:82px;left:16px;right:16px;max-height:calc(100vh - 100px);overflow:auto;background:rgba(255,253,249,.98);border:1px solid rgba(54,100,96,.16);border-radius:22px;box-shadow:0 18px 50px rgba(39,49,45,.16);backdrop-filter:blur(16px)}
.mobile-navigation[hidden]{display:none!important}
.mobile-navigation-inner{display:grid;padding:10px}
.mobile-navigation a{padding:13px 14px;border-radius:13px;color:var(--green-dark);font-weight:650;text-decoration:none}
.mobile-navigation a:hover,.mobile-navigation a:focus-visible{background:rgba(54,100,96,.08)}
.mobile-navigation .mobile-book{margin-top:5px;background:var(--green-dark);color:#fff;text-align:center}
@media(max-width:1050px){
  header .actions{margin-left:auto}
  .mobile-menu-toggle{display:inline-flex}
  /* Header language row is replaced by .header-lang flag selector (public-mobile.css). */
  header .language-switch{display:none!important}
  .footer-language-switch.language-switch{display:flex!important}
  .mobile-navigation{display:block}
}
@media(max-width:650px){.mobile-navigation{top:72px;left:10px;right:10px}}

/* v8.13 privacy-friendly map gate */
.contact-map-consent{display:grid;place-items:center;min-height:280px;background:linear-gradient(135deg,rgba(54,100,96,.08),rgba(255,253,249,.96));border:1px solid rgba(54,100,96,.15);border-radius:inherit;overflow:hidden}
.contact-map-consent-inner{text-align:center;padding:32px;max-width:440px}.contact-map-consent-inner strong{display:block;color:var(--green-dark);font-size:1.15rem;margin-bottom:8px}.contact-map-consent-inner p{margin:0 0 18px;color:var(--muted)}
.contact-map-consent iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* =========================================================
   QA 9.2.2 — mobile / tablet fit (does not change desktop >1050)
   ========================================================= */
.ui-fit{max-width:100%;overflow-x:auto}

@media (max-width:1050px), (hover:none), (pointer:coarse){
  body{background-attachment:scroll}
}

@media (max-width:1050px){
  header .brand,
  header .brand-lockup{
    min-width:0 !important;
    transform:none !important;
  }

  #psychologist-page #psych-who .psych-ref-hero,
  #services-page .services-absolute-top-image{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  .contact-map-frame,
  .contact-map-consent,
  .contact-map-card{
    max-width:100%;
    overflow:hidden;
  }
  .contact-map-frame iframe,
  .contact-map-consent iframe{
    width:100% !important;
    max-width:100%;
  }

}

/* Portrait: overflow:hidden clipped ~90px of methodology cards internally. */
@media (orientation:portrait){
  #my-perspective-home{
    overflow:visible;
    padding-bottom:calc(84px + 90px);
  }
}
@media (orientation:portrait) and (max-width:720px){
  #my-perspective-home{
    padding-bottom:calc(62px + 90px);
  }
}

@media (max-width:1050px){
  #my-perspective-home{
    overflow:visible;
  }

  /* Services nav: keep DE labels (Erwachsene) readable; scroll with peek. */
  #services-page .services-detail-nav{
    display:flex;
    flex-wrap:nowrap;
    gap:8px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding-bottom:4px;
    scroll-padding-inline-end:24px;
  }
  #services-page .services-detail-nav a{
    flex:0 0 auto;
    min-width:max-content;
    white-space:nowrap;
    overflow:visible;
    max-width:none;
  }
}

@media (max-width:1050px), (prefers-reduced-motion:reduce){
  #my-perspective-home .perspective-card,
  #my-perspective-home .perspective-bar-item{
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
    transition:none !important;
  }
  #my-perspective-home .perspective-bar-fill{
    width:100% !important;
  }
  #services-page .services-reveal,
  #psychologist-page [data-psych-reveal]{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

@media (max-width:820px){
  #about .about-showcase-head{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:14px !important;
  }
  #about .about-reveal-final,
  #about .about-showcase-head .btn{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    flex:1 1 auto !important;
    white-space:normal !important;
  }
  #about .about-showcase-head h3{
    overflow-wrap:anywhere;
    font-size:clamp(1.7rem, 8vw, 2.2rem) !important;
  }

  .portrait{
    height:min(420px, 78vw);
  }

  #services-page .services-detail-hero-inner{
    transform:translateY(-80px);
    margin-bottom:-80px;
  }

  #contact .booking-contact-actions a,
  .modern-booking-time-grid .booking-time,
  #contact [data-choice-group] button{
    min-height:44px;
  }
}

@media (max-width:520px){
  #services-page .services-detail-hero-inner{
    transform:translateY(-48px);
    margin-bottom:-48px;
  }
}

@media (max-width:680px){
  #contact .booking-editorial h3{
    font-size:clamp(1.85rem, 8.4vw, 2.7rem);
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #contact .booking-editorial h3 span{
    white-space:normal;
    overflow-wrap:anywhere;
  }
}

@media (max-width:400px){
  .booking-weekdays,
  .booking-month-grid{
    gap:4px;
  }
  .booking-day{
    min-height:44px;
    aspect-ratio:auto;
    padding:10px 0;
    border-radius:12px;
  }
}

@media (max-width:360px){
  #home .hero-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }
  #home .hero-actions .btn{
    width:100%;
    max-width:100%;
  }
  #about .about-reveal-final{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .legal-page h1{
    font-size:clamp(1.25rem,7.2vw,1.55rem);
    line-height:1.18;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
}


/* =========================================================
   QA 9.3.8 — desktop chrome (>1050). Match v8.13.1 look 1:1.
   Content column stays --max:1180px. Brand = 74px psi + 145px
   wordmark. Menu starts AFTER brand — no signature overlap.
   ========================================================= */
@media (min-width:1051px){
  header .nav{
    max-width:min(1360px, calc(100% - 32px)) !important;
    width:min(1360px, calc(100% - 32px)) !important;
    justify-content:flex-start !important;
    gap:10px !important;
  }
  header .header-brand-cluster{
    display:inline-flex !important;
    align-items:center !important;
    gap:10px !important;
    flex:0 0 auto !important;
    margin-right:14px !important;
    padding-right:4px !important;
    min-width:0 !important;
    max-width:none !important;
    height:74px !important;
    overflow:visible !important;
    transform:none !important;
    position:relative !important;
    z-index:2 !important;
  }
  header .brand{
    flex:0 0 auto !important;
    display:flex !important;
    align-items:center !important;
    gap:0 !important;
    min-width:0 !important;
    width:max-content !important;
    max-width:none !important;
    height:74px !important;
    transform:none !important;
    overflow:visible !important;
    position:relative !important;
    z-index:2 !important;
    margin-right:0 !important;
    padding-right:0 !important;
  }
  header .header-logo-hover{
    flex:0 0 68px !important;
    width:68px !important;
    height:68px !important;
  }
  header.is-scrolled .header-logo-hover{
    flex-basis:56px !important;
    width:56px !important;
    height:56px !important;
  }
  header .brand-lockup{
    flex:0 0 auto !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    width:145px !important;
    max-width:145px !important;
    min-width:145px !important;
    height:auto !important;
    transform:none !important;
    position:relative !important;
    overflow:visible !important;
  }
  header .signature-wordmark{
    width:145px !important;
    max-width:145px !important;
    min-width:145px !important;
    height:auto !important;
    display:block !important;
    object-fit:contain !important;
  }
  header .menu{
    flex:1 1 auto !important;
    /* Start AFTER brand — never pack to the right then spill left. */
    justify-content:flex-start !important;
    min-width:0 !important;
    gap:6px !important;
    overflow:hidden !important;
    position:relative !important;
    z-index:1 !important;
  }
  header .nav:has(.item:hover) .menu,
  header .nav:has(.item:focus-within) .menu,
  header .nav:has(.item.menu-open) .menu{
    overflow:visible !important;
  }
  header .menu > .item{
    flex:0 0 auto !important;
    align-self:stretch !important;
    display:flex !important;
    align-items:center !important;
    padding:0 !important;
  }
  header .menu > .item > a{
    font-size:.76rem !important;
    padding-left:3px !important;
    padding-right:3px !important;
  }
  header .actions{
    flex:0 0 auto !important;
    margin-left:auto !important;
    gap:6px !important;
    max-width:none !important;
  }
  /* Compact flag language control — dropdown keeps all 3 languages without crowding nav. */
  header .header-lang-toggle{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
  }
  header .header-phone-pill{
    padding:8px 11px !important;
    font-size:.78rem !important;
  }
  header .social{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
  }
  header .item > .dropdown{
    z-index:40;
    pointer-events:none;
    top:100% !important;
    margin-top:0 !important;
    transform:translateY(0) !important;
  }
  header .item > .dropdown::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-20px;
    height:20px;
  }
  header .item:hover > .dropdown,
  header .item:focus-within > .dropdown,
  header .item.menu-open > .dropdown{
    opacity:1 !important;
    visibility:visible !important;
    transform:translateY(0) !important;
    pointer-events:auto;
  }
  header.menus-closed .item:hover > .dropdown,
  header.menus-closed .item:focus-within > .dropdown,
  header.menus-closed .item.menu-open > .dropdown,
  header.menus-closed .item > .dropdown{
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:translateY(0) !important;
  }
  header .item:focus-within > .dropdown{
    transition-duration:0s !important;
  }

  /* Match original hero top padding; keep scroll margin under sticky bubble */
  #home.hero{
    scroll-margin-top:96px;
    padding-top:86px !important;
  }
}


/* Booking dock BOTTOM-RIGHT — phone + call flush to far right on laptop/16:9. */
@media (min-width:1051px) and (max-width:1440px){
  :root{
    --dd-booking-float-bottom:16px;
  }
  .booking-float,
  .booking-float.is-compact{
    right:max(16px, env(safe-area-inset-right,0px)) !important;
    left:auto !important;
    min-width:0 !important;
  }
  .booking-float.is-compact{
    transform:none;
  }
  .booking-float .booking-cta{
    min-width:0 !important;
    padding:10px 20px !important;
  }
  .back-to-top-bubble{
    bottom:96px;
  }
  #home .hero{
    padding-bottom:120px;
  }
  #services{
    padding-bottom:132px !important;
  }

  body:has(#home.is-active) .booking-float,
  body:has(#home.is-active) .booking-float.is-compact{
    right:max(16px, env(safe-area-inset-right,0px)) !important;
    left:auto !important;
    z-index:900 !important;
  }
  body:has(#home.is-active) #home .hero{
    padding-bottom:92px;
  }
  body:has(#home.is-active){
    --dd-booking-float-bottom:16px;
    --dd-booking-float-height:68px;
  }
}

/* Ultra-wide desktops (>1440px) still need the back-to-top bubble lifted clear
   of the booking dock — the 1051-1440 rule above stops applying past 1440px. */
@media (min-width:1441px){
  .back-to-top-bubble{
    bottom:96px;
  }
}

/* Contact page: phone/call dock stays BOTTOM-RIGHT. */
@media (min-width:1051px){
  body:has(#contact-page.is-active) .booking-float,
  body:has(#contact-page.is-active) .booking-float.is-compact{
    right:max(16px, env(safe-area-inset-right,0px)) !important;
    left:auto !important;
  }
  body:has(#contact-page.is-active){
    --dd-booking-float-bottom:16px;
    --dd-booking-float-height:68px;
  }
  #contact.booking-section{
    padding-bottom:140px !important;
  }
}

/* =========================================================
   QA 9.3.8 — splash loader = v8.13.1 (whole psi mark, no circle crop).
   ========================================================= */
body.is-booting{
  overflow:hidden;
}

/* Match v8.13.1 consolidated loader — full psi mark, no circle crop */
#site-loader .loader-mark{
  position:relative !important;
  width:150px !important;
  height:150px !important;
  overflow:visible !important;
  display:grid !important;
  place-items:center !important;
}

#site-loader .loader-head,
#site-loader .loader-brain{
  position:absolute !important;
  inset:0 !important;
  margin:auto !important;
  width:128px !important;
  height:128px !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
  object-fit:contain !important;
}

#site-loader .loader-head{
  z-index:2 !important;
  opacity:1 !important;
  transform:scale(1) !important;
  animation:none !important;
  filter:none !important;
}

#site-loader .loader-brain{
  z-index:4 !important;
  opacity:0;
  transform:scale(.82);
  transform-origin:50% 31% !important;
  animation:brainBreathingWorking .72s ease-in-out 0s infinite !important;
  will-change:opacity,transform,filter;
}

@keyframes brainBreathingWorking{
  0%{opacity:0;transform:scale(.82);filter:drop-shadow(0 0 0 rgba(150,105,45,0))}
  20%{opacity:.25;transform:scale(.90)}
  48%{opacity:1;transform:scale(1.09);filter:drop-shadow(0 0 7px rgba(150,105,45,.95)) drop-shadow(0 0 15px rgba(150,105,45,.55))}
  68%{opacity:.72;transform:scale(1.01)}
  86%{opacity:.18;transform:scale(.90)}
  100%{opacity:0;transform:scale(.82);filter:drop-shadow(0 0 0 rgba(150,105,45,0))}
}

@keyframes brainBreathingSoft{
  0%,100%{opacity:.12;transform:scale(.96);filter:none}
  50%{opacity:.48;transform:scale(1.03);filter:drop-shadow(0 0 5px rgba(150,105,45,.28))}
}

#site-loader .loader-identity{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  margin-top:10px;
  opacity:0;
  transform:translateY(8px);
  animation:loaderIdentityIn .4s ease-out .28s forwards;
  overflow:visible !important;
  max-width:min(320px, 90vw);
}

/* Full handwritten signature on splash — never handwrite-mask crop. */
#site-loader .loader-signature,
#site-loader.replay-text .loader-signature{
  display:block !important;
  width:min(280px, 78vw) !important;
  max-width:280px !important;
  height:auto !important;
  opacity:1 !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
  -webkit-mask-size:100% 100% !important;
  mask-size:100% 100% !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
  animation:none !important;
  filter:none !important;
}

#site-loader .loader-profession{
  opacity:0;
  transform:translateY(6px);
  letter-spacing:.28em;
  animation:none;
}

#site-loader.replay-text .loader-profession{
  animation:loaderProfessionReveal .48s cubic-bezier(.2,.8,.2,1) 1.05s forwards !important;
}

#site-loader .loader-name{display:none !important}

/* Phone/call booking dock sits BOTTOM-RIGHT on desktop. */
:root{
  --dd-header-offset:96px;
  --dd-booking-float-bottom:24px;
  --dd-booking-float-height:68px;
  /* Page scroll clearance so the fixed dock never covers last lines of copy. */
  --dd-page-float-clear:calc(
    var(--dd-booking-float-bottom) + var(--dd-booking-float-height)
    + 28px + env(safe-area-inset-bottom,0px)
  );
}
@media (min-width:1051px){
  body:not(.admin-route){
    padding-bottom:var(--dd-page-float-clear);
    scroll-padding-bottom:var(--dd-page-float-clear);
  }
  body:not(.admin-route) footer{
    padding-bottom:calc(28px + var(--dd-page-float-clear));
  }
}
/* Re-assert mid-desktop dock inset AFTER the base :root block (cascade). */
@media (min-width:1051px) and (max-width:1440px){
  :root{
    --dd-booking-float-bottom:16px;
  }
}
/* While open: hide FAB (no collision) and reclaim the FAB band for the panel. */
@media (prefers-reduced-motion:reduce){
}
/* Narrow stem + tip pointing at the FAB icon center.
   Drawn on the FAB (not the clipped panel) so overflow:hidden is safe. */
/* Stem rising from the FAB into the bubble (only while open; shine uses ::after when closed). */
@media (min-width:1051px){
  :root{
    --dd-header-offset:88px;
  }
  body:has(.booking-float.is-compact){
    --dd-booking-float-height:56px;
  }
  /* Phone/call dock flush to the far-right viewport edge. */
  body:not(.admin-route) .booking-float{
    right:max(16px, env(safe-area-inset-right,0px)) !important;
    left:auto !important;
    bottom:calc(var(--dd-booking-float-bottom) + env(safe-area-inset-bottom,0px)) !important;
  }
}
@media (max-width:1050px){
  :root{
    --dd-header-offset:calc(72px + env(safe-area-inset-top,0px));
    --dd-booking-float-bottom:12px;
    --dd-booking-float-height:62px;
    /* 92px → ~12–14px clear above bookingFloat (was 86 → ~6px on tablet/short). */
  }
  /* Full-bleed bubble on phones; stem still targets corner FAB. */
}

@media (max-width:1050px){
  #quick-links{
    --dd-float-clear-right:calc(72px + env(safe-area-inset-right,0px));
  }
}
/* Tablet / landscape hamburger range: keep a readable chat column, not a 1000px sheet. */
@media (min-width:641px) and (max-width:1050px){
}

/* Compact bubble on tablet+desktop — bottom-anchored, capped height (no full-bleed tower).
   Phones (≤640) keep the stretch-under-header sheet for usable chat space. */
@media (min-width:641px){
  :root{
  }
}
@media (min-width:1051px){
  :root{
  }
}

/* Short landscape (16:9 phones): keep conversation usable */
@media (max-height:500px) and (orientation:landscape){
  :root{
    --dd-header-offset:calc(52px + env(safe-area-inset-top,0px));
  }
  /* Keep chips navigable on short landscape — compact row, not hidden. */
}

/* Compact phones / short portrait (e.g. 320×568): shrink chrome, keep messages scrollable */
@media (max-width:360px), (max-height:640px) and (max-width:480px){
}

@keyframes homePortraitEnter{
  from{opacity:0;transform:translate3d(0,20px,0) scale(.975)}
  to{opacity:1;transform:translate3d(0,0,0) scale(1)}
}
@keyframes homePortraitBreath{
  0%,100%{transform:translate3d(0,0,0)}
  50%{transform:translate3d(0,-5px,0)}
}
@keyframes homePortraitFade{
  from{opacity:0}
  to{opacity:1}
}

#home .portrait{
  opacity:0;
  transform:translate3d(0,18px,0) scale(.975);
  will-change:transform,opacity;
}

body.home-ready #home.is-active .portrait{
  animation:
    homePortraitEnter .95s cubic-bezier(.22,1,.36,1) .08s both,
    homePortraitBreath 7.2s ease-in-out 1.15s infinite;
}

@media (max-width:1050px){
  body.home-ready #home.is-active .portrait{
    animation:
      homePortraitEnter .85s cubic-bezier(.22,1,.36,1) .05s both,
      homePortraitBreath 6.8s ease-in-out 1s infinite;
  }
}

@media (max-height:360px) and (orientation:landscape){
  body.home-ready #home.is-active .portrait{
    animation:none !important;
  }
}

@media (prefers-reduced-motion:reduce){
  body.is-booting{overflow:auto}
  #site-loader .loader-head{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    clip-path:none !important;
    -webkit-clip-path:none !important;
  }
  #site-loader .loader-brain{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    clip-path:none !important;
    -webkit-clip-path:none !important;
  }
  #site-loader .loader-identity,
  #site-loader .loader-signature,
  #site-loader.replay-text .loader-signature,
  #site-loader .loader-profession,
  #site-loader.replay-text .loader-profession{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    -webkit-mask-image:none !important;
    mask-image:none !important;
    -webkit-mask-size:100% 100% !important;
    mask-size:100% 100% !important;
  }
  #home .portrait,
  body.home-ready #home.is-active .portrait{
    opacity:1 !important;
    transform:none !important;
    animation:homePortraitFade .35s ease both !important;
  }
}

/* Privacy consent + necessary-cookie notice (QA 9.3.3) */
.privacy-consent{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:14px 0 6px;
  padding:12px 14px;
  border:1px solid rgba(84,67,59,.16);
  border-radius:14px;
  background:rgba(249,246,241,.6);
  font-size:.92rem;
  line-height:1.45;
  color:#4a433c;
  cursor:pointer;
}
.privacy-consent input{
  flex:0 0 auto;
  width:22px;
  height:22px;
  min-width:22px;
  margin:1px 0 0;
  accent-color:var(--green-dark);
  cursor:pointer;
}
.privacy-consent a{ color:inherit; text-decoration:underline; }
.privacy-consent:has(input:focus-visible){
  outline:2px solid var(--green-dark);
  outline-offset:2px;
}
.privacy-consent.is-missing-field,
.is-missing-field .privacy-consent{
  border-color:#b3402f;
  background:rgba(179,64,47,.06);
}
#contact .booking-consent-panel{
  margin:18px 0 10px;
  padding:18px;
  border:1px solid rgba(41,79,76,.22);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(238,243,241,.96),rgba(255,253,249,.98));
  box-shadow:0 10px 26px rgba(41,79,76,.07);
}
#contact .booking-consent-panel.is-missing-field{
  border-color:#b3402f;
  box-shadow:0 0 0 3px rgba(179,64,47,.1);
}
#contact .booking-consent-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 6px;
}
#contact .booking-consent-heading strong{
  color:#243d35;
  font-size:1rem;
  line-height:1.3;
}
#contact .booking-consent-heading>span{
  flex:0 0 auto;
  padding:5px 9px;
  border-radius:999px;
  background:#294f4c;
  color:#fff;
  font:800 .68rem/1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.06em;
}
#contact .booking-consent-help{
  margin:0 0 12px;
  color:#625b54;
  font-size:.88rem;
  line-height:1.45;
}
#contact .booking-privacy-consent{
  margin:0;
  padding:16px;
  border-color:rgba(41,79,76,.2);
  background:#fff;
  font-size:.94rem;
  gap:14px;
  align-items:flex-start;
  min-width:0;
  min-height:52px;
}
#contact .booking-privacy-consent > span{
  flex:1 1 auto;
  min-width:0;
  overflow-wrap:anywhere;
}
#contact .booking-privacy-consent input{
  width:28px;
  height:28px;
  min-width:28px;
  min-height:28px;
  margin:2px 0 0;
  flex:0 0 auto;
}
#contact .booking-privacy-consent a{
  color:#1f5b57;
  font-weight:750;
  text-underline-offset:3px;
}
#contact .booking-consent-error{
  min-height:0;
  margin:0;
  color:#9a3326;
  font-size:.84rem;
  font-weight:700;
  line-height:1.4;
}
#contact .booking-consent-error:not(:empty){margin-top:9px}
#contact .booking-consent-panel + .form-legal-note{
  margin-top:14px;
}
@media (max-width:620px){
  #contact .booking-consent-panel{
    margin:14px 0 8px;
    padding:14px;
    border-radius:16px;
  }
  #contact .booking-consent-heading{
    align-items:flex-start;
    gap:9px;
    flex-wrap:wrap;
  }
  #contact .booking-consent-heading strong{font-size:.94rem;min-width:0}
  #contact .booking-consent-heading>span{font-size:.62rem;padding:5px 7px}
  #contact .booking-privacy-consent{
    gap:12px;
    padding:14px 12px;
    font-size:.9rem;
    min-height:56px;
  }
  #contact .booking-privacy-consent input{
    width:28px;
    height:28px;
    min-width:28px;
    min-height:28px;
  }
}
/* While consent gate is up, free vertical room for the hello bubble + accept CTA */
.form-legal-note{
  margin:8px 0 14px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(54,100,96,.14);
  background:rgba(238,243,241,.85);
  color:#4a433c;
  font-size:.86rem;
  line-height:1.5;
}
.necessary-cookie-notice{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1600;
  display:flex;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  width:100%;
  max-width:none;
  margin:0;
  padding:15px max(18px,env(safe-area-inset-right,0px)) calc(15px + env(safe-area-inset-bottom,0px)) max(18px,env(safe-area-inset-left,0px));
  border-radius:18px 18px 0 0;
  border:1px solid rgba(54,100,96,.18);
  border-bottom:0;
  background:rgba(249,246,241,.96);
  color:#2f2a26;
  box-shadow:0 -12px 32px rgba(29,39,36,.16);
  box-sizing:border-box;
  backdrop-filter:blur(14px);
}
.necessary-cookie-notice p{ margin:0; flex:1 1 220px; font-size:.9rem; line-height:1.4; }
.necessary-cookie-notice a{ color:inherit; text-decoration:underline; }
.necessary-cookie-notice-btn{
  border:0;
  border-radius:999px;
  padding:10px 16px;
  background:var(--green-dark);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  flex:0 0 auto;
}
@media (max-width:1050px){
  .necessary-cookie-notice{
    gap:10px;
    padding:13px max(14px,env(safe-area-inset-right,0px)) calc(13px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));
    border-radius:16px 16px 0 0;
  }
  .necessary-cookie-notice p{flex:1 1 100%;font-size:.82rem;line-height:1.4}
  .necessary-cookie-notice-btn{width:100%;min-height:44px}
}

/* ===== SCROLL STABILITY =====
   Keep overflow-anchor off on early home sections so progressive reveals
   (methodology / education sticky pin / about) cannot drag the viewport via
   browser scroll anchoring. Education uses sticky + scroll-progress mapping. */
html{
  overflow-anchor:none;
}
#home,
#my-perspective-home,
#journey,
#about,
#services,
#help,
#quick-links,
#contact,
#faq-home{
  overflow-anchor:none;
}

/* Homepage services — static, no scroll reveal. */
#services .service-reference-card.services-home-reveal{
  opacity:1;
  transform:none;
  transition:box-shadow .22s ease, border-color .22s ease;
}
#services .service-reference-card.services-home-reveal.is-revealed{
  opacity:1;
  transform:translateY(0);
}
@media (max-width:1050px), (prefers-reduced-motion:reduce){
  #services .service-reference-card.services-home-reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* ===== DD MOTION — scroll presence (IO + CSS; no wheel pins) =====
   Complements progressive methodology/journey/about reveals.
   Only active when html.dd-motion-on is set by ux.js. */
html.dd-motion-on body:not(.admin-route) .dd-motion:not(.is-inview){
  opacity:0;
  transform:translate3d(0,14px,0);
}
html.dd-motion-on body:not(.admin-route) .dd-motion{
  transition:
    opacity .66s cubic-bezier(.22,.8,.28,1) var(--dd-delay,0ms),
    transform .72s cubic-bezier(.22,.8,.28,1) var(--dd-delay,0ms);
  will-change:opacity,transform;
}
html.dd-motion-on body:not(.admin-route) .dd-motion.is-inview{
  opacity:1;
  transform:none;
  will-change:auto;
}

/* Brand underline draw (existing span::after hairlines) */
html.dd-motion-on body:not(.admin-route) .dd-motion-line span::after{
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .72s cubic-bezier(.22,.8,.28,1) calc(var(--dd-delay,0ms) + 160ms);
}
html.dd-motion-on body:not(.admin-route) .dd-motion-line.is-inview span::after,
html.dd-motion-on body:not(.admin-route) .dd-motion-line.is-inview.dd-motion span::after{
  transform:scaleX(1);
}
/* Contact / FAQ underlines keep a slight tilt once drawn */
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial.dd-motion-line h3 span::after,
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial h3.dd-motion-line span::after{
  transform:scaleX(0) rotate(-1deg);
}
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial.dd-motion-line.is-inview h3 span::after,
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial h3.dd-motion-line.is-inview span::after{
  transform:scaleX(1) rotate(-1deg);
}
/* Contact heading has no accent <span> in markup — draw a short gold rule */
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial h3.dd-motion-line:not(:has(span))::after{
  content:"";
  display:block;
  width:min(11rem,46%);
  height:3px;
  margin-top:.42em;
  border-radius:99px;
  background:#c3a06a;
  transform:scaleX(0) rotate(-1deg);
  transform-origin:left center;
  transition:transform .72s cubic-bezier(.22,.8,.28,1) calc(var(--dd-delay,0ms) + 140ms);
}
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial h3.dd-motion-line.is-inview:not(:has(span))::after{
  transform:scaleX(1) rotate(-1deg);
}

/* Help editorial gold rule */
html.dd-motion-on body:not(.admin-route) #help .help-editorial-side.dd-motion-line .help-editorial-line{
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .7s cubic-bezier(.22,.8,.28,1) calc(var(--dd-delay,0ms) + 120ms);
}
html.dd-motion-on body:not(.admin-route) #help .help-editorial-side.dd-motion-line.is-inview .help-editorial-line{
  transform:scaleX(1);
}

/* Short kicker accent bars (home + subpage copy) */
html.dd-motion-on body:not(.admin-route) .dd-motion-accent{
  position:relative;
}
html.dd-motion-on body:not(.admin-route) .dd-motion-accent::after{
  content:"";
  display:block;
  width:2.55rem;
  height:2px;
  margin-top:10px;
  border-radius:99px;
  background:var(--green-dark,#294f4c);
  opacity:.88;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .64s cubic-bezier(.22,.8,.28,1) calc(var(--dd-delay,0ms) + 120ms);
}
html.dd-motion-on body:not(.admin-route) #contact .booking-editorial > .kicker.dd-motion-accent::after{
  background:#c3a06a;
}
html.dd-motion-on body:not(.admin-route) .dd-motion-accent.is-inview::after{
  transform:scaleX(1);
}

/* Soften subpage reveals to match brand easing */
#psychologist-page [data-psych-reveal]{
  transition:
    opacity .7s cubic-bezier(.22,.8,.28,1),
    transform .76s cubic-bezier(.22,.8,.28,1);
}
#services-page .services-reveal{
  transition:
    opacity .7s cubic-bezier(.22,.8,.28,1) var(--reveal-delay,0ms),
    transform .76s cubic-bezier(.22,.8,.28,1) var(--reveal-delay,0ms);
}

/* Kicker accent line on psych / services when revealed */
#psychologist-page [data-psych-reveal] .kicker,
#services-page .services-reveal .kicker{
  position:relative;
}
#psychologist-page [data-psych-reveal] .kicker::after,
#services-page .services-reveal .kicker::after{
  content:"";
  display:block;
  width:2.6rem;
  height:2px;
  margin-top:10px;
  border-radius:99px;
  background:var(--green-dark,#294f4c);
  opacity:.85;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .65s cubic-bezier(.22,.8,.28,1) .18s;
}
#psychologist-page [data-psych-reveal].is-visible .kicker::after,
#services-page .services-reveal.is-visible .kicker::after{
  transform:scaleX(1);
}

@media (prefers-reduced-motion:reduce){
  html.dd-motion-on body:not(.admin-route) .dd-motion,
  html.dd-motion-on body:not(.admin-route) .dd-motion:not(.is-inview){
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    will-change:auto !important;
  }
  html.dd-motion-on body:not(.admin-route) .dd-motion-line span::after,
  html.dd-motion-on body:not(.admin-route) #contact .booking-editorial h3.dd-motion-line:not(:has(span))::after,
  html.dd-motion-on body:not(.admin-route) #help .help-editorial-side.dd-motion-line .help-editorial-line,
  html.dd-motion-on body:not(.admin-route) .dd-motion-accent::after,
  #psychologist-page [data-psych-reveal] .kicker::after,
  #services-page .services-reveal .kicker::after{
    transform:none !important;
    transition:none !important;
  }
  #psychologist-page [data-psych-reveal],
  #services-page .services-reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}

/* =========================================================
   Shared pill / button label fit (EL / EN / DE)
   Keep labels centered inside pills; no bleed. Prefer content
   width + padding; wrap only when needed. Do not change
   floating chrome geometry — only hide labels when icon-only.
   ========================================================= */
.btn,
.booking-submit,
.booking-primary,
.booking-choice,
#contact .booking-time,
.modern-booking-time-grid .booking-time,
#contact .booking-contact-actions a,
#contact .booking-contact-inline a,
.page-end-actions a,
.help-editorial-btn,
.services-all-btn,
.journey-more-btn,
.necessary-cookie-notice-btn,
.mobile-book,
.contact-phone-pill,
.contact-email-pill,

.btn,
.booking-submit,
.booking-primary,
.mobile-book,
.page-end-actions a,
.help-editorial-btn,
.services-all-btn,
.journey-more-btn,
.necessary-cookie-notice-btn,
.booking-month-empty{
  white-space:normal;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:manual;
}

.booking-choice,
#contact .booking-time,
.modern-booking-time-grid .booking-time,

#contact .booking-contact-actions a,
#contact .booking-contact-inline a{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  width:auto;
  max-width:100%;
  padding-left:18px;
  padding-right:18px;
}

.booking-month-empty{
  display:flex;
  width:100%;
  overflow-wrap:break-word;
}
/* Must beat any display:!important — [hidden] alone loses to display:flex !important */
.booking-month-empty[hidden]{
  display:none !important;
}

/* Booking float: CTA can ellipsize; phone number must stay fully visible */
.booking-float .booking-phone,
.booking-float .booking-cta,
.booking-float .booking-dock-home{
  box-sizing:border-box !important;
  text-align:center !important;
}
.booking-float .booking-cta,
.booking-float .booking-dock-home{
  min-width:0 !important;
  overflow:hidden !important;
}
.booking-float .booking-phone{
  min-width:max-content !important;
  flex-shrink:0 !important;
  overflow:visible !important;
}
.booking-float .booking-cta .booking-label,
.booking-float .booking-dock-home > span:not(.booking-icon){
  display:block !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  text-align:center !important;
  line-height:1.15 !important;
}
.booking-float .booking-phone .booking-label{
  display:block !important;
  max-width:none !important;
  width:max-content !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
  text-align:center !important;
  line-height:1.15 !important;
  font-size:clamp(.7rem, .52rem + 0.85vw, .9rem) !important;
  letter-spacing:0 !important;
}
@media (min-width:1051px) and (max-width:1440px){
  .booking-float .booking-cta{
    max-width:min(240px, calc(100vw - 48px)) !important;
  }
  .booking-float .booking-cta .booking-label{
    font-size:clamp(.78rem, 1.05vw, .96rem) !important;
  }
  .booking-float .booking-phone .booking-label{
    font-size:clamp(.74rem, .9vw, .9rem) !important;
  }
}

/* Icon-only header pills (≤1050): clip any label so EL/EN/DE never paints outside */
@media (max-width:1050px){
  body:not(.admin-route) header .header-phone-pill{
    overflow:hidden !important;
  }
  body:not(.admin-route) header .header-phone-pill > span:not(.header-phone-icon){
    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;
    clip-path:inset(50%) !important;
    white-space:nowrap !important;
    border:0 !important;
  }
}

.dd-visually-hidden{
  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;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* ===== TOP BAR FIT — EL/EN/DE, all controls visible, no overflow =====
   CSS/layout only. Do not alter #headerLangToggle / #mobileMenuToggle JS. */
@media (min-width:1051px){
  header .nav{
    display:flex !important;
    align-items:center !important;
    flex-wrap:nowrap !important;
    min-width:0 !important;
    /* Beat .container --max:1180 so logo|menu|socials|lang|phone fit. */
    width:min(1360px, calc(100% - 32px)) !important;
    max-width:min(1360px, calc(100% - 32px)) !important;
  }
  header .header-brand-cluster{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    flex:0 0 auto !important;
    min-width:0 !important;
    height:auto !important;
    max-width:none !important;
    overflow:visible !important;
    transform:none !important;
  }
  header .brand,
  header .brand-lockup,
  header .actions{
    flex:0 0 auto !important;
  }
  header .menu{
    flex:1 1 auto !important;
    min-width:0 !important;
    flex-wrap:nowrap !important;
    /* Clip spill into .actions; dropdowns re-enable via :has(.item:hover) above */
    overflow:hidden !important;
  }
  header .nav:has(.item:hover) .menu,
  header .nav:has(.item:focus-within) .menu,
  header .nav:has(.item.menu-open) .menu{
    overflow:visible !important;
  }
  header .menu > .item > a{
    overflow:visible !important;
  }
  /* Help pill: grow with label (EN/DE short), never clip into Contact */
  header .menu > .item > a.help-menu-short,
  header .menu > .item > a.help-menu-short:hover{
    width:auto !important;
    max-width:none !important;
    overflow:hidden !important;
  }
  header .help-menu-short-label,
  header .help-menu-short-q{
    transform:none !important;
    white-space:nowrap !important;
  }
  /* Language: flag icon only — code stays in DOM for syncHeaderLangCycle */
  header .header-lang-toggle{
    width:40px !important;
    min-width:40px !important;
    max-width:40px !important;
    padding:0 !important;
    gap:0 !important;
  }
  header .header-lang-code,
  header .header-lang-caret{
    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;
  }
  header .actions{
    display:inline-flex !important;
    align-items:center !important;
    flex:0 0 auto !important;
    flex-shrink:0 !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    margin-left:auto !important;
    min-width:max-content !important;
    position:relative !important;
    z-index:3 !important;
    padding-left:8px !important;
    background:#f9f6f1 !important;
    isolation:isolate !important;
  }
  header .actions .social{
    position:static !important;
    flex:0 0 auto !important;
  }
}

@media (min-width:1051px) and (max-width:1280px){
  header .nav{
    gap:8px !important;
    padding:0 12px !important;
  }
  header .menu{
    gap:4px !important;
  }
  header .menu > .item > a{
    font-size:.78rem !important;
    padding-left:4px !important;
    padding-right:4px !important;
  }
  header .menu > .item > a.help-menu-short,
  header .menu > .item > a.help-menu-short:hover{
    min-width:0 !important;
    padding:0 9px !important;
  }
  header .brand-lockup{
    max-width:128px !important;
  }
  header .signature-wordmark{
    width:128px !important;
    max-width:128px !important;
  }
  header .header-phone-pill{
    padding:8px 10px !important;
    font-size:.76rem !important;
  }
  /* Drop social row until wide desktops — keeps nav + lang + phone clean. */
  header .actions .social{
    display:none !important;
  }
  header .social{
    width:32px !important;
    height:32px !important;
    min-width:32px !important;
  }
}

/* Mobile/tablet: keep every chrome control painted and unclipped */
@media (max-width:1050px){
  body:not(.admin-route) header .nav{
    overflow:visible !important;
  }
  body:not(.admin-route) header .actions{
    flex-shrink:0 !important;
    min-width:max-content !important;
  }
  body:not(.admin-route) header .header-phone-pill,
  body:not(.admin-route) header .header-lang-toggle,
  body:not(.admin-route) .mobile-menu-toggle{
    flex-shrink:0 !important;
  }
}

/* Stem wins over attention ring while the panel is open */
@media (prefers-reduced-motion:reduce){
}

/* —— Scroll promo banner (v9.5.1) —— */
.scroll-promo{
  position:fixed;
  z-index:1300;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:min(420px,calc(100vw - 32px));
  max-height:min(78vh,520px);
  padding:22px 22px 18px;
  border-radius:20px;
  background:#fffdf9;
  border:1px solid rgba(54,95,89,.16);
  box-shadow:0 22px 60px rgba(29,39,36,.26);
  color:var(--brown-dark);
  font-family:Georgia,"Times New Roman",serif;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.scroll-promo[hidden]{display:none!important}
.scroll-promo-backdrop{
  position:fixed;
  inset:0;
  z-index:1290;
  background:rgba(41,45,42,.38);
  border:0;
  padding:0;
  margin:0;
  cursor:pointer;
}
.scroll-promo-backdrop[hidden]{display:none!important}
body.scroll-promo-open{overflow:hidden}
body.scroll-promo-open #bookingFloat,
body.scroll-promo-open .booking-float,
body.scroll-promo-open #backToTopBubble,
body.scroll-promo-open .back-to-top-bubble{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.scroll-promo-close{
  position:absolute;
  top:10px;
  right:10px;
  width:36px;
  height:36px;
  border:0;
  border-radius:999px;
  background:rgba(41,79,76,.08);
  color:var(--green-dark);
  font:700 1.25rem/1 Georgia,"Times New Roman",serif;
  cursor:pointer;
}
.scroll-promo-close:hover{background:rgba(41,79,76,.14)}
.scroll-promo-kicker{
  margin:0 28px 0 0;
  font:800 .72rem/1.2 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--brown);
}
.scroll-promo-title{
  margin:0 28px 0 0;
  font-size:clamp(1.35rem,3.4vw,1.7rem);
  line-height:1.2;
  letter-spacing:-.02em;
  color:var(--green-dark);
}
.scroll-promo-copy{
  margin:0;
  font-size:1rem;
  line-height:1.5;
  color:var(--brown);
}
.scroll-promo-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}
.scroll-promo-actions a{
  flex:1 1 140px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:10px 16px;
  border-radius:999px;
  text-decoration:none;
  font:700 .95rem/1.2 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  box-sizing:border-box;
}
.scroll-promo-book{
  background:var(--green-dark);
  color:#fff;
}
.scroll-promo-call{
  background:transparent;
  color:var(--green-dark);
  border:1.5px solid rgba(41,79,76,.35);
}
/* Landscape 16:9-ish: keep clear of header + side chrome */
@media (min-aspect-ratio:16/10) and (min-width:900px){
  .scroll-promo{
    top:52%;
    width:min(440px,38vw);
  }
}
/* Portrait 9:16 phones: dock above cookie/FAB, full-bleed card */
@media (max-aspect-ratio:10/16){
  .scroll-promo{
    left:16px;
    right:16px;
    width:auto;
    top:auto;
    bottom:max(88px, calc(16px + env(safe-area-inset-bottom, 0px)));
    transform:none;
  }
}
@media (prefers-reduced-motion:reduce){
  .scroll-promo{transition:none}
}

/* Multi-step booking wizard */
#contact .booking-panel,
#contact .booking-wizard{
  max-width:100%;
  overflow:visible;
}
#contact .booking-wizard-progress{
  /* Full-width evenly spaced dots; track behind with panel halo so the line never cuts dots. */
  --booking-progress-panel:#f8f7f3;
  --booking-progress-track:rgba(84,67,59,.16);
  display:flex;
  width:100%;
  max-width:100%;
  justify-content:space-between;
  align-items:center;
  gap:0;
  margin:0 0 12px;
  padding:4px 2px;
  position:relative;
  box-sizing:border-box;
  isolation:isolate;
}
#contact .booking-wizard-progress::before{
  content:"";
  position:absolute;
  left:calc(6px + 2px);
  right:calc(6px + 2px);
  top:50%;
  height:2px;
  margin-top:-1px;
  background:linear-gradient(
    90deg,
    rgba(84,67,59,.08),
    var(--booking-progress-track) 12%,
    var(--booking-progress-track) 88%,
    rgba(84,67,59,.08)
  );
  border-radius:999px;
  z-index:0;
  pointer-events:none;
}
#contact .booking-wizard-dot{
  position:relative;
  z-index:1;
  flex:0 0 auto;
  width:12px;
  height:12px;
  border-radius:50%;
  background:#dad6d2;
  box-shadow:0 0 0 4px var(--booking-progress-panel);
  transition:background .22s ease, transform .22s ease, box-shadow .22s ease;
}
#contact .booking-wizard-dot.is-active{
  background:#243d35;
  transform:scale(1.22);
  box-shadow:
    0 0 0 4px var(--booking-progress-panel),
    0 0 0 8px rgba(36,61,53,.12);
}
#contact .booking-wizard-dot.is-done{
  background:#5f857f;
}
#contact .booking-wizard-dot.is-pop{
  animation:booking-dot-pop .34s cubic-bezier(.22,1.1,.36,1);
}
#contact .booking-wizard-step-label{
  margin:0 0 16px;
  color:#66706a;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  text-align:center;
}
#contact .booking-wizard-step-label.is-swap{
  animation:booking-label-swap .3s ease both;
}
#contact .booking-screens-stage{
  display:grid;
  position:relative;
  overflow:hidden;
  min-width:0;
}
#contact .booking-screens-stage > .booking-screen{
  grid-area:1 / 1;
  min-width:0;
  width:100%;
}
#contact .booking-screen[hidden]{display:none!important}
#contact .booking-screen.is-entering.is-dir-forward{
  animation:booking-screen-in-forward .36s cubic-bezier(.22,.8,.28,1) both;
  z-index:2;
}
#contact .booking-screen.is-entering.is-dir-back{
  animation:booking-screen-in-back .36s cubic-bezier(.22,.8,.28,1) both;
  z-index:2;
}
#contact .booking-screen.is-leaving.is-dir-forward{
  animation:booking-screen-out-forward .3s ease both;
  pointer-events:none;
  z-index:1;
}
#contact .booking-screen.is-leaving.is-dir-back{
  animation:booking-screen-out-back .3s ease both;
  pointer-events:none;
  z-index:1;
}
@keyframes booking-screen-in-forward{
  from{opacity:0;transform:translateX(18px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes booking-screen-in-back{
  from{opacity:0;transform:translateX(-18px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes booking-screen-out-forward{
  from{opacity:1;transform:translateX(0)}
  to{opacity:0;transform:translateX(-14px)}
}
@keyframes booking-screen-out-back{
  from{opacity:1;transform:translateX(0)}
  to{opacity:0;transform:translateX(14px)}
}
@keyframes booking-dot-pop{
  0%{transform:scale(1)}
  45%{transform:scale(1.35)}
  100%{transform:scale(1.18)}
}
@keyframes booking-label-swap{
  from{opacity:.35;transform:translateY(4px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes booking-select-pop{
  0%{transform:scale(1)}
  40%{transform:scale(.94)}
  100%{transform:scale(1)}
}
@keyframes booking-btn-press{
  to{transform:scale(.97)}
}
#contact .booking-day.is-selected,
#contact .booking-time.is-selected,
.modern-booking-time-grid .booking-time.is-selected{
  animation:booking-select-pop .28s ease;
}
#contact .booking-wizard-nav{
  display:flex;
  gap:10px;
  flex-wrap:nowrap;
  align-items:stretch;
  margin-top:18px;
  width:100%;
  min-width:0;
}
#contact .booking-back,
#contact .booking-primary,
#contact .booking-new-request,
#contact .booking-retry{
  -webkit-appearance:none;
  appearance:none;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(84,67,59,.17);
  background:#f7f3ee;
  color:#243d35;
  min-height:48px;
  height:48px;
  padding:0 22px;
  border-radius:999px;
  font:inherit;
  font-size:.9rem;
  font-weight:750;
  line-height:1.2;
  cursor:pointer;
  text-align:center;
  white-space:normal;
  overflow-wrap:break-word;
  transition:transform .16s ease, background .18s ease, border-color .18s ease, opacity .18s ease, box-shadow .18s ease;
}
/* Secondary: cream outline pill — matched height/radius to primary. */
#contact .booking-back,
#contact .booking-retry{
  background:#f7f3ee;
  border-color:rgba(36,61,53,.22);
  color:#243d35;
  box-shadow:none;
}
#contact .booking-wizard-nav .booking-back{
  flex:0 1 auto;
  min-width:0;
  max-width:42%;
}
#contact .booking-primary,
#contact .booking-new-request{
  flex:1 1 auto;
  background:#243d35;
  border-color:#243d35;
  color:#fff;
  min-width:0;
  max-width:100%;
  box-shadow:0 8px 18px rgba(18,32,28,.16);
}
#contact .booking-wizard-nav.is-primary-alone #bookingPrimaryBtn:not([hidden]),
#contact .booking-wizard-nav:not(:has(#bookingBackBtn:not([hidden]))) #bookingPrimaryBtn:not([hidden]){
  flex:1 1 100%;
  max-width:100%;
}
#contact .booking-primary:disabled,
#contact .booking-new-request:disabled{
  opacity:.45;
  cursor:not-allowed;
}
#contact .booking-back:hover:not(:disabled),
#contact .booking-primary:hover:not(:disabled),
#contact .booking-new-request:hover:not(:disabled),
#contact .booking-retry:hover:not(:disabled){
  transform:translateY(-1px);
}
#contact .booking-back:active:not(:disabled),
#contact .booking-primary:active:not(:disabled),
#contact .booking-new-request:active:not(:disabled),
#contact .booking-retry:active:not(:disabled){
  transform:scale(.97);
}
#contact .booking-back:focus-visible,
#contact .booking-primary:focus-visible,
#contact .booking-new-request:focus-visible,
#contact .booking-retry:focus-visible,
#contact .booking-choice:focus-visible,
#contact .booking-time:focus-visible,
#contact .booking-month-nav:focus-visible,
#contact .booking-input:focus-visible,
#contact .booking-topic:focus-visible{
  outline:3px solid rgba(36,61,53,.28);
  outline-offset:3px;
}
#contact .booking-review-card{
  display:grid;
  gap:12px;
  padding:16px 18px;
  border-radius:16px;
  border:1px solid rgba(84,67,59,.14);
  background:rgba(255,253,249,.72);
  margin-bottom:16px;
}
/* Label | value — grid gap prevents jammed pairs like Ημερομηνία28. */
#contact .booking-review-row{
  display:grid;
  grid-template-columns:minmax(7.25rem,0.85fr) minmax(0,1.35fr);
  column-gap:16px;
  row-gap:4px;
  align-items:baseline;
  font-size:.9rem;
}
#contact .booking-review-row span{
  color:#69706b;
  font-weight:650;
  min-width:0;
  padding-right:4px;
}
#contact .booking-review-row strong{
  color:#272a28;
  font-weight:750;
  min-width:0;
  text-align:right;
  overflow-wrap:anywhere;
}
#contact .booking-result{
  padding:22px 18px;
  border-radius:18px;
  border:1px solid rgba(84,67,59,.14);
  text-align:center;
}
#contact .booking-result strong{
  display:block;
  margin-bottom:8px;
  font-size:1.05rem;
}
#contact .booking-result p{
  margin:0 0 16px;
  color:#4d5550;
  line-height:1.5;
}
#contact .booking-result-success{
  background:rgba(54,100,96,.08);
  border-color:rgba(54,100,96,.28);
}
#contact .booking-result-error{
  background:rgba(180,35,24,.06);
  border-color:rgba(180,35,24,.22);
}
#contact .booking-status.is-error{color:#b42318}

/* Hidden wizard screens/buttons must never paint — including mid-animation cleanup. */
#contact .booking-wizard-nav [hidden],
#contact .booking-back[hidden],
#contact .booking-primary[hidden],
#contact .booking-wizard-nav[hidden],
#contact .booking-screen[hidden],
#contact .booking-result[hidden],
#contact .booking-month-empty[hidden]{
  display:none !important;
}

@media(max-width:680px){
  #contact .booking-wizard-nav{
    display:flex;
    flex-wrap:nowrap;
    gap:8px;
  }
  #contact .booking-back,
  #contact .booking-retry{
    flex:0 1 auto;
    max-width:38%;
    padding-left:14px;
    padding-right:14px;
  }
  #contact .booking-primary,
  #contact .booking-new-request{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    padding-left:14px;
    padding-right:14px;
  }
  #contact .booking-wizard-nav.is-primary-alone #bookingPrimaryBtn:not([hidden]),
  #contact .booking-wizard-nav > #bookingPrimaryBtn:only-of-type:not([hidden]),
  #contact .booking-wizard-nav:not(:has(#bookingBackBtn:not([hidden]))) #bookingPrimaryBtn:not([hidden]){
    flex:1 1 100%;
    max-width:100%;
  }
  #contact .booking-review-row{
    grid-template-columns:minmax(6.5rem,0.78fr) minmax(0,1.22fr);
    column-gap:12px;
  }
  #contact .booking-consent-heading{
    flex-wrap:wrap;
  }
}

@media(max-width:375px){
  #contact .booking-panel{
    padding:20px 14px 18px;
    border-radius:22px;
  }
  #contact .booking-wizard-nav{
    gap:8px;
  }
  #contact .booking-back,
  #contact .booking-primary{
    min-height:48px;
    height:48px;
    font-size:.86rem;
  }
  .modern-booking-calendar{
    padding:10px;
  }
  .booking-weekdays,
  .booking-month-grid{
    gap:3px;
  }
}

@media(max-height:720px) and (min-aspect-ratio:16/10){
  #contact .booking-panel{
    padding:22px 24px 18px;
  }
  #contact .booking-step{
    padding:14px 0;
  }
  #contact .booking-wizard-step-label{
    margin-bottom:10px;
  }
  #contact .booking-wizard-nav{
    margin-top:12px;
  }
}

@media(prefers-reduced-motion:reduce){
  #contact .booking-wizard-dot,
  #contact .booking-back,
  #contact .booking-primary,
  #contact .booking-new-request,
  #contact .booking-retry,
  #contact .booking-day,
  #contact .booking-time{
    transition:none !important;
  }
  #contact .booking-wizard-dot.is-pop,
  #contact .booking-wizard-step-label.is-swap,
  #contact .booking-screen.is-entering,
  #contact .booking-screen.is-leaving,
  #contact .booking-day.is-selected,
  #contact .booking-time.is-selected,
  .modern-booking-time-grid .booking-time.is-selected{
    animation:none !important;
  }
  #contact .booking-back:hover:not(:disabled),
  #contact .booking-primary:hover:not(:disabled),
  #contact .booking-back:active:not(:disabled),
  #contact .booking-primary:active:not(:disabled){
    transform:none;
  }
}

/* Keep phone + book pill pinned bottom-right on every width. */
#bookingFloat,
.booking-float{
  position:fixed !important;
  right:max(16px, env(safe-area-inset-right,0px)) !important;
  left:auto !important;
  bottom:calc(16px + env(safe-area-inset-bottom,0px)) !important;
  z-index:1200 !important;
  display:flex !important;
  visibility:visible !important;
  pointer-events:auto !important;
}
/* Admin does not need a floating booking CTA. Keep #bookingFloat visible on #contact. */
body.admin-route #bookingFloat,
body.admin-route .booking-float{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* The necessary-cookie decision gets the full viewport. No floating control
   may compete with it, including on mobile where later dock rules are strong. */
html body:not(.cookies-acked):not(.admin-route) #bookingFloat,
html body:not(.cookies-acked):not(.admin-route) .booking-float,
html body:not(.cookies-acked):not(.admin-route) #backToTopBubble,
html body:not(.cookies-acked):not(.admin-route) .scroll-promo,
html body:not(.cookies-acked):not(.admin-route) .scroll-promo-backdrop{
  display:none !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
@media (max-width:700px){
  #bookingFloat,
  .booking-float{
    right:max(12px, env(safe-area-inset-right,0px)) !important;
    bottom:calc(12px + env(safe-area-inset-bottom,0px)) !important;
  }
}

/* Header: phone is the rightmost control; wordmark sits centered in its lockup. */
header .header-phone-pill{
  margin-left:2px;
  margin-right:0;
}
header .brand-lockup{
  justify-content:center !important;
  align-items:center !important;
}
header .signature-wordmark{
  object-position:center center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Matched wizard pair: Πίσω (cream) + Continue/Submit (forest). Beat UA/default button chrome. */
#contact #bookingBackBtn,
#contact .booking-wizard-nav .booking-back,
#contact .booking-retry{
  -webkit-appearance:none !important;
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:48px !important;
  height:48px !important;
  padding:0 22px !important;
  border-radius:999px !important;
  background:#f7f3ee !important;
  color:#243d35 !important;
  border:1px solid rgba(36,61,53,.22) !important;
  box-shadow:none !important;
  font:inherit !important;
  font-size:.9rem !important;
  font-weight:750 !important;
}
/* Must beat display:inline-flex !important above — Back stays hidden on date/result. */
#contact #bookingBackBtn[hidden],
#contact .booking-wizard-nav .booking-back[hidden],
#contact .booking-retry[hidden]{
  display:none !important;
}
#contact #bookingBackBtn:hover:not(:disabled),
#contact .booking-wizard-nav .booking-back:hover:not(:disabled),
#contact .booking-retry:hover:not(:disabled){
  background:#efe9e1 !important;
  border-color:rgba(36,61,53,.34) !important;
}
#contact #bookingPrimaryBtn,
#contact .booking-wizard-nav .booking-primary,
#contact .booking-new-request{
  background:#243d35 !important;
  color:#fff !important;
  border:1px solid #243d35 !important;
  border-radius:999px !important;
  min-height:48px !important;
  height:48px !important;
  padding:0 22px !important;
  box-shadow:0 8px 18px rgba(18,32,28,.16);
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font:inherit !important;
  font-size:.9rem !important;
  font-weight:750 !important;
}
#contact #bookingPrimaryBtn:hover:not(:disabled),
#contact .booking-wizard-nav .booking-primary:hover:not(:disabled),
#contact .booking-new-request:hover:not(:disabled){
  background:#1a312b !important;
  color:#fff !important;
  border-color:#1a312b !important;
}
#contact #bookingPrimaryBtn:disabled,
#contact .booking-wizard-nav .booking-primary:disabled{
  background:#5d7a70 !important;
  color:#fff !important;
  border-color:#5d7a70 !important;
  opacity:1;
  cursor:not-allowed;
}
/* Incomplete but clickable — same contrast so Continue can surface validation. */
#contact #bookingPrimaryBtn.is-incomplete:not(:disabled),
#contact .booking-wizard-nav .booking-primary.is-incomplete:not(:disabled){
  cursor:pointer;
}
#contact #bookingProgress,
#contact .booking-progress,
#contact .booking-summary{
  position:static;
  width:auto;
  max-width:100%;
  margin:18px 0 0;
  box-sizing:border-box;
  background:#fff;
  color:#243d35;
  border:1px solid rgba(36,61,53,.12);
  border-radius:18px;
  overflow:visible;
}
#contact #bookingProgress strong,
#contact .booking-progress strong,
#contact .booking-summary strong{
  color:#243d35;
}
#contact #bookingProgress li,
#contact .booking-progress li,
#contact .booking-summary span{
  color:#5c6560;
}


/* Header book pill visibility owned by rules near header .actions (above). */
.page-top-back{display:none!important}

/* Review rows: force label/value separation even if older flex rules linger. */
#contact #bookingReviewCard .booking-review-row,
#contact .booking-review-card .booking-review-row{
  display:grid !important;
  grid-template-columns:minmax(7.25rem,0.85fr) minmax(0,1.35fr) !important;
  column-gap:16px !important;
  align-items:baseline !important;
}
#contact #bookingReviewCard .booking-review-row span,
#contact .booking-review-card .booking-review-row span{
  display:block !important;
  color:#69706b !important;
  font-weight:650 !important;
  min-width:0 !important;
}
#contact #bookingReviewCard .booking-review-row strong,
#contact .booking-review-card .booking-review-row strong{
  display:block !important;
  color:#272a28 !important;
  font-weight:750 !important;
  text-align:right !important;
  min-width:0 !important;
  overflow-wrap:anywhere !important;
}
