/* EZ English — site styles ("Pietra" design) */
:root{
  --stone:#F6F0E4; --stone-2:#EFE5D1; --sand:#E2D2B2;
  --ink:#15223A; --ink-2:#4A5468; --ink-3:#656A78;
  --blue:#1B5FD0; --terra:#C4442D; --red:#EF3E36; --rose:#E9A48F;
  --line:rgba(21,34,58,.14); --line-c:rgba(246,240,228,.14);
  --serif:'Fraunces',Georgia,serif; --sans:'Instrument Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--stone);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
picture{display:contents}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.i{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--ink);color:var(--stone);padding:10px 16px;border-radius:6px;text-decoration:none;font-weight:600}
.skip:focus{top:16px}

/* Both languages are in the page; show only the active one (set on <html lang>). */
html[lang="it"] [lang="en"],html[lang="en"] [lang="it"]{display:none!important}

/* ---------- logo: navy + terracotta on light, cream + orange on navy ---------- */
.logo{--c:var(--ink);--r:var(--terra);--ez:var(--stone);display:inline-block;font:800 18px/1 'Nunito',system-ui,sans-serif;letter-spacing:.1em;color:var(--c);text-decoration:none;padding:2.35em .5em 0 0;white-space:nowrap}
.logo b{display:inline-block;width:.17em;height:.705em;background:var(--r);border-radius:.05em;position:relative;margin:0 .15em 0 .02em}
.logo b::before{content:"";position:absolute;left:50%;translate:-50% 0;bottom:calc(100% + .11em);width:.23em;height:.23em;border-radius:50%;background:var(--r)}
.logo i{position:absolute;left:-.085em;bottom:1.37em;width:2.17em;height:1.79em;border-radius:.34em;background:var(--c);color:var(--ez);font-style:normal;font-weight:900;letter-spacing:.02em;display:grid;place-items:center}
.logo i span{font-size:.86em;translate:0 .03em}
.logo i::after{content:"";position:absolute;left:.3em;top:calc(100% - 1px);width:.43em;height:.27em;background:var(--c);clip-path:polygon(0 0,100% 0,6% 100%)}
.logo.inv{--c:var(--stone);--r:var(--red);--ez:var(--ink)}

/* ---------- header ---------- */
.nav{border-bottom:1px solid var(--line);position:relative;z-index:30}
.nav-in{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:92px}
.links{display:flex;gap:36px}
.links a{text-decoration:none;font-size:15px;font-weight:500;color:var(--ink-2);position:relative;padding:4px 0}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.links a:hover,.links a[aria-current]{color:var(--ink)}
.links a:hover::after,.links a[aria-current]::after{transform:scaleX(1)}
.nav-r{display:flex;align-items:center;justify-content:flex-end;gap:26px}
.lang{display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--ink-3);letter-spacing:.04em}
.lang button{padding:6px 2px;color:inherit;letter-spacing:inherit;font-weight:inherit}
.lang button[aria-pressed="true"]{color:var(--ink)}
.lang button:hover{color:var(--ink)}
.lang span{margin:0 6px;opacity:.5}
.menu-btn{display:none;align-items:center;gap:10px;font-size:14px;font-weight:600;padding:8px 0}
.menu-btn .bars{width:22px;height:12px;position:relative}
.menu-btn .bars::before,.menu-btn .bars::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:.25s}
.menu-btn .bars::before{top:0}
.menu-btn .bars::after{bottom:0}
.menu-btn[aria-expanded="true"] .bars::before{top:5px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{bottom:5px;transform:rotate(-45deg)}
.menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--stone);border-bottom:1px solid var(--line);padding:8px 0 28px}
.menu.open{display:block}
.menu a:not(.btn){display:block;font-family:var(--serif);font-size:30px;letter-spacing:-.02em;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line)}
.menu a[aria-current]{color:var(--terra)}
.menu .btn{margin-top:24px;width:100%}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--stone);text-decoration:none;font-weight:600;font-size:15px;padding:14px 24px;border-radius:999px;transition:.25s;border:1px solid var(--ink);white-space:nowrap}
.btn:hover{background:var(--blue);border-color:var(--blue)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--stone);border-color:var(--ink)}
.btn-sm{padding:10px 18px;font-size:14px}
.btn-cream{background:var(--stone);color:var(--ink);border-color:var(--stone)}
.btn-cream:hover{background:#fff;border-color:#fff}
.btn-ghost-c{background:transparent;color:var(--stone);border-color:rgba(246,240,228,.35)}
.btn-ghost-c:hover{background:rgba(246,240,228,.08);border-color:var(--stone)}
.ulink{display:inline-flex;align-items:center;gap:10px;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.ulink .i{transition:.25s}
.ulink:hover .i{transform:translateX(4px)}

/* ---------- type ---------- */
h1{font:inherit}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.eyebrow::before{content:"";width:40px;height:1px;background:var(--terra);flex:none}
.display{display:block;font-family:var(--serif);font-weight:350;font-size:clamp(56px,10vw,150px);line-height:.94;letter-spacing:-.035em;margin:32px 0 48px;font-variation-settings:"opsz" 144}
.display em{font-style:italic;font-weight:300;color:var(--terra)}
.kicker{display:flex;align-items:center;gap:14px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:20px}
.kicker::before{content:"";width:28px;height:1px;background:currentColor}
h2{font-family:var(--serif);font-weight:350;font-size:clamp(40px,5vw,68px);line-height:1;letter-spacing:-.03em}
h2 em{font-style:italic;color:var(--terra);font-weight:300}
.lead{font-size:20px;line-height:1.6;color:var(--ink-2);max-width:30em}

/* ---------- home hero ---------- */
.hero{padding:72px 0 0}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:end;padding-bottom:56px}
.hero-ctas{display:flex;gap:28px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.plate{position:relative;margin:0}
.plate .img{border-radius:6px;overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 80px -40px rgba(21,34,58,.4)}
.plate img{width:100%;aspect-ratio:1408/700;object-fit:cover}
.plate figcaption{display:flex;justify-content:space-between;gap:24px;font-size:14px;color:var(--ink-3);padding:16px 2px 0}
.plate figcaption em{font-family:var(--serif);font-size:16px;color:var(--ink-2)}

/* ---------- the EZ! seal ---------- */
.seal{position:absolute;pointer-events:none;right:56px;top:-78px;width:156px;height:156px;border-radius:50%;background:var(--terra);color:var(--stone);display:grid;place-items:center;box-shadow:0 20px 40px -16px rgba(196,68,45,.6)}
.seal svg.ring{position:absolute;inset:0;width:100%;height:100%;animation:spin 28s linear infinite}
.seal text{font:600 11px var(--sans);letter-spacing:.1em;fill:var(--stone);text-transform:uppercase}
.seal .mid{font-family:var(--serif);font-style:italic;font-size:30px;line-height:1;text-align:center}
.seal .mid small{display:block;font:600 10px var(--sans);letter-spacing:.18em;font-style:normal;margin-top:4px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- marquee ---------- */
.marquee{border-block:1px solid var(--line);margin-top:96px;overflow:hidden;padding:26px 0;background:var(--stone-2)}
.marquee-track{display:flex;gap:48px;width:max-content;animation:scroll 40s linear infinite}
.marquee span{font-family:var(--serif);font-size:34px;font-style:italic;font-weight:300;white-space:nowrap;display:flex;align-items:center;gap:48px;color:var(--ink)}
.marquee span::after{content:"✦";font-style:normal;font-size:16px;color:var(--terra)}
.marquee span:nth-child(even){color:var(--ink-3)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.section{padding:128px 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:end;margin-bottom:72px}
.sec-head > p{color:var(--ink-2);font-size:18px;max-width:28em}
.tint{background:var(--stone-2);border-block:1px solid var(--line)}

.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.pillar{border-top:1px solid var(--ink);padding-top:24px}
.pillar .num{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--terra)}
.pillar h3{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.02em;line-height:1.15;margin:14px 0 12px}
.pillar p{color:var(--ink-2);font-size:16px}

.arch{border-radius:400px 400px 8px 8px;overflow:hidden;border:1px solid var(--line)}
.arch img{width:100%;height:100%;object-fit:cover}

.courses{display:grid;grid-template-columns:1fr 1fr;gap:64px}
.course .arch{aspect-ratio:5/5.4}
.course .arch img{transition:transform .8s}
.course:hover .arch img{transform:scale(1.04)}
.meta{display:flex;justify-content:space-between;gap:16px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:32px 0 12px}
.course h3{font-family:var(--serif);font-weight:400;font-size:40px;letter-spacing:-.025em;line-height:1.05;margin-bottom:14px}
.course p{color:var(--ink-2);max-width:30em}
.rate{display:flex;align-items:baseline;gap:12px;margin:28px 0;padding-top:20px;border-top:1px solid var(--line)}
.rate .lbl{font-size:15px;color:var(--ink-2)}
.rate .dots{flex:1;border-bottom:1.5px dotted rgba(21,34,58,.35);transform:translateY(-5px)}
.rate strong{font-family:var(--serif);font-weight:400;font-size:40px;letter-spacing:-.02em;line-height:1}
.rate small{font-size:15px;color:var(--ink-2)}

.about-in{display:grid;grid-template-columns:1.2fr .8fr;gap:96px;align-items:center}
.quote{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.4vw,46px);line-height:1.18;letter-spacing:-.02em;margin:0 0 36px}
.quote em{color:var(--terra)}
.quote::before{content:"“";display:block;font-size:120px;line-height:.7;color:var(--terra);height:60px}
.about-copy p:not(.kicker){color:var(--ink-2);max-width:32em;margin-bottom:36px}
.byline{margin-bottom:28px;font-size:15px}
.byline strong{font-family:var(--serif);font-weight:500;font-size:22px;display:block;line-height:1.1}
.byline span{color:var(--ink-3)}
.portrait{position:relative}
.portrait .arch{aspect-ratio:4/5.2}
.portrait img{object-position:50% 22%}
.portrait .note{position:absolute;left:-48px;bottom:48px;background:var(--stone);border:1px solid var(--line);padding:14px 18px;font-size:14px;line-height:1.4;border-radius:4px;box-shadow:0 20px 40px -20px rgba(21,34,58,.35)}
.portrait .note em{font-family:var(--serif);font-size:18px;display:block;color:var(--ink)}
.portrait .note span{color:var(--ink-3)}

/* ---------- inner pages ---------- */
.page-head{padding:72px 0 96px}
.page-head .display{font-size:clamp(52px,7.6vw,116px);margin:28px 0 36px}
.head-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end}
.summary{border-top:1px solid var(--ink);padding-top:8px}
.summary .row{display:flex;align-items:baseline;gap:12px;text-decoration:none;padding:16px 0;border-bottom:1px solid var(--line)}
.summary .row:hover .t{color:var(--terra)}
.summary .t{font-family:var(--serif);font-size:24px;letter-spacing:-.01em;transition:color .2s}
.summary .dots{flex:1;border-bottom:1.5px dotted rgba(21,34,58,.35);transform:translateY(-6px)}
.summary .p{font-family:var(--serif);font-size:24px;white-space:nowrap}
.summary .p small{font-family:var(--sans);font-size:14px;color:var(--ink-2)}
.summary .btn{margin-top:28px}

.detail{display:grid;grid-template-columns:.85fr 1.15fr;gap:96px;align-items:center}
.detail + .detail{margin-top:128px}
.detail.flip{grid-template-columns:1.15fr .85fr}
.detail.flip .detail-img{order:2}
.detail-img .arch{aspect-ratio:4/4.6}
.detail h2{margin:4px 0 22px}
.detail > div > p:not(.kicker){color:var(--ink-2);font-size:18px;max-width:32em}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin:32px 0 8px}
.facts div{padding:14px 0;border-top:1px solid var(--line)}
.facts dt{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.facts dd{font-family:var(--serif);font-size:20px;margin-top:2px}
.ideal{margin-top:28px}
.ideal h3{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);margin-bottom:10px}
.ideal li{position:relative;padding:6px 0 6px 26px;color:var(--ink-2)}
.ideal li::before{content:"✦";position:absolute;left:0;top:7px;font-size:12px;color:var(--terra)}
.detail .rate{max-width:30em}

.ctas{display:flex;gap:28px;align-items:center;margin-top:36px;flex-wrap:wrap}
.about-head{display:grid;grid-template-columns:1.15fr .85fr;gap:96px;align-items:center}
.bio p{color:var(--ink-2);font-size:18px;margin-bottom:18px;max-width:32em}
.about-head .portrait .seal{right:auto;left:-64px;top:56px}
.quote-band{text-align:center}
.quote-band .quote{max-width:22em;margin:0 auto 24px;font-size:clamp(32px,4vw,54px)}
.quote-band .byline{margin:0}

/* ---------- contact + footer ---------- */
.contact{background:var(--ink);color:var(--stone);padding:128px 0 0;position:relative;overflow:hidden}
.contact-in{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:end;padding-bottom:112px;border-bottom:1px solid var(--line-c)}
.contact h2{font-size:clamp(64px,9vw,136px);line-height:.92;color:var(--stone)}
.contact h2 em{color:var(--rose)}
.contact .kicker{color:var(--rose)}
.contact p:not(.kicker){color:rgba(246,240,228,.72);font-size:19px;margin-bottom:32px;max-width:26em}
.contact-actions{display:flex;gap:12px;flex-wrap:wrap}
footer{padding:56px 0 40px;color:rgba(246,240,228,.6);font-size:14px}
.foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.foot nav{display:flex;gap:28px;flex-wrap:wrap}
.foot a{text-decoration:none}
.foot a:hover{color:var(--stone)}

/* ---------- 404 ---------- */
.notfound{min-height:60vh;display:flex;align-items:center;padding:96px 0}
.notfound p{color:var(--ink-2);font-size:19px;margin-bottom:32px;max-width:30em}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .marquee-track,.seal svg.ring{animation:none}
}
@media (max-width:1020px){
  .nav-in{grid-template-columns:auto 1fr}
  .links{display:none}
  .menu-btn{display:inline-flex}
  .hero-grid,.sec-head,.about-in,.contact-in,.head-grid,.detail,.detail.flip,.about-head{grid-template-columns:1fr}
  .about-head{gap:72px}
  .about-head .portrait{margin-left:64px}
  .hero-grid{gap:32px}
  .hero-ctas{justify-content:flex-start}
  .sec-head{gap:24px}
  .pillars{grid-template-columns:1fr;gap:40px}
  .courses{gap:72px}
  .about-in{gap:64px}
  .portrait{max-width:420px}
  .seal{width:124px;height:124px;right:24px;top:-62px}
  .seal .mid{font-size:24px}
  .head-grid{gap:48px}
  .detail{gap:48px}
  .detail.flip .detail-img{order:0}
  .detail-img{max-width:460px}
}
@media (max-width:720px){
  .wrap{padding:0 20px}
  .nav-in{height:84px}
  .nav-r{gap:18px}
  .nav-r > .btn{display:none}
  .courses{grid-template-columns:1fr}
  .section{padding:88px 0}
  .page-head{padding:48px 0 72px}
  .detail + .detail{margin-top:96px}
  .facts{grid-template-columns:1fr}
  .contact{padding-top:88px}
  .contact-in{padding-bottom:72px}
  .portrait .note{left:12px}
  .plate figcaption{flex-direction:column;gap:4px}
  .marquee span{font-size:26px}
  .seal{width:104px;height:104px;top:-52px}
  .seal .mid{font-size:20px}
  .summary .t,.summary .p{font-size:20px}
  .about-head .portrait{margin-left:40px}
  .about-head .portrait .seal{left:-44px;top:32px}
}
