
:root{
  --forest:#2f4938;
  --forest-deep:#20352a;
  --olive:#758362;
  --sage:#a9b49a;
  --sage-soft:#dfe5d8;
  --ivory:#f7f4eb;
  --paper:#fffdf8;
  --sand:#d4c19b;
  --ink:#253129;
  --muted:#657068;
  --line:rgba(47,73,56,.17);
  --shadow:0 22px 60px rgba(32,53,42,.11);
  --radius-xl:36px;
  --radius-lg:24px;
  --radius-md:16px;
  --container:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;line-height:1.65;text-rendering:optimizeLegibility}
img{display:block;max-width:100%}
a{color:inherit}
button,input,textarea{font:inherit}
::selection{background:var(--sage);color:var(--forest-deep)}
.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}
.section{padding:112px 0;position:relative}
.section.soft{background:#eef0e8}
.section.dark{background:var(--forest);color:#fff}
.skip-link{position:fixed;left:16px;top:-60px;z-index:9999;background:#fff;padding:12px 16px;border-radius:8px;box-shadow:var(--shadow)}
.skip-link:focus{top:16px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:var(--olive)}
.eyebrow:before{content:"";width:34px;height:1px;background:currentColor}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.035em;line-height:1.08;margin:0 0 22px;color:var(--forest-deep)}
h1{font-size:clamp(3.4rem,6.6vw,6.8rem);max-width:10ch}
h2{font-size:clamp(2.5rem,4.6vw,4.6rem);max-width:14ch}
h3{font-size:1.65rem;letter-spacing:-.02em}
p{margin:0 0 18px}
.lead{font-size:clamp(1.08rem,1.5vw,1.3rem);line-height:1.65;color:#4f5c54}
.section-heading{margin-bottom:54px}.section-heading.center{text-align:center;display:grid;justify-items:center}.section-heading.center h2{max-width:18ch}.section-heading.center p{max-width:700px;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 23px;border-radius:999px;text-decoration:none;font-weight:750;font-size:.92rem;border:1px solid transparent;transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease}
.button:hover{transform:translateY(-2px)}
.button.primary{background:var(--forest);color:#fff;box-shadow:0 12px 28px rgba(47,73,56,.18)}
.button.primary:hover{background:var(--forest-deep)}
.button.secondary{background:transparent;border-color:var(--forest);color:var(--forest)}
.button.secondary:hover{background:var(--forest);color:#fff}
.button.light{background:#fff;color:var(--forest)}
.button.ghost-light{border-color:rgba(255,255,255,.46);color:#fff}
.button.ghost-light:hover{background:#fff;color:var(--forest)}
.inline-link{display:inline-flex;align-items:center;gap:8px;font-weight:750;text-decoration:none;color:var(--forest);border-bottom:1px solid rgba(47,73,56,.35);padding-bottom:2px}
.inline-link:hover{border-color:var(--forest)}
/* Header */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(247,244,235,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(47,73,56,.10)}
.nav-wrap{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:26px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.brand img{width:56px;height:56px;object-fit:contain}
.brand-text{display:grid;line-height:1}.brand-text strong{font-family:Georgia,"Times New Roman",serif;font-size:1.26rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase}.brand-text small{font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;margin-top:6px;color:var(--olive)}
.site-nav{display:flex;align-items:center;gap:22px}.site-nav a{text-decoration:none;font-size:.9rem;font-weight:650;color:#435047}.site-nav a:hover{color:var(--forest)}.site-nav .nav-cta{background:var(--forest);color:#fff;padding:11px 18px;border-radius:999px}.site-nav .nav-cta:hover{color:#fff;background:var(--forest-deep)}
.menu-toggle{display:none;border:1px solid var(--line);background:#fff;color:var(--forest);border-radius:999px;padding:9px 15px;font-weight:750}
/* Hero */
.hero{padding:74px 0 82px;overflow:hidden}
.hero:before{content:"";position:absolute;inset:-20% auto auto 53%;width:650px;height:650px;border-radius:50%;background:radial-gradient(circle,rgba(169,180,154,.42),rgba(169,180,154,0) 68%);pointer-events:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);align-items:center;gap:76px;min-height:650px}
.hero-copy .eyebrow{margin-bottom:22px}.hero-copy h1 em{font-style:italic;color:var(--olive)}.hero-copy>p{max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 28px}
.hero-facts{display:flex;flex-wrap:wrap;gap:10px}.hero-facts span{padding:9px 13px;border:1px solid var(--line);border-radius:999px;font-size:.83rem;color:#526057;background:rgba(255,255,255,.45)}
.hero-visual{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:540px}
.hero-disc{position:relative;width:min(100%,440px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#9aa789,#627a65);box-shadow:var(--shadow);border:1px solid rgba(47,73,56,.14);overflow:hidden}
.hero-disc:before,.hero-disc:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.46);border-radius:50%}.hero-disc:before{inset:8%}.hero-disc:after{inset:16%}
.hero-disc img{width:84%;height:84%;object-fit:contain;filter:drop-shadow(0 12px 26px rgba(32,53,42,.16));position:relative;z-index:1}
.hero-caption{position:static;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;text-align:center;max-width:none;font-family:Georgia,"Times New Roman",serif;color:var(--forest);z-index:2;display:grid;gap:4px}.hero-caption strong{font-size:1.38rem;font-weight:400}.hero-caption span{font-size:1.04rem;color:var(--olive)}
/* Quote */
.manifesto{padding:34px 0;background:var(--forest);color:#fff}.manifesto-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.manifesto blockquote{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.8rem,3vw,3rem);line-height:1.2}.manifesto p{margin:0;color:rgba(255,255,255,.78);font-size:1.06rem}
/* Origin */
.split{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:start}.prose{max-width:710px}.prose p{font-size:1.08rem;color:#526057}.values{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.values span{border-radius:999px;background:#eef0e8;color:var(--forest);border:1px solid var(--line);padding:10px 15px;font-weight:700;font-size:.86rem}
/* Cards */
.practice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.practice-card{background:rgba(255,255,255,.73);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;min-height:265px;display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.practice-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);background:#fff}.practice-card .number{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--olive);margin-bottom:auto}.practice-card h3{font-size:1.5rem;margin:30px 0 14px}.practice-card p{font-size:.95rem;color:#5a665e;margin:0}
/* Treatments */
.treatments-wrap{display:grid;grid-template-columns:.92fr 1.08fr;min-height:610px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}
.treatment-visual{background:linear-gradient(145deg,#849170,#536a55);display:grid;place-items:center;padding:54px;position:relative;overflow:hidden}.treatment-visual:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:1px solid rgba(255,255,255,.25)}.treatment-visual:after{content:"";position:absolute;width:390px;height:390px;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.treatment-visual img{width:min(100%,470px);position:relative;z-index:1;opacity:.96;filter:drop-shadow(0 18px 30px rgba(25,43,33,.18))}
.treatment-copy{background:var(--paper);padding:clamp(46px,7vw,90px);display:flex;flex-direction:column;justify-content:center}.treatment-copy h2{max-width:10ch}.treatment-copy .button{align-self:flex-start;margin-top:16px}
/* Team */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.team-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.portrait{height:250px;background:linear-gradient(145deg,#d7ddce,#aeb99e);display:grid;place-items:center;position:relative}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 34%;display:block}.portrait.has-photo:after{display:none}.portrait:after{content:"Foto in arrivo";position:absolute;bottom:16px;right:16px;background:rgba(255,255,255,.75);border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:700;color:var(--forest)}.portrait span{font-family:Georgia,"Times New Roman",serif;font-size:6rem;color:rgba(255,255,255,.72)}.team-body{padding:28px}.role{color:var(--olive);text-transform:uppercase;letter-spacing:.09em;font-weight:750;font-size:.74rem;margin-bottom:8px}.team-body h3{font-size:2rem;margin-bottom:15px}.team-body p{color:#59655d;font-size:.96rem}

.portrait.lisa-photo img{object-position:center 30%}
.portrait.maurizio-photo img{object-position:center 34%}

/* Schedule */
.schedule-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.schedule-intro .section-heading{margin:0}.schedule-note{max-width:390px;color:var(--muted)}
.schedule-scroll{overflow-x:auto;padding-bottom:12px;scrollbar-color:var(--sage) transparent}
.schedule-board{min-width:1160px;display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.day-column{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:13px;display:flex;flex-direction:column;gap:10px}.day-column h3{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:.13em;font-size:.82rem;font-weight:800;color:var(--olive);padding:10px 8px 14px;margin:0;border-bottom:1px solid var(--line)}
.lesson{background:#f4f4ed;border-radius:15px;padding:14px 13px;min-height:112px;display:flex;flex-direction:column;gap:4px;position:relative}.lesson time{font-size:.76rem;color:var(--olive);font-weight:800}.lesson strong{font-size:.92rem;line-height:1.3;color:var(--forest-deep)}.lesson span{font-size:.78rem;color:#68736b}.lesson small{font-size:.68rem;color:#717c74}.badge{display:inline-flex;align-self:flex-start;border-radius:999px;padding:4px 7px;background:var(--forest);color:#fff;font-size:.62rem;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-top:3px}.badge.alt{background:var(--sand);color:var(--forest-deep)}
.schedule-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;padding:26px 30px;border-radius:22px;background:var(--forest);color:#fff}.schedule-footer p{margin:0;color:rgba(255,255,255,.82)}
/* Pricing */
.price-top{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.price-summary{padding:28px 30px;border-radius:22px;background:var(--forest);color:#fff;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.price-summary:nth-child(2){background:var(--sand);color:var(--forest-deep)}.price-summary span{font-size:.9rem;font-weight:700}.price-summary strong{font-family:Georgia,"Times New Roman",serif;font-size:2.6rem;font-weight:400}.price-summary small{grid-column:1/-1;opacity:.78}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.price-card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:27px}.price-card.featured{background:#e6eadf;border-color:rgba(47,73,56,.3)}.price-card h3{font-size:1.42rem;min-height:58px}.price-card ul{list-style:none;padding:0;margin:0}.price-card li{display:grid;grid-template-columns:1fr auto;gap:7px 16px;padding:15px 0;border-top:1px solid var(--line)}.price-card li span{font-size:.9rem}.price-card li strong{color:var(--forest);font-size:1rem}.price-card li small{grid-column:1/-1;color:var(--muted)}
/* Events */
.event-panel{border-radius:var(--radius-xl);background:linear-gradient(120deg,#e0e6d8,#f7f4eb);border:1px solid var(--line);padding:clamp(38px,6vw,72px);display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.event-panel h2{max-width:11ch}.event-list{display:grid;gap:13px}.event-item{background:rgba(255,255,255,.62);border:1px solid rgba(47,73,56,.13);border-radius:17px;padding:18px}.event-item strong{display:block;color:var(--forest);margin-bottom:4px}.event-item span{color:var(--muted);font-size:.92rem}
/* FAQ */
.faq-list{max-width:900px;margin:0 auto;display:grid;gap:12px}.faq-list details{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:0 22px}.faq-list summary{cursor:pointer;list-style:none;padding:21px 34px 21px 0;font-weight:750;color:var(--forest);position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:300}.faq-list details[open] summary:after{content:"−"}.faq-list details p{padding:0 0 20px;color:var(--muted)}
/* Contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:65px;align-items:stretch}.contact-copy h2{color:#fff;max-width:11ch}.contact-copy .eyebrow{color:#cbd5c1}.contact-copy .lead{color:rgba(255,255,255,.82);max-width:620px}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.address-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:34px}.address-card h3{color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em;margin-bottom:9px}.address-card p{color:rgba(255,255,255,.8)}.address-card hr{border:0;border-top:1px solid rgba(255,255,255,.22);margin:25px 0}.address-card a{color:#fff}
/* Footer */
.site-footer{padding:54px 0 24px;background:#1e3026;color:#fff}.footer-grid{display:grid;grid-template-columns:1.1fr .9fr 1.4fr auto;gap:36px;align-items:start}.footer-brand{display:flex;gap:13px;align-items:center}.footer-brand img{width:60px}.site-footer strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.11em}.site-footer p{margin-top:9px;color:rgba(255,255,255,.67);font-size:.86rem}.footer-links{display:grid;gap:10px}.footer-links a{color:#fff;text-decoration:none;font-size:.86rem}.copyright{margin-top:38px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);font-size:.76rem;color:rgba(255,255,255,.52)}
/* Responsive */
@media (max-width:1100px){
  .site-nav{gap:14px}.site-nav a{font-size:.83rem}
  .hero-grid{grid-template-columns:1fr .78fr;gap:35px}.hero-caption{right:0}
  .practice-grid{grid-template-columns:repeat(2,1fr)}
  .team-grid{grid-template-columns:1fr 1fr}.team-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:.65fr 1.35fr}.team-card:last-child .portrait{height:100%}
  .pricing-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:850px){
  .section{padding:84px 0}.menu-toggle{display:inline-flex}.site-nav{display:none;position:absolute;top:76px;left:20px;right:20px;flex-direction:column;align-items:stretch;gap:0;background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:var(--shadow)}.site-nav.open{display:flex}.site-nav a{padding:12px 14px}.site-nav .nav-cta{text-align:center;margin-top:5px}
  .hero-grid,.split,.treatments-wrap,.event-panel,.contact-grid{grid-template-columns:1fr}.hero-grid{min-height:0}.hero-copy{order:1}.hero-visual{order:2;min-height:430px}.hero-disc{width:min(90%,440px)}.hero-caption{right:6%;bottom:20px}
  .manifesto-grid{grid-template-columns:1fr;gap:14px}.split{gap:38px}.treatment-visual{min-height:460px}.treatment-copy{padding:50px 35px}.event-panel{gap:34px}
  .schedule-intro{display:block}.schedule-note{margin-top:16px}.schedule-footer{align-items:flex-start;flex-direction:column}
  .contact-copy h2{max-width:14ch}
}
@media (max-width:620px){
  .container{width:min(calc(100% - 28px),var(--container))}.section{padding:68px 0}.nav-wrap{min-height:74px}.brand img{width:49px;height:49px}.brand-text strong{font-size:1.05rem}
  h1{font-size:clamp(3rem,15vw,4.6rem)}h2{font-size:clamp(2.35rem,11vw,3.3rem)}
  .hero{padding-top:48px}.hero-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:0}.hero-disc{width:min(92%,440px)}.hero-caption{position:static;right:auto;bottom:auto;width:min(100%,320px);max-width:none;margin:0 auto;text-align:center;font-size:1rem;line-height:1.45;padding:13px 18px;box-shadow:0 10px 28px rgba(32,53,42,.10)}.hero-actions,.contact-actions{display:grid}.button{width:100%}.hero-facts{display:grid;grid-template-columns:1fr 1fr}.hero-facts span{text-align:center}
  .practice-grid,.team-grid,.pricing-grid,.price-top{grid-template-columns:1fr}.team-card:last-child{grid-column:auto;display:block}.team-card:last-child .portrait{height:250px}
  .practice-card{min-height:225px}.price-summary{padding:24px}.price-summary strong{font-size:2.2rem}.event-panel{padding:32px 24px}
  .schedule-board{min-width:100%;display:grid;grid-template-columns:1fr;gap:16px}.schedule-scroll{overflow:visible}.day-column{padding:15px}.lesson{min-height:auto}.schedule-footer{padding:24px}
  .contact-grid{gap:34px}.address-card{padding:26px}.footer-grid{grid-template-columns:1fr}.footer-links{display:flex;gap:18px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.practice-card{transition:none}}

/* Versione 6: ritratto Lisa e rifiniture team */
@media (max-width:1100px){
  .hero-grid{grid-template-columns:1fr 390px;gap:44px;min-height:610px}
  .hero-disc{width:min(100%,390px)}
}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:34px;min-height:auto}
  .hero-copy{text-align:left}
  .hero-visual{min-height:auto;padding-top:8px}
  .hero-disc{width:min(86vw,390px)}
}


/* Versione 8: biografie complete sempre visibili sotto i ritratti */
.team-grid{align-items:stretch}
.team-card{display:flex;flex-direction:column;min-width:0}
.team-card .portrait{flex:0 0 300px;height:300px}
.team-body{display:flex;flex-direction:column;flex:1;padding:30px}
.team-body h3{margin-bottom:17px}
.team-body .bio{display:grid;gap:12px}
.team-body .bio p{margin:0;color:#526057;font-size:.96rem;line-height:1.72}
.team-link{margin-top:auto;padding-top:23px;align-self:flex-start}
.portrait.erika-photo img{object-position:center 36%}
@media (max-width:1100px){
  .team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-card:last-child{grid-column:1/-1;display:flex;grid-template-columns:none;max-width:calc((100% - 22px)/2);width:100%;justify-self:center}
  .team-card:last-child .portrait{height:300px;flex-basis:300px}
}
@media (max-width:720px){
  .team-grid{grid-template-columns:1fr}
  .team-card:last-child{grid-column:auto;max-width:none}
  .team-card .portrait,.team-card:last-child .portrait{height:290px;flex-basis:290px}
  .team-body{padding:26px 24px}
}

/* Versione 10: ritratti senza margine superiore e biografie nel flusso sotto la foto */
.team-card,
.team-card:last-child{
  display:grid !important;
  grid-template-columns:1fr !important;
  grid-template-rows:auto 1fr;
  padding:0;
  overflow:hidden;
}
.team-card .portrait,
.team-card:last-child .portrait{
  position:relative;
  display:block;
  width:100%;
  height:auto !important;
  min-height:0;
  flex:none !important;
  aspect-ratio:4 / 5;
  padding:0;
  margin:0;
  line-height:0;
  background:transparent !important;
  overflow:hidden;
}
.team-card .portrait img,
.team-card:last-child .portrait img{
  display:block;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  object-fit:cover;
}
.team-body{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  width:100%;
  margin:0;
  padding:30px;
  background:var(--paper);
  transform:none;
}
.portrait.lisa-photo img{object-position:center 34%}
.portrait.erika-photo img{object-position:center 35%}
.portrait.maurizio-photo img{object-position:center 32%}
@media (max-width:1100px){
  .team-card:last-child{
    grid-column:1/-1;
    max-width:calc((100% - 22px)/2);
    width:100%;
    justify-self:center;
  }
}
@media (max-width:720px){
  .team-card:last-child{grid-column:auto;max-width:none}
  .team-body{padding:26px 24px}
}
