/*
Theme Name: Palestra Italia
Description: Base personalizzata a blocchi per Palestra Italia, child theme di Twenty Twenty-Five.
Template: twentytwentyfive
Version: 0.6.12
Requires at least: 6.7
Requires PHP: 7.2
Text Domain: palestra-italia
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
/* Il logo fornito in assets/reference è escluso dalla licenza del codice. */
:where(.wp-site-blocks, .editor-styles-wrapper) :where(a, button, input, textarea, select):focus-visible {
 outline: 3px solid #183952;
 outline-offset: 4px;
}
.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-site-logo img { max-width: 100%; height: auto; }
.wp-block-table { overflow-x: auto; }
.wp-block-table th { font-weight: 700; }

/* Homepage 0.2.0 — blocchi nativi, nessuna libreria esterna. */
.pi-header { max-width: 1200px; margin-inline: auto; padding: 24px clamp(20px,4vw,48px); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pi-header > * { margin: 0 !important; }
.pi-brand { font: 700 1.15rem/1.2 Montserrat,Arial,sans-serif; letter-spacing: -.03em; }
.pi-brand a { text-decoration: none; color: #316faf; }
.pi-brand span { color: #20262d; }
.pi-home { max-width: none !important; margin-block-start: 0; }
.pi-home > .pi-section { max-width: none; margin-block: 0; }
.pi-section { padding: clamp(56px,8vw,108px) clamp(24px,6vw,96px); scroll-margin-top: 24px; }
.pi-section > * { max-width: 1120px !important; }
.pi-section > p:not(.pi-eyebrow) { max-width: 760px !important; margin-left: max(0px, calc((100% - 1120px)/2)) !important; }
.pi-section .pi-eyebrow { font: 700 .8rem/1.5 Lato,Arial,sans-serif; letter-spacing: .14em; }
.pi-hero { background: #183952; color: #fff; position: relative; overflow: hidden; border-bottom: 0; }
.pi-hero::after { content: ''; position: absolute; width: 360px; height: 360px; border: 44px solid #316faf; border-radius: 50%; right: -230px; top: 30px; opacity: .45; pointer-events: none; }
.pi-hero .pi-lead { font: 600 clamp(1.35rem,2.7vw,2rem)/1.35 Montserrat,Arial,sans-serif; }
.pi-hero .wp-block-buttons { margin-top: 32px; }
.pi-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 40px; }
.pi-grid > .pi-card { width: auto; max-width: none; margin: 0; padding: 30px; background: #f3f6f9; border-top: 4px solid #316faf; }
.pi-number { color: #316faf; font-weight: 700; }
.pi-blue { background: #316faf; color: #fff; }
.pi-secondary .wp-block-button__link { color: #183952; background: #fff; border: 2px solid #183952; }
.pi-hero .pi-secondary .wp-block-button__link { border-color: #fff; }
.pi-soft { background: #f3f6f9; }
.pi-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin-top: 40px; }
.pi-values > * { margin: 0; }
.pi-value h3 { font-size: 1.25rem; }
.pi-footer { background: #183952; color: #fff; padding: 48px 24px; margin-top: 0; text-align: center; }
.pi-footer h2 { font-size: clamp(1.4rem,3vw,2rem); }
.pi-hero :focus-visible, .pi-blue :focus-visible, .pi-footer :focus-visible { outline-color: #fff; }
@media (max-width: 700px) {
 .pi-grid, .pi-values { grid-template-columns: 1fr; }
 .pi-header { padding: 20px 24px; }
 .pi-section { padding: 52px 24px; }
 .pi-hero h1 { font-size: 2.5rem; }
}

.pi-home > .wp-block-post-content { max-width: none; margin: 0; }
.pi-home > .wp-block-post-content > .pi-section { max-width: none; margin-block: 0; }
.pi-page { padding: clamp(40px,6vw,80px) 24px; }
.pi-page > .wp-block-post-title { margin-bottom: 40px; }


/* Hero fotografica: immagine editoriale nella pagina, presentazione nel tema. */
.pi-home .pi-hero:has(> .wp-block-image) {
 display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
 position:relative; isolation:isolate; overflow:hidden;
 min-height:calc(100svh - 88px); gap:24px;
 padding:clamp(64px,8vw,128px) max(24px,calc((100% - 1200px)/2));
 background:#FCFBF5; color:#20262D; border-bottom:0;
}
.pi-home .pi-hero:has(> .wp-block-image)::after {
 content:''; display:block; position:absolute; inset:0; width:auto; height:auto;
 border:0; border-radius:0; opacity:1; pointer-events:none; z-index:1;
 background:linear-gradient(90deg,rgba(252,251,245,.99) 0%,rgba(252,251,245,.96) 24%,rgba(252,251,245,.76) 43%,rgba(252,251,245,.08) 61%,rgba(252,251,245,0) 78%);
}
.pi-home .pi-hero > .wp-block-image {
 position:absolute; inset:0; width:100%; height:100%; z-index:0;
 margin:0 !important; max-width:none !important;
}
.pi-home .pi-hero > .wp-block-image img {
 width:100%; height:100%; min-height:0; aspect-ratio:auto;
 object-fit:cover; object-position:center; display:block;
}
.pi-home .pi-hero:has(> .wp-block-image) > :not(.wp-block-image) {
 position:relative; z-index:2; width:min(100%,560px); max-width:560px !important;
 margin:0 !important;
}
.pi-home .pi-hero:has(> .wp-block-image) h1 {
 color:#1380E2; font-family:Montserrat,Arial,sans-serif;
 font-size:clamp(3rem,5.5vw,5rem); font-weight:700; line-height:1.04;
}
.pi-home .pi-hero:has(> .wp-block-image) .pi-lead {
 color:#F76D3E; font-family:Montserrat,Arial,sans-serif;
 font-size:clamp(1.5rem,2.4vw,2rem); font-weight:600; line-height:1.4;
}
.pi-home .pi-hero .wp-block-button__link {
 background:#F76D3E; color:#E2E6EA; border:3px solid #F76D3E;
 border-radius:2px; font-family:Lato,Arial,sans-serif; font-weight:700;
}
.pi-home .pi-hero .pi-secondary .wp-block-button__link {
 background:transparent; color:#F76D3E; border:3px solid #F76D3E;
}
.pi-home .pi-hero :focus-visible {outline:3px solid #20262D;outline-offset:4px;}
.pi-header {background:#FCFBF5; color:#20262D;}
.pi-header .wp-block-navigation a {color:#20262D;}
.pi-footer {color:#F4F5F6;}
.pi-blue {color:#F4F5F6;}
.pi-secondary .wp-block-button__link {background:#FCFBF5;}
.pi-header .wp-block-site-logo img {width:220px;max-width:100%;height:auto;}
@media(max-width:800px) {
 .pi-home .pi-hero:has(> .wp-block-image) {
  min-height:0; padding:64px 24px; gap:22px;
 }
 .pi-home .pi-hero > .wp-block-image {margin:0 !important;}
 .pi-home .pi-hero > .wp-block-image img {height:100%;object-fit:cover;object-position:64% center;aspect-ratio:auto;}
 .pi-home .pi-hero:has(> .wp-block-image)::after {
  background:linear-gradient(90deg,rgba(252,251,245,.97),rgba(252,251,245,.86));
 }
 .pi-home .pi-hero:has(> .wp-block-image) h1 {font-size:clamp(2.6rem,10vw,3.5rem);}
 .pi-home .pi-hero .wp-block-buttons {flex-direction:column;align-items:flex-start;}
 .pi-header .wp-block-site-logo img {width:170px;}
}
/* Editor: keep the media selectable rather than positioning it behind blocks. */
.editor-styles-wrapper .pi-hero::after {display:none !important;}
.editor-styles-wrapper .pi-hero > .wp-block-image {position:relative !important;inset:auto !important;height:auto !important;}
.editor-styles-wrapper .pi-hero > .wp-block-image img {height:auto !important;max-height:480px;object-fit:contain;}

.pi-identity:has(.wp-block-site-logo img) .wp-block-site-title {display:none;}

/* Attività 0.5.0: condiviso da frontend ed editor, contenuti nella pagina. */
.pi-activities {background:#FCFBF5; color:#525E69;}
.pi-activities h2, .pi-activities h3 {color:#316FAF;}
.pi-activities .pi-eyebrow {color:#525E69;}
.pi-activities .pi-grid {
 display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px;
 width:100%; margin:40px auto 0;
}
.pi-activities .pi-grid > .pi-card {
 box-sizing:border-box; width:100%; min-width:0; max-width:none;
 margin:0 !important; padding:32px; background:#F4F5F6;
 border-top:4px solid #316FAF; display:flex; flex-direction:column; gap:16px;
}
.pi-activities .pi-card > * {max-width:none; margin:0; margin-inline:0 !important;}
.pi-activities .pi-card h3 {font-size:1.5rem; font-weight:600; line-height:1.3;}
.pi-activities .pi-card p {color:#525E69;}
.pi-activities .pi-card .pi-card-link {margin-top:auto; padding-top:10px;}
.pi-activities .pi-card-link a {
 display:inline-flex; align-items:center; min-height:44px; color:#20262D;
 font-weight:700; text-decoration:underline; text-decoration-color:#F76D3E;
 text-decoration-thickness:2px; text-underline-offset:6px;
}
.pi-activities .pi-card-link a:hover {color:#316FAF; text-decoration-thickness:3px;}
.pi-activities a:focus-visible {outline:3px solid #316FAF; outline-offset:4px;}
.pi-home .pi-hero .pi-secondary .wp-block-button__link:hover {
 background:#F4F5F6; color:#F76D3E; border-color:#F76D3E; text-decoration:underline;
}
@media (max-width:700px) {
 .pi-activities .pi-grid {grid-template-columns:1fr; gap:20px; margin-top:32px;}
 .pi-activities .pi-grid > .pi-card {padding:26px 24px;}
}

/* Logo SVG di identità: conserva proporzioni e spazio nell'header. */
.pi-header .pi-identity {flex-shrink:0;}
.pi-header .wp-block-site-logo a {display:inline-flex;align-items:center;}
.pi-header .wp-block-site-logo img {display:block;height:auto;}

/* 0.5.3: solo titolo hero e fascione Contatti. */
/* Il colore del titolo prevale anche sui colori del blocco salvati in WP. */
.pi-hero h1,
.pi-hero h1 :where(span,strong,em,a) {color:#1380E2 !important;}
.pi-section#contatti {background-color:#316FAF; color:#F4F5F6;}
.pi-section#contatti :where(h2,h3,h4,p,li) {color:#F4F5F6;}
.pi-section#contatti a:not(.wp-block-button__link) {
 color:#F4F5F6; text-decoration:underline; text-underline-offset:.2em;
}
.pi-section#contatti a:not(.wp-block-button__link):hover {text-decoration-thickness:2px;}
.pi-section#contatti .wp-block-button__link {
 background:#F76D3E; color:#20262D; border:2px solid #F76D3E;
}
.pi-section#contatti .pi-secondary .wp-block-button__link {
 background:transparent; color:#F4F5F6; border:2px solid #F4F5F6;
}
.pi-section#contatti .wp-block-button__link:hover {text-decoration:underline;}
.pi-section#contatti :focus-visible {outline:3px solid #F4F5F6; outline-offset:4px;}

/* 0.6.2: raccordo tra fine pagina e footer, senza il block gap esterno. */
.wp-site-blocks > .pi-home + footer.wp-block-template-part {margin-block-start:0;}
.wp-site-blocks > footer.wp-block-template-part {margin-block-start:0;}
.pi-footer {margin-block-start:0;}
.pi-footer .pi-legal {margin:0;font-size:.95rem;line-height:1.7;color:#f4f5f6;}
.pi-section#contatti .pi-contact-details {margin-block:1.5rem;}
.pi-section#contatti .pi-contact-details p {font-size:1.125rem;line-height:1.7;overflow-wrap:anywhere;}
.pi-section#contatti .pi-social-links .wp-block-button__link {background:transparent;color:#f4f5f6;border:2px solid #f4f5f6;min-height:48px;padding:.75rem 1.25rem;}
.pi-section#contatti .pi-social-links .wp-block-button__link:hover {background:#183952;}

/* Anche gli arrivi diretti alle ancore lasciano spazio alla barra admin. */
body.admin-bar .pi-section { scroll-margin-top: 70px; }

/* Contatti: icone decorative; testi e link restano blocchi Paragrafo.
   style.css viene caricato sia sul sito sia nell’editor. */
.pi-contact-details :is(.pi-contact-phone, .pi-contact-whatsapp, .pi-contact-email, .pi-contact-address)::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-inline-end: .45em;
  vertical-align: -.12em;
  background-color: currentColor;
  -webkit-mask: var(--pi-contact-icon) center / contain no-repeat;
  mask: var(--pi-contact-icon) center / contain no-repeat;
  pointer-events: none;
}
.pi-contact-details .pi-contact-phone { --pi-contact-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72c.12.96.35%201.9.69%202.79a2%202%200%200%201-.45%202.11L8.08%209.89a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45c.89.34%201.83.57%202.79.69A2%202%200%200%201%2022%2016.92z%22%2F%3E%3C%2Fsvg%3E"); }
.pi-contact-details .pi-contact-email { --pi-contact-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m3%207%209%206%209-6%22%2F%3E%3C%2Fsvg%3E"); }
.pi-contact-details .pi-contact-address { --pi-contact-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2012-8%2012S4%2016%204%2010a8%208%200%201%201%2016%200z%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222.5%22%2F%3E%3C%2Fsvg%3E"); }
.pi-contact-details .pi-contact-whatsapp { --pi-contact-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2011.5a9%209%200%200%201-13.4%207.85L3%2021l1.5-4.7A9%209%200%201%201%2021%2011.5z%22%2F%3E%3Cpath%20d%3D%22m8%207%201.5-.3%201%202.3-1%201c.8%201.6%201.7%202.5%203.3%203.3l1-1%202.3%201-.3%201.5c-.3%201.5-2.3%201.2-4.2.2-2.1-1.1-3.7-2.7-4.8-4.8C5.8%208.3%206.5%207.3%208%207z%22%2F%3E%3C%2Fsvg%3E"); }

/* Pre-footer: blocchi editoriali modificabili nell'Editor del sito. */
.pi-prefooter-part { margin-block-start: 0; }
.pi-prefooter {
  background: #fcfbf5; color: #20262d;
  padding: clamp(36px, 5vw, 64px) clamp(20px, 4vw, 48px);
}
.pi-prefooter .pi-prefooter-columns {
  max-width: 1200px; margin: 0 auto; gap: clamp(24px, 4vw, 56px);
  align-items: flex-start;
}
.pi-prefooter .wp-block-column { min-width: 0; }
.pi-prefooter h2 {
  margin: 0 0 1.1rem; color: #316faf;
  font-family: "Montserrat", sans-serif; font-size: 1rem;
  font-weight: 600; line-height: 1.4; text-transform: uppercase;
}
.pi-prefooter p { margin: 0 0 .65rem; font-family: "Lato", sans-serif; line-height: 1.6; }
.pi-prefooter a { color: #20262d; text-decoration: none; }
.pi-prefooter a:hover { color: #316faf; text-decoration: underline; text-underline-offset: .2em; }
.pi-prefooter .wp-block-site-logo img { width: 240px; max-width: 100%; height: auto; }
#pilates, #fitness, #personal-trainer { scroll-margin-top: 7rem; }
@media (max-width: 781px) {
  .pi-prefooter .pi-prefooter-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .pi-prefooter .pi-prefooter-brand { grid-column: 1 / -1; }
}

/* Menu aperto: allineamento a destra, anche per eventuali sottomenu. */
:is(.pi-header .wp-block-navigation, .pi-onepage-navigation)
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__responsive-container-content,
:is(.pi-header .wp-block-navigation, .pi-onepage-navigation)
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__container,
:is(.pi-header .wp-block-navigation, .pi-onepage-navigation)
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation-item,
:is(.pi-header .wp-block-navigation, .pi-onepage-navigation)
.wp-block-navigation__responsive-container.is-menu-open
.wp-block-navigation__submenu-container {
 align-items:flex-end !important;
 text-align:right;
}
