/*
Theme Name: Xaflo Academy
Author: Egon Suljic
Author URI: https://xaflo.com/
Description: Tema WordPress per accademie e scuole di formazione con home, catalogo, schede corso e supporto alle posizioni Header e Footer di Elementor Pro.
Version: 3.5.1
Requires at least: 6.2
Requires PHP: 8.0
Text Domain: accademia-massaggio
*/

body.adm-theme-body {
    --adm-bg: #fff;
    --adm-text: #172b45;
    --adm-muted: #48596c;
    --adm-accent: #263d55;
    --adm-action: #235ecb;
    --adm-action-hover: #184caa;
    --adm-font-display: Manrope, 'Segoe UI', system-ui, sans-serif;
    margin: 0;
    background: var(--adm-bg);
    color: var(--adm-text);
    font: 1rem/1.65 system-ui, sans-serif;
    overflow-wrap: break-word;
}

.adm-theme-body .elementor-widget-heading .elementor-heading-title {
    font-family: var(--adm-font-display);
}

.xa-reference-strip {
    padding-block: 20px;
    border-block: 1px solid #dce5f0;
    background: #fff;
}

.xa-reference-strip .xa-wrap.e-con {
    gap: 14px 24px;
}

.xa-method-grid.e-con,
.xa-reference-gallery.e-con {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.xa-reference-gallery.e-con {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 16px;
}

.xa-reference-gallery .xa-gallery-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 12px;
}

.xa-compare.e-con {
    padding: clamp(18px, 3vw, 32px);
    margin-top: 18px;
    background: #eaf2ff;
    border-radius: 16px;
}

.xa-compare-grid.e-con {
    gap: 16px;
}

.adm-course-page:has(.adm-course-intro-with-cover) {
    max-width: 1160px;
}

.adm-course-intro {
    margin-block: 16px 38px;
}

.adm-course-intro-with-cover {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
    gap: clamp(24px, 5vw, 60px);
}

.adm-course-intro .adm-featured-cover {
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    margin: 0;
}

@media (max-width: 767px) {
    .xa-method-grid.e-con,
    .adm-course-intro-with-cover {
        grid-template-columns: minmax(0, 1fr);
    }

    .xa-reference-gallery.e-con {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.adm-theme-body *,
.adm-theme-body *::before,
.adm-theme-body *::after {
    box-sizing: border-box;
}

.adm-theme-body a {
    color: var(--adm-accent);
}

.adm-theme-body :focus-visible {
    outline: 2px solid var(--adm-action);
    outline-offset: 3px;
}

.adm-theme-body .skip-link {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10000;
    padding: 8px 14px;
    background: #fff;
    border-radius: 6px;
}

.adm-theme-body .skip-link:not(:focus) {
    clip-path: inset(50%);
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.adm-container,
.adm-header-inner {
    width: min(100% - 36px, 1160px);
    margin-inline: auto;
}

.adm-site-header {
    background: #fff;
    border-bottom: 1px solid #dbe4f0;
}

.adm-header-inner,
.adm-footer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px 24px;
    padding-block: 18px;
}

.adm-brand-wordmark {
    font: 500 clamp(1.25rem, 1rem + 1vw, 1.65rem)/1.2 var(--adm-font-display);
    text-decoration: none;
}

.adm-header-inner .custom-logo {
    display: block;
    width: auto;
    max-width: min(200px, 65vw);
    max-height: 56px;
    object-fit: contain;
}

.adm-nav-links ul {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.adm-nav-links ul ul {
    padding-inline-start: 16px;
}

.adm-nav-links a,
.adm-site-footer a {
    display: inline-block;
    padding-block: 6px;
    font-size: .9375rem;
}

.adm-theme-body .adm-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 10px 16px;
    border: 0;
    border-radius: 9px;
    background: var(--adm-action);
    color: #fff;
    font: 650 .9375rem/1.35 system-ui, sans-serif;
    text-decoration: none;
    cursor: pointer;
}

.adm-theme-body .adm-btn-primary:hover {
    background: var(--adm-action-hover);
    color: #fff;
}

.adm-hero {
    padding-block: clamp(42px, 8vw, 100px);
    border-bottom: 1px solid #dbe4f0;
}

.adm-kicker {
    margin: 0 0 14px;
    color: var(--adm-accent);
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.adm-display-title,
.adm-section-title {
    margin: 0 0 12px;
    font-family: var(--adm-font-display);
    font-weight: 500;
    line-height: 1.08;
}

.adm-display-title {
    max-width: 20ch;
    font-size: clamp(2.25rem, 1.35rem + 4.4vw, 4.5rem);
}

.adm-section-title {
    font-size: clamp(1.9rem, 1.4rem + 2.2vw, 3rem);
}

.adm-hero-description {
    max-width: 56ch;
    margin: 18px 0 24px;
    color: var(--adm-muted);
    font-size: clamp(1rem, .9rem + .45vw, 1.2rem);
}

.adm-catalog-section,
.adm-content-section {
    padding-block: clamp(32px, 6vw, 68px);
}

.adm-catalog-section .adm-kicker {
    margin-bottom: 8px;
}

.adm-course-page {
    max-width: 820px;
}

.adm-course-page .adm-display-title {
    max-width: none;
    margin: 14px 0 24px;
    font-size: clamp(2rem, 1.25rem + 3.8vw, 3.9rem);
}

.adm-course-page img,
.adm-content-section img {
    max-width: 100%;
    height: auto;
}

.adm-course-page .adm-featured-cover {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: 18px;
    margin-bottom: 24px;
}

.adm-site-footer {
    border-top: 1px solid #dbe4f0;
    color: var(--adm-muted);
    font-size: .9rem;
}

.adm-footer-inner {
    align-items: start;
    padding-block: 28px;
}

.adm-footer-inner p {
    margin: 6px 0 0;
}

.adm-footer-brand {
    color: var(--adm-text);
    font: 500 1.3rem/1.2 var(--adm-font-display);
}

.xa-wrap.e-con {
    --width: min(100% - 36px, 1160px);
    width: min(100% - 36px, 1160px);
    max-width: 1160px;
    margin-inline: auto;
}

.xa-hero.e-con {
    padding-block: clamp(40px, 6.5vw, 94px);
    border-bottom: 1px solid #dbe4f0;
}

.xa-hero .xa-wrap.e-con {
    align-items: stretch;
    gap: clamp(24px, 4vw, 60px);
}

.xa-hero-copy.e-con {
    justify-content: center;
    gap: 19px;
    min-width: 0;
}

.xa-hero-copy.e-con,
.xa-hero-art.e-con,
.xa-area.e-con {
    flex: 1 1 0;
}

.xa-hero-actions.e-con {
    gap: 10px;
}

.xa-hero-copy .xa-hero-title .elementor-heading-title {
    max-width: 14ch;
}

.xa-lead.elementor-widget,
.xa-section-copy.elementor-widget {
    max-width: 58ch;
    color: #48596c;
    font-size: clamp(1rem, .93rem + .32vw, 1.16rem);
}

:where(.xa-lead, .xa-section-copy, .xa-area-description) p {
    margin: 0;
}

.xa-hero-art.e-con {
    position: relative;
    isolation: isolate;
    min-height: clamp(310px, 35vw, 485px);
    overflow: hidden;
    justify-content: space-between;
    padding: clamp(24px, 4vw, 48px);
    border-radius: 24px;
    background:
        radial-gradient(ellipse at 78% 33%, #3976c9 0%, transparent 64%),
        linear-gradient(155deg, #294d7b, #172b45 80%);
}

.xa-hero-art::after {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background: repeating-radial-gradient(ellipse at 90% 32%, transparent 0 18px, #c6deff36 19px 20px, transparent 21px 35px);
    mask-image: linear-gradient(122deg, transparent 13%, #000 76%);
}

.xa-art-title .elementor-heading-title {
    max-width: 12ch;
}

.xa-areas.e-con,
.xa-courses.e-con,
.xa-close.e-con {
    padding-block: clamp(40px, 6vw, 80px);
}

.xa-areas-grid.e-con {
    align-items: stretch;
    gap: 16px;
    margin-top: 12px;
}

.xa-area.e-con {
    min-width: 0;
    gap: 12px;
    padding: clamp(18px, 3vw, 30px);
    border: 1px solid #dce5f0;
    border-radius: 16px;
    background: #f1f6fe;
}

.xa-area-description {
    color: #48596c;
}

.xa-close.e-con {
    border-top: 1px solid #dce5f0;
}

.adm-theme-body .xa-button .elementor-button {
    min-height: 44px;
    padding: 12px 18px;
    border-radius: 9px;
    background-color: var(--adm-action);
    color: #fff;
    font: 650 .95rem/1.35 system-ui, sans-serif;
}

.adm-theme-body .xa-button .elementor-button:hover {
    background-color: var(--adm-action-hover);
}

.adm-theme-body .xa-button-secondary .elementor-button {
    border: 1px solid #aebfd6;
    background-color: transparent;
    color: var(--adm-accent);
}

.adm-theme-body .xa-button-secondary .elementor-button:hover {
    background-color: #eaf2ff;
}

.xa-method.e-con {
    padding-block: clamp(42px, 6vw, 84px);
}

.xa-method-main.e-con,
.xa-method-choices.e-con {
    display: grid;
    padding: 0;
    grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
    gap: clamp(24px, 6vw, 76px);
}

.xa-method-intro.e-con,
.xa-method-steps.e-con,
.xa-method-step-copy.e-con,
.xa-method-choice.e-con {
    min-width: 0;
    padding: 0;
    gap: 9px;
}

.xa-method-intro .xa-method-text {
    max-width: 39ch;
}

.xa-method-steps.e-con {
    gap: 0;
    border-top: 1px solid #dce5f0;
}

.xa-method-step.e-con {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr);
    align-items: baseline;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid #dce5f0;
}

.xa-method-text p {
    margin: 0;
}

.xa-method-choices.e-con {
    grid-template-columns: minmax(0, 1fr) repeat(2, minmax(0, 1.3fr));
    gap: 16px clamp(20px, 4vw, 48px);
    padding-top: 22px;
    margin-top: clamp(20px, 4vw, 42px);
    border-top: 1px solid #dce5f0;
}

.adm-theme-body .xa-button-catalog .elementor-button,
.adm-theme-body .xa-button-catalog .elementor-button:hover {
    padding-inline: 0;
    color: var(--adm-accent);
    background: transparent;
    font-weight: 550;
}

.xa-button-catalog .elementor-button-text::after {
    content: '→';
    margin-inline-start: 9px;
}

.xa-button-catalog .elementor-button:hover .elementor-button-text {
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width: 767px) {
    .xa-hero-copy.e-con,
    .xa-hero-art.e-con,
    .xa-area.e-con {
        flex: 0 0 auto;
    }

    .xa-method-main.e-con,
    .xa-method-choices.e-con {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 580px) {
    .adm-header-inner nav {
        order: 1;
        flex-basis: 100%;
    }
}

.xa-hero-photo.e-con{flex:1 1 0;min-width:0;padding:0;overflow:hidden;border-radius:18px}.xa-hero-photo .elementor-widget-image,.xa-hero-photo .elementor-widget-container{height:100%;width:100%}.xa-hero-photo .xa-photo img{display:block;width:100%;height:100%;min-height:500px;max-height:640px;object-fit:cover;object-position:center}.xa-hero-photo .xa-photo{width:100%}@media(max-width:767px){.xa-hero-photo.e-con{flex:auto}.xa-hero-photo .xa-photo img{min-height:320px;max-height:440px}}

