/* Campiglio's home only. Shared search, header and booking styles stay intact. */
html[data-home="campiglio"] { scroll-behavior: smooth; scroll-padding-top: 110px; }
.ct-home { --ct-ink: #152a4f; --ct-muted: #53616c; --ct-paper: #f4f5f2; --ct-line: #dce1df; color: var(--ct-ink); background: #fff; isolation: isolate; }
.ct-home .ct-wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.ct-home .ct-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .16em; line-height: 1.6; margin-bottom: 16px; }
.ct-home .ct-hero { position: relative; padding-top: 64px; }
.ct-home .ct-hero::before { content: ''; position: absolute; inset: 0 0 85px; background: linear-gradient(90deg, rgba(10,30,52,.83), rgba(10,30,52,.28) 65%, rgba(10,30,52,.08)); z-index: -1; }
.ct-home .ct-hero-photo { position: absolute; width: 100%; height: calc(100% - 85px); inset: 0; object-fit: cover; object-position: center 42%; z-index: -2; }
.ct-home .ct-hero-copy { color: #fff; padding-block: 18px 62px; }
.ct-home .ct-hero h1 { color: #fff; font-size: clamp(38px, 4.5vw, 64px); line-height: 1.12; font-weight: 600; letter-spacing: -.045em; margin: 0 0 24px; max-width: 780px; }
.ct-home .ct-hero h1 span { color: #dbe9ef; }
.ct-home .ct-hero-copy > p:not(.ct-eyebrow) { max-width: 510px; font-size: 16px; line-height: 1.8; color: #f0f4f7; margin-bottom: 24px; }
.ct-home .ct-text-link { color: inherit; font-size: 13px; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 16px; padding-block: 8px; }
.ct-home .ct-text-link:hover { text-decoration: underline; }
.ct-home .ct-search { position: relative; background: #fff; border-radius: 16px; box-shadow: 0 12px 45px rgba(21,42,79,.12); padding: 25px 28px 28px; }
.ct-home .ct-search-title { font-size: 14px; font-weight: 600; margin: 0 0 15px; }
.ct-home .ct-search .search-box { margin: 0; padding: 0; border: 0; box-shadow: none; position: static; }
.ct-home .ct-trust { display: flex; gap: 32px; justify-content: center; padding-block: 30px; font-size: 12px; color: var(--ct-muted); border-bottom: 1px solid var(--ct-line); }
.ct-home .ct-trust span { display: flex; align-items: center; gap: 8px; }
.ct-home .ct-trust i { font-size: 16px; color: var(--ct-ink); }
.ct-home .ct-section { padding-block: 80px; }
.ct-home .ct-section--paper { background: var(--ct-paper); }
.ct-home .ct-section-heading { max-width: 680px; margin-bottom: 38px; }
.ct-home .ct-section-heading h2, .ct-home .ct-consult h2 { font-size: clamp(28px, 3vw, 40px); font-weight: 600; line-height: 1.2; letter-spacing: -.035em; margin-bottom: 20px; }
.ct-home .ct-section-heading > p:not(.ct-eyebrow) { font-size: 14px; line-height: 1.85; color: var(--ct-muted); max-width: 590px; }
.ct-home .ct-towns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ct-home .ct-town { display: block; padding: 35px; color: var(--ct-ink); text-decoration: none; border: 1px solid var(--ct-line); border-radius: 12px; background: #fff; position: relative; transition: border-color .2s, box-shadow .2s; }
.ct-home .ct-town:hover { color: var(--ct-ink); border-color: #84959e; box-shadow: 0 8px 28px rgba(21,42,79,.07); }
.ct-home .ct-town-number { display: block; font-size: 40px; line-height: 1; font-weight: 500; color: #718491; margin-bottom: 38px; }
.ct-home .ct-town .ct-eyebrow { display: block; color: var(--ct-muted); }
.ct-home .ct-town h3 { font-size: 27px; font-weight: 600; letter-spacing: -.03em; margin-bottom: 16px; }
.ct-home .ct-town p { font-size: 14px; color: var(--ct-muted); line-height: 1.85; min-height: 78px; }
.ct-home .ct-town-link { border-top: 1px solid var(--ct-line); padding-top: 24px; margin-top: 24px; display: flex; justify-content: space-between; font-weight: 600; font-size: 13px; }
.ct-home .ct-seasons, .ct-home .ct-faq-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; }
.ct-home .ct-seasons .ct-section-heading, .ct-home .ct-faq-layout .ct-section-heading { margin: 0; }
.ct-home .ct-season-list article { display: flex; gap: 22px; padding-bottom: 28px; }
.ct-home .ct-season-list article + article { padding-top: 28px; border-top: 1px solid var(--ct-line); }
.ct-home .ct-season-icon { font-size: 30px; flex-shrink: 0; line-height: 1; }
.ct-home .ct-season-list h3 { font-size: 20px; font-weight: 600; margin-bottom: 12px; }
.ct-home .ct-season-list p, .ct-home .ct-faq p { font-size: 14px; line-height: 1.85; color: var(--ct-muted); margin: 0; }
.ct-home .ct-faq details { border-bottom: 1px solid var(--ct-line); padding-block: 20px; }
.ct-home .ct-faq details:first-child { padding-top: 0; }
.ct-home .ct-faq summary { font-size: 15px; font-weight: 600; cursor: pointer; line-height: 1.6; }
.ct-home .ct-faq p { margin-top: 14px; }
.ct-home .ct-consult { background: var(--ct-ink); color: #fff; padding-block: 64px; }
.ct-home .ct-consult h2 { color: #fff; }
.ct-home .ct-consult-inner { display: grid; grid-template-columns: 1.15fr 1fr; gap: 50px; align-items: center; }
.ct-home .ct-consult p:not(.ct-eyebrow) { max-width: 510px; font-size: 14px; line-height: 1.85; color: #dce4ef; margin: 0; }
.ct-home .ct-consult-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; justify-self: end; }
.ct-home .ct-button { display: inline-flex; align-items: center; gap: 20px; background: #f5a623; color: #152a4f; padding: 18px 24px; border-radius: 8px; font-size: 14px; font-weight: 700; text-decoration: none; }
.ct-home .ct-button:hover { background: #ffc05b; color: #152a4f; }
.ct-home .ct-credits { font-size: 10px; color: #66717a; padding-block: 20px; margin: 0; line-height: 1.8; }
.ct-home .ct-credits a { color: inherit; }
.ct-home .ct-offers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ct-home .ct-offers .hoe-recent-card { width: auto; min-width: 0; }
.ct-home a:focus-visible, .ct-home summary:focus-visible { outline: 3px solid #f5a623; outline-offset: 5px; }
@media (max-width: 991px) {
    .ct-home .ct-seasons, .ct-home .ct-faq-layout { gap: 35px; }
    .ct-home .ct-hero { padding-top: 30px; }
    .ct-home .ct-hero-copy { padding-bottom: 40px; }
    .ct-home .ct-consult-inner { grid-template-columns: 1fr; gap: 28px; }
    .ct-home .ct-consult-actions { justify-self: start; }
}
@media (max-width: 767px) {
    .ct-home .ct-wrap { width: calc(100% - 32px); }
    .ct-home .ct-hero h1 { font-size: clamp(34px, 8vw, 48px); }
    .ct-home .ct-hero-copy > p:not(.ct-eyebrow) { font-size: 14px; }
    .ct-home .ct-hero::before { background: rgba(10,30,52,.65); }
    .ct-home .ct-search { padding: 20px 16px; }
    .ct-home .ct-trust { gap: 10px; justify-content: space-between; font-size: 10px; }
    .ct-home .ct-trust span { flex-direction: column; text-align: center; }
    .ct-home .ct-section { padding-block: 48px; }
    .ct-home .ct-towns, .ct-home .ct-seasons, .ct-home .ct-faq-layout, .ct-home .ct-offers { grid-template-columns: 1fr; gap: 20px; }
    .ct-home .ct-town { padding: 28px; }
    .ct-home .ct-town p { min-height: 0; }
    .ct-home .ct-town-number { margin-bottom: 24px; }
    .ct-home .ct-season-list, .ct-home .ct-faq { margin-top: 18px; }
    .ct-home .ct-consult { padding-block: 48px; }
    .ct-home .ct-button { font-size: 12px; padding-inline: 18px; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
    html[data-home="campiglio"] { scroll-behavior: auto; }
    .ct-home .ct-town { transition: none; }
}
