@media (min-width: 1400px) and (max-width: 1599.98px) {
    .header-container { gap: 18px; padding-inline: 24px; }
    .site-brand { gap: 9px; }
    .site-brand img { width: 52px; height: 50px; }
    .brand-caption strong { font-size: 23px; }
    .brand-caption small { font-size: 12px; }
    .site-navigation .navbar-collapse, .header-actions { gap: 16px; }
    .site-navigation .nav-link { padding-inline: 8px !important; }
    .header-phone { gap: 6px; }
}

@media (max-width: 1399.98px) {
    :root { --header-height: 88px; }
    .site-container { padding-inline: 32px; }
    .header-container { gap: 12px; padding-inline: 28px; }
    .page-home .site-header { margin-bottom: 0; background: var(--white); }
    .page-home .site-header:not(.is-scrolled) .nav-link,
    .page-home .site-header:not(.is-scrolled) .brand-caption,
    .page-home .site-header:not(.is-scrolled) .header-phone,
    .page-home .site-header:not(.is-scrolled) .panel-toggle { color: var(--primary-dark); }
    .page-home .site-header:not(.is-scrolled) .nav-link.active { background: var(--primary-light); }
    .navbar-toggler { margin-left: auto; }
    .site-brand img { width: 60px; height: 54px; }
    .site-navigation .navbar-collapse { margin-left: 0; position: absolute; top: 100%; left: 0; right: 0; background: var(--white); box-shadow: 0 15px 20px #0d1b2612; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; }
    .navbar-nav { padding: 18px 28px 8px; gap: 4px; }
    .navigation-glass, .page-home .site-header:not(.is-scrolled) .navigation-glass { margin: 16px 20px 0; padding: 10px; background: #eaf1f7a6; border-color: #24578420; }
    .site-navigation .nav-link { display: inline-block; font-size: 14px; }
    .header-actions { padding: 14px 28px 28px; flex-wrap: wrap; gap: 22px; }
    .hero { min-height: 710px; }
    .hero-container { padding-top: 70px; padding-bottom: 105px; }
    .hero h1 { font-size: clamp(52px, 6.5vw, 68px); }
    .hero-content { max-width: 590px; padding-right: 40px; }
}

@media (max-width: 1199.98px) {
    .footer-content { flex-wrap: wrap; }
}

@media (max-width: 575.98px) {
    :root { --header-height: 82px; }
    .site-container { padding-inline: 22px; }
    .header-container { padding-inline: 12px; gap: 8px; }
    .site-brand { gap: 7px; flex: 1; }
    .site-brand img { width: 43px; height: 43px; padding: 2px; }
    .brand-caption { gap: 3px; white-space: normal; }
    .brand-caption strong { font-size: 19px; }
    .brand-caption small { max-width: 170px; font-size: 11px; line-height: 1.35; }
    .navbar-toggler { padding: 5px; }
    .navbar-toggler-icon { width: 24px; height: 24px; }
    .panel-toggle { width: 34px; height: 36px; }
    .panel-toggle svg { width: 20px; height: 20px; }
    .hero { min-height: 710px; }
    .hero-container { padding-top: 52px; padding-bottom: 115px; }
    .hero { border-radius: 0 0 26px 26px; }
    .hero-content { padding-right: 0; max-width: 100%; }
    .hero h1 { font-size: clamp(40px, 10.5vw, 56px); margin-bottom: 32px; }
    .eyebrow { font-size: 9px; letter-spacing: .15em; }
    .hero .eyebrow { margin-bottom: 30px; }
    .hero-description { font-size: 15px; line-height: 1.8; max-width: 340px; min-height: 108px; }
    .hero-content > .button { font-size: 13px; gap: 18px; }
    .hero-note { max-width: 240px; line-height: 1.7; }
    .hero-photo { object-position: 72% center; }
    .hero-shade { background: linear-gradient(90deg, #0d1b26b8, #0d1b2680 70%, #0d1b2630); }
    .hero-controls { top: auto; bottom: 20px; transform: none; }
    .hero-arrow { width: 38px; height: 38px; }
    .hero-counter { padding-block: 3px; }
    .contact-panel .offcanvas-header, .contact-panel .offcanvas-body { padding: 24px; }
    .footer-content { flex-direction: column; align-items: flex-start; gap: 14px; }
    .site-footer { padding-block: 28px; }
    .placeholder-main { padding-block: 30px; }
    .placeholder-panel { padding: 28px 22px; }
    .placeholder-description { font-size: 16px; }
}

/* Responsive delle sole nuove sezioni della Home. */
@media (max-width: 1199.98px) {
    .intro-grid { gap: 22px; }
    .intro-card { padding: 34px 24px 28px; }
    .intro-card h3 { font-size: 16px; }
    .intro-card-bottom { gap: 14px; grid-template-columns: minmax(0, 1fr) 42px; }
    .intro-card-icon { width: 42px; height: 42px; }
    .about-preview-grid { column-gap: 48px; }
}
@media (max-width: 991.98px) {
    .intro-section { padding: 72px 0 40px; }
    .intro-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .intro-card:last-child { grid-column: 1 / -1; width: calc((100% - 22px) / 2); justify-self: center; }
    .about-preview-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .about-preview-photo { aspect-ratio: 1.6; }
    .about-preview-content { max-width: 600px; padding: 8px 0 0; }
    .about-preview-copy { max-width: none; }
    .about-preview { padding-bottom: 80px; }
}
@media (max-width: 767.98px) {
    .intro-grid { grid-template-columns: minmax(0, 1fr); }
    .intro-card:last-child { grid-column: auto; width: 100%; }
    .intro-card { padding: 34px 28px 30px; }
    .intro-card h3 { min-height: auto; padding-right: 38px; }
    .intro-card-bottom { grid-template-columns: minmax(0, 1fr) 48px; gap: 20px; }
    .intro-card-icon { width: 48px; height: 48px; }
    .about-preview h2 { font-size: clamp(31px, 6vw, 42px); }
}
@media (max-width: 575.98px) {
    .intro-section { padding: 54px 0 32px; }
    .intro-grid { gap: 24px; }
    .intro-card { padding-inline: 24px; }
    .about-preview { padding: 28px 0 64px; }
    .about-preview-photo { aspect-ratio: 1.05; border-radius: 18px; }
    .about-preview-photo-note { top: 16px; right: 16px; padding: 12px; border-width: 4px; }
    .about-preview-photo-note svg { width: 28px; height: 28px; }
    .about-preview-photo-note em { font-size: 18px; }
    .about-preview h3 { font-size: 29px; }
    .about-preview-copy { font-size: 15px; }
}
/* Responsive della sola sezione Servizi. */
@media (max-width: 1199.98px) {
    .services-preview-grid { gap: 22px; }
    .service-preview-body { padding: 23px 22px 26px; }
    .services-preview h3 { font-size: 22px; }
}
@media (max-width: 991.98px) {
    .services-preview { padding-bottom: 80px; }
    .services-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-preview-card:last-child { grid-column: 1 / -1; width: calc((100% - 22px) / 2); justify-self: center; }
}
@media (max-width: 767.98px) {
    .services-preview-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .service-preview-card:last-child { grid-column: auto; width: 100%; }
    .services-preview-heading { margin-bottom: 34px; }
    .services-preview h2 { font-size: clamp(30px, 6vw, 42px); }
    .service-preview-media { aspect-ratio: 1.2; }
    .service-preview-title-row { min-height: 44px; }
}
@media (max-width: 575.98px) {
    .services-preview { padding: 8px 0 64px; }
    .service-preview-icon { width: 50px; height: 50px; top: 14px; left: 14px; }
    .service-preview-icon svg { width: 29px; height: 29px; }
    .service-preview-body { padding: 22px; }
    .service-preview-title-row { gap: 10px; }
}
/* Responsive delle nuove sezioni Appuntamento, Blog e Footer. */
@media (max-width: 1199.98px) {
    .appointment-section { padding-block: 65px; }
    .appointment-grid { gap: 36px; }
    .appointment-panel { padding: 28px; }
    .appointment-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .professional-footer-grid { grid-template-columns: minmax(0, 1.2fr) repeat(2, minmax(0, 1fr)); gap: 32px; }
    .professional-footer-contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 18px; }
    .home-blog-grid { gap: 22px; }
    .home-blog-card-body { padding-inline: 22px; }
    .home-blog h3 { font-size: 21px; }
}
@media (max-width: 991.98px) {
    .appointment-grid { grid-template-columns: minmax(0, 1fr); gap: 46px; }
    .appointment-introduction { max-width: 650px; }
    .appointment-contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
    .appointment-panel { padding: 36px; }
    .home-blog { padding: 76px 0 80px; }
    .home-blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-blog-card:last-child { grid-column: 1 / -1; width: calc((100% - 22px) / 2); justify-self: center; }
    .professional-footer { padding-top: 58px; }
    .professional-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .professional-footer-grid > .professional-footer-identity { grid-column: 1 / -1; grid-row: auto; }
    .professional-footer-contacts { grid-column: 1 / -1; }
    .professional-footer-bottom { flex-direction: column; align-items: flex-start; gap: 14px; }
}
@media (max-width: 767.98px) {
    .appointment-section { margin-inline: 12px; border-radius: 30px; }
    .appointment-panel { padding: 28px; }
    .appointment-fields { grid-template-columns: minmax(0, 1fr); }
    .appointment-field-wide { grid-column: auto; }
    .home-blog-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .home-blog-card:last-child { width: 100%; grid-column: auto; }
    .home-blog h2 { font-size: clamp(30px, 6vw, 42px); }
    .home-blog h3 { font-size: 24px; }
    .home-blog-heading { margin-bottom: 34px; }
    .professional-footer { margin-inline: 12px; border-radius: 28px 28px 0 0; }
    .professional-footer-grid { gap: 36px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .professional-footer-identity { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
    .appointment-section { margin-inline: 8px; padding-block: 44px; }
    .appointment-section > .site-container { padding-inline: 16px; }
    .appointment-introduction h2 { font-size: 33px; }
    .appointment-benefits { gap: 25px; }
    .appointment-benefits li { gap: 13px; grid-template-columns: 42px minmax(0, 1fr); }
    .appointment-benefit-icon { width: 42px; height: 42px; }
    .appointment-benefits h3 { font-size: 17px; }
    .appointment-contact-grid { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    .appointment-panel { padding: 26px 20px; border-radius: 23px; }
    .appointment-panel h3 { font-size: 33px; }
    .appointment-field input, .appointment-field select, .appointment-field textarea { font-size: 16px; }
    .appointment-submit { width: 100%; font-size: 10px; padding-inline: 13px; gap: 10px; }
    .home-blog { padding-block: 64px; }
    .professional-footer { margin-inline: 8px; padding-top: 42px; }
    .professional-footer-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-bottom: 36px; }
    .professional-footer-contacts { grid-template-columns: minmax(0, 1fr); }
    .professional-footer-column h2 { margin-bottom: 18px; }
    .professional-footer-brand { gap: 12px; }
    .professional-footer-brand img { width: 58px; height: 54px; }
    .professional-footer-brand strong { font-size: 21px; }
    .professional-footer-legal { gap: 13px; }
    .professional-footer-identity { padding: 23px 20px; }
    .professional-footer-botanical { width: 300px; height: 350px; opacity: .07; }
}

/* Responsive dedicato alla pagina Chi sono. */
@media (max-width: 1199.98px) {
    .about-page-hero-grid, .about-page-split { gap: 44px; }
    .about-page-training-card, .about-page-concept, .about-page-experience-card { padding: 26px; }
}
@media (max-width: 991.98px) {
    .about-page-section { padding-block: 68px; }
    .about-page-hero-grid { gap: 36px; }
    .about-page-hero-photo img { height: 390px; }
    .about-page-hero-photo figcaption { left: -12px; padding: 14px; font-size: 17px; }
    .about-page-split { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .about-page-portrait { max-width: 470px; width: 100%; margin-inline: auto; }
    .about-page-three-grid, .about-page-experience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .about-page-three-grid > :last-child, .about-page-experience-grid > :last-child { grid-column: 1 / -1; }
    .about-page-experience { padding-top: 0; }
}
@media (max-width: 575.98px) {
    .about-page-hero, .about-page-approach, .about-page-cta { margin-inline: 8px; border-radius: 25px; }
    .about-page-hero { padding-block: 38px; }
    .about-page-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .about-page-hero-photo { max-width: 320px; justify-self: center; }
    .about-page-hero-photo img { height: 340px; border-radius: 100px 100px 24px 24px; }
    .about-page-hero-photo figcaption { left: 12px; bottom: 16px; }
    .about-page-section { padding-block: 52px; }
    .about-page-portrait img { height: 420px; border-radius: 24px 65px 24px 24px; }
    .about-page-three-grid, .about-page-experience-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .about-page-heading { margin-bottom: 30px; }
    .about-page-location-card { padding: 26px; }
    .about-page-experience { padding-top: 0; }
    .about-page-cta { padding-block: 48px; margin-bottom: 52px; }
    .about-page-cta .button { font-size: 11px; gap: 14px; padding-left: 14px; }
}

/* Rifiniture tablet e smartphone: solo pagina Chi sono. */
@media (max-width: 1199.98px) {
    .about-page .site-container { padding-inline: 26px; }
    .about-page-section { padding-block: 64px; }
    .about-page h1 { font-size: clamp(44px, 5.5vw, 60px); }
    .about-page h2 { font-size: clamp(30px, 3.5vw, 38px); }
    .about-page h3 { font-size: 22px; }
    .about-page-hero { padding-block: 40px; }
    .about-page-hero-grid, .about-page-split { gap: 32px; }
    .about-page-hero-photo img { height: 370px; }
    .about-page-hero-photo figcaption { left: 12px; bottom: 20px; padding: 14px 18px; font-size: 18px; }
    .about-page-three-grid, .about-page-experience-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
    .about-page-three-grid > :last-child, .about-page-experience-grid > :last-child { grid-column: 1 / -1; }
    .about-page-heading { max-width: 680px; margin-bottom: 34px; }
    .about-page-portrait img { height: 490px; }
    .about-page-experience { padding-top: 0; }
    .about-page-cta { padding-block: 54px; margin-bottom: 60px; }
}
@media (max-width: 991.98px) {
    .about-page-copy { max-width: 680px; width: 100%; }
    .about-page-hero-grid { grid-template-columns: 1.1fr 1fr; gap: 24px; }
    .about-page .about-page-lead { font-size: 16px; }
    .about-page-hero-photo img { height: 340px; }
    .about-page-hero-photo figcaption { font-size: 16px; padding: 12px; }
    .about-page-portrait img { height: 450px; }
}
@media (max-width: 767.98px) {
    .about-page .site-container { padding-inline: 20px; }
    .about-page-hero, .about-page-approach, .about-page-cta { margin-inline: 8px; border-radius: 25px; }
    .about-page-hero { padding-block: 32px; }
    .about-page-hero-grid, .about-page-three-grid, .about-page-experience-grid { grid-template-columns: minmax(0, 1fr); }
    .about-page-hero-grid, .about-page-split { gap: 28px; }
    .about-page h1 { font-size: clamp(40px, 9vw, 52px); line-height: 1.08; }
    .about-page h2 { font-size: clamp(29px, 6.5vw, 36px); margin-bottom: 22px; }
    .about-page h3 { font-size: 22px; }
    .about-page p { font-size: 16px; line-height: 1.75; }
    .about-page .about-page-badge { margin-bottom: 18px; }
    .about-page-hero-photo { max-width: 420px; width: 100%; justify-self: center; }
    .about-page-hero-photo img { height: clamp(290px, 80vw, 380px); object-position: 72% 43%; border-radius: 90px 90px 24px 24px; }
    .about-page-hero-photo figcaption { left: 12px; bottom: 16px; max-width: calc(100% - 24px); }
    .about-page-section { padding-block: 46px; }
    .about-page-portrait { max-width: 100%; }
    .about-page-portrait img { height: clamp(350px, 95vw, 470px); border-radius: 24px 65px 24px 24px; }
    .about-page-three-grid, .about-page-experience-grid { gap: 18px; }
    .about-page-training-card, .about-page-concept, .about-page-experience-card { padding: 24px; }
    .about-page-concept > span, .about-page-year { margin-bottom: 20px; }
    .about-page-profile { margin-left: 5px; padding-left: 23px; }
    .about-page-profile article::before { left: -29px; }
    .about-page-profile article { padding-bottom: 26px; }
    .about-page-experience { padding-top: 0; }
    .about-page-location-card { padding: 24px; }
    .about-page-cta { padding-block: 40px; margin-bottom: 46px; }
    .about-page-cta h2 br { display: none; }
    .about-page-cta .button { width: 100%; max-width: 340px; min-height: 48px; font-size: 11px; gap: 12px; padding-left: 14px; }
}

/* Responsive specifico della pagina Contatti. */
@media (max-width: 1199.98px) {
    .contact-page-section, .contact-page-closing { padding-block: 64px; }
    .contact-page-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
    .contact-page-cards > :last-child { grid-column: 1 / -1; }
    .contact-page-form-layout { gap: 30px; }
    .contact-page-form-panel, .contact-page-card { padding: 26px; }
    .contact-page-split { gap: 36px; }
}
@media (max-width: 991.98px) {
    .contact-page-form-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
    .contact-page-form-intro { max-width: 680px; }
    .contact-page-split { grid-template-columns: minmax(0, 1fr); }
    .contact-page-studio-photo img { height: 340px; }
    .contact-page-hero { padding-block: 48px; }
}
@media (max-width: 767.98px) {
    .contact-page .site-container { padding-inline: 20px; }
    .contact-page-hero, .contact-page-modalities, .contact-page-appointment { margin-inline: 8px; border-radius: 25px; }
    .contact-page-hero { padding-block: 36px; }
    .contact-page h1 { font-size: clamp(36px, 8.5vw, 50px); }
    .contact-page h2 { font-size: clamp(29px, 6.5vw, 36px); }
    .contact-page-card h2 { font-size: 23px; }
    .contact-page .contact-page-lead { font-size: 16px; }
    .contact-page-section, .contact-page-closing { padding-block: 46px; }
    .contact-page-cards, .contact-page-fields { grid-template-columns: minmax(0, 1fr); }
    .contact-page-card, .contact-page-mode { padding: 26px; }
    .contact-page-form-panel { padding: 24px 18px; border-radius: 22px; }
    .contact-page-studio-photo img { height: 280px; border-radius: 24px 60px 24px 24px; }
    .contact-page-icon { margin-bottom: 20px; }
    .contact-page-closing-links { flex-direction: column; gap: 16px; }
    .contact-page-closing h2 br { display: none; }
}

/* Responsive dedicato esclusivamente a Servizi. */
@media (max-width: 1199.98px) {
    .services-page-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-page-section { padding-block: 64px; }
    .services-detail-grid { gap: 36px; }
    .services-detail-photo img { height: 380px; }
    .services-page-dsa { margin-top: 64px; }
    .services-page-call { gap: 30px; }
}
@media (max-width: 991.98px) {
    .services-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .services-detail-photo img { height: 360px; }
    .services-page-dsa-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-page-meeting-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-page-meeting-grid > :last-child { grid-column: 1 / -1; }
    .services-page-call { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767.98px) {
    .services-page .site-container { padding-inline: 20px; }
    .services-hero, .services-detail-soft, .services-page-dsa, .services-page-cta { margin-inline: 8px; border-radius: 25px; }
    .services-hero { padding-block: 36px; }
    .services-page h1 { font-size: clamp(35px, 8vw, 48px); }
    .services-page h2 { font-size: clamp(29px, 6.5vw, 36px); }
    .services-page h3 { font-size: 23px; }
    .services-page p { line-height: 1.75; }
    .services-page-section { padding-block: 44px; }
    .services-page-overview, .services-page-meeting-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .services-page-card, .services-page-meeting-grid article { padding: 26px; }
    .services-page-number { margin-bottom: 22px; }
    .services-detail-photo img { height: 280px; border-radius: 24px 60px 24px 24px; }
    .services-page-dsa { margin-top: 44px; }
    .services-page-dsa-pillars { gap: 12px; margin-top: 26px; }
    .services-page-dsa-pillars span { padding: 16px 10px; font-size: 13px; overflow-wrap: anywhere; }
    .services-page-audience { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .services-page-audience li { font-size: 23px; }
    .services-page-cta { padding-block: 44px; margin-bottom: 48px; }
    .services-page-actions { flex-direction: column; gap: 20px; }
    .services-page-actions .button { width: 100%; max-width: 340px; font-size: 13px; gap: 12px; padding-left: 16px; }
}

/* Responsive delle sole pagine Blog e Articolo. */
@media (max-width: 1199.98px) {
    .blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .blog-featured .blog-card-body { padding: 30px; }
    .blog-featured .blog-card-image { min-height: 400px; }
}
@media (max-width: 991.98px) {
    .blog-featured { grid-template-columns: minmax(0, 1fr); }
    .blog-featured .blog-card-image { min-height: 0; height: 320px; }
    .blog-page-section { padding-block: 56px; }
    .blog-page-latest { padding-top: 0; }
    .blog-card-body { padding: 24px; }
    .blog-article-cover { height: 360px; }
}
@media (max-width: 767.98px) {
    .blog-page .site-container { padding-inline: 20px; }
    .blog-hero, .blog-page-cta { margin-inline: 8px; border-radius: 25px; padding-block: 38px; }
    .blog-page h1 { font-size: clamp(32px, 7.5vw, 45px); }
    .blog-page h2 { font-size: 30px; }
    .blog-page h3 { font-size: 25px; }
    .blog-grid, .blog-grid:has(> :nth-child(2):last-child) { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .blog-card-image, .blog-featured .blog-card-image { height: 240px; }
    .blog-page-section { padding-block: 42px; }
    .blog-page-latest { padding-top: 0; }
    .blog-featured .blog-card-body { padding: 24px; }
    .blog-page-cta { margin-bottom: 44px; }
    .blog-page .button { font-size: 13px; gap: 12px; padding-left: 16px; }
    .blog-article-header { padding-top: 34px; }
    .blog-article-cover { height: 280px; border-radius: 24px; }
    .blog-article-body { padding-block: 32px 44px; }
    .blog-article-body p, .blog-article-body li { font-size: 17px; line-height: 1.85; }
    .blog-article-body .blog-article-intro { font-size: 19px; }
    .blog-article-author { padding: 22px; }
    .blog-article-author h2 { font-size: 24px; }
}
