:root {
  --aqua: #285487;
  --aqua-deep: #123b6b;
  --aqua-dark: #0a2348;
  --aqua-pale: #dce8f5;
  --gold: #c9902f;
  --gold-light: #f4d889;
  --gold-pale: #fff2c9;
  --plum: #3c2165;
  --plum-soft: #633e8e;
  --ink: #112b4d;
  --ink-soft: #4b6380;
  --paper: #f8f4d7;
  --white: #ffffff;
  --line: rgba(17, 43, 77, .16);
  --shadow: 0 22px 70px rgba(10, 35, 72, .18);
  --font-body: "DM Sans", Arial, sans-serif;
  --font-brand: "Cormorant Garamond", Georgia, serif;
  --font-display: "Agrandir", "Agrandir Grand", "Avenir Next", "DM Sans", Arial, sans-serif;
}

/*
  Agrandir is referenced as the display font for the hero and brand title.
  To make the exact licensed typeface load for every visitor, add the licensed
  webfont files under assets/fonts/ and define a matching @font-face rule here.
  The declared fallback stack preserves layout until the licensed files are supplied.
*/

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x:hidden; scroll-padding-top:112px; }
body { overflow-x:hidden; margin:0; color:var(--ink); background:linear-gradient(124deg, #e6eef8 0%, #fff7db 46%, #f4dfa0 100%); font-family:var(--font-body); font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
button, input, select, textarea { font:inherit; }
.container { width:min(1180px, calc(100% - 52px)); margin-inline:auto; }
.section { padding:110px 0; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:absolute; left:-9999px; top:10px; z-index:1000; padding:12px 16px; background:var(--aqua-dark); color:#fff; }
.skip-link:focus { left:10px; }
.eyebrow { margin:0 0 13px; color:var(--aqua-deep); font-size:.76rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
h1, h2, h3, p { margin-top:0; }
h2 { margin-bottom:22px; color:var(--plum); font-family:var(--font-brand); font-size:clamp(2.55rem, 4.8vw, 4.45rem); font-weight:600; letter-spacing:-.045em; line-height:.95; }
h2 span { color:var(--aqua-deep); }
h3 { font-family:var(--font-brand); font-weight:700; }

/* Header */
.site-header { position:sticky; top:0; z-index:40; padding:16px 0; transition:background .25s ease, box-shadow .25s ease, backdrop-filter .25s ease; }
.site-header.is-stuck, .site-header.is-solid { background:rgba(249,246,221,.86); box-shadow:0 7px 28px rgba(10,35,72,.14); backdrop-filter:blur(18px); }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.brand { display:grid; min-height:44px; align-content:center; gap:1px; color:var(--plum); font-family:var(--font-display); font-size:1.12rem; font-weight:900; letter-spacing:.13em; line-height:.95; text-transform:uppercase; }
.brand-word { background:linear-gradient(100deg, #0527d4 0%, #5722b8 54%, #d50faa 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.brand-word-bottom { padding-left:.23em; }
.main-nav { display:flex; align-items:center; gap:25px; color:#17375d; font-size:.86rem; font-weight:700; }
.main-nav > a:not(.nav-cta) { position:relative; }
.main-nav > a:not(.nav-cta) { min-height:40px; display:inline-flex; align-items:center; }
.main-nav > a:not(.nav-cta)::after { content:""; position:absolute; left:0; right:0; bottom:-7px; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.main-nav > a:not(.nav-cta):hover::after { transform:scaleX(1); }
.nav-cta, .button { display:inline-flex; min-height:48px; align-items:center; justify-content:center; gap:9px; border:1px solid transparent; cursor:pointer; font-weight:800; transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease; }
.nav-cta { min-height:40px; padding:9px 14px; border-radius:999px; background:linear-gradient(96deg, var(--aqua-deep), #1f4f8e); color:#fff; font-size:.78rem; }
.nav-cta:hover, .button:hover { transform:translateY(-2px); box-shadow:0 12px 27px rgba(10,35,72,.26); }
.menu-toggle { display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span:not(.visually-hidden) { display:block; width:25px; height:2px; margin:6px auto; background:var(--aqua-deep); }

/* Hero: gradient only; no photography, textures, dots or decorative image elements */
.hero { position:relative; overflow:hidden; padding:86px 0 92px; background:linear-gradient(120deg, #b9cde7 0%, #dce8f5 30%, #fff6d8 59%, #f2cf73 100%); }
.hero::before { content:""; position:absolute; inset:-40%; opacity:.55; pointer-events:none; background:radial-gradient(ellipse at 18% 28%, rgba(45,94,154,.38), transparent 38%), radial-gradient(ellipse at 76% 35%, rgba(255,231,145,.74), transparent 38%), radial-gradient(ellipse at 57% 92%, rgba(20,65,119,.23), transparent 36%); filter:blur(18px); }
.hero-layout { position:relative; z-index:1; display:block; }
.hero-glow { position:absolute; inset:10% 7% auto auto; z-index:-1; width:min(46vw,560px); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgba(255,244,206,.84) 0%, rgba(243,201,93,.31) 42%, transparent 70%); filter:blur(12px); }
.hero-copy { max-width:920px; margin-inline:auto; text-align:center; }
.display-title { display:grid; justify-items:center; width:100%; margin:0 auto 34px; color:#0826d6; font-family:var(--font-display); font-size:clamp(3.8rem, 9vw, 8.2rem); font-weight:800; letter-spacing:.08em; line-height:.86; text-align:center; text-transform:none; }
.display-title span:last-child { padding-left:.08em; background:linear-gradient(100deg, #0b1de0 0%, #6f17c3 57%, #d90aad 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-intro { max-width:760px; margin:0 auto 22px; font-size:clamp(1.22rem, 2vw, 1.72rem); font-weight:500; line-height:1.35; letter-spacing:-.02em; }
.hero-intro em { color:var(--plum); font-family:var(--font-brand); font-size:1.42em; font-style:italic; font-weight:700; letter-spacing:-.02em; }
.hero-intro strong { color:var(--plum); font-weight:800; }
.divider-heart { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; max-width:560px; margin:27px auto 24px; color:var(--gold); }
.divider-heart span { height:1px; background:linear-gradient(90deg, transparent, var(--gold)); }
.divider-heart span:last-child { background:linear-gradient(90deg, var(--gold), transparent); }
.divider-heart b { font-size:2.25rem; font-weight:400; line-height:1; }
.hero-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:880px; margin:8px auto 42px; padding:18px; border:1px solid rgba(201,144,47,.32); border-radius:28px; background:linear-gradient(135deg, rgba(255,253,244,.82), rgba(255,242,201,.42)), radial-gradient(circle at 86% 8%, rgba(244,216,137,.38), transparent 36%); box-shadow:0 24px 64px rgba(10,35,72,.14), inset 0 1px 0 rgba(255,255,255,.78); backdrop-filter:blur(10px); text-align:left; }
.hero-pillar { position:relative; display:grid; color:inherit; text-decoration:none; cursor:pointer; gap:8px; min-height:118px; margin:0; padding:24px 24px 22px 28px; border:1px solid rgba(201,144,47,.26); border-radius:22px; background:rgba(255,255,255,.42); box-shadow:0 14px 34px rgba(10,35,72,.08); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.hero-pillar::before { content:""; position:absolute; left:0; top:22px; bottom:22px; width:5px; border-radius:999px; background:linear-gradient(180deg, var(--gold-light), var(--gold)); }
.hero-pillar::after { content:"✦"; position:absolute; right:22px; top:18px; color:rgba(201,144,47,.58); font-size:1.08rem; line-height:1; }
.hero-pillar:hover { transform:translateY(-4px); border-color:rgba(201,144,47,.58); box-shadow:0 22px 48px rgba(10,35,72,.14); }
.hero-pillars strong { color:var(--aqua-deep); font-family:var(--font-display); font-size:clamp(1.05rem, 1.45vw, 1.32rem); font-weight:900; letter-spacing:.08em; line-height:1.05; text-transform:uppercase; }
.hero-pillar:nth-child(2) strong { color:#bd7b18; }
.hero-pillar:nth-child(3) strong { color:var(--plum-soft); }
.hero-pillars span { max-width:210px; color:var(--ink-soft); font-size:clamp(.92rem, 1.1vw, 1.02rem); font-weight:500; line-height:1.35; }
.hero-pillars small { color:rgba(10,35,72,.68); font-size:.74rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.hero-pillar:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.hero-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.button { padding:12px 21px; border-radius:999px; font-size:.91rem; }
.button-primary { background:linear-gradient(102deg, var(--aqua-deep), #1d4f8f); color:#fff; }
.button-outline { border-color:rgba(18,59,107,.45); background:rgba(255,255,255,.52); color:var(--aqua-dark); }
.button-full { width:100%; }

/* Availability */
.availability-strip { position:relative; z-index:2; color:#fff; background:linear-gradient(112deg, #081f3f 0%, #123b6b 50%, #1d4e85 100%); }
.availability-grid { display:grid; grid-template-columns:repeat(3,1fr); padding:24px 0; }
.availability-item { display:flex; align-items:flex-start; gap:16px; padding:9px 34px; border-right:1px solid rgba(255,244,207,.55); }
.availability-item:first-child { padding-left:6px; }
.availability-item:last-child { padding-right:6px; border-right:0; }
.availability-icon { flex:0 0 auto; color:var(--gold-light); font-size:2.55rem; line-height:1; }
.availability-item strong { display:block; margin-top:1px; color:#fff; font-family:var(--font-body); font-size:1.26rem; font-weight:800; letter-spacing:.01em; text-transform:uppercase; }
.availability-item p { margin:4px 0 0; color:#eef6ff; line-height:1.25; }
.availability-item a { display:inline-flex; min-height:44px; align-items:center; color:#f7da8b; font-weight:800; }

/* Experience */
.experience-section { position:relative; z-index:1; overflow:hidden; color:#fff; background:linear-gradient(120deg, #081f3f 0%, #102f5b 50%, #1a467c 100%); }
.experience-grid { display:grid; grid-template-columns:.72fr 1.28fr; align-items:center; gap:clamp(42px,8vw,112px); }
.experience-note { width:min(100%,400px); margin:0; padding:clamp(32px,4vw,52px); border:1px solid rgba(247,218,139,.66); border-radius:28px; background:linear-gradient(145deg, rgba(255,242,195,.13), rgba(8,31,63,.08)); box-shadow:0 20px 55px rgba(3,22,49,.25); }
.experience-note-kicker { margin:0 0 22px; color:var(--gold-light); font-size:.76rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.experience-note-title { margin:0 0 20px; color:#fff; font-family:var(--font-brand); font-size:clamp(2.8rem,5vw,4.3rem); font-weight:600; letter-spacing:-.04em; line-height:.84; }
.experience-note-copy { margin:0; color:rgba(255,255,255,.82); font-size:1rem; line-height:1.45; }
.experience-copy h2 { color:#fff; }
.experience-copy h2 span { color:var(--gold-light); }
.experience-section .eyebrow { color:var(--gold-light); }
.experience-copy p:not(.eyebrow) { max-width:690px; color:rgba(255,255,255,.87); font-size:1.08rem; }
.text-link { display:inline-flex; min-height:44px; align-items:center; gap:10px; margin-top:12px; color:var(--gold-light); font-weight:800; }
.text-link span { font-size:1.35rem; }

/* Services */
.services {
  position:relative;
  z-index:2;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 14% 10%, rgba(220,232,245,.95), rgba(220,232,245,0) 34%),
    radial-gradient(circle at 88% 18%, rgba(255,242,201,.88), rgba(255,242,201,0) 38%),
    linear-gradient(124deg, rgba(222,233,247,.92), rgba(255,248,217,.92) 52%, rgba(244,221,153,.78));
}
.services::before {
  content:"";
  position:absolute;
  inset:auto -8% -26% 30%;
  height:42%;
  pointer-events:none;
  background:radial-gradient(ellipse, rgba(201,144,47,.22), transparent 70%);
  filter:blur(34px);
}
.services > .container { position:relative; z-index:1; }
.section-heading { max-width:860px; margin:0 auto 56px; }
.section-heading.centered { text-align:center; }
.section-heading p:not(.eyebrow) { margin:0; color:var(--ink-soft); font-size:clamp(1rem,1.45vw,1.16rem); line-height:1.7; }
.practice-grid { display:grid; grid-template-columns:1fr; gap:30px; align-items:start; }
.practice-list {
  position:relative;
  padding:clamp(30px,4vw,54px);
  border:1px solid rgba(18,59,107,.22);
  border-radius:34px;
  background:rgba(255,255,255,.68);
  box-shadow:0 18px 54px rgba(10,35,72,.10);
  backdrop-filter:blur(10px);
}
.practice-list--primary {
  max-width:1040px;
  margin-inline:auto;
  border:2px solid rgba(201,144,47,.74);
  background:
    linear-gradient(135deg, rgba(255,255,251,.96), rgba(255,246,215,.88)),
    radial-gradient(circle at 94% 8%, rgba(201,144,47,.25), transparent 34%);
  box-shadow:
    0 34px 90px rgba(10,35,72,.18),
    0 0 0 8px rgba(201,144,47,.08),
    inset 0 1px 0 rgba(255,255,255,.9);
}
.practice-list--primary::after {
  content:"♡";
  position:absolute;
  right:clamp(24px,4vw,52px);
  top:clamp(24px,4vw,46px);
  color:rgba(201,144,47,.36);
  font-family:var(--font-brand);
  font-size:clamp(3.2rem,7vw,6.5rem);
  line-height:1;
  pointer-events:none;
}
.practice-list--secondary {
  width:100%;
  max-width:920px;
  margin-inline:auto;
  background:rgba(255,255,251,.64);
  border-color:rgba(18,59,107,.20);
  box-shadow:0 16px 46px rgba(10,35,72,.08);
}
.practice-badge {
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 22px;
  padding:10px 18px;
  border-radius:999px;
  background:linear-gradient(96deg, var(--aqua-dark), var(--aqua-deep));
  color:var(--gold-light);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.practice-label {
  position:relative;
  z-index:1;
  margin:0 0 26px;
  color:var(--aqua-deep);
  font-size:.84rem;
  font-weight:900;
  letter-spacing:.13em;
  line-height:1.35;
  text-transform:uppercase;
}
.practice-list--primary .practice-label { color:var(--plum); }
.practice-list ul { position:relative; z-index:1; display:grid; gap:18px; margin:0; padding:0; list-style:none; }
.practice-list--secondary ul { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 34px; }
.practice-list li {
  position:relative;
  padding-left:34px;
  color:var(--ink);
  font-size:clamp(1.02rem,1.45vw,1.2rem);
  font-weight:700;
  line-height:1.42;
}
.practice-list--primary li { font-size:clamp(1.14rem,1.75vw,1.46rem); font-weight:800; }
.practice-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.56em;
  width:12px;
  height:12px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, var(--gold-light), var(--gold) 58%, var(--aqua-dark) 100%);
  box-shadow:0 0 0 6px rgba(201,144,47,.14);
}
.practice-note {
  position:relative;
  z-index:1;
  margin:34px 0 0;
  padding:22px 26px;
  border-left:4px solid var(--gold);
  border-radius:20px;
  background:rgba(10,35,72,.06);
  color:var(--plum);
  font-family:var(--font-brand);
  font-size:clamp(1.35rem,2vw,1.8rem);
  font-weight:700;
  line-height:1.25;
}
.practice-note strong { color:var(--aqua-deep); }


/* Ordered services flow: Percorso principale -> Energia/Corpo/Emozioni -> Approfondimenti */
.services-flow {
  display:grid;
  gap:clamp(36px,5vw,64px);
}
.practice-grid--primary-flow,
.practice-grid--secondary-flow {
  margin:0;
}
.practice-grid--primary-flow {
  position:relative;
  z-index:3;
}
.pathway-sections {
  position:relative;
  z-index:2;
  display:grid;
  gap:28px;
  margin:0 auto;
}
.practice-grid--secondary-flow {
  position:relative;
  z-index:2;
}
#percorso-principale,
#percorso-energia,
#percorso-corpo,
#percorso-emozioni,
#approfondimenti-consapevolezza {
  scroll-margin-top:132px;
}
.pathway-card {
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:clamp(22px,3.2vw,38px);
  align-items:start;
  scroll-margin-top:132px;
  padding:clamp(30px,4.2vw,56px);
  border:1px solid rgba(201,144,47,.38);
  border-radius:34px;
  background:
    linear-gradient(135deg, rgba(255,255,251,.88), rgba(255,248,224,.76)),
    radial-gradient(circle at 92% 12%, rgba(244,216,137,.22), transparent 36%);
  box-shadow:0 22px 62px rgba(10,35,72,.11), inset 0 1px 0 rgba(255,255,255,.8);
  overflow:hidden;
}
.pathway-card::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:7px;
  background:linear-gradient(180deg, var(--gold-light), var(--gold), var(--aqua-deep));
}
.pathway-card::after {
  content:"";
  position:absolute;
  right:-70px;
  top:-90px;
  width:220px;
  height:220px;
  border-radius:999px;
  background:rgba(244,216,137,.22);
  filter:blur(4px);
  pointer-events:none;
}
.pathway-card--energia { border-color:rgba(18,59,107,.36); }
.pathway-card--corpo { border-color:rgba(201,144,47,.48); }
.pathway-card--emozioni { border-color:rgba(99,62,142,.36); }
.pathway-card--energia::before { background:linear-gradient(180deg, #dce8f5, var(--aqua-deep)); }
.pathway-card--corpo::before { background:linear-gradient(180deg, var(--gold-light), var(--gold)); }
.pathway-card--emozioni::before { background:linear-gradient(180deg, #d5b7ef, var(--plum-soft)); }
.pathway-number {
  position:relative;
  z-index:1;
  display:inline-flex;
  width:74px;
  height:74px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(201,144,47,.42);
  border-radius:24px;
  background:linear-gradient(145deg, rgba(10,35,72,.96), rgba(18,59,107,.92));
  color:var(--gold-light);
  font-family:var(--font-display);
  font-size:.9rem;
  font-weight:900;
  letter-spacing:.12em;
  box-shadow:0 18px 36px rgba(10,35,72,.18);
}
.pathway-content { position:relative; z-index:1; }
.pathway-kicker {
  margin:0 0 10px;
  color:var(--gold);
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.pathway-card h3 {
  max-width:760px;
  margin:0 0 16px;
  color:var(--aqua-dark);
  font-family:var(--font-brand);
  font-size:clamp(2.1rem,3.7vw,3.8rem);
  font-weight:700;
  letter-spacing:-.035em;
  line-height:.94;
}
.pathway-card p:not(.pathway-kicker) {
  max-width:850px;
  margin:0 0 16px;
  color:var(--ink-soft);
  font-size:clamp(1.02rem,1.35vw,1.14rem);
  line-height:1.72;
}
.pathway-recommended {
  padding:18px 22px;
  border-left:4px solid var(--gold);
  border-radius:18px;
  background:rgba(10,35,72,.055);
}
.pathway-recommended strong { color:var(--plum); }
.pathway-link {
  display:inline-flex;
  min-height:46px;
  align-items:center;
  gap:8px;
  margin-top:6px;
  color:var(--aqua-deep);
  font-weight:900;
}
.pathway-link span { color:var(--gold); font-size:1.24rem; }
.pathway-link:hover { color:var(--plum); }

/* About */
.about-section {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%, rgba(244,216,137,.42), transparent 34%),
    radial-gradient(circle at 16% 84%, rgba(220,232,245,.92), transparent 38%),
    linear-gradient(111deg, rgba(225,234,246,.92), rgba(255,248,217,.88) 57%, rgba(244,221,153,.76));
}
.about-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  align-items:center;
  gap:clamp(54px,7.5vw,118px);
}
.about-copy p:not(.eyebrow) { max-width:620px; color:var(--ink-soft); font-size:1.09rem; }
.about-copy blockquote { max-width:600px; margin:32px 0; padding:20px 0 20px 25px; border-left:4px solid var(--gold); color:var(--plum); font-family:var(--font-brand); font-size:1.88rem; font-weight:600; font-style:italic; letter-spacing:-.018em; line-height:1.08; }
.approach-card {
  position:relative;
  display:grid;
  overflow:hidden;
  border:1px solid rgba(198,139,40,.72);
  border-radius:36px;
  background:
    linear-gradient(135deg, rgba(255,253,244,.92), rgba(255,248,222,.78)),
    radial-gradient(circle at 92% 10%, rgba(244,216,137,.34), transparent 34%);
  box-shadow:0 32px 90px rgba(10,35,72,.18), 0 0 0 8px rgba(198,139,40,.07);
}
.approach-card::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:8px;
  background:linear-gradient(180deg, var(--gold-light), var(--gold), var(--aqua-deep));
}
.approach-card > div {
  position:relative;
  display:grid;
  grid-template-columns:68px 1fr;
  column-gap:24px;
  align-items:start;
  padding:clamp(34px,3.5vw,48px) clamp(30px,4.2vw,58px);
  border-bottom:1px solid rgba(19,62,87,.13);
}
.approach-card > div:last-child { border-bottom:0; }
.approach-card span {
  grid-row:1 / span 2;
  display:inline-flex;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(198,139,40,.44);
  border-radius:999px;
  background:rgba(255,248,222,.86);
  color:var(--gold);
  font-size:1.05rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 12px 28px rgba(198,139,40,.16);
}
.approach-card h3 {
  margin:0 0 10px;
  color:var(--aqua-dark);
  font-size:clamp(2rem,3vw,2.85rem);
  font-weight:700;
  line-height:.92;
  letter-spacing:-.035em;
}
.approach-card p {
  max-width:520px;
  margin:0;
  color:var(--ink-soft);
  font-size:clamp(1.05rem,1.45vw,1.18rem);
  line-height:1.68;
}

/* Contact */
.contact-section { background:linear-gradient(114deg, rgba(66,112,174,.28), rgba(255,250,224,.9) 52%, rgba(239,201,99,.37)); }
.contact-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(42px,8vw,110px); align-items:start; }
.contact-copy > p:not(.eyebrow) { max-width:520px; color:var(--ink-soft); font-size:1.08rem; }
.direct-contacts { display:grid; margin-top:34px; border-top:1px solid var(--line); }
.direct-contacts a { display:grid; gap:2px; padding:15px 0; border-bottom:1px solid var(--line); }
.direct-contacts span { color:var(--aqua-deep); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.direct-contacts strong { color:var(--plum); font-size:1.09rem; }
.contact-form { padding:clamp(25px,4vw,46px); border:1px solid rgba(198,139,40,.3); border-radius:30px; background:rgba(255,255,255,.8); box-shadow:var(--shadow); }
.form-row { display:grid; gap:8px; margin-bottom:20px; }
.form-row label { color:var(--ink); font-size:.88rem; font-weight:800; }
.form-row label span { color:var(--ink-soft); font-weight:500; }
.form-row input, .form-row select, .form-row textarea { width:100%; padding:13px 14px; border:1px solid rgba(18,59,107,.32); border-radius:10px; background:#fffefa; color:var(--ink); outline:none; }
.form-row textarea { resize:vertical; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(198,139,40,.14); }
.form-note { margin:15px 0 0; color:var(--ink-soft); font-size:.78rem; }
.form-note a { color:var(--aqua-dark); text-decoration:underline; }

/* FAQ / footer */
.faq-section { background:linear-gradient(124deg, rgba(225,234,246,.90), rgba(255,252,234,.88)); }
.faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { position:relative; padding:20px 38px 20px 0; cursor:pointer; color:var(--ink); font-weight:800; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; position:absolute; right:3px; top:14px; color:var(--gold); font-size:1.8rem; font-weight:400; }
details[open] summary::after { content:"−"; }
details p { margin:0 0 20px; color:var(--ink-soft); }
.site-footer { color:rgba(255,255,255,.9); background:linear-gradient(115deg, #081f3f 0%, #123b6b 52%, #1d4e85 100%); }
.footer-main { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:30px; padding:48px 0; }
.footer-brand { font-size:1.02rem; }
.footer-main > p { margin:0; color:rgba(255,255,255,.78); font-size:.9rem; }
.footer-links { display:grid; grid-template-columns:repeat(4,max-content); align-items:center; justify-content:flex-end; gap:10px 12px; font-size:.82rem; }
.footer-links a, .footer-links button { min-height:44px; display:inline-flex; align-items:center; justify-content:center; line-height:1; white-space:nowrap; }
.footer-links a { color:#fff; }
.footer-links .social-link { min-width:112px; padding:10px 14px; border:1px solid rgba(255,255,255,.22); border-radius:999px; background:rgba(255,255,255,.07); color:#fff; text-decoration:none; transition:background .18s ease, border-color .18s ease, transform .18s ease; }
.footer-links .social-link:hover { background:rgba(255,255,255,.13); border-color:rgba(244,216,137,.5); transform:translateY(-1px); }
.text-button { padding:0; border:0; background:none; color:#fff; cursor:pointer; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding:19px 0; border-top:1px solid rgba(255,255,255,.17); color:rgba(255,255,255,.62); font-size:.74rem; }
.footer-bottom p { margin:0; }
.footer-bottom a { color:var(--gold-light); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }

/* Cookie & legal */
.cookie-banner { position:fixed; z-index:100; right:22px; bottom:22px; width:min(640px, calc(100% - 44px)); padding:24px; border:1px solid rgba(198,139,40,.4); border-radius:22px; background:rgba(255,254,244,.98); box-shadow:0 20px 70px rgba(10,35,72,.26); }
.cookie-banner[hidden] { display:none; }
.cookie-banner h2 { margin-bottom:10px; font-size:1.9rem; }
.cookie-banner p:not(.eyebrow) { margin-bottom:18px; color:var(--ink-soft); font-size:.88rem; }
.cookie-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.cookie-actions .button { min-height:44px; padding:9px 14px; font-size:.79rem; }
.cookie-actions a { margin-left:auto; color:var(--aqua-dark); font-size:.79rem; font-weight:700; }
.legal-main { min-height:60vh; padding:82px 0; background:linear-gradient(124deg, #e1eaf6 0%, #fbf5da 50%, #f4e6a9 100%); }
.legal-content { max-width:820px; }
.legal-content h1 { color:var(--plum); font-family:var(--font-brand); font-size:clamp(3.7rem,6vw,5.8rem); font-weight:600; letter-spacing:-.045em; line-height:.9; }
.legal-content h2 { margin-top:52px; font-size:2rem; }
.legal-content p { color:var(--ink-soft); }
.legal-content strong { color:var(--ink); }
.legal-update { margin-bottom:42px; color:var(--aqua-deep) !important; font-size:.85rem; }
.legal-content a { color:var(--aqua-dark); }

/* Motion */
.reveal { opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal-delay { transition-delay:.14s; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } .reveal { opacity:1; transform:none; } }

@media (max-width: 900px) {
  .section { padding:88px 0; }
  .hero { padding:64px 0 75px; }
  .hero-layout, .experience-grid, .about-grid, .contact-grid, .faq-grid { grid-template-columns:1fr; }
  .experience-note { justify-self:center; text-align:center; }
  .experience-copy { max-width:700px; }
  .approach-card { max-width:760px; }
  .availability-grid { grid-template-columns:1fr; padding:12px 0; }
  .availability-item, .availability-item:first-child, .availability-item:last-child { padding:16px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.35); }
  .availability-item:last-child { border-bottom:0; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-links { justify-content:flex-start; }
}
@media (max-width: 720px) {
  .container { width:min(100% - 32px,1180px); }
  .site-header { padding:13px 0; }
  .main-nav { position:fixed; inset:66px 16px auto; display:none; align-items:stretch; gap:17px; max-height:calc(100vh - 92px); overflow-y:auto; padding:22px; border-radius:18px; background:#fffdf2; box-shadow:var(--shadow); }
  .main-nav.is-open { display:flex; flex-direction:column; }
  .menu-toggle { display:block; }
  .main-nav .nav-cta { margin-top:6px; }
  .display-title { font-size:clamp(2.9rem,15vw,5.5rem); letter-spacing:.105em; line-height:.84; }
    .hero-intro { font-size:1.22rem; }

  .pathway-card {
    grid-template-columns:1fr;
    gap:18px;
    scroll-margin-top:108px;
    padding:30px 22px;
    border-radius:26px;
  }
  .pathway-number {
    width:58px;
    height:58px;
    border-radius:19px;
    font-size:.78rem;
  }
  .pathway-card h3 {
    font-size:clamp(2rem,10vw,2.85rem);
  }
  .pathway-recommended {
    padding:16px 18px;
  }

  .hero-pillars { grid-template-columns:1fr; gap:14px; max-width:420px; margin:4px auto 34px; padding:14px; border-radius:24px; }
  .hero-pillar { grid-template-columns:1fr; align-items:start; gap:7px; min-height:auto; padding:22px 22px 20px 26px; border-left:1px solid rgba(201,144,47,.26); }
  .hero-pillar::before { top:20px; bottom:20px; width:4px; }
  .hero-pillars strong { font-size:1rem; letter-spacing:.075em; }
  .hero-pillars span { max-width:none; font-size:.92rem; }
  .hero-pillars small { font-size:.72rem; }
  .practice-list { border-radius:26px; padding:30px 22px; }
  .practice-list--primary::after { right:22px; top:22px; opacity:.75; }
  .practice-list--secondary ul { grid-template-columns:1fr; }
  .approach-card { border-radius:28px; }
  .approach-card > div { grid-template-columns:52px 1fr; column-gap:16px; padding:30px 22px 30px 28px; }
  .approach-card span { width:34px; height:34px; font-size:.9rem; }
  .approach-card h3 { font-size:2rem; }
  .footer-main { grid-template-columns:1fr; }
  .footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; justify-content:stretch; gap:10px; }
  .footer-links a, .footer-links button { width:100%; }
  .footer-links .social-link { min-width:0; }
  .footer-bottom { flex-direction:column; }
  .cookie-banner { right:16px; bottom:16px; width:calc(100% - 32px); }
  .cookie-actions a { width:100%; margin-left:0; }
}

@media (max-width: 480px) {
  .section { padding:74px 0; }
  .hero { padding:54px 0 64px; }
  .display-title { font-size:clamp(2.25rem, 10.4vw, 2.85rem); letter-spacing:.045em; line-height:.92; }
  .hero-intro { font-size:1.08rem; }
  h2 { font-size:clamp(2.25rem, 11vw, 3.15rem); }
  .availability-item { gap:12px; }
  .availability-icon { font-size:2.1rem; }
  .availability-item strong { font-size:1.08rem; }
  .contact-form { border-radius:22px; }
  .direct-contacts strong { font-size:1rem; overflow-wrap:anywhere; }
}

@media (max-width: 380px) {
  .display-title { font-size:2.18rem; letter-spacing:.035em; }
  .brand { font-size:.96rem; letter-spacing:.105em; }
  .hero-pillars { padding:12px; }
  .hero-pillar { padding:20px 18px 18px 22px; }
  .hero-pillar::after { right:18px; top:17px; }
}


@media (max-width: 340px) {
  .display-title { font-size:2rem; letter-spacing:.025em; }
  .container { width:min(100% - 28px,1180px); }
  .footer-brand { font-size:.88rem; letter-spacing:.09em; }
}

/* Compatibility review - PC, tablet and mobile refinements */
html, body { max-width:100%; }
img, svg, video { max-width:100%; height:auto; }
.hero-pillar,
.pathway-card,
.practice-list,
.approach-card,
.contact-form,
.faq-list,
.footer-main,
.direct-contacts,
.availability-item { min-width:0; }
.pathway-content,
.practice-list li,
.approach-card p,
.direct-contacts strong,
.footer-main p { overflow-wrap:anywhere; }

/* Less intrusive cookie banner: avoids covering key hero/navigation content */
.cookie-banner {
  width:min(500px, calc(100% - 44px));
  max-height:min(70vh, 500px);
  overflow-y:auto;
  padding:20px;
}
.cookie-banner h2 { font-size:1.65rem; line-height:1; }
.cookie-banner p:not(.eyebrow) { font-size:.84rem; line-height:1.45; }

@media (hover:none) {
  .hero-pillar:hover,
  .pathway-link:hover,
  .button:hover,
  .nav-cta:hover { transform:none; }
}

@media (max-width: 900px) {
  .pathway-card { align-items:stretch; }
  .pathway-card::after { right:-110px; top:-110px; opacity:.62; }
}

@media (max-width: 720px) {
  .main-nav { overscroll-behavior:contain; }
  body.menu-open { overflow:hidden; }
  .hero-pillar,
  .button,
  .nav-cta,
  .pathway-link,
  .text-link,
  .direct-contacts a,
  .footer-links a,
  .footer-links button,
  summary { touch-action:manipulation; }
  .pathway-card p:not(.pathway-kicker) { font-size:1rem; line-height:1.62; }
  .pathway-recommended { margin-top:2px; }
  .cookie-banner {
    right:12px;
    bottom:12px;
    width:calc(100% - 24px);
    max-height:58vh;
    padding:17px;
    border-radius:18px;
  }
  .cookie-banner h2 { font-size:1.45rem; }
  .cookie-actions { display:grid; grid-template-columns:1fr; }
  .cookie-actions .button,
  .cookie-actions a { width:100%; justify-content:center; text-align:center; margin-left:0; }
}

@media (max-width: 480px) {
  .pathway-card {
    gap:15px;
    padding:26px 18px;
  }
  .pathway-number {
    width:52px;
    height:52px;
    border-radius:17px;
  }
  .pathway-card h3 {
    font-size:clamp(1.78rem, 9vw, 2.45rem);
    line-height:1;
    letter-spacing:-.028em;
  }
  .pathway-card p:not(.pathway-kicker) {
    font-size:.96rem;
    line-height:1.58;
  }
  .pathway-recommended {
    padding:14px 16px;
    border-radius:16px;
  }
  .hero-pillar {
    padding-right:42px;
  }
  .hero-pillars span,
  .hero-pillars small { line-height:1.32; }
  .practice-list,
  .contact-form { padding:26px 18px; }
  .approach-card > div { padding-right:18px; }
}

@media (max-width: 340px) {
  .pathway-card { padding:24px 16px; }
  .pathway-card h3 { font-size:1.72rem; }
  .pathway-number { width:48px; height:48px; }
  .cookie-banner { max-height:54vh; }
}

/* Accessibility skip link without off-canvas horizontal coordinates */
.skip-link {
  position:fixed;
  left:10px;
  top:10px;
  transform:translateY(-180%);
  transition:transform .18s ease;
}
.skip-link:focus { left:10px; transform:translateY(0); }


/* Anchor and section stacking refinements - prevent previous sections from visually covering target cards */
section[id], article[id] { scroll-margin-top:132px; }
.experience-section + .services { margin-top:0; }
.services-flow > * { min-width:0; }
.pathway-card, .practice-list { transform:translateZ(0); }

@media (max-width: 720px) {
  html { scroll-padding-top:94px; }
  section[id], article[id],
  #percorso-principale,
  #percorso-energia,
  #percorso-corpo,
  #percorso-emozioni,
  #approfondimenti-consapevolezza { scroll-margin-top:108px; }
  .services-flow { gap:38px; }
  .pathway-sections { gap:22px; }
}

@media (max-width: 480px) {
  html { scroll-padding-top:86px; }
  section[id], article[id],
  #percorso-principale,
  #percorso-energia,
  #percorso-corpo,
  #percorso-emozioni,
  #approfondimenti-consapevolezza { scroll-margin-top:96px; }
  .services-flow { gap:34px; }
}
