:root {
  --orange:#ff5533; --orange-d:#e8472b; --ink:#05203c; --muted:#5a6872;
  --line:#e6e8eb; --panel:#ffffff; --soft:#f4f5f6; --star:#ffb100;
  --green:#12855b; --red:#d93a44;
  --shadow-sm:0 1px 3px rgba(10,30,60,.12); --shadow-md:0 6px 20px rgba(10,30,60,.12);
}
* { box-sizing:border-box; } body { margin:0; font-family:"Inter",-apple-system,"Segoe UI",Roboto,sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
a { color:var(--orange); text-decoration:none; }
.wrap { max-width:760px; margin:0 auto; padding:0 18px; }
.loading { text-align:center; padding:60px; color:var(--muted); }

.gs-header { position:sticky; top:0; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); z-index:10; }
.gs-nav { display:flex; align-items:center; justify-content:space-between; height:56px; max-width:760px; margin:0 auto; padding:0 18px; }
.gs-nav .brand { font-family:"Montserrat"; font-weight:700; font-size:17px; color:inherit; text-decoration:none; cursor:pointer; }
.gs-nav .brand:hover { opacity:.75; }
.gs-nav .links a { margin-left:16px; font-size:14px; color:var(--ink); font-weight:500; }

/* Герой — мягкий тинт акцента (следует за --orange) */
.hero { padding:40px 0 30px; text-align:center; background:var(--soft); background:color-mix(in srgb, var(--orange) 7%, #fff); border-bottom:1px solid var(--line); }
.hero .avatar { width:96px; height:96px; border-radius:50%; object-fit:cover; margin:0 auto 14px; display:block; border:3px solid #fff; box-shadow:var(--shadow-md); background:var(--soft); }
.hero h1 { font-family:"Montserrat"; font-weight:800; font-size:30px; margin:0 0 6px; letter-spacing:-.01em; }
.hero .slogan { color:var(--ink); font-size:16px; margin:2px 0 4px; opacity:.85; }
.hero .city { color:var(--muted); font-size:15px; }
.hero .rating { margin-top:10px; font-weight:600; }
.hero .rating .star { color:var(--star); }
.hero .rating .cnt { color:var(--muted); font-weight:400; font-size:14px; }

/* Секции — единый белый фон, разделители тонкой линией (как в макете) */
section { padding:30px 0; border-bottom:1px solid var(--line); }
h2 { font-family:"Montserrat"; font-weight:700; font-size:22px; margin:0 0 18px; letter-spacing:-.01em; }
.book-frame { width:100%; border:0; display:block; min-height:420px; }

/* Карусель отзывов */
.rev-carousel { display:flex; gap:14px; overflow-x:auto; padding:4px 4px 14px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.rev-carousel::-webkit-scrollbar { height:6px; }
.rev-carousel::-webkit-scrollbar-thumb { background:var(--line); border-radius:3px; }
.rev { border:1px solid var(--line); border-radius:14px; padding:16px; box-shadow:var(--shadow-sm); }
.rev-carousel .rev { flex:0 0 82%; max-width:340px; scroll-snap-align:start; background:#fff; }
.rev .who { font-weight:600; }
.rev .exc { color:var(--muted); }
.rev .stars { color:var(--star); font-size:15px; }
.rev .body { color:var(--ink); font-size:14px; margin-top:8px; line-height:1.5; }
.rev .rmeta { font-size:13px; margin-top:10px; }
.rev .date { color:var(--muted); font-size:12px; margin-top:4px; }

label { display:block; font-size:13px; font-weight:600; margin:10px 0 5px; }
input, textarea, select { width:100%; border:1px solid var(--line); border-radius:10px; padding:11px; font:inherit; }
input:focus, textarea:focus, select:focus { outline:none; border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,85,51,.12); }
.btn { display:inline-flex; align-items:center; gap:6px; background:var(--orange); color:#fff; border:0; border-radius:12px; padding:12px 20px; font-weight:600; font-size:15px; cursor:pointer; box-shadow:var(--shadow-sm); }
.btn:hover { background:var(--orange-d); }

.about p { color:#3a4652; font-size:15px; line-height:1.65; white-space:pre-line; margin:0 0 4px; }
.contacts { margin-top:14px; font-size:15px; }
.contacts div { padding:4px 0; }
.policy { background:var(--soft); border-radius:14px; padding:16px; margin-top:16px; font-size:14px; }
.policy div { padding:3px 0; }
.policy b { color:var(--orange); }
footer { padding:30px 0; text-align:center; color:var(--muted); font-size:13px; }
footer .legal-nav { display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:center; margin-bottom:10px; }
footer .legal-nav a { color:var(--muted); text-decoration:none; }
footer .legal-nav a:hover { color:var(--orange); }
.requisites { margin-top:16px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.requisites .rq-h { font-weight:600; color:var(--ink); margin-bottom:4px; }
.muted { color:var(--muted); } .empty { color:var(--muted); }

/* Почему со мной — лёгкие строки с accent-soft иконкой-квадратом */
.why-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px 20px; }
.why-item { display:flex; align-items:center; gap:11px; font-size:15px; font-weight:500; }
.why-ic { flex:0 0 auto; width:26px; height:26px; border-radius:8px; background:var(--soft); background:color-mix(in srgb, var(--orange) 13%, #fff); color:var(--orange); font-size:14px; font-weight:800; display:flex; align-items:center; justify-content:center; }

/* Как проходит бронирование */
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; }
.step { text-align:center; }
.step-n { width:44px; height:44px; margin:0 auto 12px; border-radius:50%; background:var(--orange); color:#fff; font-family:"Montserrat"; font-weight:700; font-size:19px; display:flex; align-items:center; justify-content:center; }
.step h3 { font-family:"Montserrat"; font-size:16px; margin:0 0 6px; }
.step p { color:var(--muted); font-size:14px; margin:0; line-height:1.5; }

/* О гиде: опыт — карточки на мягком фоне */
.about-stats { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.ast { flex:1; min-width:96px; background:var(--soft); border-radius:12px; padding:12px 10px; text-align:center; }
.ast-n { font-family:"Montserrat"; font-weight:800; font-size:24px; color:var(--orange); }
.ast-l { color:var(--muted); font-size:12px; margin-top:2px; }

/* FAQ — строки-разделители (без карточек) */
.faq-list { display:flex; flex-direction:column; }
.faq-i { border-top:1px solid var(--line); padding:2px 0; }
.faq-i summary { cursor:pointer; font-weight:600; padding:15px 0; list-style:none; font-size:15px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.faq-i summary::-webkit-details-marker { display:none; }
.faq-i summary::after { content:'+'; color:var(--muted); font-weight:600; font-size:22px; line-height:1; flex:0 0 auto; }
.faq-i[open] summary::after { content:'−'; color:var(--orange); }
.faq-a { color:var(--muted); font-size:14px; line-height:1.6; padding:0 0 15px; }

/* Галерея */
.ggrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:8px; }
.gcell { aspect-ratio:1/1; background-size:cover; background-position:center; border-radius:12px; cursor:pointer; background-color:var(--soft); overflow:hidden; }
.gcell img { width:100%; height:100%; object-fit:cover; display:block; }
.g-lightbox { position:fixed; inset:0; background:rgba(5,20,40,.9); z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; cursor:zoom-out; touch-action:pan-y; }
.g-lightbox img { max-width:100%; max-height:100%; border-radius:8px; user-select:none; -webkit-user-drag:none; }
.g-lightbox .lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border:none; border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-size:28px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.g-lightbox .lb-nav:hover { background:rgba(255,255,255,.3); }
.g-lightbox .lb-prev { left:16px; } .g-lightbox .lb-next { right:16px; }
.g-lightbox .lb-close { position:absolute; top:16px; right:20px; width:44px; height:44px; border:none; border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-size:26px; cursor:pointer; }
.g-lightbox .lb-counter { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:#fff; font-size:14px; background:rgba(0,0,0,.35); padding:4px 12px; border-radius:20px; }
@media (max-width:640px){ .g-lightbox .lb-nav{ width:44px; height:44px; font-size:24px; } .g-lightbox .lb-prev{ left:8px; } .g-lightbox .lb-next{ right:8px; } }

/* Блог / статьи */
.art-list { display:flex; flex-direction:column; gap:16px; }
.art { background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); }
.art-cover { height:180px; background-size:cover; background-position:center; background-color:var(--soft); }
.art-inner { padding:16px 18px 18px; }
.art-title { font-family:"Montserrat"; font-weight:700; font-size:19px; margin:0 0 8px; }
.art-teaser { color:var(--muted); font-size:14px; line-height:1.6; }
.art-full { display:none; font-size:15px; line-height:1.7; }
.art.open .art-teaser { display:none; }
.art.open .art-full { display:block; }
.art-more { margin-top:12px; background:none; border:0; color:var(--orange); font-weight:600; font-size:14px; cursor:pointer; padding:0; font-family:inherit; }
.art-full p { margin:0 0 10px; }
.art-full h3 { font-family:"Montserrat"; font-size:17px; margin:16px 0 8px; }
.art-full a { color:var(--orange); text-decoration:underline; }
.art-full ol, .art-full ul { margin:0 0 10px; padding-left:22px; }
.art-full li { margin:4px 0; }
.art-full blockquote { margin:10px 0; padding:8px 14px; border-left:3px solid var(--orange); color:var(--muted); background:var(--soft); border-radius:0 8px 8px 0; }
