/* Shared guest journey: calm surfaces, clear hierarchy and usable controls. */
.guest-experience{--hv-accent:#c91549;--hv-border:#e8e2e5;--hv-text:#242127;--hv-muted:#625b62;line-height:1.6}
.guest-experience :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #b91545;outline-offset:4px}
.guest-experience .skip-content{position:fixed;left:16px;top:-100px;z-index:1000;background:#fff;color:#a5123d;padding:12px 20px;border:2px solid currentColor;border-radius:10px}
.guest-experience .skip-content:focus{top:12px}
.guest-experience :is(h1,h2,h3){text-wrap:balance}
.guest-experience :is(.btn.primary,.reserve,button.primary,a.primary){background:#c91549;color:#fff;box-shadow:none}
.guest-experience :is(.btn.primary,.reserve,button.primary,a.primary):hover{background:#a50e38}
.guest-experience button.primary:disabled{background:#767076;cursor:not-allowed}
.guest-experience .links{font-size:14px;gap:18px}
.guest-experience .back{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#a5123d}
.guest-experience .section-head h2{font-family:inherit;font-size:clamp(28px,3.4vw,40px);font-weight:750;line-height:1.18}
.guest-experience .listings .card{border:1px solid var(--hv-border);box-shadow:none;border-radius:18px}
.guest-experience .listings .card:hover{box-shadow:0 12px 28px #2421270d}
.guest-experience .listings .card h3{font-size:20px;line-height:1.3;letter-spacing:-.025em}
.guest-experience .listings :is(.specs,.meta){font-size:14px;line-height:1.55}
.guest-experience .listings .specs{margin-bottom:20px;color:var(--hv-muted)}
.guest-experience .featured-card .photo img{transition:transform .25s ease}
.guest-experience .featured-card:hover .photo img{transform:scale(1.025)}
.guest-experience .featured-card h3 a::after{content:"";position:absolute;inset:0}
.guest-experience .featured-card{position:relative}
.guest-experience .featured-card:focus-within{outline:3px solid #b91545;outline-offset:4px}
.guest-experience .featured-card h3 a:focus-visible{outline:none}
.guest-experience .featured-card .heart{display:none}
.guest-experience .catalog-extra-filters{gap:10px;padding:16px 0}
.guest-experience .catalog-extra-filters label{border:1px solid var(--hv-border);border-radius:10px;padding:7px 12px;background:#fff}
.guest-experience .catalog-extra-filters label:has(input:checked){background:#fff1f5;border-color:#c91549;color:#a5123d}
.guest-experience .property-facts div{background:#faf9fa;border-color:var(--hv-border);border-radius:12px}
.guest-experience .property-facts dt{color:var(--hv-muted)}
.guest-experience .booking{box-shadow:0 10px 32px #2421270b;border-color:var(--hv-border);padding:26px}
.guest-experience .booking .field label{font-size:14px;letter-spacing:0;text-transform:none}
.guest-experience .booking .note{font-size:14px;color:var(--hv-muted)}
.guest-experience .booking .total{color:var(--hv-text)}
.guest-experience .booking :is(input,select){min-height:38px}
.guest-experience .heading{padding-top:28px}
.guest-experience .heading h1{font-size:clamp(28px,3.5vw,42px);letter-spacing:-.035em;line-height:1.2}
.guest-experience .gallery{border-radius:18px}
.guest-checkout main{padding-top:24px}
.guest-checkout .title{max-width:760px;margin:14px 0 26px}
.guest-checkout .title h1{font-size:clamp(28px,3.2vw,40px);line-height:1.2;letter-spacing:-.035em}
.guest-checkout .card{box-shadow:none;border-color:var(--hv-border);border-radius:18px}
.guest-checkout .field label{font-size:14px;font-weight:650}
.guest-checkout :is(.field input,.field select){min-height:48px;border-color:#b9afb5}
.guest-checkout :is(.privacy-layer,.legal-note,.payment-consent,.contract-summary ul,.payment-option small,.notice){font-size:14px;line-height:1.6}
.guest-checkout .steps{font-size:14px;gap:10px;flex-wrap:wrap}
.guest-checkout .steps b{color:#a5123d}
.guest-checkout .dates .date{background:#faf7f9;border:1px solid var(--hv-border)}
.guest-checkout .price-row.total{font-size:22px;line-height:1.4}
.home-page.guest-experience .hero>.wrap,.home-page.guest-experience .home-trust{width:min(1240px,calc(100% - 48px))}
.home-page.guest-experience .hero-grid{padding:28px 0 20px;gap:32px!important;grid-template-columns:1.15fr 1fr}
.home-page.guest-experience .hero-copy{padding:16px 20px 16px 0}
.home-page.guest-experience .hero h1{font-size:clamp(32px,3.8vw,50px)!important;line-height:1.14;margin:12px 0 16px}
.home-page.guest-experience .mosaic{height:240px;min-height:240px;margin:0}
.home-page.guest-experience .search-zone form{min-height:94px;border-color:var(--hv-border);box-shadow:0 10px 30px #2421270b}
.home-page.guest-experience .home-trust{margin-top:22px}
.home-page.guest-experience .home-trust>span{font-size:14px;font-weight:650;min-height:40px;gap:12px}
.home-page.guest-experience .home-trust svg{width:28px;height:28px}
.home-page.guest-experience .destination-discovery{padding-bottom:48px}
.home-page.guest-experience .student-feature{padding:36px 0;background:#fff}
.home-page.guest-experience .student-feature__box{background:#272132;border-radius:20px;padding:32px 36px;box-shadow:none}
.home-page.guest-experience .student-feature h2{font-family:inherit;font-size:32px;line-height:1.2}
.home-page.guest-experience .listings{background:#faf9fa;padding:56px 0}
.home-page.guest-experience .featured-controls{padding-top:4px}
.home-page.guest-experience :is(.story-copy h2,.split h2,.cta h2){font-family:inherit;font-size:clamp(28px,3vw,38px);font-weight:750;line-height:1.2}
@media(max-width:920px){
 .home-page.guest-experience .hero-copy{padding:12px 0;text-align:left}
 .home-page.guest-experience .hero-grid{padding:16px 0 4px;grid-template-columns:1fr}
 .home-page.guest-experience .hero p{max-width:none;margin:0}
 .guest-experience .layout{gap:28px}
}
@media(max-width:620px){
 .home-page.guest-experience .hero>.wrap,.home-page.guest-experience .home-trust{width:calc(100% - 28px)}
 .home-page.guest-experience .hero h1{font-size:32px!important;max-width:340px}
 .home-page.guest-experience .hero p{font-size:16px}
 .home-page.guest-experience .hero .eyebrow{font-size:12px}
 .home-page.guest-experience .search-zone form{padding:12px;border-radius:16px}
 .home-page.guest-experience .search-zone .field label{font-size:14px}
 .home-page.guest-experience .home-trust{gap:0;margin-top:16px}
 .home-page.guest-experience .home-trust>span{font-size:13px;padding:0 6px;gap:6px}
 .home-page.guest-experience .student-feature__box{padding:26px 22px;gap:22px}
 .guest-checkout .nav{flex-wrap:wrap;gap:8px;padding:10px 0}
 .guest-checkout .steps{display:flex;flex-basis:100%;gap:6px;font-size:13px;padding:6px 0}
 .guest-checkout .layout{gap:20px}
 .guest-checkout .card{padding:20px}
 .guest-checkout .summary{padding:18px}
 .guest-experience .booking{padding:20px}
}
@media(prefers-reduced-motion:reduce){
 .guest-experience{scroll-behavior:auto}
 .guest-experience *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Keep long translated labels and native form controls within narrow screens. */
.guest-experience :is(.layout>*,.form-grid>*,.booking-grid>*,.availability-search .field,.property>*,.payment-option>*){min-width:0}
.guest-experience :is(.card,.booking,.search-summary,.email-box){overflow-wrap:anywhere}
.guest-experience .field :is(input,select,textarea){max-width:100%;min-width:0}
.guest-experience .payment-option{text-align:start}
html[dir=rtl] .guest-checkout .review-row b{text-align:start}
html[dir=rtl] .guest-checkout .contract-summary ul{padding-left:0;padding-right:19px}
@media(max-width:620px){
 .guest-experience .field :is(input,select,textarea){font-size:16px!important;min-height:44px}
 .guest-experience :is(.search-edit-button,.catalog-apply-filters,.primary,.reserve){min-height:44px}
 .guest-checkout .property{grid-template-columns:72px minmax(0,1fr);gap:12px}
 .guest-checkout .property img{width:72px;height:76px}
 .guest-checkout .dates{grid-template-columns:repeat(2,minmax(0,1fr))}
 .guest-checkout .date{padding:10px 8px;font-size:14px}
 .guest-checkout .steps{line-height:1.5;row-gap:4px}
 .guest-checkout .payment-option-title{flex-wrap:wrap}
 .guest-checkout .reference strong{font-size:21px;overflow-wrap:anywhere}
 .guest-experience .catalog-extra-filters select{width:100%;max-width:100%;min-width:0}
 .guest-experience .hv-calendar{scroll-margin-block:16px}
}
