/* Fondation Horizon Voyages — complete le pack Echelon, ne le recoupe pas. */

.horizon-banner{
    position:relative;z-index:110;margin:0;padding:10px 18px;text-align:center;
    color:var(--void);background:var(--champagne);font-size:13px;letter-spacing:.08em
}
.horizon-has-banner .echelon-header{top:40px}
.horizon-has-banner .echelon-hero__veil::after{inset:135px 4vw 50px}
.horizon-has-banner .echelon-hero__coordinates{top:165px}
.horizon-has-banner.echelon-system .echelon-system-header{top:40px}
.horizon-has-banner.echelon-system .echelon-route-strip{top:132px}
.horizon-has-banner.echelon-system main{padding-top:176px}

.horizon-credit{
    margin:8px 0 0;color:#8b969c;font-size:12px;letter-spacing:.04em
}

.horizon-demo{
    display:flex;flex-wrap:wrap;gap:16px;align-items:center
}
.echelon-button--ghost{
    color:var(--paper);background:transparent
}
.echelon-button--ghost:hover{color:var(--void);background:var(--paper)}

.horizon-has-banner .echelon-button:active,
.horizon-has-banner .echelon-system-primary:active,
.horizon-has-banner .echelon-nav-cta:active,
.horizon-has-banner .echelon-link:active{
    transform:translateY(1px);
    transition:transform .12s ease-out,background .12s ease-out,color .12s ease-out
}

.horizon-catalog,
.horizon-legal,
.horizon-stay{
    padding:48px clamp(24px,7vw,128px) 100px;color:var(--ink);background:var(--platinum)
}
.horizon-catalog__head,
.horizon-stay__head,
.horizon-legal header{
    max-width:820px;margin-bottom:42px
}
.horizon-catalog h1,
.horizon-stay h1,
.horizon-legal h1{
    margin:0;font-family:"Echelon Serif",Georgia,serif;font-size:clamp(48px,7vw,96px);
    font-weight:400;line-height:.88;letter-spacing:-.04em
}
.horizon-catalog__lead,
.horizon-stay__lead,
.horizon-legal p{
    color:#46565d;font-size:16px
}

.horizon-filter{
    display:grid;grid-template-columns:1.2fr .6fr auto auto;gap:18px;align-items:end;
    margin:0 0 36px;padding:28px;color:var(--paper);background:var(--void)
}
.horizon-filter label{
    display:block;margin-bottom:8px;color:#aeb9be;font-size:12px;font-weight:700;
    letter-spacing:.12em;text-transform:uppercase
}
.horizon-filter input{
    width:100%;min-height:52px;padding:11px 0;border:0;border-bottom:1px solid rgba(255,255,255,.35);
    border-radius:0;color:var(--paper);background:transparent
}
.horizon-filter button{min-height:52px}
.horizon-filter .echelon-button--metal{color:var(--void)}
.echelon-page button.echelon-button--metal{color:var(--void)}
.horizon-catalog .echelon-system-eyebrow,.horizon-stay__head .echelon-system-eyebrow,.horizon-stay__copy .echelon-system-eyebrow,.horizon-legal .echelon-system-eyebrow{color:#6e4b23}
.echelon-section-head .echelon-kicker,.echelon-fleet__intro .echelon-kicker,.echelon-transparency>div:first-child .echelon-kicker,.echelon-request__intro .echelon-kicker{color:#6e4b23}
.echelon-section-head>p,.echelon-service-grid article:not(.is-featured) p,.echelon-fleet__intro>p:last-child,.echelon-request__intro>p:last-child{color:#46565d}
.echelon-assurance span{color:#6e4b23}
.echelon-brief__form-wrap header>p:not(.echelon-system-eyebrow){color:#46565d}
.echelon-register{position:relative}
.echelon-register__visual{left:0;right:auto;width:39%;pointer-events:none;z-index:0}
.echelon-register__form-wrap{position:relative;z-index:2}
.echelon-register__form-wrap .echelon-auth__switch{color:#46565d}
.echelon-register__form-wrap .echelon-auth__switch a,.echelon-register__form-wrap .system-password button{color:#6e4b23;position:relative;z-index:3;min-height:46px;min-width:72px;padding:0 8px}
.echelon-portal .system-field label{color:#aeb9be}
.echelon-fleet h2 em,.echelon-request h2 em{color:#6e4b23}

.horizon-catalog__grid{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,3.6vw,40px);background:transparent
}
.horizon-stay-card{
    display:grid;grid-template-rows:auto 1fr;min-width:0;color:var(--ink);background:var(--paper);
    box-shadow:0 16px 36px rgba(8,16,25,.08)
}
.horizon-stay-card.is-featured{color:var(--paper);background:var(--navy)}
.horizon-stay-card figure{margin:0;overflow:hidden}
.horizon-stay-card img{
    width:100%;height:260px;object-fit:cover;filter:saturate(.78) contrast(1.04)
}
.horizon-stay-card>div{display:flex;flex-direction:column;padding:28px 26px 32px}
.horizon-stay-card span{
    color:#725f46;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase
}
.horizon-stay-card.is-featured span{color:var(--champagne)}
.horizon-stay-card h2{
    margin:16px 0 10px;font-family:"Echelon Serif",Georgia,serif;font-size:clamp(28px,3vw,42px);font-weight:400
}
.horizon-stay-card p{margin:0 0 18px;color:#46565d}
.horizon-stay-card.is-featured p{color:#b5c0c5}
.horizon-stay-card dl{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px
}
.horizon-stay-card dt{color:#46565d;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.horizon-stay-card.is-featured dt{color:#8f9ca3}
.horizon-stay-card dd{margin:4px 0 0;font-family:"Echelon Serif",Georgia,serif}
.horizon-stay-card a{
    margin-top:auto;width:max-content;font-size:12px;font-weight:700;
    letter-spacing:.1em;text-transform:uppercase;text-underline-offset:5px
}

.horizon-stay__layout{
    display:grid;grid-template-columns:1.15fr .85fr;gap:1px;background:rgba(24,33,42,.18)
}
.horizon-stay__visual,
.horizon-stay__copy,
.horizon-stay__book{
    min-width:0;background:var(--paper)
}
.horizon-stay__visual figure{margin:0}
.horizon-stay__visual img{width:100%;height:100%;min-height:420px;object-fit:cover}
.horizon-stay__copy,
.horizon-stay__book{padding:clamp(28px,4vw,56px)}
.horizon-stay__book{color:var(--paper);background:var(--void)}
.horizon-stay__book .system-field label{color:#aeb9be}
.horizon-stay__book .system-field input,
.horizon-stay__book .system-field select{color:var(--paper);border-color:rgba(255,255,255,.35)}
.horizon-stay__note{
    margin:18px 0 0;color:#c8a879;font-size:14px
}

.horizon-catalog [data-horizon-empty]{
    min-height:auto;margin:0 0 24px;padding:28px;text-align:center;
    color:var(--ink);background:var(--paper)
}
.horizon-catalog [data-horizon-empty] h2{
    margin:0 0 12px;font-family:"Echelon Serif",Georgia,serif;font-size:28px;font-weight:400
}
.horizon-catalog [data-horizon-empty] p{font-size:16px;color:#46565d}
.horizon-catalog [data-horizon-empty] .echelon-system-primary{margin-top:8px}

.echelon-system-header nav form,
.echelon-header nav form{display:inline-flex;margin:0}
.echelon-system-header nav form button,
.echelon-header nav form button{
    min-height:46px;padding:0;border:0;color:#b8c2c7;background:transparent;
    font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer
}
.echelon-header nav form button{color:#d6dbdd}
.echelon-system-header nav form button:hover,
.echelon-header nav form button:hover{color:var(--champagne)}
.echelon-system-header nav form button:active,
.echelon-header nav form button:active{transform:translateY(1px)}

.horizon-message-body{max-width:40rem}
.horizon-message-body p{margin:0 0 8px;color:#c6d0d4;font-size:14px;white-space:normal}
.horizon-empty{
    min-height:70vh;display:grid;place-content:center;gap:18px;
    padding:90px 24px;text-align:center;color:var(--paper);background:var(--void)
}
.horizon-empty h1{
    margin:0;font-family:"Echelon Serif",Georgia,serif;font-size:clamp(42px,8vw,88px);font-weight:400;line-height:.9
}
.horizon-empty p{margin:0 auto;max-width:520px;color:#aeb9be}
.horizon-empty__list{
    display:grid;gap:12px;margin:28px auto 0;padding:0;max-width:560px;list-style:none;text-align:left
}
.horizon-empty__list li{
    padding:16px 18px;border:1px solid rgba(255,255,255,.14);color:#d6dbdd
}

.horizon-legal article{
    max-width:720px;padding:36px;background:var(--paper)
}
.horizon-legal h2{
    margin:28px 0 10px;font-family:"Echelon Serif",Georgia,serif;font-size:28px;font-weight:400
}

.horizon-auth-demo{
    margin:28px 0 0;padding:22px;border:1px solid rgba(255,255,255,.16);background:rgba(8,16,25,.55)
}
.horizon-auth-demo h2{
    margin:0 0 12px;font-family:"Echelon Serif",Georgia,serif;font-size:28px;font-weight:400
}

.horizon-status{
    display:inline-block;padding:4px 8px;border:1px solid var(--champagne);
    color:var(--champagne);letter-spacing:.1em;text-transform:uppercase;font-size:12px
}

.echelon-system--admin,.echelon-admin{overflow-x:visible}
@media (max-width:760px){.echelon-admin :where(h1,h2,h3,p,a,td,th,small){overflow-wrap:break-word}}

@media (hover:hover) and (pointer:fine){
    .horizon-stay-card img{transition:transform .25s ease-out,opacity .25s ease-out}
    .horizon-stay-card:hover img{transform:scale(1.03)}
}

@media (max-width:820px){
    .horizon-has-banner .echelon-header{top:40px}
    .horizon-has-banner .echelon-header nav{top:122px}
    .horizon-filter{grid-template-columns:1fr}
    .horizon-catalog__grid,
    .horizon-stay__layout,
    .horizon-stay-card dl{grid-template-columns:1fr}
    .horizon-catalog,
    .horizon-legal,
    .horizon-stay{padding-right:20px;padding-left:20px}
}

@media (max-width:820px){
    .echelon-header nav form button,
    .echelon-system-header nav form button{
        width:100%;justify-content:flex-start;border-bottom:1px solid rgba(255,255,255,.12)
    }
}

@media (max-width:390px){
    .horizon-banner{padding:10px 12px;font-size:12px}
    .horizon-catalog h1,
    .horizon-stay h1,
    .horizon-legal h1,
    .horizon-empty h1{font-size:42px}
    .horizon-stay-card h2{font-size:26px}
    .horizon-demo,
    .echelon-actions{flex-direction:column;align-items:stretch}
    .horizon-demo .echelon-button,
    .echelon-actions .echelon-button{width:100%;white-space:normal;text-align:center}
    .horizon-stay-card>div,
    .horizon-stay__copy,
    .horizon-stay__book,
    .horizon-filter{padding:20px}
}

@media (prefers-reduced-motion:reduce){
    .horizon-stay-card img,
    .horizon-has-banner .echelon-button,
    .horizon-has-banner .echelon-system-primary{
        transition:none
    }
}

@media (max-width:900px){
    .horizon-has-banner.echelon-system main{padding-top:132px}
}
