/* Reference composition, scoped to the homepage. */
.home{background:#fbfbf9;color:#181818}
.home .hero{min-height:660px;height:auto;padding:0 5.5% 30px;background-size:cover;background-position:center;display:flow-root}
.home .hero-top{position:relative;inset:auto;width:100%;height:88px;display:flex;align-items:center;gap:24px}
.home .hero-brand{width:400px;flex:0 0 auto}
.home .hero-brand img{display:block;width:100%;height:auto;object-fit:contain}
.hero-nav{display:flex;align-items:center;gap:24px;font-size:13px;margin-left:auto}
.hero-nav a:hover{text-decoration:underline}
.home .hero-bell,.home .hero-favorites{position:static;display:grid;width:38px;height:38px;flex-shrink:0;background:#fff;border-radius:50%;padding:9px}
.home .hero-bell .icon,.home .hero-favorites .icon{width:20px;height:20px}
.home .hero-title{position:relative;inset:auto;font-size:clamp(40px,4.7vw,68px);line-height:1.03;letter-spacing:-.05em;margin:40px 0 18px;max-width:640px}
.home .hero-title em{display:inline;font-style:normal;color:#151515;font-size:1em;margin:0;position:relative;text-decoration:underline;text-decoration-color:#ffdc32;text-decoration-thickness:9px;text-underline-offset:3px}
.home .hero-copy{position:relative;inset:auto;display:block;font-size:20px;line-height:1.45;letter-spacing:-.025em;margin:0;max-width:480px}
.hero-benefits{display:flex;gap:24px;margin:30px 0 70px;max-width:540px;font-size:12px}
.hero-benefits span{display:flex;align-items:center;gap:9px;max-width:160px;padding:6px 8px;background:#ffffffde;border-radius:9px}
.hero-benefits .icon{flex-shrink:0;background:#ffec9c;padding:5px;width:32px;height:32px;border-radius:50%}
.home .hero-note{display:none}
.home-search-shell{width:100%;max-width:910px;margin:0 auto;border-radius:22px;overflow:visible}
.search-services{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 24px;border-bottom:1px solid #eee;overflow-x:auto}
.search-services>span{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap;padding:8px 12px}
.search-services .service-active{background:#ffdf3f;border-radius:10px;color:#141414}
.search-services [aria-disabled]{display:none}
.search-services small{font-size:10px;color:#777}
.home .home-search-shell .search-form{grid-template-columns:minmax(0,1fr);padding:12px 16px;gap:8px;border-radius:22px}
.home .home-search-shell .search-field,.home .home-search-shell .search-guests{min-height:58px;padding:6px 12px;gap:3px}
.home .home-search-shell .search-field input,.home .home-search-shell .search-field select{font-size:15px;height:22px;line-height:22px}
.home .home-search-shell .search-form>.btn{min-height:48px}
.home .home-extra-filters summary{min-height:38px;padding:6px 10px}
.home-search-shell .home-extra-filters{margin-bottom:4px!important}
.service-strip{max-width:1400px;margin:auto;padding:24px 38px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-bottom:1px solid #eeece8}
.service-strip>a{display:flex;align-items:center;gap:16px;font-size:14px}
.service-strip .icon{width:32px;height:32px;flex-shrink:0}
.service-strip strong,.service-strip small{display:block}
.service-strip small{color:#787b80;font-size:12px;margin-top:5px}
.home .home-content{max-width:1400px;padding:0 32px}
.home .places{margin:38px 0}
.places-heading{margin:0 20px 28px}
.home .places-heading h2{font-size:44px;line-height:1.04}
.places-heading>div{max-width:300px}.places-heading p{font-size:14px}
.places-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.place-petersburg{padding-top:0}
.place-photo img,.place-moscow .place-photo img,.place-petersburg .place-photo img{height:280px}
.place-photo{border-radius:10px}
.place-photo>span{display:none}
.home .place-label h3{font-size:22px}
.place-label{gap:8px;padding-inline:4px}
.place>p{font-size:13px;padding-inline:4px}
.home .coast-banner{min-height:245px;margin:34px 0 26px;border-radius:16px;overflow:hidden;padding:32px 46px;color:#fff;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#123f60e8,#123f6010),url("../assets/sochi.862db4fa9ecd.jpg") center 55%/cover}
.coast-banner h2{font-size:38px;line-height:1.05;margin:0 0 12px}
.coast-banner p{font-size:15px;margin-bottom:20px}
.coast-banner .btn{font-size:14px;border-radius:8px}
.coast-note{font:italic 28px/1.3 Georgia,serif;transform:rotate(-9deg);padding:22px 35px;border:2px solid #fff;border-radius:50%;text-align:center}
.home .stay{margin:24px 0;grid-template-columns:1fr 1fr;gap:40px;border:0;padding:0}
.stay-photo img{height:380px;border-radius:14px}
.stay-photo figcaption{font-size:10px}
.stay-category{background:#ffe785;font-size:11px;padding:5px 10px;border-radius:8px;display:inline-block;margin-bottom:15px}
.home .stay-copy h2{font-size:46px;margin-bottom:18px}
.stay-lead{font-size:15px;max-width:430px;line-height:1.5}
.stay-search{margin:20px 0 24px;padding:13px 22px;border-radius:8px;font-size:14px}
.stay-features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stay-features>span{display:grid;grid-template-columns:24px 1fr;column-gap:8px;padding:12px 9px;background:white;border:1px solid #eee;border-radius:9px}
.stay-features .icon{grid-row:1/3;width:21px}
.stay-features b{font-size:11px;font-weight:600}.stay-features small{font-size:10px;color:#777}
.home #hotel-map{box-shadow:none;border:1px solid #eee;border-radius:16px;padding:22px;background:#fff}
.home #hotel-map h2{font-size:27px}.home #hotel-map p{font-size:13px;color:#72757a}
.home .ideas{gap:12px}.home .idea{height:145px;border-radius:12px}
.home .home-content>section{margin-bottom:28px}
.home .newsletter{padding:26px 30px;border-radius:16px;box-shadow:none;background:linear-gradient(100deg,#fff5c5,#ffeb8b);gap:32px}
.home .newsletter h2{font-size:26px}.home .newsletter small{font-size:13px}
.home .newsletter .row{display:flex;gap:10px}.home .newsletter .checkline{font-size:11px}
.home .newsletter .checkline input{width:14px;height:14px}
.home .footer{padding:28px 0 40px;font-size:12px}.home .footer .logo{width:110px}
@media(max-width:1100px){.hero-nav{gap:12px}.home .hero-brand{width:310px}.home .hero-top{gap:12px}.home .hero-title{font-size:52px}.hero-benefits{margin-bottom:55px}.place-photo img,.place-moscow .place-photo img,.place-petersburg .place-photo img{height:230px}.home .place-label h3{font-size:18px}.stay-features{grid-template-columns:1fr}.stay-features>span{padding:7px 10px}.stay-photo img{height:420px}.home .stay-copy h2{font-size:38px}.home .home-search-shell .search-form>.btn{grid-column:auto}}
@media(max-width:768px){
.home .hero{padding:0 16px 22px;min-height:0;background:#e8eff2;position:relative;isolation:isolate}
.home .hero:before{height:470px;background:url("../assets/hero-full.a61bea5a01cf.png") 61% top/auto 470px no-repeat;mask-image:linear-gradient(#000 75%,transparent);z-index:-1}
.home .hero-top{height:70px;gap:10px}.home .hero-brand{width:min(72%,300px);min-width:0;flex:0 1 auto}.hero-nav{display:none}
.home .hero-favorites{margin-left:auto}.home .hero-bell,.home .hero-favorites{width:32px;height:32px;padding:7px}
.home .hero-title{font-size:clamp(30px,6.5vw,46px);margin:26px 0 14px;max-width:85%}
.home .hero-title em{text-decoration-thickness:6px}
.home .hero-copy{font-size:15px;max-width:260px;padding:6px;background:#ffffffbc;border-radius:6px}
.hero-benefits{margin:22px 0 34px;gap:8px;font-size:10px}.hero-benefits span{max-width:110px;gap:5px}.hero-benefits .icon{width:25px;height:25px;padding:4px}
.search-services{justify-content:flex-start;padding:10px;gap:8px}.search-services>span{font-size:12px;padding:9px}
.home .home-search-shell .search-form{grid-template-columns:1fr;padding:12px;gap:10px}
.home .home-search-shell .search-guests{order:0}.home .search-field{min-height:68px}
.service-strip{grid-template-columns:1fr 1fr;padding:20px 16px;gap:20px 12px}.service-strip>a{font-size:12px;gap:9px}.service-strip small{font-size:10px}.service-strip .icon{width:25px;height:25px}
.home .home-content{padding:0 16px}.places-heading{margin:26px 0 20px;display:flex;align-items:end;gap:16px}.home .places-heading h2{font-size:30px}.places-heading>div{margin:0}.places-heading p{display:none}.places-heading a{font-size:12px;gap:8px}
.places-grid{grid-template-columns:1fr 1fr;gap:24px 12px}.place-moscow,.place-petersburg{grid-column:auto}.place-photo img,.place-moscow .place-photo img,.place-petersburg .place-photo img{height:200px}.home .place-label h3{font-size:17px}.place-label .icon{width:16px;height:16px}.place>p{font-size:12px}
.home .coast-banner{padding:26px 20px;min-height:240px}.coast-banner h2{font-size:29px}.coast-note{display:none}.coast-banner p{font-size:13px;max-width:220px}
.home .stay{grid-template-columns:1fr;gap:20px}.stay-photo img{height:280px}.home .stay-copy h2{font-size:38px}.stay-features{grid-template-columns:repeat(3,1fr)}.stay-features>span{display:block;padding:10px 7px}.stay-features b,.stay-features small{display:block;margin-top:5px}
.home .newsletter{padding:22px;gap:18px}.home .newsletter h2{font-size:23px}.home .newsletter form{width:100%}.home .newsletter .row{flex-direction:column}
.home .footer{padding-bottom:100px}.home .ideas{grid-template-columns:repeat(2,1fr)}.home .idea{height:125px}
}
@media(max-width:380px){.home .places-heading h2{font-size:27px}.home .place-label h3{font-size:15px}.place-photo img,.place-moscow .place-photo img,.place-petersburg .place-photo img{height:175px}}
