/*
Theme Name: Antonio Pelletier
Theme URI: https://example.com/
Author: Antonio Pelletier
Author URI: https://example.com/
Description: Tema a blocchi (Full Site Editing) per il sito personale-professionale di Antonio Pelletier, dottore commercialista. Impostazione boutique advisory: ampio spazio bianco, tipografia serif, palette ivory/charcoal, nessun elemento grafico superfluo. Bilingue IT/EN tramite Polylang. Font ospitati localmente.
Version: 1.10.0
Requires at least: 6.4
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: antonio-pelletier
Tags: block-templates, full-site-editing, one-column, custom-colors, custom-menu, translation-ready
*/

/* =========================================================
   0. FONT OSPITATI IN LOCALE
   Nessuna richiesta verso server esterni: i file .woff2 stanno
   in assets/fonts/ dentro il tema.
   ========================================================= */
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("assets/fonts/cormorant-300.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("assets/fonts/cormorant-300-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/cormorant-400.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/cormorant-400-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("assets/fonts/cormorant-500.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("assets/fonts/cormorant-500-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("assets/fonts/inter-300.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:300;
  font-display:swap;
  src:url("assets/fonts/inter-300-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/inter-400.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/inter-400-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("assets/fonts/inter-500.woff2") format("woff2");
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"Inter";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("assets/fonts/inter-500-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* =========================================================
   1. VARIABILI
   ========================================================= */
:root{
  --ap-ivory:#F8F7F3;
  --ap-ivory-alt:#F0EEE8;
  --ap-charcoal:#20201E;
  --ap-muted:#6F6C65;
  --ap-line:#DCD8CE;
  --ap-accent:#5A6B5D;
  --ap-dark-muted:#C2BEB4;
  --ap-dark-line:#45453F;
  --ap-dark-dim:#A5A199;
  --ap-serif:"Cormorant Garamond", Garamond, Georgia, "Times New Roman", serif;
  --ap-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --ap-pad:clamp(1.5rem, 7vw, 8rem);
  --ap-maxw:1320px;
}

/* =========================================================
   2. BASE
   ========================================================= */
html{scroll-behavior:smooth}
body{
  background:var(--ap-ivory);
  color:var(--ap-charcoal);
  font-family:var(--ap-sans);
  font-weight:300;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  margin:0;
}
h1,h2,h3,h4.ap-serif{font-family:var(--ap-serif);font-weight:300;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
p{margin:0 0 1.1em}
img{max-width:100%;height:auto}

/* contenitore orizzontale comune */
.ap-wrap{
  max-width:var(--ap-maxw);
  margin-left:auto;margin-right:auto;
  padding-left:var(--ap-pad);padding-right:var(--ap-pad);
}

/* neutralizza i margini automatici dei blocchi dentro le nostre sezioni */
.ap-section > *{margin-block-start:0}

/* =========================================================
   3. ELEMENTI RICORRENTI
   ========================================================= */
.ap-eyebrow{
  font-family:var(--ap-sans);font-size:11px;font-weight:400;letter-spacing:.22em;
  text-transform:uppercase;color:var(--ap-muted);display:block;margin:0 0 1.8rem;
}
.ap-link,
.ap-link a{
  font-family:var(--ap-sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  display:inline-block;padding-bottom:4px;border-bottom:1px solid transparent;
  transition:border-color .35s ease,color .35s ease;
}
.ap-link:hover,.ap-link a:hover{border-bottom-color:currentColor}
.ap-lead{font-size:19px;color:var(--ap-muted);max-width:46ch}

/* segnaposto fotografici: si sostituiscono caricando un'immagine nel blocco */
.ap-ph{
  background:linear-gradient(150deg,#E8E5DC 0%,#DAD6CA 55%,#CFCABC 100%);
  position:relative;overflow:hidden;
}
.ap-ph::after{
  content:attr(data-label);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:#8F8B80;white-space:nowrap;
}
figure.wp-block-image{margin-left:0;margin-right:0}
figure.wp-block-image img{display:block;width:100%;height:auto}
.ap-ph-portrait{aspect-ratio:4/5}
.ap-ph-square{aspect-ratio:1/1}

/* =========================================================
   4. HEADER
   ========================================================= */
.ap-header{
  position:sticky;top:0;z-index:50;
  background:rgba(248,247,243,.92);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid transparent;transition:border-color .4s ease;
}
.ap-header.is-scrolled{border-bottom-color:var(--ap-line)}
.ap-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:2rem}
.ap-brand{
  font-family:var(--ap-serif);font-size:19px;letter-spacing:.16em;
  text-transform:uppercase;line-height:1.25;
}
.ap-brand small{
  display:block;font-family:var(--ap-sans);font-size:10px;font-weight:400;
  letter-spacing:.18em;color:var(--ap-muted);text-transform:uppercase;margin-top:3px;
}
.ap-nav ul{display:flex;gap:2.2rem;list-style:none;margin:0;padding:0;align-items:center}
.ap-nav a{
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ap-muted);
  transition:color .3s ease;
}
.ap-nav a:hover{color:var(--ap-charcoal)}
.ap-header-right{display:flex;align-items:center;gap:1.4rem}
.ap-lang{
  display:flex;gap:.45rem;align-items:center;font-size:12px;letter-spacing:.1em;
  color:var(--ap-muted);border-left:1px solid var(--ap-line);padding-left:1.6rem;
}
.ap-lang button{
  background:none;border:0;padding:0;cursor:pointer;font:inherit;
  color:var(--ap-muted);letter-spacing:.1em;transition:color .3s ease;
}
.ap-lang button.is-on{color:var(--ap-charcoal)}
.ap-lang a{color:var(--ap-muted);transition:color .3s ease}
.ap-lang a:hover,.ap-lang .current-lang a{color:var(--ap-charcoal)}
/* selettore di lingua di Polylang, quando sostituira' il segnaposto */
.ap-lang ul,
.ap-lang .wp-block-polylang-language-switcher{
  display:flex;gap:.9rem;list-style:none;margin:0;padding:0;align-items:center;
}
.ap-lang li{margin:0}
.ap-lang li a{font-size:12px;letter-spacing:.1em;text-transform:uppercase}

/* menu: blocco Navigazione di WordPress */
.ap-header .wp-block-navigation{gap:2.2rem}
.ap-header .wp-block-navigation .wp-block-navigation-item__content{
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ap-muted);
  transition:color .3s ease;
}
.ap-header .wp-block-navigation .wp-block-navigation-item__content:hover{color:var(--ap-charcoal)}
.ap-header .wp-block-navigation__responsive-container-open,
.ap-header .wp-block-navigation__responsive-container-close{color:var(--ap-charcoal)}
.ap-header .wp-block-navigation__responsive-container.is-menu-open{background:var(--ap-ivory);padding:clamp(2rem,8vw,5rem)}

/* menu e contatti nel footer */
.ap-footer .wp-block-navigation,
.ap-f-nav{gap:.7rem}
.ap-footer .wp-block-navigation .wp-block-navigation-item__content{
  font-size:14px;letter-spacing:.02em;color:var(--ap-dark-muted);transition:color .3s ease;
}
.ap-footer .wp-block-navigation .wp-block-navigation-item__content:hover{color:#fff}
.ap-f-contact{list-style:none;margin:0;padding:0}
.ap-f-contact li{margin-bottom:.7em}
.ap-f-contact a{color:var(--ap-dark-muted)}
.ap-f-contact a:hover{color:#fff}
.ap-footer-cols{display:flex;flex-wrap:wrap;gap:3rem;padding-bottom:3.5rem}

/* =========================================================
   5. HERO
   ========================================================= */
.ap-hero{padding:clamp(4rem,9vw,7.5rem) 0 clamp(4rem,8vw,7rem)}
.ap-hero .wp-block-columns{gap:clamp(2.5rem,7vw,7rem);align-items:center}
.ap-hero h1{font-size:clamp(2.6rem,5.2vw,4.5rem);line-height:1.12;margin:.6rem 0 2rem;max-width:15ch}
.ap-disciplines{
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ap-muted);
  max-width:38ch;line-height:2;margin-bottom:2.6rem;
}

/* =========================================================
   6. PHILOSOPHY
   ========================================================= */
.ap-philosophy{background:#fff;text-align:center;padding:clamp(4.5rem,9vw,8rem) 0}
.ap-philosophy h2{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.3;max-width:20ch;margin:0 auto 1.8rem}
.ap-philosophy p{color:var(--ap-muted);max-width:52ch;margin:0 auto;font-size:16px}

/* =========================================================
   7. ABOUT
   ========================================================= */
.ap-about{padding:clamp(4.5rem,9vw,8rem) 0}
.ap-about .wp-block-columns{gap:clamp(2.5rem,7vw,6rem);align-items:center}
.ap-about h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.22;margin:0 0 2rem;max-width:12ch}
.ap-about p{max-width:48ch}

/* =========================================================
   8. EXPERTISE
   ========================================================= */
.ap-expertise{padding:clamp(4.5rem,9vw,8rem) 0;border-top:1px solid var(--ap-line)}
.ap-sec-head{text-align:center;margin-bottom:clamp(3rem,6vw,5rem)}
.ap-sec-head h2{font-size:clamp(2rem,3.6vw,3rem);margin:0 0 .9rem}
.ap-sec-head p{color:var(--ap-muted);font-size:16px;margin:0}
.ap-cards{
  display:grid;grid-template-columns:1fr 1fr;
  border-top:1px solid var(--ap-line);border-left:1px solid var(--ap-line);
}
.ap-card{
  border-right:1px solid var(--ap-line);border-bottom:1px solid var(--ap-line);
  padding:clamp(2rem,4vw,3.4rem);transition:background .5s ease;
}
.ap-card:hover{background:#fff}
.ap-card .ap-num{
  font-family:var(--ap-serif);font-size:14px;color:var(--ap-muted);
  letter-spacing:.1em;display:block;margin-bottom:1.6rem;
}
.ap-card h3{
  font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.25;text-transform:uppercase;
  letter-spacing:.04em;margin:0 0 1.2rem;max-width:14ch;
}
.ap-card p{color:var(--ap-muted);font-size:15.5px;max-width:38ch;margin-bottom:1.8rem}

/* =========================================================
   9. SEZIONE SCURA
   ========================================================= */
.ap-dark{background:var(--ap-charcoal);color:var(--ap-ivory);padding:clamp(5rem,10vw,9rem) 0}
.ap-dark h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.18;max-width:16ch;margin:0 0 1.6rem}
.ap-dark .ap-intro{color:var(--ap-dark-muted);max-width:48ch;margin-bottom:clamp(3rem,6vw,5rem);font-size:17px}
.ap-situations{border-top:1px solid var(--ap-dark-line)}
.ap-sit{
  display:grid;grid-template-columns:64px 1fr 1.1fr;gap:1.5rem;align-items:baseline;
  padding:2.2rem 0;border-bottom:1px solid var(--ap-dark-line);
}
.ap-sit .ap-n{font-family:var(--ap-serif);font-size:14px;color:var(--ap-dark-dim);letter-spacing:.1em}
.ap-sit h4{
  margin:0;font-family:var(--ap-sans);font-size:13px;font-weight:400;letter-spacing:.16em;
  text-transform:uppercase;line-height:1.7;
}
.ap-sit p{margin:0;color:var(--ap-dark-muted);font-size:16px}

/* =========================================================
   10. INTERNATIONAL
   ========================================================= */
.ap-intl{padding:clamp(5rem,10vw,9rem) 0;text-align:center;background:#fff}
.ap-intl h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.18;max-width:16ch;margin:0 auto 1.8rem}
.ap-intl .ap-intro{color:var(--ap-muted);max-width:54ch;margin:0 auto clamp(3.5rem,6vw,5.5rem)}
.ap-tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,5vw,4.5rem);margin-bottom:3.5rem}
.ap-tri h4{
  margin:0 0 1rem;font-family:var(--ap-sans);font-size:12.5px;font-weight:400;
  letter-spacing:.18em;text-transform:uppercase;line-height:1.8;
}
.ap-tri p{color:var(--ap-muted);font-size:15.5px;margin:0}
.ap-rule{width:28px;height:1px;background:var(--ap-accent);margin:0 auto 1.6rem}

/* =========================================================
   11. TIMELINE
   ========================================================= */
.ap-timeline-sec{padding:clamp(4.5rem,9vw,8rem) 0}
.ap-tl{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:clamp(3rem,6vw,4.5rem);position:relative}
.ap-tl::before{content:"";position:absolute;top:6px;left:6%;right:6%;height:1px;background:var(--ap-line)}
.ap-tl-item{position:relative;padding-top:2.8rem;text-align:center}
.ap-tl-item::before{
  content:"";position:absolute;top:2px;left:50%;transform:translateX(-50%);
  width:9px;height:9px;border-radius:50%;background:var(--ap-ivory);border:1px solid var(--ap-accent);
}
.ap-tl-item .ap-yr{
  font-family:var(--ap-sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ap-accent);display:block;margin-bottom:.9rem;
}
.ap-tl-item h4{font-family:var(--ap-serif);font-size:1.25rem;font-weight:400;margin:0 0 .4rem}
.ap-tl-item p{color:var(--ap-muted);font-size:14.5px;margin:0}

/* =========================================================
   12. LPM STUDIO
   ========================================================= */
.ap-lpm{background:var(--ap-ivory-alt);padding:clamp(4.5rem,9vw,8rem) 0}
.ap-lpm .wp-block-columns{gap:clamp(2.5rem,7vw,6rem);align-items:center}
.ap-lpm h2{
  font-family:var(--ap-serif);font-size:clamp(1.9rem,3.4vw,2.8rem);
  letter-spacing:.06em;margin:0 0 1.6rem;
}
.ap-claim{font-family:var(--ap-serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.4;max-width:22ch;margin-bottom:2rem}
.ap-lpm p{color:var(--ap-muted);max-width:44ch}
.ap-lpm .ap-claim{color:var(--ap-charcoal)}

/* =========================================================
   13. INSIGHTS
   ========================================================= */
.ap-insights{padding:clamp(4.5rem,9vw,8rem) 0}
.ap-insights .wp-block-post-template{
  display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(2rem,4vw,3.5rem);margin:0;padding:0;list-style:none;
}
.ap-insights .wp-block-post{border-top:1px solid var(--ap-charcoal);padding-top:1.6rem}
.ap-insights .wp-block-post-terms{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ap-accent);
  display:block;margin-bottom:1.4rem;
}
.ap-insights .wp-block-post-title{
  font-family:var(--ap-serif);font-size:1.45rem;line-height:1.35;margin:0 0 1.4rem;font-weight:300;
}
.ap-insights .wp-block-post-date{
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ap-muted);
  display:block;margin-bottom:1.6rem;
}
.ap-insights .wp-block-read-more{
  font-size:13px;letter-spacing:.12em;text-transform:uppercase;
  border-bottom:1px solid transparent;padding-bottom:4px;text-decoration:none;
}
.ap-insights .wp-block-read-more:hover{border-bottom-color:currentColor}

/* =========================================================
   14. CTA FINALE
   ========================================================= */
.ap-cta{text-align:center;padding:clamp(6rem,13vw,12rem) 0;background:#fff}
.ap-cta h2{font-size:clamp(2.6rem,6vw,5rem);margin:0 0 2rem}
.ap-cta p{color:var(--ap-muted);max-width:44ch;margin:0 auto 3rem;font-size:17px}

/* =========================================================
   15. FOOTER
   ========================================================= */
.ap-footer{background:var(--ap-charcoal);color:var(--ap-ivory);padding:clamp(3.5rem,7vw,6rem) 0 2rem;font-size:14px}
.ap-footer .wp-block-columns{gap:3rem;padding-bottom:3.5rem}
.ap-f-brand{font-family:var(--ap-serif);font-size:17px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:1rem}
.ap-footer p,.ap-footer li{color:var(--ap-dark-muted);margin:0 0 .35em}
.ap-footer ul{list-style:none;margin:0;padding:0}
.ap-footer li{margin-bottom:.7em}
.ap-footer a{color:var(--ap-dark-muted);transition:color .3s ease}
.ap-footer a:hover{color:#fff}
.ap-f-head{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ap-dark-dim);margin-bottom:1.4rem}
.ap-f-bot{
  border-top:1px solid var(--ap-dark-line);padding-top:1.8rem;
  display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  font-size:13px;color:var(--ap-dark-dim);
}
.ap-f-bot a{
  color:var(--ap-dark-muted);text-decoration:underline;
  text-underline-offset:3px;text-decoration-thickness:1px;
}
.ap-f-bot a:hover{color:#fff}
ul.ap-f-legal{display:flex;flex-wrap:wrap;gap:1.4rem;list-style:none;margin:0;padding:0}
.ap-footer ul.ap-f-legal li{margin:0}
ul.ap-f-legal a{
  font-size:13px;letter-spacing:.02em;color:var(--ap-dark-muted);
  text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;
}
ul.ap-f-legal a:hover{color:#fff}

/* =========================================================
   16. PAGINE INTERNE E ARTICOLI
   ========================================================= */
.ap-page-content{padding:clamp(4rem,8vw,7rem) 0}
.ap-page-content .ap-entry{max-width:70ch;margin:0 auto}
.ap-page-content h1{font-size:clamp(2.2rem,4.5vw,3.6rem);line-height:1.15;margin:0 0 2rem}
.ap-page-content h2{font-size:clamp(1.6rem,2.8vw,2.2rem);margin:2.4rem 0 1rem}
.ap-page-content h3{font-size:1.3rem;margin:2rem 0 .8rem}
.ap-meta{
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ap-muted);margin-bottom:2.5rem;
}
.ap-archive-list .wp-block-post{border-top:1px solid var(--ap-line);padding:2.2rem 0}
.ap-archive-list .wp-block-post-title{font-family:var(--ap-serif);font-weight:300;font-size:1.6rem;margin:0 0 .6rem}
.ap-source{
  font-size:13.5px;line-height:1.7;color:var(--ap-muted);
  border-top:1px solid var(--ap-line);padding-top:1.4rem;margin-top:2.8rem;
}
.ap-source a{text-decoration:underline;text-underline-offset:3px}

/* =========================================================
   17. ANIMAZIONE DI RIVELAZIONE
   ========================================================= */
/* L'occultamento iniziale avviene SOLO se il JavaScript e' attivo: la classe
   .ap-js viene aggiunta da site.js. Senza questa precauzione, un errore di
   script renderebbe invisibile l'intera pagina. */
.ap-js .ap-rv{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
.ap-js .ap-rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .ap-js .ap-rv{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}
/* nell'editor del sito le sezioni devono essere sempre visibili */
.editor-styles-wrapper .ap-rv{opacity:1 !important;transform:none !important}

/* =========================================================
   18. MOBILE
   ========================================================= */
@media (max-width:900px){
  .ap-cards,.ap-tri,.ap-tl{grid-template-columns:1fr}
  .ap-insights .wp-block-post-template{grid-template-columns:1fr}
  .ap-tl::before{display:none}
  .ap-tl-item{
    text-align:left;padding-top:0;padding-left:2rem;
    border-left:1px solid var(--ap-line);padding-bottom:2rem;
  }
  .ap-tl-item::before{left:0;top:6px;transform:translateX(-50%)}
  .ap-sit{grid-template-columns:44px 1fr;gap:1rem}
  .ap-sit p{grid-column:2}
  .ap-hero .ap-col-photo{order:-1}
  .ap-header .wp-block-navigation{gap:1.4rem}
}
@media (max-width:781px){
  .ap-hero .wp-block-columns,
  .ap-about .wp-block-columns,
  .ap-lpm .wp-block-columns,
  .ap-footer .wp-block-columns{gap:2.5rem}
}

/* ---- telefono ------------------------------------------------------------
   Obiettivi: il messaggio prima dell'immagine, righe piu' lunghe (niente
   titoli spezzati in quattro), aree toccabili di almeno 44px, meno vuoto
   verticale fra una sezione e l'altra. ------------------------------------ */
@media (max-width:600px){

  /* i titoli non devono spezzarsi in colonne strettissime */
  .ap-dark h2,
  .ap-intl h2,
  .ap-hero h1,
  .ap-cta h2{max-width:none}
  .ap-lead,.ap-card p,.ap-lpm p{max-width:none}
  .ap-card h3{max-width:none}
  .ap-intl .ap-intro,.ap-cta p,.ap-philosophy p{max-width:none}

  /* nell'ordine di lettura viene prima cosa dico, poi la fotografia */
  .ap-hero .ap-col-photo{order:0}

  /* meno aria: sul telefono lo spazio bianco costa scroll */
  .ap-hero{padding:2.5rem 0 3rem}
  .ap-philosophy,.ap-about,.ap-expertise,.ap-lpm,.ap-insights{
    padding-top:3.5rem;padding-bottom:3.5rem;
  }
  .ap-dark,.ap-intl,.ap-timeline-sec{padding:3.5rem 0}
  .ap-cta{padding:4.5rem 0}
  .ap-hero .wp-block-columns,
  .ap-about .wp-block-columns,
  .ap-lpm .wp-block-columns{gap:2rem}

  /* aree toccabili: un link di 13px alto 18px non e' cliccabile con il pollice */
  .ap-link,.ap-link a{
    font-size:14px;letter-spacing:.1em;
    padding:12px 0;min-height:44px;display:inline-flex;align-items:center;
  }
  .ap-card .ap-link,.ap-card .ap-link a{padding-top:6px}

  /* elenco delle discipline sotto il titolo: meno spaziatura, piu' leggibile */
  .ap-disciplines{font-size:13px;letter-spacing:.10em;line-height:1.9}

  /* titolo di sezione e occhiello */
  .ap-eyebrow{margin-bottom:1.2rem}
  .ap-sec-head p{font-size:15px}

  /* situazioni della sezione scura */
  .ap-sit{grid-template-columns:32px 1fr;gap:.8rem;padding:1.8rem 0}
  .ap-sit h4{font-size:12.5px;letter-spacing:.12em}

  /* footer: le tre colonne una sotto l'altra senza vuoti eccessivi */
  .ap-footer-cols,.ap-footer .wp-block-columns{gap:2rem;padding-bottom:2.2rem}
  .ap-f-bot{gap:.8rem;padding-top:1.2rem}
}

@media (max-width:420px){
  /* il nome non deve andare a capo accanto al selettore di lingua */
  .ap-brand{font-size:16px;letter-spacing:.11em}
  .ap-brand small{font-size:9px;letter-spacing:.14em}
  .ap-header-inner{min-height:70px;gap:1rem}
  .ap-lang{padding-left:.9rem}
  .ap-hero h1{font-size:2.15rem}
}
