/* ═══════════════════════════════════════════
   GROWING TOGETHER — shared design system
   Blue palette: deep navy-blue → light airy blue
═══════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* deep → light blue ramp */
  --d1:#0b2444;   /* deepest — sidebar / hero top / footer */
  --d2:#123a63;   /* deep */
  --m1:#1d5286;   /* mid */
  --m2:#3b78ad;   /* mid-light accent */
  --l1:#7fb0d6;   /* light blue */
  --l2:#c9e0f2;   /* pale blue */
  --l3:#e6f1fa;   /* very pale */
  --l4:#f3f9fd;   /* near white blue */
  --white:#ffffff;
  --gold:#C4964A;
  --gold-l:rgba(196,150,74,0.12);
  --gold-m:rgba(196,150,74,0.30);
  /* text on light sections */
  --ink:#1f4572;
  --slate:#4d6c8a;
  --slate-l:#6b87a3;
  /* text on dark */
  --on-dark:rgba(255,255,255,0.94);
  --on-dark-mut:rgba(255,255,255,0.62);
  --line-d:rgba(255,255,255,0.10);
  --line-l:rgba(11,36,68,0.10);
  --SB:270px;
  --shadow:0 14px 44px rgba(11,36,68,0.10);
  --shadow-lg:0 22px 60px rgba(11,36,68,0.16);
}
html{scroll-behavior:smooth;font-size:16px;scroll-padding-top:100px}
.pl-skip #preloader{display:none!important}
body{font-family:'Source Sans 3',sans-serif;background:var(--l4);color:var(--ink);overflow-x:hidden}
/* iOS Safari ignores overflow-x:hidden on <body> and lets the whole page pan sideways when
   anything sticks out (off-canvas menu, AOS slide-ins). 'clip' on both html and body stops it
   without creating a scroll container, so position:sticky keeps working. */
@supports (overflow:clip){html,body{overflow-x:clip}}
body.loading{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}

/* ════ PRELOADER ════ */
#preloader{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,var(--d1),var(--d2));z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:0}
.pl-logo{width:168px;height:168px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 42%,rgba(196,150,74,0.12),rgba(0,0,0,0.28));opacity:0;transform:translateY(18px) scale(0.92);box-shadow:0 0 0 1px var(--gold-m),0 18px 50px rgba(0,0,0,0.4)}
.pl-logo-img{width:116px;height:auto;display:block}
.pl-name{font-family:Georgia,serif;font-size:clamp(1.8rem,3.8vw,2.7rem);font-weight:400;text-transform:uppercase;letter-spacing:0.04em;color:var(--white);margin-top:1.3rem;opacity:0;transform:translateY(14px)}
.pl-name em{font-style:normal;font-weight:400;color:var(--gold)}
.pl-lw{width:0;height:1px;background:var(--gold);opacity:0.4;margin:1.1rem 0;overflow:hidden}
.pl-slogan{font-size:0.74rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--on-dark-mut);opacity:0;transform:translateY(8px);text-align:center;padding:0 1rem}

/* ════ NAVBAR (top) ════ */
.navbar{position:fixed;top:1rem;left:50%;transform:translateX(-50%);width:calc(100% - 2.4rem);max-width:1240px;z-index:500;border-radius:100px;background:rgba(11,36,68,0.5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(196,150,74,0.28);box-shadow:0 14px 40px rgba(0,0,0,0.28);transition:background 0.3s ease,box-shadow 0.3s ease}
.navbar.scrolled{background:rgba(9,26,48,0.82);box-shadow:0 12px 36px rgba(0,0,0,0.4)}
.nav-inner{width:100%;margin:0 auto;display:flex;align-items:center;gap:1.1rem;padding:0.5rem 0.6rem 0.5rem 1.3rem}
.nav-brand{display:flex;align-items:center;gap:0.6rem;flex-shrink:0}
.nav-logo{width:46px;height:46px;border-radius:50%;object-fit:contain;padding:4px;background:radial-gradient(circle at 50% 42%,rgba(196,150,74,0.2),rgba(0,0,0,0.34));border:1.5px solid var(--gold-m)}
.nav-brand-txt{font-family:Georgia,serif;font-size:0.9rem;font-weight:400;text-transform:uppercase;letter-spacing:0.03em;color:#fff;line-height:1.08}
.nav-brand-txt em{font-style:normal;font-weight:400;color:var(--gold);display:block;font-size:1em}
.nav-links{display:flex;align-items:center;gap:1.2rem;margin:0 auto}
.nav-links a{font-size:0.7rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.82);transition:color 0.2s;position:relative;padding:0.3rem 0;white-space:nowrap}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:-4px;height:2px;background:var(--gold);transition:right 0.25s ease}
.nav-links a:hover::after,.nav-links a.active::after{right:0}
.nav-links a:hover{color:#fff}
.nav-links a.active{color:var(--gold)}
.nav-right{display:flex;align-items:center;gap:0.65rem;flex-shrink:0}
.nav-cta{display:inline-flex;align-items:center;gap:0.45rem;background:var(--gold);color:#fff;padding:0.6rem 1.25rem;border-radius:100px;font-size:0.71rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;white-space:nowrap;transition:all 0.22s;box-shadow:0 6px 18px rgba(196,150,74,0.32)}
.nav-cta::after{content:'→';font-size:0.9rem;font-weight:400}
.nav-cta:hover{background:#b08030;transform:translateY(-1px)}
.nav-lang{display:flex;align-items:center;background:transparent;border-radius:100px;overflow:hidden;border:1px solid rgba(255,255,255,0.28)}
.lang-btn{padding:0.28rem 0.68rem;font-size:0.63rem;font-weight:700;letter-spacing:0.06em;background:transparent;border:none;cursor:pointer;color:rgba(255,255,255,0.68);transition:all 0.2s;font-family:'Source Sans 3',sans-serif}
.lang-btn.active{background:var(--gold);color:#fff}

/* hamburger */
.hamburger{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px;z-index:601}
.hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:all 0.3s}

/* mobile slide-in drawer */
.nav-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;visibility:hidden;pointer-events:none;overflow:hidden}
.nav-drawer.open{visibility:visible;pointer-events:auto}
.nav-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(7,15,26,0.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity 0.35s ease}
.nav-drawer.open .nav-backdrop{opacity:1}
.nav-panel{position:absolute;top:0;right:0;height:100%;width:min(86vw,360px);background:linear-gradient(160deg,var(--d1) 0%,var(--d2) 100%);transform:translateX(100%);transition:transform 0.42s cubic-bezier(0.16,1,0.3,1);display:flex;flex-direction:column;padding:1.4rem 1.5rem 1.6rem;overflow-y:auto;box-shadow:-24px 0 60px rgba(0,0,0,0.45)}
.nav-drawer.open .nav-panel{transform:translateX(0)}
.nav-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}
.nav-panel-brand{display:flex;align-items:center;gap:0.6rem}
.nav-panel-brand img{width:44px;height:44px;border-radius:50%;object-fit:contain;padding:4px;background:radial-gradient(circle at 50% 42%,rgba(196,150,74,0.16),rgba(0,0,0,0.3));border:1px solid var(--gold-m)}
.nav-panel-brand span{font-family:Georgia,serif;font-size:1rem;font-weight:400;text-transform:uppercase;letter-spacing:0.03em;color:#fff;line-height:1.1}
.nav-panel-brand span em{font-style:normal;font-weight:400;color:var(--gold);display:block;font-size:1em}
.nav-panel-close{background:rgba(255,255,255,0.08);border:1px solid var(--line-d);color:var(--on-dark);width:38px;height:38px;border-radius:50%;font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;flex-shrink:0}
.nav-panel-close:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.nav-panel-links{display:flex;flex-direction:column;margin:0.2rem 0}
.nav-panel-links a{display:flex;align-items:center;gap:0.85rem;padding:0.92rem 0.3rem;color:var(--on-dark);font-size:0.9rem;font-weight:600;letter-spacing:0.03em;border-bottom:1px solid var(--line-d);transition:color 0.2s,padding-left 0.2s}
.nav-panel-links a>svg:first-child{width:18px;height:18px;stroke-width:1.7;color:var(--gold);flex-shrink:0}
.nav-panel-links a .chev{margin-left:auto;width:16px;height:16px;color:var(--on-dark-mut);stroke-width:2}
.nav-panel-links a:hover,.nav-panel-links a.active{color:var(--gold);padding-left:0.75rem}
.nav-panel-foot{margin-top:auto;padding-top:1.3rem;display:flex;flex-direction:column;gap:1rem}
.nav-panel-phone{display:flex;align-items:center;gap:0.6rem;color:#fff;font-size:1.02rem;font-weight:600}
.nav-panel-phone svg{width:18px;height:18px;color:var(--gold)}
.nav-panel-cta{background:var(--gold);color:#fff;text-align:center;padding:0.95rem;border-radius:100px;font-weight:600;letter-spacing:0.02em;box-shadow:0 8px 22px rgba(196,150,74,0.3);transition:all 0.2s}
.nav-panel-cta:hover{background:#b08030}
.nav-panel-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:0.7rem;border-top:1px solid var(--line-d)}
.nav-panel-social{display:flex;gap:1rem}
.nav-panel-social a{color:var(--on-dark-mut);transition:color 0.2s;display:flex}
.nav-panel-social a:hover{color:var(--gold)}
.nav-panel-social svg{width:18px;height:18px}

/* ════ SCROLL PROGRESS ════ */
#scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--gold),var(--m2));z-index:600;pointer-events:none}

/* ════ HERO (dark, lightening downward) ════ */
#hero{
  min-height:100vh;display:flex;align-items:center;
  padding:7rem 6vw 4rem;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#06152a 0%,#0a2140 52%,#0c2748 100%);
}
.hero-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:0;pointer-events:none;opacity:0.62}
.hero-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:right center;z-index:0;pointer-events:none}
.hero-video-mobile{display:none}
/* phone fallback when iOS blocks video autoplay (Low Power Mode): animated WebP of the same footage */
.hero-anim{display:none}
.hero-anim.on{display:block}
.hero-wm-mask{display:none}
.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(6,18,38,0.9) 0%,rgba(7,22,45,0.7) 42%,rgba(9,30,58,0.45) 64%,rgba(9,30,58,0.22) 100%);}
.hero-tag,.hero-slogan,.hero-p{text-shadow:0 1px 20px rgba(8,26,50,0.6)}
/* animated golden light-rays sweeping over the tree (compositor-only: transform/opacity) */
.hero-rays{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden;opacity:0.8;
  -webkit-mask-image:linear-gradient(97deg,transparent 42%,#000 64%),linear-gradient(180deg,#000 0%,#000 28%,transparent 56%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(97deg,transparent 42%,#000 64%),linear-gradient(180deg,#000 0%,#000 28%,transparent 56%);
  mask-composite:intersect}
/* fanned god-ray beams (kept on the right, over the tree) */
.hero-rays::before{content:'';position:absolute;top:-30%;right:-10%;width:80%;height:170%;pointer-events:none;
  mix-blend-mode:screen;will-change:transform,opacity;transform:rotate(7deg);filter:blur(11px);
  background:
    linear-gradient(100deg,transparent 22%,rgba(255,205,120,0.26) 46%,rgba(255,205,120,0.13) 60%,transparent 80%),
    linear-gradient(100deg,transparent 46%,rgba(255,205,120,0.17) 68%,transparent 90%);
  animation:heroRay 3.6s ease-in-out infinite}
/* soft warm light source glowing at the top-right */
.hero-rays::after{content:'';position:absolute;top:-22%;right:-8%;width:50%;height:95%;pointer-events:none;
  mix-blend-mode:screen;will-change:opacity;
  background:radial-gradient(closest-side at 72% 22%,rgba(255,197,108,0.5),transparent 72%);
  animation:heroGlow 3.4s ease-in-out infinite}
@keyframes heroRay{
  0%,100%{transform:translateX(-40%) rotate(7deg);opacity:0.5}
  50%{transform:translateX(40%) rotate(7deg);opacity:1}
}
@keyframes heroGlow{0%,100%{opacity:0.4}50%{opacity:1}}
/* CSS haze/rays disabled — the hero video has rays + haze baked in */
@media (prefers-reduced-motion:reduce){.hero-rays::before,.hero-rays::after,#hero::after{animation:none}}
#hero-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}
.hero-tree{
  position:absolute;right:-7%;bottom:0;
  height:86vh;width:auto;pointer-events:none;z-index:2;opacity:0.24;
}
.hero-tree-img{height:100%;width:auto;filter:drop-shadow(0 6px 34px rgba(0,0,0,0.55));transform:translateY(3%)}
.hero-content{max-width:min(780px,62%);position:relative;z-index:3;margin-left:clamp(1.5rem,7vw,8rem)}
.hero-tag{font-size:0.7rem;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:1.7rem}
.hero-slogan{
  font-family:Georgia,serif;
  font-size:clamp(2.9rem,5vw,4.6rem);
  font-weight:500;line-height:1.02;color:var(--on-dark);
  text-transform:uppercase;letter-spacing:0.015em;margin-bottom:2rem;
}
.hero-slogan em{font-style:italic;font-weight:500;color:var(--gold);display:block}
.hero-p{font-size:0.92rem;line-height:1.9;color:var(--on-dark-mut);margin-bottom:2.4rem;max-width:440px}
.hero-more{
  display:inline-flex;align-items:center;gap:0.55rem;
  font-size:0.72rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;
  color:var(--on-dark);border-bottom:1.5px solid var(--gold);padding-bottom:0.32rem;
  transition:color 0.2s,gap 0.2s;
}
.hero-more:hover{color:var(--gold);gap:0.95rem}
.hero-more::after{content:'→';font-size:1rem;font-weight:400}
.hero-cta-row{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.hero-btn{display:inline-flex;align-items:center;gap:0.5rem;background:var(--gold);color:#fff;padding:0.92rem 1.9rem;border-radius:100px;font-size:0.76rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;box-shadow:0 10px 26px rgba(196,150,74,0.32);transition:all 0.22s}
.hero-btn::after{content:'→';font-size:0.95rem;font-weight:400}
.hero-btn:hover{background:#b08030;transform:translateY(-2px)}
.hero-badges{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.7rem;margin-top:2.6rem;max-width:600px}
.hb{display:flex;align-items:center;gap:0.55rem;position:relative}
.hb:not(:last-child)::after{content:'';position:absolute;right:-0.9rem;top:50%;transform:translateY(-50%);height:24px;width:1px;background:rgba(255,255,255,0.16)}
.hb>svg{width:22px;height:22px;color:var(--gold);stroke-width:1.6;flex-shrink:0}
.hb span{font-size:0.64rem;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:rgba(255,255,255,0.75);line-height:1.35}

/* ════ SECTIONS (light) ════ */
section{padding:5.5rem 6vw;position:relative}
.wrap{max-width:1120px;margin:0 auto}
.lbl{font-size:0.69rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--ink);margin-bottom:0.8rem;display:block}
.h2{font-family:Georgia,serif;font-size:clamp(2rem,3.8vw,3rem);font-weight:300;line-height:1.12;color:var(--ink);margin-bottom:1.5rem}
.h2 em{font-style:normal;color:inherit}
.section-p{font-size:0.93rem;line-height:1.9;color:var(--slate)}

/* ═══ continuous light → blue gradient (bio → contact) — intense/fast darkening ═══ */
.page-flow{
  background:linear-gradient(180deg,
    #f6fbff 0%,
    #eef6fc 10%,
    #dcebf7 26%,
    #b9d4ea 40%,
    #6f9ec6 52%,
    #40709a 64%,
    #244b70 78%,
    #10284a 100%);
}
#bio,#credentials,#services,#gestalt,#faq,#xoros,#contact{background:transparent}
/* darker sections → light text on the gradient */
#gestalt .lbl,#faq .lbl{color:#fff}
#contact .lbl{color:#f0d6a4}
#gestalt .h2,#faq .h2,#contact .h2{color:#fff}
#gestalt .h2 em,#faq .h2 em{color:#fff}
#contact .h2 em{color:var(--gold)}
#gestalt .section-p,#faq .section-p,#contact .section-p{color:rgba(255,255,255,0.85)}
#gestalt .btn-outline{color:#fff;border-color:rgba(255,255,255,0.55)}
#gestalt .btn-outline:hover{background:#fff;color:var(--ink);border-color:#fff}

/* ════ BIO ════ */
.bio-grid{display:grid;grid-template-columns:0.9fr 1.6fr;gap:5rem;align-items:center}
/* Full biography page: left column aligned to the top and sticky on desktop */
.bio-full .bio-grid{align-items:start}
.bio-full .bio-aside{position:sticky;top:104px;display:flex;flex-direction:column;gap:1.5rem}
.bio-card{background:var(--white);border:1px solid var(--line-l);border-radius:22px;padding:1.2rem 1.35rem;box-shadow:0 12px 30px rgba(11,36,68,0.06)}
.bio-card .bc-row{display:flex;align-items:center;gap:0.7rem;font-size:0.85rem;font-weight:500;color:var(--slate);padding:0.62rem 0;border-bottom:1px solid var(--line-l)}
.bio-card .bc-row:last-of-type{border-bottom:none}
.bio-card .bc-row i{color:var(--gold);width:18px;height:18px;stroke-width:2;flex:none}
.bio-card .btn-gold{margin-top:1.1rem;display:flex;justify-content:center;text-align:center}
.bio-photo{position:relative;aspect-ratio:4/5}
.bio-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:34px;box-shadow:0 26px 55px rgba(11,36,68,0.16);position:relative;z-index:1}
.bio-photo::before{content:'';position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;transform:translate(16px,16px);border:1.5px solid rgba(196,150,74,0.55);border-radius:34px;pointer-events:none}
@keyframes morph{0%,100%{border-radius:50%}33%{border-radius:45% 55% 50% 50%/55% 45% 55% 45%}66%{border-radius:55% 45% 45% 55%/45% 55% 45% 55%}}
.pills{display:flex;flex-wrap:wrap;gap:0.55rem;margin-top:2rem}
.pill{background:var(--white);border:1px solid var(--line-l);color:var(--slate);padding:0.45rem 1rem;border-radius:100px;font-size:0.77rem;font-weight:500;box-shadow:0 3px 10px rgba(11,36,68,0.04)}
.bio-stats{display:flex;gap:3rem;margin-top:1.6rem;padding-top:1.6rem;border-top:1px solid var(--line-l)}
.bs-item{text-align:center}
.bs-num{font-family:Georgia,serif;font-size:2.5rem;font-weight:300;color:var(--m2);line-height:1}
.bs-lbl{font-size:0.63rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--slate-l);margin-top:0.35rem}

/* ════ CREDENTIALS ════ */
.cred-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.8rem}
.cred-card{background:var(--white);border:1px solid var(--line-l);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform 0.32s ease,box-shadow 0.32s ease,border-color 0.32s ease}
.cred-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold-m)}
.cred-thumb{position:relative;height:270px;overflow:hidden;background:var(--l3);border-bottom:1px solid var(--line-l)}
.cred-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform 0.5s ease}
.cred-card:hover .cred-thumb img{transform:scale(1.045)}
.cred-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:0.5rem;background:rgba(11,36,68,0.55);color:#fff;opacity:0;transition:opacity 0.3s;font-size:0.8rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase}
.cred-overlay svg{width:18px;height:18px}
.cred-card:hover .cred-overlay{opacity:1}
.cred-body{padding:1.4rem 1.5rem}
.cred-issuer{font-size:0.68rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--m2);display:block;margin-bottom:0.4rem}
.cred-title{font-family:Georgia,serif;font-size:1.1rem;font-weight:400;color:var(--ink);line-height:1.25;margin-bottom:0.7rem}
.cred-meta{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap}
.cred-year{font-size:0.78rem;font-weight:600;color:var(--slate)}
.cred-grade{font-size:0.68rem;font-weight:600;background:var(--l2);color:var(--m1);padding:0.24rem 0.7rem;border-radius:100px}
.cred-grade-gold{background:var(--gold-l);color:#9a7330}

/* ════ SERVICES ════ */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-bottom:2.6rem}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;perspective:1200px}
.svc-card{background:var(--white);border-radius:20px;padding:2rem;border:1px solid var(--line-l);transition:all 0.3s;box-shadow:var(--shadow);display:flex;flex-direction:column}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold-m)}
.svc-icon{width:52px;height:52px;border-radius:15px;margin-bottom:1.2rem;display:flex;align-items:center;justify-content:center}
.si-t{background:var(--gold-l)}
.si-s{background:var(--l2)}
.svc-icon svg{width:24px;height:24px;stroke-width:1.7}
.si-t svg{stroke:var(--gold)}
.si-s svg{stroke:var(--m1)}
.svc-card h3{font-family:Georgia,serif;font-size:1.05rem;font-weight:400;color:var(--ink);margin-bottom:0.55rem;line-height:1.3}
.svc-card p{font-size:0.83rem;line-height:1.76;color:var(--slate);flex:1}
.svc-tag{display:inline-block;margin-top:1rem;padding:0.24rem 0.85rem;border-radius:100px;font-size:0.67rem;font-weight:600;letter-spacing:0.04em;align-self:flex-start}
.st-t{background:var(--gold-l);color:#9a7330}
.st-s{background:var(--l2);color:var(--m1)}

/* buttons */
.btn-gold{display:inline-flex;align-items:center;gap:0.5rem;background:var(--gold);color:white;padding:0.85rem 1.7rem;border-radius:100px;font-size:0.8rem;font-weight:600;letter-spacing:0.02em;transition:all 0.25s;box-shadow:0 8px 22px rgba(196,150,74,0.26);white-space:nowrap}
.btn-gold:hover{background:#b08030;transform:translateY(-2px)}
.btn-gold::after{content:'→';font-size:1rem}
.btn-outline{display:inline-flex;align-items:center;gap:0.5rem;color:var(--m2);background:transparent;border:1.5px solid var(--m2);padding:0.85rem 1.7rem;border-radius:100px;font-family:'Source Sans 3',sans-serif;font-size:0.8rem;font-weight:600;cursor:pointer;transition:all 0.25s;white-space:nowrap}

/* ════ MODAL / POPUP ════ */
.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;visibility:hidden;pointer-events:none}
.modal.open{visibility:visible;pointer-events:auto}
.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(7,15,26,0.6);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity 0.3s ease}
.modal.open .modal-backdrop{opacity:1}
.modal-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-46%);width:min(92vw,640px);max-height:86vh;overflow-y:auto;background:var(--white);border-radius:24px;padding:2.6rem;box-shadow:0 40px 90px rgba(0,0,0,0.45);opacity:0;transition:opacity 0.3s ease,transform 0.38s cubic-bezier(0.16,1,0.3,1)}
.modal.open .modal-panel{opacity:1;transform:translate(-50%,-50%)}
.modal-close{position:absolute;top:1.1rem;right:1.1rem;width:38px;height:38px;border-radius:50%;background:var(--l3);border:1px solid var(--line-l);color:var(--slate);font-size:1.05rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;z-index:2}
.modal-close:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
.modal-title{font-family:Georgia,serif;font-size:clamp(1.5rem,3.5vw,1.9rem);font-weight:300;color:var(--ink);line-height:1.15;margin:0.4rem 0 1.5rem;padding-right:2rem}
.modal-title em{font-style:normal;color:inherit}
.modal-body{display:flex;flex-direction:column;gap:1.3rem;margin-bottom:1.8rem}
.modal-pillar{border-left:2px solid var(--gold-m);padding-left:1.1rem}
.modal-pillar h4{font-family:Georgia,serif;font-size:1.08rem;font-weight:400;color:var(--m1);margin-bottom:0.4rem}
.modal-pillar p{font-size:0.9rem;line-height:1.82;color:var(--slate)}
.modal-note{font-size:0.74rem;color:var(--slate-l);font-style:italic;margin-top:-0.4rem}
.btn-outline:hover{background:var(--m2);color:white}
.btn-outline::after{content:'→';font-size:1rem}

/* ════ APPROACH preview ════ */
.gestalt-intro{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-bottom:3rem;align-items:start}
.g-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.g-card{background:var(--white);border-radius:18px;padding:2rem;border:1px solid var(--line-l);box-shadow:var(--shadow)}
.g-num{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:1.3rem;margin-bottom:1.1rem;background:var(--l2);color:var(--m1)}
.g-card:nth-child(1) .g-num{background:var(--gold-l);color:var(--gold)}
.g-card h3{font-family:Georgia,serif;font-size:1.1rem;font-weight:400;color:var(--ink);margin-bottom:0.6rem}
.g-card p{font-size:0.84rem;line-height:1.8;color:var(--slate)}

/* ════ FAQ ════ */
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2.6rem}
.faq-card{background:var(--white);border-radius:16px;padding:1.5rem 1.7rem;border:1px solid var(--line-l);cursor:pointer;transition:all 0.3s;box-shadow:0 4px 16px rgba(11,36,68,0.05)}
.faq-card:hover{border-color:var(--l1)}
.faq-card.open{box-shadow:var(--shadow);border-color:var(--gold-m)}
.faq-q{display:flex;justify-content:space-between;align-items:flex-start;gap:0.8rem}
.faq-q h4{font-family:Georgia,serif;font-size:0.98rem;font-weight:400;color:var(--ink);line-height:1.4}
.faq-plus{color:var(--gold);font-size:1.2rem;flex-shrink:0;transition:transform 0.3s;margin-top:0.05rem}
.faq-card.open .faq-plus{transform:rotate(45deg)}
.faq-a{font-size:0.85rem;line-height:1.8;color:var(--slate);max-height:0;overflow:hidden;transition:max-height 0.4s ease,margin 0.3s}
.faq-card.open .faq-a{max-height:1500px;margin-top:1rem}

/* ════ XOROS ════ */
.xoros-card{background:var(--white);border-radius:26px;padding:3.4rem;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center;border:1px solid var(--line-l);max-width:980px;margin:0 auto;box-shadow:var(--shadow-lg)}
.xoros-badge{display:inline-block;background:var(--gold-l);color:#9a7330;padding:0.4rem 1rem;border-radius:100px;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:1.2rem}
.xoros-card h2{font-family:Georgia,serif;font-size:2rem;font-weight:300;color:var(--ink);font-style:italic;margin-bottom:1rem;line-height:1.2}
.xoros-card p{font-size:0.9rem;line-height:1.86;color:var(--slate)}
.xoros-visual{aspect-ratio:4/3;border-radius:18px;background:linear-gradient(145deg,var(--l2),var(--l3));border:2px dashed var(--l1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--slate-l);font-size:0.78rem;text-align:center;padding:2rem;position:relative;overflow:hidden}
.xoros-soon{position:absolute;top:1.2rem;left:1.2rem;background:var(--gold);color:white;padding:0.32rem 0.85rem;border-radius:100px;font-size:0.65rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase}
.xoros-pulse{width:80px;height:80px;border-radius:50%;background:var(--l2);border:2px solid var(--l1);animation:pulse 4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.xoros-loc{margin-top:1.5rem;font-size:0.86rem;color:var(--m2);font-weight:600;display:flex;align-items:center;gap:0.4rem}
.xoros-loc a{display:inline-flex;align-items:center;gap:0.4rem;color:inherit;text-decoration:underline;text-decoration-color:rgba(59,120,173,0.35);text-underline-offset:4px;transition:color 0.2s}
.xoros-loc a:hover{color:var(--gold)}
/* ── Space slider ── */
.xoros-slider{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;box-shadow:0 22px 50px rgba(11,36,68,0.22);background:var(--l3)}
.xslide-track{display:flex;height:100%;transition:transform 0.65s cubic-bezier(0.16,1,0.3,1);will-change:transform}
.xslide-track img{min-width:100%;width:100%;height:100%;object-fit:cover;flex-shrink:0;display:block}
.xslide-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;background:rgba(11,36,68,0.42);color:#fff;font-size:1.5rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:background 0.2s,opacity 0.2s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2;opacity:0;padding-bottom:3px}
.xoros-slider:hover .xslide-arrow{opacity:1}
.xslide-arrow:hover{background:var(--gold)}
.xslide-prev{left:0.8rem}
.xslide-next{right:0.8rem}
.xslide-dots{position:absolute;bottom:0.9rem;left:50%;transform:translateX(-50%);display:flex;gap:0.45rem;z-index:2}
.xslide-dot{width:8px;height:8px;padding:0;border-radius:50%;border:none;background:rgba(255,255,255,0.55);cursor:pointer;transition:all 0.3s;box-shadow:0 1px 3px rgba(0,0,0,0.3)}
.xslide-dot.active{background:#fff;width:22px;border-radius:5px}
@media(hover:none){.xslide-arrow{opacity:1;background:rgba(11,36,68,0.5)}}
.xslide-track img{cursor:zoom-in}
/* ── Lightbox (full photo) ── */
.xlightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:rgba(6,18,36,0.95);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity 0.3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.xlightbox.open{opacity:1;visibility:visible}
.xlb-img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,0.55);pointer-events:none}
.xlb-close{position:absolute;top:1.1rem;right:1.3rem;width:44px;height:44px;border:none;border-radius:50%;background:rgba(255,255,255,0.15);color:#fff;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s}
.xlb-close:hover{background:var(--gold)}
.xlb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border:none;border-radius:50%;background:rgba(255,255,255,0.15);color:#fff;font-size:2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.2s;padding-bottom:4px}
.xlb-nav:hover{background:var(--gold)}
.xlb-prev{left:1.3rem}
.xlb-next{right:1.3rem}
.xlb-count{position:absolute;bottom:1.3rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,0.82);font-size:0.85rem;letter-spacing:0.06em}
@media(max-width:620px){.xlb-nav{width:44px;height:44px;font-size:1.6rem}.xlb-prev{left:0.5rem}.xlb-next{right:0.5rem}.xlb-img{max-width:94vw}}
/* ── Agreement download card ── */
.agreement-card{display:flex;align-items:center;gap:1.3rem;background:var(--white);border:1px solid var(--line-l);border-radius:20px;padding:1.4rem 1.7rem;box-shadow:var(--shadow);text-decoration:none;transition:transform 0.3s,box-shadow 0.3s,border-color 0.3s}
.agreement-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--gold-m)}
.agreement-icon{width:54px;height:54px;flex-shrink:0;border-radius:14px;background:var(--gold-l);color:var(--gold);display:flex;align-items:center;justify-content:center}
.agreement-icon i{width:25px;height:25px}
.agreement-body{flex:1;min-width:0}
.agreement-body h3{font-family:Georgia,serif;font-size:1.2rem;font-weight:400;color:var(--ink);margin-bottom:0.22rem}
.agreement-body p{font-size:0.87rem;color:var(--slate);line-height:1.55}
.agreement-dl{flex-shrink:0;display:inline-flex;align-items:center;gap:0.45rem;background:var(--gold);color:#fff;padding:0.7rem 1.25rem;border-radius:100px;font-size:0.85rem;font-weight:600;white-space:nowrap;box-shadow:0 8px 20px rgba(196,150,74,0.28)}
.agreement-dl i{width:16px;height:16px}
@media(max-width:620px){.agreement-card{flex-direction:column;text-align:center;gap:1rem;padding:1.5rem}.agreement-dl{width:100%;justify-content:center}}
.modal-qlbl{font-size:0.82rem;font-weight:700;letter-spacing:0.04em;color:var(--m2);margin:1.2rem 0 0.55rem;text-transform:uppercase}
.modal-q{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.55rem}
.modal-q li{position:relative;padding-left:1.4rem;font-size:0.9rem;line-height:1.55;color:var(--ink);font-style:italic}
.modal-q li::before{content:'';position:absolute;left:0;top:0.55em;width:7px;height:7px;border-radius:50%;background:var(--gold)}

/* ════ CONTACT ════ */
.contact-grid{display:grid;grid-template-columns:1fr 1.45fr;gap:5rem;align-items:start}
.contact-cards{margin-top:0;display:flex;flex-direction:column;gap:0;padding:2rem 2.1rem 1.1rem;border-radius:22px;border:1px solid rgba(196,150,74,0.28);box-shadow:0 22px 50px rgba(11,36,68,0.32);overflow:hidden;background-image:linear-gradient(150deg,rgba(9,26,48,0.82) 0%,rgba(15,45,78,0.38) 100%),url('assets/contact-bg2.jpeg');background-size:cover;background-position:center bottom}
.cc-head{padding:0.2rem 0 1.4rem;margin-bottom:0.3rem;border-bottom:1px solid rgba(255,255,255,0.16)}
.cc-eyebrow{font-size:0.7rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:0.9rem}
.cc-title{font-family:Georgia,serif;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:300;line-height:1.08;color:#fff;margin-bottom:1rem}
.cc-title em{font-style:italic;color:var(--gold)}
.cc-lead{font-size:0.92rem;line-height:1.75;color:rgba(255,255,255,0.82);max-width:46ch}
.cc{background:transparent;border:none;border-radius:0;box-shadow:none;padding:1.15rem 0;border-bottom:1px solid rgba(255,255,255,0.12)}
.cc:last-child{border-bottom:none}
.cc-lbl{font-size:0.66rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);margin-bottom:0.3rem}
.cc-val{font-size:0.95rem;color:#fff;font-weight:500}
.cc-val a{color:#fff;transition:color 0.2s}
.cc-val a:hover{color:var(--gold)}
.form-wrap{background:var(--white);border-radius:22px;padding:2.4rem;border:1px solid var(--line-l);box-shadow:var(--shadow-lg)}
.form-wrap form{display:flex;flex-direction:column;gap:1rem}
.fg{display:flex;flex-direction:column;gap:0.35rem}
.fg label{font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--slate)}
.fg input,.fg textarea,.fg select{padding:0.85rem 1.1rem;border:1.5px solid var(--l2);border-radius:12px;background:var(--l4);font-family:'Source Sans 3',sans-serif;font-size:0.9rem;color:var(--ink);outline:none;transition:border-color 0.25s;width:100%;-webkit-appearance:none}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--gold)}
.fg input::placeholder,.fg textarea::placeholder{color:var(--slate-l);opacity:0.7}
.fg textarea{min-height:108px;resize:vertical}
/* privacy note + consent checkbox (GDPR) */
.form-note{font-size:0.78rem;line-height:1.55;color:var(--slate);background:var(--l4);border-left:3px solid var(--gold-m);border-radius:8px;padding:0.7rem 0.9rem;margin:0}
.fg-consent{display:flex;align-items:flex-start;gap:0.6rem;font-size:0.8rem;line-height:1.5;color:var(--slate);cursor:pointer}
.fg-consent input{flex:0 0 auto;width:18px;height:18px;margin-top:0.12rem;accent-color:var(--gold);cursor:pointer}
.fg-consent a{color:var(--m1);text-decoration:underline;text-underline-offset:3px}
.fg-consent.err{color:#b3261e}
.btn-submit{background:var(--gold);color:white;padding:1rem;border:none;border-radius:100px;font-family:'Source Sans 3',sans-serif;font-size:0.9rem;font-weight:600;cursor:pointer;transition:all 0.25s;box-shadow:0 8px 22px rgba(196,150,74,0.28);margin-top:0.5rem}
.btn-submit:hover{background:#b08030;transform:translateY(-2px)}
.btn-submit:disabled{opacity:0.6;cursor:not-allowed;transform:none}
#form-msg{font-size:0.85rem;margin-top:0.5rem;display:none;padding:0.7rem 1rem;border-radius:10px}
#form-msg.ok{background:#e2f3e8;color:#2f7a4a}
#form-msg.err{background:#fbe6e6;color:#b04545}

/* ════ CTA BANNER (floating, before contact) ════ */
.cta-banner{max-width:1280px;margin:2rem auto -2rem;padding:0 4vw;position:relative;z-index:6}
.cta-banner-inner{position:relative;overflow:hidden;border-radius:24px;padding:1.9rem 2.8rem;box-shadow:0 30px 62px rgba(11,36,68,0.42);border:1px solid rgba(196,150,74,0.28);background-image:linear-gradient(112deg,rgba(9,26,48,0.9) 0%,rgba(11,36,68,0.62) 52%,rgba(18,58,99,0.5) 100%),url('assets/bannerimage.jpeg');background-size:cover;background-position:center;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.cta-banner-text{text-align:left;flex:1 1 320px;min-width:0}
.cta-banner-eyebrow{font-size:0.67rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:0.5rem}
.cta-banner-inner h2{font-family:Georgia,serif;font-size:clamp(1.5rem,2.9vw,2.1rem);font-weight:700;color:#fff;line-height:1.12;margin-bottom:0.4rem}
.cta-banner-inner h2 em{font-style:italic;font-weight:500;color:var(--gold)}
.cta-banner-inner p{font-size:0.92rem;color:rgba(255,255,255,0.82);margin:0}
.cta-banner-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:0.6rem;background:var(--gold);color:#fff;padding:0.9rem 1.9rem;border-radius:100px;font-size:1.02rem;font-weight:600;box-shadow:0 12px 30px rgba(196,150,74,0.35);transition:transform 0.2s,box-shadow 0.2s}
.cta-banner-btn:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(196,150,74,0.45)}
.cta-banner-btn svg{width:20px;height:20px}

/* ════ SUBPAGE HERO ════ */
.page-hero{
  padding:7rem 6vw 4rem;position:relative;overflow:hidden;
  background:linear-gradient(160deg,var(--d1),var(--d2) 60%,var(--m1));
}
/* header watermark: same composition as mobile - tree fills the hero height, trunk on the right,
   the G runs off the right edge, soft fade on the left only */
.page-hero .hero-tree{opacity:0.16;top:auto;bottom:-6%;height:max(112%,470px);width:auto;aspect-ratio:1.084;right:-11%;left:auto;transform:none;overflow:visible;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 14%,rgba(0,0,0,.3) 28%,rgba(0,0,0,.62) 42%,rgba(0,0,0,.88) 54%,#000 64%);
  mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.08) 14%,rgba(0,0,0,.3) 28%,rgba(0,0,0,.62) 42%,rgba(0,0,0,.88) 54%,#000 64%)}
.page-hero .hero-tree-img{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:none}
.page-hero-inner{max-width:1120px;margin:0 auto;position:relative;z-index:1}
.page-hero .lbl{color:#fff}
.page-hero h1{font-family:Georgia,serif;font-size:clamp(2.4rem,5vw,3.8rem);font-weight:200;color:var(--white);line-height:1.08;margin-bottom:1.2rem}
.page-hero h1 em{font-style:normal;color:inherit}
.page-hero p{font-size:0.98rem;line-height:1.85;color:var(--on-dark-mut);max-width:560px}
.crumb{font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--on-dark-mut);margin-bottom:1.6rem;display:flex;gap:0.5rem;align-items:center}
.crumb a{color:var(--gold)}

/* ═══════ SERVICES PAGE — interactive scroll-spy ═══════ */
.svc-jump{position:sticky;top:72px;z-index:50;display:flex;gap:0.5rem;flex-wrap:wrap;justify-content:center;
  padding:0.9rem 6vw;background:rgba(243,249,253,0.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line-l)}
.svc-jump a{font-size:0.73rem;font-weight:600;letter-spacing:0.02em;color:var(--slate);
  padding:0.5rem 1.05rem;border-radius:100px;border:1px solid var(--line-l);background:var(--white);
  transition:all 0.22s;display:inline-flex;gap:0.45rem;align-items:center;white-space:nowrap}
.svc-jump a .n{font-family:Georgia,serif;color:var(--m2);font-size:0.85rem}
.svc-jump a:hover{border-color:var(--gold-m);color:var(--ink);transform:translateY(-1px)}
.svc-jump a.active{background:var(--d1);color:#fff;border-color:var(--d1);box-shadow:0 6px 16px rgba(11,36,68,0.22)}
.svc-jump a.active .n{color:var(--gold)}

.svc-list{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}
.svc-feature{position:relative;scroll-margin-top:150px;background:var(--white);border:1px solid var(--line-l);
  border-radius:26px;padding:2.6rem 2.8rem;display:grid;grid-template-columns:auto 1fr auto;gap:2.4rem;align-items:center;
  box-shadow:var(--shadow);overflow:hidden;transition:transform 0.32s ease,box-shadow 0.32s ease,border-color 0.32s ease}
.svc-feature::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold);
  transform:scaleY(0);transform-origin:top;transition:transform 0.35s ease}
.svc-feature:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg);border-color:var(--gold-m)}
.svc-feature:hover::before{transform:scaleY(1)}
.svc-feature .watermark{position:absolute;right:1.6rem;top:-1.4rem;font-family:Georgia,serif;font-size:9rem;
  font-weight:200;color:var(--l2);opacity:0.55;line-height:1;pointer-events:none;z-index:0;transition:color 0.35s}
.svc-feature:hover .watermark{color:var(--gold-l)}
.svc-left{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:0.7rem;text-align:center}
.svc-left .svc-icon{width:78px;height:78px;margin:0;border-radius:20px;transition:transform 0.32s}
.svc-feature:hover .svc-left .svc-icon{transform:scale(1.06) rotate(-3deg)}
.svc-left .svc-icon svg{width:34px;height:34px}
.svc-photo{width:118px;height:118px;border-radius:20px;overflow:hidden;flex-shrink:0;box-shadow:0 12px 26px rgba(11,36,68,0.16);transition:transform 0.32s}
.svc-photo img{width:100%;height:100%;object-fit:cover;display:block}
.svc-feature:hover .svc-photo{transform:scale(1.04)}
.svc-no{display:none}
.svc-mid{position:relative;z-index:1;min-width:0}
.svc-mid h3{font-family:Georgia,serif;font-size:1.4rem;font-weight:400;color:var(--ink);margin-bottom:0.6rem;line-height:1.2}
.svc-mid p{font-size:0.92rem;line-height:1.82;color:var(--slate);max-width:600px}
.svc-chips{display:flex;flex-wrap:wrap;gap:0.45rem;margin-top:1.1rem}
.svc-chip{font-size:0.71rem;font-weight:500;background:var(--l3);color:var(--m1);padding:0.34rem 0.85rem;
  border-radius:100px;border:1px solid var(--line-l);transition:all 0.2s}
.svc-feature:hover .svc-chip{background:var(--white);border-color:var(--gold-m)}
.svc-cta-col{position:relative;z-index:1;display:flex;flex-direction:column;gap:0.8rem;align-items:flex-end;text-align:right;white-space:nowrap}
.svc-format{font-size:0.68rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--slate-l);font-weight:600}

/* full service rows (legacy) */
.svc-full{display:flex;flex-direction:column;gap:1.2rem;max-width:1120px;margin:0 auto}
.svc-row{background:var(--white);border-radius:20px;padding:2.4rem;display:grid;grid-template-columns:70px 1fr auto;gap:2rem;align-items:center;border:1px solid var(--line-l);box-shadow:var(--shadow);transition:all 0.3s}
.svc-row:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}
.svc-row .svc-icon{margin:0;width:64px;height:64px}
.svc-row h3{font-family:Georgia,serif;font-size:1.25rem;font-weight:400;color:var(--ink);margin-bottom:0.5rem}
.svc-row p{font-size:0.9rem;line-height:1.8;color:var(--slate);max-width:640px}
.svc-row .svc-tag{margin-top:0.8rem}
.svc-price{text-align:right;white-space:nowrap}
.svc-price .p-num{font-family:Georgia,serif;font-size:1.5rem;color:var(--m2)}
.svc-price .p-lbl{font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--slate-l)}

/* approach detail rows */
.appr-rows{display:flex;flex-direction:column;gap:1.4rem;max-width:1120px;margin:0 auto}
.appr-row{position:relative;overflow:hidden;background:var(--white);border-radius:22px;padding:2.6rem;display:grid;grid-template-columns:80px 1fr;gap:2rem;border:1px solid var(--line-l);box-shadow:var(--shadow)}
.appr-row>*{position:relative;z-index:1}
.appr-row::after{content:'';position:absolute;top:50%;right:-60px;transform:translateY(-50%);width:min(230px,42%);aspect-ratio:1;background:url('assets/logo.png') center/contain no-repeat;opacity:0.12;pointer-events:none;z-index:0}

/* embossed logo watermark στο page background (subpages) */
.emboss-bg{position:relative;overflow:hidden}
.emboss-bg>*{position:relative;z-index:1}
/* bottom watermark: δείχνει το ΠΑΝΩ μέρος του δέντρου (κορμός → κλαδιά/κορυφή) */
.emboss-bg::before{content:'';position:absolute;z-index:0;top:50%;right:-16%;transform:translateY(-50%);width:min(780px,66%);height:min(560px,60vw);background:url('assets/logo.png') center top/cover no-repeat;filter:brightness(0);opacity:0.05;pointer-events:none}
.emboss-low::before{top:auto;bottom:0;transform:none}
.appr-row .g-num{margin:0}
.appr-row h3{font-family:Georgia,serif;font-size:1.35rem;font-weight:400;color:var(--ink);margin-bottom:0.7rem}
.appr-row p{font-size:0.92rem;line-height:1.9;color:var(--slate)}

/* ════ FOOTER ════ */
footer{position:relative;background:linear-gradient(175deg,#0a2039 0%,#061225 100%);border-top:1px solid var(--line-d);color:var(--on-dark-mut);padding:3rem 6vw}
footer::before{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(196,150,74,0.55) 12%,var(--gold) 50%,rgba(196,150,74,0.55) 88%,transparent 100%)}
.footer-inner{max-width:1120px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem}
.footer-brand-row{display:flex;align-items:center;gap:0.9rem}
.footer-logo{width:46px;height:46px;border-radius:50%;object-fit:contain;padding:5px;background:radial-gradient(circle at 50% 42%,rgba(196,150,74,0.12),rgba(0,0,0,0.28));border:1px solid var(--gold-m)}
.footer-brand{font-family:Georgia,serif;font-size:1.06rem;font-weight:400;text-transform:uppercase;letter-spacing:0.03em;color:var(--white)}
.footer-brand span{font-style:normal;font-weight:400;color:var(--gold)}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
.footer-links a{font-size:0.79rem;color:var(--on-dark-mut);transition:color 0.2s}
.footer-links a:hover{color:var(--white)}
.footer-copy{font-size:0.7rem;opacity:0.55}
.footer-social{display:flex;gap:0.6rem;justify-content:flex-end;margin-bottom:0.7rem}
.footer-social a{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  color:var(--on-dark-mut);border:1px solid var(--line-d);transition:color .2s,border-color .2s,background .2s}
.footer-social a:hover{color:var(--gold);border-color:var(--gold-m);background:rgba(196,150,74,0.08)}
.footer-social svg{width:16px;height:16px}
/* legal line: ΑΦΜ / ΔΟΥ / licence / privacy policy */
.footer-legal{max-width:1120px;margin:1.8rem auto 0;padding-top:1.2rem;border-top:1px solid var(--line-d);display:flex;flex-wrap:wrap;gap:0.4rem 1.6rem;font-size:0.7rem;line-height:1.5;color:var(--on-dark-mut)}
.footer-legal span{opacity:0.8}
.footer-legal a{color:var(--on-dark-mut);text-decoration:underline;text-underline-offset:3px;transition:color 0.2s}
.footer-legal a:hover{color:var(--gold)}
.footer-credit a{color:rgba(196,150,74,0.6);font-size:0.7rem;letter-spacing:0.04em}

/* ════ EFFECTS ════ */
.back-top{position:fixed;bottom:2rem;right:2rem;z-index:400;width:44px;height:44px;border-radius:50%;background:var(--d1);color:var(--gold);border:1px solid var(--line-d);display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;opacity:0;visibility:hidden;transition:all 0.3s;box-shadow:var(--shadow)}
.back-top.visible{opacity:1;visibility:visible}
.back-top:hover{background:var(--gold);color:white}

/* ════ MOBILE ════ */
/* mobile booking CTA inside dropdown */
.mob-cta{background:var(--gold);color:#fff;border:none!important;border-radius:100px;text-align:center;padding:0.95rem 1rem;margin-top:1.3rem;font-weight:600;letter-spacing:0.02em;box-shadow:0 8px 22px rgba(196,150,74,0.28)}
.mob-cta:hover{background:#b08030;color:#fff}

@media(max-width:1080px){
  .nav-links,.nav-right .nav-cta,.nav-right .nav-lang{display:none}
  .hamburger{display:flex}
  .nav-right{margin-left:auto}
  .nav-inner{padding:0.65rem 5vw}
}
@media(max-width:980px){
  section{padding:3.6rem 5.5vw}
  .hero-content{max-width:100%;margin-left:0}
  .hero-tree{display:block;right:-24%;left:auto;bottom:0;transform:none;width:78%;max-width:400px;opacity:0.13}
  #hero{padding:6.5rem 5.5vw 4rem;min-height:100vh;min-height:100svh;background:linear-gradient(160deg,#06152a 0%,#0a2140 55%,#0c2748 100%)}
  /* Mobile hero = the final hero video, framed to show the logo on the right */
  .hero-video{object-position:80% center}
  .hero-overlay{background:linear-gradient(180deg,rgba(6,18,38,0.82) 0%,rgba(7,22,45,0.5) 40%,rgba(7,22,45,0.42) 70%,rgba(6,18,38,0.72) 100%)}
  .hero-rays{opacity:0.7}
  .hero-tag{margin-bottom:1.3rem}
  .hero-p{font-size:0.95rem;max-width:100%}
  .nav-logo{width:46px;height:46px}
  .nav-brand-txt{font-size:0.88rem}
  .bio-grid,.gestalt-intro,.contact-grid,.xoros-card{grid-template-columns:1fr;gap:2.4rem}
  .bio-photo{max-width:230px;margin:0 auto}
  .bio-full .bio-aside{position:static;gap:1.6rem}
  .bio-card{max-width:340px;margin:0 auto;width:100%}
  .svc-grid,.g-cards{grid-template-columns:1fr 1fr}
  .cred-grid{grid-template-columns:1fr 1fr}
  .faq-grid{grid-template-columns:1fr}
  .bio-stats{gap:1.4rem}
  .bs-num{font-size:1.85rem}
  .back-top{right:1.2rem;bottom:1.2rem;width:42px;height:42px}
  .svc-row{grid-template-columns:1fr;gap:1.2rem;text-align:left}
  .svc-price{text-align:left}
  .svc-feature{grid-template-columns:minmax(0,1fr);gap:1.3rem;padding:1.8rem}
  .svc-left{flex-direction:row;align-items:center;gap:1rem;text-align:left}
  .svc-cta-col{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;width:100%}
  .svc-feature .watermark{font-size:5rem;top:-0.5rem;right:1rem;opacity:0.35}
  .svc-jump{top:64px;gap:0.45rem;padding:0.7rem 5vw;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .svc-jump::-webkit-scrollbar{display:none}
  .svc-jump a{font-size:0.68rem;padding:0.44rem 0.85rem;flex-shrink:0}
  .appr-row{grid-template-columns:1fr;gap:1rem;padding:1.9rem}
  /* Bring the gold tree watermark back onto the card on mobile (was pushed off the right edge) */
  .appr-row::after{top:-40px;right:-46px;transform:none;width:min(240px,62%);opacity:0.12}
  .page-hero{padding:6rem 5.5vw 3rem}
  /* Mobile subpage heroes: big tree, trunk at ~79% of the width, G cut at the right edge, smooth left fade.
     The tree keeps a minimum size so short heroes (Βιογραφικό) match the others. */
  .page-hero .hero-tree{top:auto;bottom:0;height:max(100%,72vw);width:auto;max-width:none;aspect-ratio:1.084;right:21vw;left:auto;transform:translateX(50%);opacity:0.14;overflow:visible;
    -webkit-mask-image:linear-gradient(90deg,transparent 28%,rgba(0,0,0,.08) 33%,rgba(0,0,0,.3) 38%,rgba(0,0,0,.62) 44%,rgba(0,0,0,.88) 49%,#000 54%);
    mask-image:linear-gradient(90deg,transparent 28%,rgba(0,0,0,.08) 33%,rgba(0,0,0,.3) 38%,rgba(0,0,0,.62) 44%,rgba(0,0,0,.88) 49%,#000 54%)}
  .page-hero .hero-tree-img{object-fit:contain;object-position:center bottom}
  .xoros-card{padding:2.2rem}
  .form-wrap{padding:1.8rem}
  /* footer stacks */
  .footer-inner{flex-direction:column;align-items:flex-start;text-align:left;gap:1.4rem}
  .footer-inner>div[style*="text-align:right"]{text-align:left!important}
  .footer-social{justify-content:flex-start}
}
@media(max-width:620px){
  section{padding:3.2rem 6vw}
  /* Balance the hero-video tree on narrow phones (trunk lives right-of-center in the footage) */
  /* smaller framed tree, pushed right; top/bottom fade blends it into the hero gradient */
  .hero-video{top:50%;bottom:auto;height:125vw;transform:translateY(-50%);object-position:86% center;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 88%,transparent 100%)}
  /* sunbeam light filling the top of the hero (top-right corner, down-left onto the tree) -
     sits above the dark overlay so the upper area reads as one continuous lit scene */
  .hero-rays{z-index:2;opacity:0.6;
    -webkit-mask-image:radial-gradient(210% 95% at 90% 0%,#000 38%,rgba(0,0,0,.7) 62%,transparent 100%);
    mask-image:radial-gradient(210% 95% at 90% 0%,#000 38%,rgba(0,0,0,.7) 62%,transparent 100%)}
  .hero-rays::before{top:-12%;right:-35%;width:170%;height:95%;filter:blur(10px);
    background:
      linear-gradient(135deg,transparent 12%,rgba(255,205,120,.24) 22%,transparent 32%),
      linear-gradient(135deg,transparent 30%,rgba(255,205,120,.17) 40%,transparent 50%),
      linear-gradient(135deg,transparent 48%,rgba(255,205,120,.12) 58%,transparent 68%)}
  .hero-rays::after{top:-6%;right:-30%;width:160%;height:62%;
    background:
      radial-gradient(closest-side at 78% 14%,rgba(255,197,108,.36),transparent 72%),
      radial-gradient(ellipse 58% 52% at 58% 52%,rgba(255,197,108,.24),rgba(255,197,108,.10) 55%,transparent 82%)}
  /* static light: only the video below moves; the light just fills the gap above it */
  .hero-rays::before{animation:none;transform:rotate(7deg);opacity:0.85}
  .hero-rays::after{animation:none;opacity:1}
  .svc-grid,.g-cards,.cred-grid{grid-template-columns:1fr}
  .hero-slogan{font-size:clamp(2.3rem,10vw,3.2rem)}
  .sec-head{flex-direction:column;align-items:flex-start;gap:1.1rem}
  .h2{font-size:clamp(1.8rem,7.5vw,2.3rem)}
  .bio-stats{gap:0.9rem}
  .bs-num{font-size:1.7rem}
  .bs-lbl{font-size:0.57rem;letter-spacing:0.1em}
  .cred-thumb{height:230px}
  .xoros-card{padding:1.7rem;border-radius:20px}
  .form-wrap{padding:1.5rem;border-radius:18px}
  .svc-mid h3{font-size:1.2rem}
  .page-hero h1{font-size:clamp(2rem,8vw,2.7rem)}
  .nav-cta{padding:0.55rem 1rem}
  .modal-panel{padding:1.8rem 1.5rem;border-radius:18px}
  .cta-banner{margin:1.5rem auto -1.5rem}
  .cta-banner-inner{padding:2rem 1.6rem;border-radius:20px;flex-direction:column;text-align:center;gap:1.3rem}
  .cta-banner-text{text-align:center}
  .cta-banner-btn{font-size:0.95rem;padding:0.85rem 1.7rem}
}

/* Older Safari (iOS < 15) has no aspect-ratio: give the header tree an explicit width */
@supports not (aspect-ratio:1/1){
  .page-hero .hero-tree{width:510px}
  @media(max-width:980px){ .page-hero .hero-tree{width:78vw} }
}
