:root {
  --ink: #251b15;
  --muted: #77695d;
  --cream: #f4efe6;
  --paper: #fffdf9;
  --orange: #ee8126;
  --orange-deep: #bd5816;
  --sage: #68796c;
  --line: rgba(67, 47, 33, .12);
  --shadow: 0 18px 48px rgba(54, 38, 25, .11);
}

* { box-sizing: border-box; }
html { background: var(--cream); scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: "Segoe UI", system-ui, sans-serif; }
button, a { font: inherit; -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.app-shell { min-height: 100svh; position: relative; isolation: isolate; overflow: hidden; padding-bottom: max(36px, env(safe-area-inset-bottom)); }
.soft-glow { position: fixed; z-index: -1; pointer-events: none; border-radius: 50%; filter: blur(12px); }
.glow-one { width: 320px; height: 320px; top: -130px; right: -170px; background: rgba(243, 160, 87, .23); }
.glow-two { width: 340px; height: 340px; top: 560px; left: -250px; background: rgba(104, 121, 108, .14); }
.berry-background { position: absolute; z-index: -1; pointer-events: none; inset: 0; overflow: hidden; }
.berry-sprig { position: absolute; top: var(--top); width: var(--size); height: auto; opacity: var(--opacity); filter: blur(var(--blur)) saturate(.92); transform: rotate(var(--rotate)); transform-origin: center; }
.berry-sprig.from-left { left: calc(50% - 325px + var(--edge)); }
.berry-sprig.from-right { right: calc(50% - 325px + var(--edge)); }
.page, .nav { width: min(100% - 28px, 430px); margin-inline: auto; }
.page { animation: arrive .42s cubic-bezier(.22,.74,.32,1) both; }
@keyframes arrive { from { opacity: 0; transform: translateY(9px); } }

.nav { height: 72px; display: flex; align-items: center; }
.nav[hidden] { display: none !important; }
.back { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,253,249,.78); padding: 9px 15px 9px 10px; cursor: pointer; backdrop-filter: blur(14px); }
.back svg { width: 18px; }

.hero { min-height: 225px; margin: 18px 0 16px; display: flex; flex-direction: column; justify-content: flex-end; padding: max(45px, env(safe-area-inset-top)) 19px 28px; border: 1px solid rgba(255,255,255,.56); border-radius: 27px; background: rgba(255,253,249,.67); box-shadow: 0 16px 38px rgba(69,49,34,.06); backdrop-filter: blur(11px); -webkit-backdrop-filter: blur(11px); }
.hello { margin: 0 0 10px; color: var(--orange-deep); font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.hello_name {
  color: #ee8126;
  font-weight: bolder;
}
.hero h1, .detail-head h1 { margin: 0; max-width: 790px; font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.04em; line-height: 1.05; }
.hero h1 { font-size: clamp(39px, 10.5vw, 46px); }

.card-grid { display: grid; gap: 13px; }
.place-card { position: relative; min-height: 285px; overflow: hidden; display: flex; align-items: flex-end; border: 0; border-radius: 28px; background: #59473b; padding: 0; color: white; cursor: pointer; text-align: left; box-shadow: var(--shadow); }
.place-card.large { min-height: 350px; }
.place-photo { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .65s cubic-bezier(.22,.74,.32,1); }
.place-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,16,12,.06) 18%, rgba(22,16,12,.3) 56%, rgba(22,16,12,.9) 100%); }
.place-copy { position: relative; z-index: 1; width: 100%; padding: 24px 24px 25px; }
.place-copy small { color: #ffd0a5; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.place-copy h2 { margin: 7px 56px 7px 0; font-family: Georgia, "Times New Roman", serif; font-size: 30px; font-weight: 400; line-height: 1.08; }
.place-copy p { margin: 0 50px 0 0; color: rgba(255,255,255,.72); font-size: 11px; line-height: 1.55; }
.round-arrow { position: absolute; right: 21px; bottom: 22px; z-index: 2; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 50%; background: var(--orange); }
.round-arrow svg { width: 18px; }

.event-tile { width: 100%; min-height: 125px; margin-top: 13px; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 14px; border: 0; border-radius: 26px; background: var(--sage); color: white; padding: 19px; cursor: pointer; text-align: left; box-shadow: 0 16px 36px rgba(62,82,65,.15); }
.event-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 16px; background: rgba(255,255,255,.13); }
.event-copy { display: flex; min-width: 0; flex-direction: column; }
.event-copy small { color: rgba(255,255,255,.6); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.event-copy strong { margin-top: 4px; font-family: Georgia, "Times New Roman", serif; font-size: 19px; font-weight: 400; }
.event-copy span { margin-top: 4px; color: #ffcfaa; font-size: 10px; }
.event-tile > svg { width: 18px; }

.detail-head { margin: 10px 0 15px; padding: 22px 19px 24px; border: 1px solid rgba(255,255,255,.56); border-radius: 25px; background: rgba(255,253,249,.69); box-shadow: 0 14px 34px rgba(69,49,34,.055); backdrop-filter: blur(11px); -webkit-backdrop-filter: blur(11px); }
.detail-head .eyebrow { display: block; margin-bottom: 10px; color: var(--orange-deep); font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.detail-head h1 { font-size: clamp(38px, 10vw, 66px); }
.detail-head p { max-width: 570px; margin: 12px 0 0; color: var(--muted); font-size: 13px; line-height: 1.65; }

.menu-card { width: 100%; min-height: 58px; margin-bottom: 15px; display: grid; place-items: center; border: 1px solid rgba(177, 100, 34, .16); border-radius: 20px; background: var(--orange); padding: 14px 22px; color: white; font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-weight: 400; text-align: center; cursor: pointer; box-shadow: 0 11px 28px rgba(177, 100, 34, .18); }
.menu-pages { display: grid; gap: 12px; }
.menu-page-image { overflow: hidden; width: 100%; display: block; border: 0; border-radius: 19px; background: white; padding: 0; cursor: zoom-in; box-shadow: 0 12px 30px rgba(54,38,25,.09); }
.menu-page-image img { width: 100%; height: auto; display: block; }

.media-list { display: grid; gap: 10px; }
.media-list.images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.media-list + .media-list { margin-top: 14px; }
.media-card { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 21px; background: var(--paper); box-shadow: 0 10px 28px rgba(54,38,25,.055); }
.media-button { position: relative; width: 100%; aspect-ratio: 4/5; display: block; border: 0; background: #ded4c7; padding: 0; cursor: zoom-in; }
.media-button img { width: 100%; height: 100%; display: block; object-fit: cover; }
.video-card { overflow: hidden; border: 1px solid var(--line); border-radius: 23px; background: var(--paper); }
.video-card video { width: 100%; aspect-ratio: 16/10; display: block; background: #19130f; object-fit: contain; }

.empty { min-height: 260px; display: grid; place-items: center; border: 1px dashed rgba(67,47,33,.18); border-radius: 25px; background: rgba(255,253,249,.5); padding: 28px; text-align: center; }
.empty svg { width: 33px; height: 33px; margin-bottom: 12px; color: var(--orange); }
.empty strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 21px; font-weight: 400; }
.empty p { margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }

.lightbox { position: fixed; z-index: 100; inset: 0; background: rgba(18,13,10,.96); animation: fade .2s ease both; }
@keyframes fade { from { opacity: 0; } }
.lightbox { display: grid; place-items: center; padding: 62px 14px 68px; touch-action: pan-y; }
.lightbox img { max-width: min(100%, 1120px); max-height: calc(100svh - 135px); display: block; border-radius: 16px; object-fit: contain; }
.overlay-close { position: absolute; top: max(14px, env(safe-area-inset-top)); right: 16px; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; background: rgba(255,255,255,.1); color: white; cursor: pointer; }
.lightbox-nav { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 42px; height: 58px; border: 0; border-radius: 16px; background: rgba(255,255,255,.1); color: white; cursor: pointer; }
.lightbox-prev { left: 11px; }
.lightbox-next { right: 11px; }
.lightbox-prev svg { transform: rotate(180deg); }

@media (hover: hover) {
  .place-card:hover .place-photo { transform: scale(1.04); }
  .media-button:hover img { transform: scale(1.025); }
  .media-button img { transition: transform .35s ease; }
}

@media (max-width: 560px) {
  .berry-sprig.from-left { left: var(--edge); }
  .berry-sprig.from-right { right: var(--edge); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Бронирования и админка */
.reserve-ribbon { position:absolute;z-index:2;top:16px;right:16px;padding:9px 13px;border-radius:99px;background:rgba(255,253,249,.96);color:#803d10;font-size:12px;font-weight:700;box-shadow:0 5px 20px #0002; }
.quick-reserve { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px;padding:16px;border:1px solid rgba(238,129,38,.22);border-radius:20px;background:var(--paper);box-shadow:0 9px 25px #5533150d; }
.quick-reserve div{display:grid;gap:5px;}.quick-reserve strong{font-family:Georgia,serif;font-size:22px;font-weight:400;}.quick-reserve span{font-size:11px;line-height:1.4;color:var(--muted);}
.quick-reserve button,.primary-action,.admin-form button,.admin-actions button,.admin-entry{background:var(--orange);border:0;color:white;border-radius:13px;padding:12px 15px;cursor:pointer;font-size:12px;font-weight:700;white-space:nowrap;}
.booking-panel,.admin-card{padding:20px 16px;margin-bottom:14px;background:rgba(255,253,249,.95);border:1px solid var(--line);border-radius:23px;box-shadow:0 10px 24px #5533150a;}
.calendar-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:6px;}.calendar-heading strong{font-family:Georgia,serif;font-weight:400;font-size:18px;white-space:nowrap;}.calendar-heading button{background:var(--cream);border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:20px;cursor:pointer;}.calendar-heading button:disabled{opacity:.35;cursor:default;}
.date-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}.date-choice{border:1px solid #e4dacf;background:#faf8f4;text-align:left;padding:13px;min-height:87px;border-radius:15px;display:flex;flex-direction:column;justify-content:center;gap:4px;cursor:pointer;}.date-choice.free{background:#f1f7ed;border-color:#c8ddbf;}.date-choice.chosen{outline:2px solid var(--orange);border-color:var(--orange);}.date-choice:disabled{cursor:default;opacity:.65;}.date-choice strong{font-size:14px;}.date-choice small{font-size:11px;color:var(--muted);}.date-choice.free small{color:#476a38;}.date-price{font-size:11px;font-weight:700;color:#3f5738;}.fineprint{font-size:11px;line-height:1.5;color:var(--muted);margin-bottom:0;}
.booking-form,.admin-form{display:grid;gap:14px;margin-top:20px;}.booking-form h3,.admin-card h2{font-size:22px;line-height:1.15;font-weight:400;font-family:Georgia,serif;margin:0 0 6px;}.booking-form p,.admin-card p{font-size:12px;color:var(--muted);line-height:1.55;margin:2px 0 8px;}.booking-form label,.admin-form label{display:grid;gap:6px;font-size:12px;font-weight:600;}.booking-form input:not([type=checkbox]),.booking-form textarea,.admin-form input,.admin-form textarea{width:100%;padding:12px;border:1px solid #d5c6b6;border-radius:12px;background:#fff;font:inherit;font-size:14px;color:var(--ink);}.booking-form textarea,.admin-form textarea{resize:vertical;}.booking-form .checkline{display:flex;align-items:flex-start;gap:10px;font-weight:400;font-size:12px;line-height:1.5;}.checkline input{margin-top:3px;accent-color:var(--orange);}.checkline a{color:var(--orange-deep);}.primary-action{width:100%;font-size:14px;padding:16px;}.primary-action:disabled{opacity:.5;}.feedback{border-radius:13px;padding:13px;margin:12px 0;font-size:12px;line-height:1.5;background:#f0e7d8;color:var(--ink);}.feedback.error{background:#fbe9e7;color:#8c2b23;}.feedback.success{background:#ebf5e7;color:#376231;}
.admin-entry{width:100%;display:flex;flex-direction:column;gap:6px;text-align:left;margin-bottom:13px;font-size:16px;background:var(--sage);}.admin-entry span{font-size:11px;font-weight:400;color:#fff9;}.admin-card{margin-bottom:15px;}.admin-card>p>strong{font-size:28px;color:var(--orange-deep);}.admin-stat-list{display:grid;gap:1px;margin:12px 0;}.admin-stat-list>div{display:grid;grid-template-columns:1fr 40px 60px;gap:6px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px;}.admin-stat-list strong{text-align:right;}.admin-stat-list small{text-align:right;color:var(--muted);}.admin-card>button{background:var(--cream);border:0;border-radius:10px;padding:10px;cursor:pointer;}.admin-booking{padding:12px 0;border-bottom:1px solid var(--line);}.admin-booking>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:6px;}.admin-booking p{margin:7px 0;}.admin-booking a{color:var(--orange-deep);}.admin-booking small{font-size:11px;color:var(--muted);}.status-pill{font-size:10px;padding:5px 7px;background:#ede5da;border-radius:8px;}.admin-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;}.admin-actions button.secondary-action,.admin-form button.secondary-action{color:var(--ink);background:#ede5da;}.admin-id-list>div{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);}.admin-id-list code{font-size:13px;}.admin-id-list button{border:0;border-radius:7px;padding:7px 11px;cursor:pointer;background:#e8ded2;}
@media (max-width:360px){.quick-reserve{flex-direction:column;align-items:stretch;}.quick-reserve button{width:100%;}.date-picker-grid{grid-template-columns:1fr 1fr;}.date-choice{padding:10px;}}
.banquet-info{padding:15px 17px;border:1px solid #edd5bc;background:#fff6ed;border-radius:17px;margin:0 0 14px;}.booking-panel .banquet-info{margin-top:15px;margin-bottom:2px;}.banquet-info strong{font-family:Georgia,serif;font-size:20px;font-weight:400;}.banquet-info p{font-size:12px;line-height:1.6;white-space:pre-wrap;margin:9px 0 0;color:var(--muted);}
/* Выбор одной из двух саун TravelLine */
.sauna-selector{display:grid;gap:8px;margin-bottom:18px;font-size:13px;font-weight:700;color:var(--ink);}
.sauna-selector select{width:100%;border:1px solid #d5c6b6;border-radius:14px;padding:13px 15px;font:inherit;font-weight:500;background:#fff;color:var(--ink);}
