/* CSS AGGIUNTIVO PER LE QUATTRO PAGINE SKI NOW ASSERGI
   Incolla in fondo a custom.css. Cambia i percorsi delle immagini e i contatti demo.
*/
:root {
  --sn-ink: #18252d;
  --sn-muted: #64727a;
  --sn-paper: #f5f5f1;
  --sn-white: #fff;
  --sn-accent: #18cefd;
  --sn-accent-dark: #18cefd;
  --sn-line: rgba(24, 37, 45, .13);
  --sn-radius: 5px;
  --sn-content: 1180px;
}
.sn-page { color: var(--sn-ink); overflow: clip; }
.sn-page * { box-sizing: border-box; }
.sn-page img { display: block; max-width: 100%; }
.sn-page a { color: inherit; }
.sn-eyebrow { display: inline-block; margin-bottom: 14px; color: var(--sn-accent-dark); font-size: .75rem; font-weight: 800; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.sn-page h1, .sn-page h2, .sn-page h3, .sn-page p { margin-top: 0; }
.sn-page h1, .sn-page h2 { font-weight: 700; letter-spacing: -.045em; line-height: 1.06; }
.sn-page h1 { margin-bottom: 20px; font-size: clamp(2.8rem, 6.5vw, 5.7rem); }
.sn-page h2 { margin-bottom: 18px; font-size: clamp(2rem, 4.2vw, 3.5rem); }
.sn-page h1 em, .sn-page h2 em { color: var(--sn-accent); font-style: normal; }
.sn-page p { color: var(--sn-muted); line-height: 1.8; }
.sn-button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; gap: 10px; padding: 13px 21px; border: 1px solid transparent; border-radius: 2px; font: inherit; font-size: .83rem; font-weight: 800; text-align: center; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; cursor: pointer; }
.sn-button:hover { transform: translateY(-2px); }
.sn-button--primary { background: var(--sn-accent); color: #fff !important; }
.sn-button--primary:hover { background: var(--sn-accent-dark); }
.sn-button--light { background: #fff; color: var(--sn-ink) !important; }
.sn-button--outline { border-color: var(--sn-line); background: transparent; color: var(--sn-ink) !important; }
.sn-button--outline:hover { border-color: var(--sn-accent); }
.sn-button--full { width: 100%; }
.sn-page-hero { position: relative; display: flex; min-height: 560px; align-items: center; padding: 90px max(7%, calc((100% - var(--sn-content))/2)); isolation: isolate; background-color: #283b47; background-position: center; background-size: cover; }
.sn-page-hero::before { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(9, 21, 29, .78) 0%, rgba(9, 21, 29, .46) 53%, rgba(9, 21, 29, .12) 100%); content: ""; }
.sn-page-hero--club { background-image: url("images/hero-ski-club.jpg"); }
.sn-page-hero--juniors { background-image: url("images/hero-juniors.jpg"); }
.sn-page-hero--private { background-image: url("images/hero-lezioni-private.jpg"); }
.sn-page-hero__content { width: min(650px, 100%); color: #fff; }
.sn-page-hero__content h1 { color: #fff; }
.sn-page-hero__content p { max-width: 570px; margin-bottom: 28px; color: rgba(255,255,255,.87); font-size: 1.04rem; }
.sn-section { width: min(var(--sn-content), calc(100% - 48px)); margin-inline: auto; padding-block: 86px; }
.sn-section-heading { max-width: 760px; margin: 0 auto 40px; text-align: center; }
.sn-section-heading p { max-width: 680px; margin: 0 auto; }
.sn-section-heading--row { display: flex; max-width: none; align-items: end; justify-content: space-between; gap: 35px; text-align: left; }
.sn-section-heading--row p { max-width: 420px; margin: 0 0 20px; }
.sn-club-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; padding-top: 0; }
.sn-club-card { min-width: 0; overflow: hidden; border: 1px solid var(--sn-line); background: #fff; transition: transform .25s ease, box-shadow .25s ease; }
.sn-club-card:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(19,35,45,.09); }
.sn-club-card__image { display: block; height: 265px; overflow: hidden; background: #dce2e3; }
.sn-club-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.sn-club-card:hover .sn-club-card__image img { transform: scale(1.035); }
.sn-club-card__body { padding: 27px 29px 30px; }
.sn-card-kicker { color: var(--sn-accent-dark); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sn-club-card h3 { margin: 9px 0 10px; font-size: 1.65rem; letter-spacing: -.035em; }
.sn-club-card p { min-height: 54px; margin-bottom: 22px; font-size: .94rem; }
.sn-instructor { display: flex; align-items: center; gap: 12px; padding-block: 17px; border-top: 1px solid var(--sn-line); }
.sn-instructor img { width: 48px; height: 48px; flex: 0 0 auto; border-radius: 50%; object-fit: cover; background: #e3e6e4; }
.sn-instructor > span { display: grid; gap: 3px; }
.sn-instructor small { color: var(--sn-muted); font-size: .75rem; }
.sn-instructor strong { font-size: .94rem; }
.sn-text-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 9px; color: var(--sn-accent-dark) !important; font-size: .85rem; font-weight: 800; text-decoration: none; }
.sn-text-link span { transition: transform .2s ease; }
.sn-text-link:hover span { transform: translate(3px,-2px); }
.sn-cta-band { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 54px max(7%, calc((100% - var(--sn-content))/2)); background: #1d303b; }
.sn-cta-band h2 { margin-bottom: 12px; color: #fff; font-size: clamp(1.8rem, 3.4vw, 2.8rem); }
.sn-cta-band p { max-width: 600px; margin-bottom: 0; color: rgba(255,255,255,.72); }
.sn-cta-band > .sn-button { flex: 0 0 auto; }
.sn-course-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr); gap: clamp(35px, 6vw, 85px); align-items: start; }
.sn-course-main > p { margin-bottom: 18px; }
.sn-course-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; margin-top: 32px; border-top: 1px solid var(--sn-line); }
.sn-course-facts > div { display: flex; align-items: center; gap: 13px; padding: 19px 0; border-bottom: 1px solid var(--sn-line); }
.sn-fact-icon { display: grid; width: 40px; height: 40px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f1e8de; color: var(--sn-accent-dark); font-size: 1.2rem; }
.sn-course-facts div > span:last-child { display: grid; gap: 5px; }
.sn-course-facts small { color: var(--sn-muted); font-size: .76rem; }
.sn-course-facts strong { font-size: .9rem; line-height: 1.4; }
.sn-level-note { margin-top: 28px; padding: 24px; border-left: 3px solid var(--sn-accent); background: var(--sn-paper); }
.sn-level-note strong { display: block; margin-bottom: 8px; }
.sn-level-note p { margin: 0; font-size: .92rem; }
.sn-aside-card { position: sticky; top: 25px; padding: 28px; border: 1px solid var(--sn-line); background: #fff; box-shadow: 0 15px 45px rgba(19,35,45,.06); }
.sn-instructor--large { margin: 5px 0 15px; padding-block: 10px 20px; border-top: 0; }
.sn-instructor--large img { width: 64px; height: 64px; }
.sn-instructor--large strong { font-size: 1rem; }
.sn-aside-card hr { margin: 24px 0; border: 0; border-top: 1px solid var(--sn-line); }
.sn-aside-card .sn-button + .sn-button { margin-top: 10px; }
.sn-aside-small { margin: 15px 0 0; font-size: .77rem; }
.sn-gallery-section { padding-top: 30px; }
.sn-gallery-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; grid-template-rows: 190px 190px; gap: 14px; }
.sn-gallery-image { display: block; overflow: hidden; background: #e2e6e5; }
.sn-gallery-image--large { grid-row: span 2; }
.sn-gallery-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.sn-gallery-image:hover img { transform: scale(1.04); }
.sn-private-intro { padding-bottom: 40px; }
.sn-teacher-list { display: grid; gap: 14px;}
.sn-teacher-row { display: grid; grid-template-columns: 160px minmax(0,1fr) 40px; align-items: center; gap: 25px; padding: 16px; border: 1px solid var(--sn-line); background: #fff; text-decoration: none; transition: border-color .2s ease, transform .2s ease; }
.sn-teacher-row:hover { transform: translateY(-2px); border-color: var(--sn-accent); }
.sn-teacher-row > img { width: 160px; height: 160px; object-fit: cover; background: #e3e6e4; border-radius: 50%;}
.sn-teacher-row__copy { display: grid; gap: 6px; }
.sn-teacher-row__copy strong { font-size: 1.45rem; letter-spacing: -.03em; }
.sn-teacher-row__copy > span { color: var(--sn-accent-dark); font-size: .86rem; font-weight: 800; }
.sn-teacher-row__copy small { max-width: 600px; color: var(--sn-muted); font-size: .9rem; line-height: 1.6; }
.sn-teacher-row__arrow { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid var(--sn-line); border-radius: 50%; color: var(--sn-accent-dark); }
.sn-teacher-profile { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(35px, 7vw, 95px); }
.sn-teacher-profile__photo { min-height: 500px; background: #e1e5e4; }
.sn-teacher-profile__photo img { width: 100%; height: 100%; min-height: 500px; object-fit: cover; }
.sn-teacher-profile__content h1 { font-size: clamp(2.8rem, 5.5vw, 5rem); }
.sn-teacher-specialty { margin-bottom: 24px; color: var(--sn-accent-dark) !important; font-size: 1.05rem; font-weight: 700; }
.sn-teacher-contact { display: grid; gap: 12px; margin: 28px 0; }
.sn-teacher-contact a { display: flex; align-items: center; gap: 13px; text-decoration: none; }
.sn-teacher-contact a > span:first-child { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #f1e8de; color: var(--sn-accent-dark); }
.sn-teacher-contact a > span:last-child { display: grid; gap: 3px; }
.sn-teacher-contact small { color: var(--sn-muted); font-size: .76rem; }
.sn-teacher-contact strong { font-size: .92rem; overflow-wrap: anywhere; }
.sn-booking-section { padding-top: 20px; }
.sn-booking-card { max-width: 800px; margin: 0 auto; padding: clamp(22px, 5vw, 45px); border: 1px solid var(--sn-line); background: #fff; box-shadow: 0 18px 55px rgba(19,35,45,.07); }
.sn-booking-form label, .sn-time-fieldset legend { display: block; margin-bottom: 8px; color: var(--sn-ink); font-size: .85rem; font-weight: 800; }
.sn-booking-form input:not([type="hidden"]), .sn-booking-form textarea { width: 100%; min-height: 47px; padding: 12px 13px; border: 1px solid rgba(24,37,45,.2); border-radius: 2px; background: #fff; color: var(--sn-ink); font: inherit; font-size: .92rem; }
.sn-booking-form input:focus, .sn-booking-form textarea:focus { outline: 2px solid rgba(194,138,82,.35); border-color: var(--sn-accent); }
.sn-time-fieldset { min-width: 0; margin: 27px 0; padding: 0; border: 0; }
.sn-time-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sn-time-slot { min-height: 46px; border: 1px solid var(--sn-line); border-radius: 2px; background: #fff; color: var(--sn-ink); font: inherit; font-weight: 700; cursor: pointer; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.sn-time-slot:hover, .sn-time-slot.is-selected { border-color: var(--sn-accent); background: var(--sn-accent); color: #fff; }
.sn-booking-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.sn-booking-fields__wide { grid-column: 1 / -1; }
.sn-booking-summary { margin: 22px 0; padding: 14px 16px; background: var(--sn-paper); font-size: .9rem; }
.sn-booking-disclaimer { margin: 13px 0 0; font-size: .78rem; }
.sn-booking-feedback { margin: 14px 0 0; padding: 12px; border: 1px solid var(--sn-line); font-size: .9rem; }

.sn-teacher-profile {
    color: #fff;
}








@media (max-width: 760px) {
  .sn-page-hero { min-height: 570px; align-items: flex-end; padding: 90px 7% 72px; background-position: 58% center; }
  .sn-page-hero::before { background: linear-gradient(0deg, rgba(9,21,29,.86) 0%, rgba(9,21,29,.5) 58%, rgba(9,21,29,.12) 100%); }
  .sn-section { width: min(100% - 36px, var(--sn-content)); padding-block: 58px; }
  .sn-club-grid { grid-template-columns: 1fr; gap: 18px; }
  .sn-club-card__image { height: 230px; }
  .sn-club-card__body { padding: 23px; }
  .sn-club-card p { min-height: 0; }
  .sn-cta-band { align-items: flex-start; flex-direction: column; padding: 42px 7%; }
  .sn-course-layout { grid-template-columns: 1fr; gap: 30px; }
  .sn-aside-card { position: static; }
  .sn-section-heading--row { display: block; }
  .sn-section-heading--row p { margin-top: 15px; }
  .sn-gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-template-rows: 180px 140px; }
  .sn-gallery-image--large { grid-row: span 2; }
  .sn-teacher-row { grid-template-columns: 105px minmax(0,1fr) 28px; gap: 14px; padding: 11px; }
  .sn-teacher-row > img { width: 105px; height: 112px; }
  .sn-teacher-row__copy strong { font-size: 1.08rem; }
  .sn-teacher-row__copy > span { font-size: .78rem; line-height: 1.4; }
  .sn-teacher-row__copy small { display: none; }
  .sn-teacher-row__arrow { width: 28px; height: 28px; }
  .sn-teacher-profile { grid-template-columns: 1fr; gap: 28px; }
  .sn-teacher-profile__photo, .sn-teacher-profile__photo img { min-height: 0; max-height: 520px; border-radius: 50%;}
  .sn-teacher-profile__photo img { aspect-ratio: 1 / 1; border-radius: 50%;}
  .sn-booking-fields { grid-template-columns: 1fr; }
  .sn-booking-fields__wide { grid-column: auto; }
  .sn-time-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 420px) {
  .sn-page-hero { min-height: 530px; }
  .sn-club-card__image { height: 205px; }
  .sn-course-facts { grid-template-columns: 1fr; }
  .sn-gallery-grid { grid-template-rows: 145px 125px; gap: 8px; }
  .sn-teacher-row { grid-template-columns: 84px minmax(0,1fr) 24px; gap: 10px; }
  .sn-teacher-row > img { width: 84px; height: 84px; }
  .sn-teacher-row__copy strong { font-size: 1rem; }
  .sn-time-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
