:root{
  --bg:#FBF7EE; --ink:#201C15; --sub:#655F52;
  --accent-1:#E8890A; --accent-2:#E0327A; --accent-3:#00A63E;
  --accent-1-txt:#A85E00; --accent-3-txt:#0E7A2E;
  --card-bg:#FFFDF7; --card-line:#ECE4D0;
  --chip-bg:#201C15; --chip-ink:#FBF7EE;
  --founder-bg:#F6E6CE;
  --on-accent:#FFFFFF;
  --on-page-accent: var(--ink);
  --line:#ECE4D0;
  --page-accent: var(--accent-1);
  --page-accent-txt: var(--accent-1-txt);
  --logo-plate:#FFFDF7; --logo-plate-line:#ECE4D0;
  --logo-plate-ink:#201C15; --logo-plate-accent:#00A63E; --logo-plate-accent2:#E0327A;
  --font-head:'Century Gothic','Jost',sans-serif;
}

body.page-team{ --page-accent: var(--accent-1); --page-accent-txt: var(--accent-1-txt); }
body.page-family{ --page-accent: var(--accent-3); --page-accent-txt: var(--accent-3-txt); }
body.page-spirit{ --page-accent: var(--accent-2); --page-accent-txt: var(--accent-2); --on-page-accent: var(--on-accent); }

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:'Trebuchet MS','Segoe UI',sans-serif;
  -webkit-font-smoothing:antialiased;
}
img,svg,canvas{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3{text-wrap:balance;}
:focus-visible{ outline:2px solid var(--page-accent-txt); outline-offset:2px; }
.wrap{ max-width:1080px; margin:0 auto; padding:0 1.5rem; position:relative; }

/* ---------- skip link ---------- */
.skip-link{
  position:fixed; top:-4rem; left:1rem; z-index:1000;
  background:var(--ink); color:var(--bg);
  padding:.7rem 1.2rem; border-radius:0 0 10px 10px;
  font-weight:700; font-size:.9rem; text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{ top:0; }

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

/* ---------- nav ---------- */
.site-nav{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:.6rem 1rem;
  margin:0 -1.5rem; padding:1rem 1.5rem;
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--bg) 90%, transparent);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.site-nav .word{
  display:flex; align-items:center; gap:.6rem;
  font-family:var(--font-head); font-weight:700; font-size:1.9rem; letter-spacing:-0.01em;
  text-decoration:none; flex:0 0 auto;
}
.site-nav .word .cre{ color:var(--accent-3); }
.logo-chip{
  width:38px; height:38px; border-radius:50%; flex:0 0 auto;
  background:var(--logo-plate); box-shadow:inset 0 0 0 1px var(--logo-plate-line);
  display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.logo-chip img{ width:80%; height:80%; object-fit:contain; }
.site-nav .links{ display:flex; flex-wrap:nowrap; gap:1.4rem; font-size:.86rem; font-weight:600; align-items:center; }
.site-nav .links a{ display:flex; align-items:center; gap:.5rem; text-decoration:none; opacity:.8; border-bottom:2px solid transparent; padding-bottom:2px; white-space:nowrap; }
.site-nav .links a:hover{ opacity:1; border-color:var(--page-accent); }
.site-nav .links a.active{ opacity:1; color:var(--page-accent); border-color:var(--page-accent); }
.nav-icon{ width:17px; height:17px; flex:0 0 auto; }

.nav-toggle{
  display:none; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
  background:transparent; color:var(--ink); cursor:pointer; flex:0 0 auto;
}
.nav-toggle svg{ width:20px; height:20px; }

@media (max-width:760px){
  .site-nav{ justify-content:space-between; }
  .site-nav .word{ font-size:1.4rem; }
  .nav-toggle{ display:flex; }
  .site-nav .links{
    display:none; width:100%; flex-direction:column; align-items:flex-start;
    gap:.2rem; order:3; flex-wrap:nowrap;
  }
  .site-nav .links.open{ display:flex; }
  .site-nav .links a{ width:100%; padding:.6rem 0; border-bottom:1px solid var(--line); }
}
@media (max-width:640px){
  .site-nav .word{ font-size:1.25rem; gap:.4rem; }
  .logo-chip{ width:26px; height:26px; }
  .site-nav .links{ font-size:.9rem; }
  .site-nav .links a{ gap:.5rem; }
  .nav-icon{ width:15px; height:15px; }
}

/* ---------- brand hero (home) ---------- */
.brand-hero{
  position:relative; margin:.5rem 0 2rem;
  background:var(--logo-plate); border:1px solid var(--logo-plate-line);
  border-radius:26px 8px 26px 8px; overflow:hidden;
}
.brand-hero-img{ width:100%; height:auto; display:block; }
.brand-hero-text{
  position:absolute; top:8%; right:30%; text-align:right; max-width:55%;
}
.brand-name{
  font-family:var(--font-head); font-style:normal; font-weight:700;
  font-size:clamp(1.6rem,6vw,3.6rem); line-height:1; margin:0; letter-spacing:-0.01em;
  color:var(--logo-plate-ink);
}
.brand-name .cre{ color:var(--logo-plate-accent); }
.brand-tagline{
  position:absolute; left:5%; right:5%; bottom:6%; text-align:center;
  font-size:clamp(.65rem,1.7vw,.85rem); letter-spacing:.14em; text-transform:uppercase; font-weight:700;
  color:var(--logo-plate-accent2); margin:0;
}
.tag-narrow{ display:none; }
@media (max-width:600px){
  .brand-hero-text{ top:5%; right:8%; max-width:66%; }
  .brand-name{ font-size:clamp(1.3rem,7.5vw,2rem); }
  .brand-tagline{ font-size:.6rem; letter-spacing:.08em; bottom:6%; }
  .tag-wide{ display:none; }
  .tag-narrow{ display:inline; }
}

/* ---------- animated band (canvas) ---------- */
.hero-stage{ position:relative; height:320px; margin:0 -1.5rem 1rem; }
.hero-stage canvas{ position:absolute; inset:0; width:100%; height:100%; }
.hero-stage .moon{ position:absolute; top:10px; right:6%; width:150px; height:150px; opacity:.85; }
.anim-band{ height:240px; margin:1.5rem 0 .5rem; }
@media (max-width:600px){ .anim-band{ height:190px; } }

.hero{ padding:.5rem 0 3rem; max-width:660px; }
.hero .eyebrow{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--accent-1-txt); margin:0 0 1.1rem;
}
.hero h1{
  font-family:var(--font-head); font-weight:700;
  font-size:clamp(2.2rem,5.2vw,3.4rem); line-height:1.08; margin:0 0 1.15rem;
}
.hero p.sub{ font-size:1.1rem; line-height:1.62; opacity:.88; margin:0 0 1.7rem; max-width:50ch; }
.hero .ctas{ display:flex; gap:.8rem; flex-wrap:wrap; margin-bottom:2rem; }
.hero .ctas a{
  font-weight:700; font-size:.9rem; padding:.85rem 1.5rem;
  border-radius:20px 8px 20px 8px; text-decoration:none; display:inline-block;
}
.hero .ctas a.primary{ background:var(--accent-1); color:var(--on-page-accent); }
.hero .ctas a.secondary{ background:transparent; color:var(--ink); border:1.5px solid var(--ink); opacity:.85; }
.hero blockquote{
  margin:0; padding-left:1.1rem; border-left:3px solid var(--accent-3);
  font-style:italic; font-family:Georgia,serif; font-size:1.12rem; opacity:.9; max-width:44ch;
}

/* ---------- page hero (inner pages) ---------- */
.page-hero{ padding:1.5rem 0 3rem; max-width:720px; position:relative; }
.page-hero .badge{
  width:76px; height:76px; border-radius:50%; background:var(--page-accent);
  display:flex; align-items:center; justify-content:center; margin:0 0 1.4rem;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,0.16)); overflow:hidden;
}
.page-hero .badge svg{ width:44px; height:44px; }
.page-hero .badge img{ width:56%; height:56%; object-fit:contain; }
.page-hero .eyebrow{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--page-accent-txt); margin:0 0 1rem;
}
.spirit-intro{ display:flex; align-items:flex-end; gap:1.4rem; flex-wrap:wrap; margin:0 0 1rem; }
.spirit-intro .badge{
  width:auto; height:170px; background:none; border-radius:0; margin:0 0 0 .6rem;
  filter:none; overflow:visible; flex:0 0 auto;
}
.spirit-intro .badge img{ width:auto; height:100%; object-fit:contain; display:block; }
.spirit-intro .eyebrow{ margin:0 0 .3rem; }
@media (max-width:600px){
  .spirit-intro .badge{ height:130px; }
}
.page-hero h1{
  font-family:var(--font-head); font-weight:700;
  font-size:clamp(2rem,4.6vw,2.9rem); line-height:1.1; margin:0 0 1.1rem;
}
.page-hero p.sub{ font-size:1.08rem; line-height:1.62; opacity:.88; margin:0 0 1.4rem; max-width:58ch; }
.page-hero blockquote{
  margin:0; padding-left:1.1rem; border-left:3px solid var(--page-accent);
  font-style:italic; font-family:Georgia,serif; font-size:1.08rem; opacity:.9; max-width:50ch;
}
.section h1{
  font-family:var(--font-head); font-weight:700;
  font-size:clamp(1.5rem,3.4vw,2rem); line-height:1.15; margin:.4rem 0 .8rem;
}
.section p.sub{ font-size:1rem; line-height:1.55; opacity:.88; margin:0 0 1rem; max-width:58ch; }
.section blockquote{
  margin:0 0 1.2rem; padding-left:1.1rem; border-left:3px solid var(--page-accent);
  font-style:italic; font-family:Georgia,serif; font-size:1.02rem; opacity:.9; max-width:50ch;
}

/* ---------- featured program (Primal 2.0) ---------- */
.featured{
  display:grid; grid-template-columns:0.9fr 1.1fr; gap:0;
  background:var(--card-bg); border:1px solid var(--card-line);
  border-radius:24px 8px 24px 8px; overflow:hidden; margin:0 0 3rem;
}
@media (max-width:780px){ .featured{ grid-template-columns:1fr; } }
.featured-img{ position:relative; min-height:280px; }
.featured-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.featured-img .datechip{
  position:absolute; top:1rem; left:1rem;
  background:var(--page-accent); color:var(--on-accent);
  font-size:.78rem; font-weight:700; letter-spacing:.04em;
  padding:.45rem .9rem; border-radius:999px;
}
.featured-body{ padding:2rem 2.1rem; }
.featured-body .kicker{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  color:var(--page-accent-txt); margin:0 0 .6rem;
}
.featured-body h3{
  font-family:var(--font-head); font-style:normal; font-size:clamp(1.6rem,3.4vw,2.1rem);
  line-height:1.1; margin:0 0 1rem;
}
.featured-body .pull{
  font-family:Georgia,serif; font-style:italic; font-size:1.12rem; line-height:1.4;
  padding-left:1rem; border-left:3px solid var(--page-accent); margin:0 0 1.2rem; opacity:.92;
}
.featured-body p{ font-size:.96rem; line-height:1.65; opacity:.86; margin:0 0 1rem; }
.featured-body p:last-child{ margin-bottom:0; }
.featured-meta{
  display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.3rem; padding-top:1.2rem;
  border-top:1px dashed var(--card-line);
}

/* ---------- photo elements ---------- */
.photo-band{
  margin:0 0 2.8rem; border-radius:22px 8px 22px 8px; overflow:hidden;
  border:1px solid var(--card-line); position:relative;
}
.photo-band img{ width:100%; height:auto; display:block; aspect-ratio:16/7; object-fit:cover; }
.photo-band img.top-focus{ object-position:center -25%; }
.photo-band.natural img{ aspect-ratio:3/2; object-position:center; }
.photo-band .caption{
  position:absolute; left:0; right:0; bottom:0;
  background:linear-gradient(to top, rgba(20,15,8,0.72), rgba(20,15,8,0));
  color:#FFFBF2; font-size:.9rem; font-weight:600; padding:2rem 1.3rem .9rem;
}
.program-img{
  margin:-1.6rem -1.5rem 1.2rem; border-bottom:1px solid var(--card-line);
  aspect-ratio:16/9; overflow:hidden;
}
.program-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.program-img img.top-focus{ object-position:center 75%; }

/* ---------- section scaffolding ---------- */
.section{ padding:1rem 0 3rem; }
.section-label{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--page-accent-txt); margin:0 0 .6rem; }
.section-title{ font-family:var(--font-head); font-weight:700; font-size:1.6rem; margin:0 0 1.6rem; }
.lede{ font-size:1.05rem; line-height:1.7; opacity:.88; max-width:66ch; margin:0 0 1.6rem; }

/* ---------- home area cards ---------- */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.1rem; margin:0 0 2.8rem; }
@media (max-width:680px){ .cards{ grid-template-columns:1fr; } }
.card{
  background:var(--card-bg); border:1px solid var(--card-line);
  border-radius:20px 8px 20px 8px; padding:1.7rem 1.5rem; position:relative;
}
.card .tag{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--accent-1-txt); margin:0 0 .6rem; }
.card h3{ font-family:var(--font-head); font-weight:700; font-size:1.3rem; margin:0 0 .7rem; }
.card p{ font-size:.96rem; line-height:1.58; opacity:.85; margin:0; }
.card a.card-link{ display:inline-block; margin-top:.9rem; font-size:.85rem; font-weight:700; color:var(--accent-1-txt); text-decoration:none; }
.card a.card-link:hover{ text-decoration:underline; }
.card-icon{ width:72px; height:72px; margin:0 0 1.2rem; filter:drop-shadow(0 6px 14px rgba(0,0,0,0.16)); }

/* ---------- program cards (inner pages) ---------- */
.programs{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.1rem; margin:0 0 2.8rem; }
@media (max-width:760px){ .programs{ grid-template-columns:1fr; } }
.program{
  background:var(--card-bg); border:1px solid var(--card-line);
  border-radius:18px 8px 18px 8px; padding:1.6rem 1.5rem; overflow:hidden;
}
.program .age{ font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--page-accent-txt); margin:0 0 .5rem; }
.program h3{ font-family:var(--font-head); font-weight:700; font-size:1.2rem; margin:0 0 .6rem; }
.program h4{ font-family:var(--font-head); font-weight:700; font-style:normal; font-size:1rem; margin:1.1rem 0 .4rem; opacity:.85; }
.program p{ font-size:.94rem; line-height:1.6; opacity:.85; margin:0 0 .6rem; }
.program p:last-child{ margin-bottom:0; }

/* ---------- feature list (obiettivi, competenze...) ---------- */
.feature-list{ list-style:none; margin:0 0 2.6rem; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem 1.4rem; }
@media (max-width:700px){ .feature-list{ grid-template-columns:1fr; } }
.feature-list li{ font-size:.96rem; line-height:1.5; padding-left:1.3rem; position:relative; }
.feature-list li::before{
  content:''; position:absolute; left:0; top:.5em; width:8px; height:8px; border-radius:50%;
  background:var(--page-accent);
}

/* ---------- chips ---------- */
.chipsrow{ display:flex; flex-wrap:wrap; gap:.55rem; margin:0 0 2.8rem; }
.chip{
  font-size:.83rem; font-weight:600; padding:.55rem 1.05rem; border-radius:999px;
  background:var(--chip-bg); color:var(--chip-ink); text-decoration:none; display:inline-block;
}

/* ---------- quote band ---------- */
.quote-band{
  display:flex; gap:1.4rem; align-items:center; flex-wrap:wrap;
  background:var(--founder-bg); border-radius:20px 8px 20px 8px;
  padding:1.8rem 2rem; margin:0 0 2.8rem;
}
.quote-band blockquote{
  margin:0; font-family:Georgia,serif; font-style:italic; font-size:1.15rem; line-height:1.5;
  max-width:56ch; flex:1 1 320px;
}
.quote-band cite{ display:block; margin-top:.6rem; font-style:normal; font-size:.82rem; opacity:.7; }

/* ---------- founder / cv ---------- */
.founder{ display:flex; gap:1.3rem; align-items:flex-start; padding:0 0 3rem; }
.founder .badge{
  width:52px; height:52px; border-radius:50%; flex:0 0 auto;
  background:var(--accent-2); color:var(--on-accent);
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia,serif; font-weight:700; font-size:1.1rem;
}
.founder p{ margin:0; font-size:.98rem; line-height:1.65; opacity:.9; max-width:60ch; }
.founder strong{ color:var(--accent-1); }

.cv-grid{ display:grid; grid-template-columns:260px 1fr; gap:2rem; margin:0 0 2.8rem; align-items:start; }
@media (max-width:700px){ .cv-grid{ grid-template-columns:1fr; } }
.cv-portrait{
  width:260px; height:260px; border-radius:50% 50% 50% 8%; background:var(--accent-2);
  display:flex; align-items:center; justify-content:center; color:var(--on-accent);
  font-family:Georgia,serif; font-weight:700; font-size:2.6rem; overflow:hidden;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,0.18));
}
.cv-portrait img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; }
.cv-body p{ font-size:1rem; line-height:1.7; opacity:.9; margin:0 0 1rem; }
.cv-body h2{ font-size:18.72px; font-weight:700; font-family:"Trebuchet MS","Segoe UI",sans-serif; margin:18.72px 0; color:rgb(32,28,21); }
.cv-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }

/* ---------- contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:1.4rem; margin:0 0 2.8rem; }
@media (max-width:760px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{
  background:var(--card-bg); border:1px solid var(--card-line);
  border-radius:20px 8px 20px 8px; padding:1.8rem 1.7rem;
}
.contact-card h3{ font-family:var(--font-head); font-weight:700; font-size:1.2rem; margin:0 0 1rem; }
.contact-row{ display:flex; gap:.8rem; align-items:flex-start; margin:0 0 1rem; font-size:.96rem; }
.contact-row:last-child{ margin-bottom:0; }
.contact-row .k{ font-weight:700; min-width:6.5em; color:var(--page-accent-txt); }
.contact-actions{ display:flex; gap:.8rem; flex-wrap:wrap; }
.mail-btn{
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--page-accent); color:var(--on-page-accent); font-weight:700; font-size:.9rem;
  padding:.7rem 1.2rem; border-radius:999px; text-decoration:none;
}
.mail-btn:hover{ filter:brightness(1.05); }
.mail-btn svg{ width:20px; height:20px; }
.contact-note{
  font-size:.85rem; opacity:.7; border-top:1px dashed var(--card-line); margin-top:1.2rem; padding-top:1rem;
}
.social-row{ display:flex; gap:.7rem; margin-top:1.2rem; }
.social-row a{
  width:38px; height:38px; border-radius:50%; background:var(--page-accent); color:var(--on-page-accent);
  display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:.8rem; font-weight:700;
}
.social-row a svg{ width:18px; height:18px; }

/* ---------- footer ---------- */
.site-footer{
  border-top:1px solid var(--line); padding:1.8rem 0 2.6rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-size:.85rem;
}
.site-footer .word{ font-family:var(--font-head); font-weight:700; }
.site-footer .flinks{ display:flex; gap:1.3rem; flex-wrap:wrap; opacity:.8; }
.site-footer .flinks a{ text-decoration:none; }
.site-footer .flinks a:hover{ text-decoration:underline; }
.site-footer .fnote{ width:100%; opacity:.55; font-size:.78rem; }

/* ---------- omino chip (Spirit Building icon = logo figure) ---------- */
.omino-chip{
  background:var(--logo-plate); box-shadow:inset 0 0 0 1px var(--logo-plate-line);
  border-radius:50%; display:inline-flex; align-items:center; justify-content:center; overflow:hidden;
  flex:0 0 auto;
}
.omino-chip img{ height:78%; width:auto; object-fit:contain; }
.tone-warm{ filter:sepia(60%) saturate(180%) hue-rotate(-10deg) contrast(1.08) brightness(0.95); }
.site-nav .links a .omino-chip{ width:22px; height:22px; }
@media (max-width:640px){ .site-nav .links a .omino-chip{ width:24px; height:24px; } }

/* ---------- eye / spiral chips (Family / Team icons, cropped from main illustration) ---------- */
.eye-chip, .tree-chip{
  background-color:var(--logo-plate); box-shadow:inset 0 0 0 1px var(--logo-plate-line);
  border-radius:50%; flex:0 0 auto; background-image:url('../img/logo-full.png'); background-repeat:no-repeat;
}
.card-badge.eye-chip{
  background-color:var(--logo-plate); background-image:url('../img/logo-full.png'); background-repeat:no-repeat;
  background-size:239px 131px; background-position:-28px -2px;
}
.card-badge.tree-chip{
  background-color:var(--logo-plate); background-image:url('../img/logo-full.png'); background-repeat:no-repeat;
  background-size:144px 79px; background-position:15px 0px;
}
.page-hero .badge.eye-chip{
  background-color:var(--logo-plate); background-image:url('../img/logo-full.png'); background-repeat:no-repeat;
  background-size:379px 208px; background-position:-44px -3px;
}
.page-hero .badge.tree-chip{
  background-color:var(--logo-plate); background-image:url('../img/logo-full.png'); background-repeat:no-repeat;
  background-size:227px 125px; background-position:24px -1px;
}
.site-nav .links a .eye-chip{ width:22px; height:22px; background-size:110px 60px; background-position:-13px -1px; }
.site-nav .links a .tree-chip{ width:22px; height:22px; background-size:66px 36px; background-position:7px 0px; }
@media (max-width:640px){
  .site-nav .links a .eye-chip, .site-nav .links a .tree-chip{ width:24px; height:24px; }
}

/* ---------- home cards: photo header + badge ---------- */
.card{ display:flex; flex-direction:column; overflow:hidden; }
.card-photo{
  position:relative; margin:-1.7rem -1.5rem 1.7rem; aspect-ratio:16/10; overflow:hidden;
  background:var(--card-line);
}
.card-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.card-photo.contain{ display:flex; align-items:center; justify-content:center; }
.card-photo.contain img{ width:70%; height:70%; object-fit:contain; }
.card-badge{
  position:absolute; left:1rem; bottom:12px; width:48px; height:48px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,0.28);
  background:var(--card-bg);
}
.card-badge svg{ width:48px; height:48px; }
.card-badge.omino-chip{ width:48px; height:48px; }
.card-badge.omino-chip img{ height:80%; }
.card .card-link{ margin-top:auto; padding-top:.6rem; }

/* ---------- duo cards (Spirit: gruppi / individuali) ---------- */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin:0 0 2.8rem; }
@media (max-width:720px){ .duo{ grid-template-columns:1fr; } }
.duo .offer{
  background:var(--card-bg); border:1px solid var(--card-line);
  border-radius:22px 8px 22px 8px; overflow:hidden; display:flex; flex-direction:column;
}
.offer-photo{ aspect-ratio:16/9; overflow:hidden; background:var(--card-line); }
.offer-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.offer-photo.center-contain{ display:flex; align-items:center; justify-content:center; background:var(--card-bg); }
.offer-photo.center-contain img{ height:65%; width:auto; max-width:80%; object-fit:contain; }
.offer-photo.center-contain.large img{ width:62%; }
.offer-photo img.portrait-focus{ object-position:center 15%; }
.offer-body{ padding:1.6rem 1.6rem 1.8rem; display:flex; flex-direction:column; flex:1; }
.offer-body .tag{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--page-accent-txt); margin:0 0 .5rem; }
.offer-body h3{ font-family:var(--font-head); font-weight:700; font-size:1.35rem; margin:0 0 .7rem; }
.offer-body p{ font-size:.96rem; line-height:1.6; opacity:.86; margin:0 0 .9rem; }
.offer-list{ list-style:none; margin:0 0 1.1rem; padding:0; display:flex; flex-wrap:wrap; gap:.45rem; }
.offer-list li{ font-size:.8rem; font-weight:600; }
.offer-list li a{ display:inline-block; padding:.4rem .85rem; border-radius:999px; background:var(--chip-bg); color:var(--chip-ink); text-decoration:none; }
.offer-list li a:hover{ text-decoration:underline; }
#primal-2-0{ scroll-margin-top:90px; }
.program{ scroll-margin-top:90px; }
.offer-body .spacer{ margin-top:auto; }

/* ---------- WhatsApp button ---------- */
.wa-btn{
  display:inline-flex; align-items:center; gap:.55rem; align-self:flex-start;
  background:#25D366; color:#0a2e18; font-weight:700; font-size:.9rem;
  padding:.7rem 1.2rem; border-radius:999px; text-decoration:none;
}
.wa-btn:hover{ filter:brightness(1.05); }
.wa-btn svg{ width:20px; height:20px; }
.wa-hint{ font-size:.82rem; opacity:.7; margin:.6rem 0 0; }

/* ---------- eventi: clickable event list ---------- */
.event-list{ display:flex; flex-direction:column; margin:0 0 1rem; }
.event-link{
  display:flex; align-items:baseline; justify-content:space-between; gap:1.2rem;
  width:100%; background:none; border:none; border-bottom:1px solid var(--card-line);
  padding:1.15rem .3rem; text-align:left; cursor:pointer; font:inherit; color:inherit;
  border-radius:8px;
}
.event-link:hover, .event-link:focus-visible{ background:var(--card-bg); }
.event-link .ev-title{ font-family:var(--font-head); font-weight:700; font-size:1.15rem; }
.event-link .ev-date{ font-size:.85rem; opacity:.7; white-space:nowrap; }
.article-head{ display:flex; align-items:center; gap:.9rem; }
.article-icon{
  width:44px; height:44px; border-radius:50%; flex:0 0 auto;
  background-color:var(--logo-plate); box-shadow:inset 0 0 0 1px var(--logo-plate-line);
  background-repeat:no-repeat; overflow:hidden;
}
.icon-viaggio{ background-image:url('../img/logo-full.png'); background-size:366px 200px; background-position:-220px -98px; }
.icon-primal{ background-image:url('../img/logo-full.png'); background-size:329px 180px; background-position:-59px -37px; }
.icon-bambino{ background-image:url('../img/logo-full.png'); background-size:732px 400px; background-position:-645px -200px; }
.icon-comunicazione{ background-image:url('../img/logo-full.png'); background-size:470px 257px; background-position:-402px -86px; }
@media (max-width:520px){
  .event-link{ flex-direction:column; align-items:flex-start; gap:.3rem; }
}
.empty-note{
  border:1.5px dashed var(--card-line); border-radius:18px; padding:2.2rem 1.6rem;
  text-align:center; opacity:.8; font-size:.98rem; margin:0 0 1rem;
}

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0; background:rgba(20,16,10,0.88); z-index:2000;
  display:flex; align-items:center; justify-content:center; padding:4vh 4vw;
}
.lightbox[hidden]{ display:none; }
.lightbox img{ max-width:100%; max-height:92vh; border-radius:8px; display:block; }
.lightbox-close{
  position:absolute; top:1.2rem; right:1.2rem; width:44px; height:44px;
  border-radius:50%; border:none; background:#FFFBF2; color:#2B2318;
  font-size:1.6rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;
}

.event a{ color:#FFFBF2; font-weight:700; text-decoration:underline; }

@media (prefers-reduced-motion: reduce){ * { animation-duration:.001ms !important; } }

