/* Dettaglio insegnante: selettori isolati per non sovrascrivere header e footer. */
.teacher-detail-page { background: #f7f2e9; }
.teacher-detail-page .site-header:not(.is-sticky) { color: #fff; }

.teacher-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 7vw, 108px) 0 clamp(75px, 8vw, 120px);
  color: #fff;
  background:
    radial-gradient(circle at 82% 24%, rgba(201,130,42,.28), transparent 25rem),
    linear-gradient(125deg, #17100c 0%, #2c1a11 62%, #4a2b17 100%);
}
.teacher-hero::after { content: ""; position: absolute; inset: 0; opacity: .17; pointer-events: none; background-image: repeating-linear-gradient(135deg, transparent 0 18px, rgba(255,255,255,.06) 18px 19px); }
.teacher-hero__inner { position: relative; z-index: 1; }
.teacher-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 35px; color: rgba(255,255,255,.68); font-size: 1rem; }
.teacher-breadcrumbs a { color: inherit; }
.teacher-breadcrumbs a:hover { color: #f2aa42; }
.teacher-breadcrumbs strong { color: #fff; }
.teacher-hero__grid { display: grid; grid-template-columns: minmax(330px, 490px) minmax(0, 1fr); gap: clamp(45px, 7vw, 105px); align-items: center; }

.teacher-portrait { position: relative; max-width: 490px; }
.teacher-portrait__frame { position: relative; overflow: hidden; aspect-ratio: 5 / 6; border: 8px solid rgba(255,255,255,.12); border-radius: 30px; background: #352116; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.teacher-portrait__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,12,8,.26), transparent 48%); }
.teacher-portrait__frame img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.teacher-portrait__badge { position: absolute; right: -20px; bottom: 35px; display: inline-flex; align-items: center; gap: 9px; padding: 12px 17px; border: 4px solid #24160f; border-radius: 999px; color: #27170f; background: #f0ad49; font: 900 1rem var(--heading); letter-spacing: .04em; text-transform: uppercase; transform: rotate(-3deg); }
.teacher-portrait__badge svg { width: 20px; height: 20px; fill: currentColor; stroke: currentColor; }

.teacher-hero h1 { max-width: 900px; margin: 9px 0 12px; font-family: var(--heading); font-size: clamp(3.7rem, 7vw, 7.1rem); line-height: .84; letter-spacing: -.045em; text-transform: uppercase; }
.teacher-hero__role { margin: 0 0 18px; color: #f1aa43; font-family: "Roboto Slab", Georgia, serif; font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 700; }
.teacher-hero__intro { max-width: 770px; margin: 0; color: rgba(255,255,255,.75); font-size: 1.06rem; line-height: 1.72; }
.teacher-hero__facts { display: flex; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 29px 0 26px; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.teacher-hero__facts div { padding: 17px 18px 17px 0; }
.teacher-hero__facts div + div { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.14); }
.teacher-hero__facts small { display: block; color: rgba(255,255,255,.55); font-size: .82rem; font-weight: 700; text-transform: uppercase; }
.teacher-hero__facts strong { display: block; margin-top: 2px; font-family: var(--heading); font-size: 1.25rem; line-height: 1.1; text-transform: uppercase; }
.teacher-hero__actions { display: flex; flex-wrap: wrap; gap: 11px; }
.teacher-hero__actions .button { display: inline-flex; align-items: center; gap: 9px; }
.teacher-hero__actions svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.teacher-hero__actions .button--primary svg { fill: currentColor; stroke: none; }

.teacher-profile__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(350px, .65fr); gap: clamp(45px, 7vw, 105px); align-items: start; }
.teacher-profile__lead { color: #38261a; font-size: clamp(1.15rem, 1.7vw, 1.35rem); font-weight: 600; line-height: 1.65; }
.teacher-profile__content > p:last-of-type { color: #715e51; font-size: 1.03rem; line-height: 1.75; }
.teacher-profile blockquote { position: relative; margin: 32px 0 0; padding: 27px 30px 27px 77px; border: 1px solid rgba(81,51,29,.13); border-radius: 21px; background: #fff; }
.teacher-profile blockquote > svg { position: absolute; top: 28px; left: 27px; width: 30px; height: 30px; color: #b14e2d; fill: currentColor; stroke: currentColor; }
.teacher-profile blockquote p { margin: 0; color: #3c281a; font-family: "Roboto Slab", Georgia, serif; font-size: 1.16rem; line-height: 1.6; }
.teacher-profile blockquote cite { display: block; margin-top: 10px; color: #a74528; font: 800 1rem var(--heading); text-transform: uppercase; }

.teacher-contact-card { position: sticky; top: 118px; padding: 30px; border-radius: 25px; color: #fff; background: #21150f; box-shadow: 0 25px 65px rgba(45,27,16,.2); }
.teacher-contact-card .eyebrow { color: #f0aa44; }
.teacher-contact-card h2 { margin: 7px 0 8px; font-family: var(--heading); font-size: clamp(2.3rem, 4vw, 3.5rem); line-height: .92; letter-spacing: -.035em; text-transform: uppercase; }
.teacher-contact-card > p:not(.eyebrow) { margin: 0 0 21px; color: rgba(255,255,255,.65); font-size: .98rem; line-height: 1.55; }
.teacher-contact-card__item { display: grid; grid-template-columns: 46px 1fr; gap: 13px; align-items: center; padding: 15px 0; border-top: 1px solid rgba(255,255,255,.11); }
.teacher-contact-card__item > span { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 14px; color: #21150f; background: #f0aa44; }
.teacher-contact-card__item svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.teacher-contact-card__item small { display: block; color: rgba(255,255,255,.5); font-size: .8rem; font-weight: 700; text-transform: uppercase; }
.teacher-contact-card__item a { display: block; overflow-wrap: anywhere; color: #fff; font-size: 1rem; font-weight: 700; }
.teacher-copy-email { margin-top: 18px; padding: 0; border: 0; color: #f0aa44; background: none; font: 800 1rem var(--heading); text-decoration: underline; text-underline-offset: 3px; }
.teacher-copy-status { margin-left: 8px; color: #78c98b; font-size: .88rem; font-weight: 700; }

.teacher-method { color: #fff; background: #1d130e; }
.teacher-section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 520px); gap: 42px; align-items: end; margin-bottom: 37px; }
.teacher-section-heading .section-title { margin-bottom: 0; }
.teacher-section-heading > p { margin: 0 0 7px; color: #705e51; font-size: 1.04rem; line-height: 1.68; }
.teacher-method .teacher-section-heading > p { color: rgba(255,255,255,.66); }
.teacher-method .section-title { color: #fff; }
.teacher-method .eyebrow { color: #f0aa44; }
.teacher-specialties { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.teacher-specialty { min-height: 190px; padding: 23px; border: 1px solid rgba(255,255,255,.12); border-radius: 20px; background: rgba(255,255,255,.055); }
.teacher-specialty span { color: #f0aa44; font: 800 1rem var(--heading); }
.teacher-specialty h3 { margin: 50px 0 0; font-family: var(--heading); font-size: 1.65rem; line-height: 1; text-transform: uppercase; }

.teacher-courses { background: #fff; }
.teacher-courses__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 19px; }
.teacher-course-card { position: relative; display: flex; min-height: 100%; flex-direction: column; overflow: hidden; padding: 25px; border: 1px solid rgba(63,40,24,.12); border-radius: 23px; background: #fbf7f0; box-shadow: 0 15px 42px rgba(51,31,18,.07); }
.teacher-course-card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: #b84f2d; }
.teacher-course-card--intermedi::before { background: #34786d; }
.teacher-course-card--avanzati::before { background: #372b61; }
.teacher-course-card__top { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.teacher-course-card__top > span { color: #a84427; font: 800 1rem var(--heading); letter-spacing: .04em; text-transform: uppercase; }
.teacher-course-card__top small { display: inline-flex; align-items: center; gap: 7px; color: #357247; font-size: .86rem; font-weight: 800; }
.teacher-course-card__top i { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 50%; background: #42a35d; box-shadow: 0 0 0 4px rgba(66,163,93,.13); }
.teacher-course-card h3 { margin: 16px 0 21px; color: #25180f; font-family: var(--heading); font-size: clamp(1.7rem, 2.3vw, 2.15rem); line-height: .98; letter-spacing: -.025em; text-transform: uppercase; }
.teacher-course-card dl { margin: 0 0 22px; }
.teacher-course-card dl div { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-top: 1px solid rgba(62,40,25,.11); }
.teacher-course-card dt { display: flex; align-items: center; gap: 7px; color: #816e60; font-size: .94rem; }
.teacher-course-card dt svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.teacher-course-card dd { margin: 0; color: #302219; font-size: .95rem; font-weight: 800; text-align: right; }
.teacher-course-card .button { display: flex; width: 100%; justify-content: center; align-items: center; gap: 8px; margin-top: auto; }
.teacher-course-card .button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.teacher-schools { background: #f7f2e9; }
.teacher-schools__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(400px, 1.22fr); gap: clamp(45px, 8vw, 120px); align-items: center; }
.teacher-schools__intro > p:last-child { color: #725f52; font-size: 1.03rem; line-height: 1.7; }
.teacher-school-card { display: grid; grid-template-columns: 58px 1fr 22px; gap: 17px; align-items: center; padding: 23px; border: 1px solid rgba(61,39,24,.12); border-radius: 22px; color: #291b12; background: #fff; box-shadow: 0 17px 45px rgba(51,31,18,.08); transition: transform .2s, box-shadow .2s; }
.teacher-school-card:hover { transform: translateY(-4px); box-shadow: 0 24px 55px rgba(51,31,18,.13); }
.teacher-school-card > span { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 17px; color: #fff; background: #a8492b; }
.teacher-school-card svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.teacher-school-card small { color: #8a7566; font-size: .82rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.teacher-school-card h3 { margin: 1px 0 2px; font-family: var(--heading); font-size: 1.65rem; line-height: 1; text-transform: uppercase; }
.teacher-school-card p { margin: 0; color: #766256; font-size: .96rem; }

.teacher-final-cta { padding: clamp(60px, 7vw, 92px) 0; color: #fff; background: #1b120d; }
.teacher-final-cta__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 45px; align-items: center; }
.teacher-final-cta h2 { max-width: 900px; margin: 6px 0 8px; font-family: var(--heading); font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: .92; letter-spacing: -.035em; text-transform: uppercase; }
.teacher-final-cta p { margin: 0; color: rgba(255,255,255,.68); font-size: 1.04rem; }
.teacher-final-cta .eyebrow { color: #f0aa44; }

@media (max-width: 1080px) {
  .teacher-hero__grid { grid-template-columns: minmax(300px, 410px) 1fr; gap: 45px; }
  .teacher-specialties { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-courses__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .teacher-detail-page .site-header:not(.is-sticky) { color: inherit; }
  .teacher-hero__grid, .teacher-profile__grid, .teacher-schools__grid { grid-template-columns: 1fr; }
  .teacher-portrait { max-width: 520px; }
  .teacher-contact-card { position: relative; top: auto; }
  .teacher-section-heading { grid-template-columns: 1fr; gap: 18px; }
  .teacher-final-cta__inner { grid-template-columns: 1fr; gap: 28px; }
}

@media (max-width: 640px) {
  .teacher-hero { padding: 52px 0 68px; }
  .teacher-breadcrumbs { margin-bottom: 25px; }
  .teacher-hero h1 { font-size: clamp(3.2rem, 16vw, 5rem); }
  .teacher-portrait__frame { border-width: 5px; border-radius: 23px; }
  .teacher-portrait__badge { right: 10px; bottom: 16px; }
  .teacher-hero__facts { display: grid; grid-template-columns: 1fr; }
  .teacher-hero__facts div, .teacher-hero__facts div + div { padding: 12px 0; border-left: 0; }
  .teacher-hero__facts div + div { border-top: 1px solid rgba(255,255,255,.12); }
  .teacher-hero__actions { display: grid; grid-template-columns: 1fr; }
  .teacher-hero__actions .button { width: 100%; justify-content: center; }
  .teacher-profile blockquote { padding: 72px 22px 22px; }
  .teacher-profile blockquote > svg { top: 24px; left: 22px; }
  .teacher-contact-card { padding: 23px; }
  .teacher-specialties, .teacher-courses__grid { grid-template-columns: 1fr; }
  .teacher-specialty { min-height: 150px; }
  .teacher-specialty h3 { margin-top: 32px; }
  .teacher-course-card { padding: 21px; }
  .teacher-course-card__top { align-items: flex-start; }
  .teacher-course-card__top small { text-align: right; }
  .teacher-school-card { grid-template-columns: 48px 1fr 18px; padding: 18px; }
  .teacher-school-card > span { width: 48px; height: 48px; }
  .teacher-final-cta .button { width: 100%; text-align: center; }
}
