/* «Промокоды на отели» — стойка регистрации: зелёные стены и латунь, бирки ключей, бланк гостя и счёт за проживание */
:root{--wall:#14382F;--wall-d:#0F2B24;--brass:#C9A453;--brass-l:#E4CB8A;--paper:#F4EDDD;--card:#FBF7EE;--head:#F1E9D6;--edge:#D8CDB5;--dots:#B3A88F;
  --ink:#221E18;--muted:#6F6758;--wine:#8E2433;--cream:#EFE6D1;--cream-m:#CFC6B2;--link:#1F5C4D;
  --serif:'Playfair Display',Georgia,serif;--sans:'Commissioner',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;color-scheme:light}
*{box-sizing:border-box}
/* у Playfair по умолчанию старостильные цифры, а шорткат font сбрасывает настройку у каждого правила — держим прописные везде */
*{font-variant-numeric:lining-nums!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans)}
p,ul,ol,figure{margin:0}
a{color:var(--link);text-decoration:none}
a:hover{color:var(--wine)}
img,svg{max-width:100%}
.wrap{position:relative;max-width:1560px;margin-left:auto;margin-right:auto;padding-left:clamp(16px,3vw,48px);padding-right:clamp(16px,3vw,48px)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:8px;z-index:100;background:#fff;padding:4px 10px}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px}

/* зелёная стена: шапка, цепочка, заголовок страницы и первый экран идут одной полосой во всю ширину */
.top,.crumbs,.page-head,.hero{background:var(--wall);color:var(--cream)}
.crumbs,.page-head,.hero{box-shadow:0 0 0 100vmax var(--wall);clip-path:inset(0 -100vmax)}
.top{position:relative;z-index:2;border-bottom:3px double var(--brass)}
.top-in{display:flex;flex-wrap:wrap;align-items:center;gap:10px 32px;padding-top:16px;padding-bottom:16px}
.logo{display:flex;align-items:center}
/* знак: латунная бирка от ключа номера с гравировкой */
.logo-mark{display:inline-flex;align-items:center;gap:11px;height:42px;padding:0 20px 0 14px;border-radius:21px 7px 7px 21px;background:linear-gradient(180deg,#E6CD8D,#C09745);color:var(--wall-d);font:700 15px/1 var(--sans);letter-spacing:.17em;text-transform:uppercase;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.5),inset 0 -2px 0 rgba(0,0,0,.12),0 2px 0 rgba(0,0,0,.3)}
.logo-mark::before{content:"";flex:none;width:11px;height:11px;border-radius:50%;background:var(--wall);box-shadow:inset 0 1px 2px rgba(0,0,0,.7)}
.nav{display:flex;flex-wrap:wrap;gap:4px 26px;margin-left:auto}
.nav a{color:var(--cream);font-size:16px;padding:4px 0;border-bottom:2px solid transparent}
.nav a:hover{color:var(--brass-l)}
.nav a[aria-current]{border-bottom-color:var(--brass)}
.crumbs{padding-top:18px;font:600 12px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--cream-m)}
.crumbs a{color:var(--brass-l)}
.crumbs a:hover{color:#fff}
.crumbs .sep{margin:0 10px;color:var(--brass)}

main{display:block;padding-bottom:40px}
section{margin-top:clamp(40px,4.6vw,68px)}
h1{font:700 clamp(36px,4.6vw,72px)/1.06 var(--serif);margin:8px 0 18px}
h1 em{font-style:italic;color:var(--brass-l)}
h2{font:700 clamp(26px,2.6vw,40px)/1.2 var(--serif);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--brass)}
h3{font:700 21px/1.35 var(--serif);margin:24px 0 6px}
.kicker{font:600 13px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}
.lead{max-width:40em;font-size:18px;line-height:1.6;color:#DCD3BF}
.page-head{padding-top:14px;padding-bottom:clamp(30px,3.6vw,52px)}
.hand{font:700 21px/1.3 var(--serif);color:var(--wall)}
.num{font:500 16px/1.5 var(--mono)}
.muted{color:var(--muted)}

/* первый экран главной: слева заголовок и цифры, справа ключница */
.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;padding-top:clamp(30px,4.4vw,64px);padding-bottom:clamp(36px,4.6vw,70px)}
.facts{display:flex;flex-wrap:wrap;gap:16px 44px;list-style:none;padding:0;margin:28px 0 0;font-size:15px;line-height:1.4;color:var(--cream-m)}
.facts b{display:block;font:700 34px/1.15 var(--serif);color:var(--brass-l)}
.rack{background:var(--wall-d);border:1px solid rgba(201,164,83,.55);box-shadow:inset 0 0 0 7px var(--wall-d),inset 0 0 0 8px rgba(201,164,83,.4),0 24px 50px rgba(0,0,0,.35);padding:24px 22px 28px}
.rack-h{text-align:center;font:600 12px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--brass);margin-bottom:22px}
.hooks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:34px 0 0;border-top:5px solid var(--brass)}
.ktag{position:relative;background:var(--card);color:var(--ink);border-radius:10px 10px 16px 16px;padding:30px 6px 14px;text-align:center;transform:rotate(var(--r,0deg));transform-origin:50% -34px;box-shadow:0 8px 16px rgba(0,0,0,.35)}
.ktag::before{content:"";position:absolute;top:9px;left:50%;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--wall-d);box-shadow:inset 0 0 0 2px var(--brass)}
.ktag::after{content:"";position:absolute;top:-36px;left:50%;width:2px;height:51px;margin-left:-1px;background:var(--brass)}
.ktag .s{display:block;min-height:1.3em;font:600 11px/1.25 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ktag .d{display:block;margin:6px 0 4px;font:700 22px/1.1 var(--serif);white-space:nowrap}
.ktag .d small{display:block;font:600 11px/1.3 var(--sans);letter-spacing:.04em}
.ktag .p{display:block;font:600 14px/1.2 var(--mono);white-space:nowrap}
.ktag.best{background:var(--wine);color:var(--cream)}
.ktag.best .s{color:#EBCBD0}
.rack-go{margin-top:24px;text-align:center;font-size:15px}
.rack-go a{color:var(--brass-l);border-bottom:1px solid rgba(228,203,138,.45)}
.rack-go a:hover{color:#fff}

/* текст с пометками на полях */
.prose{max-width:46em}
.prose p+p,.prose p+ul,.prose ul+p,.prose p+ol,.prose ol+p{margin-top:16px}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:6px}
.wrap.prose{max-width:1560px}
.wrap.prose>p,.wrap.prose>ul,.wrap.prose>ol{max-width:46em}
.with-margin{display:grid;grid-template-columns:minmax(0,46em) minmax(220px,320px);gap:clamp(24px,4vw,64px);align-items:start}
.margin-note{font:italic 700 23px/1.3 var(--serif);color:var(--wine);border-left:3px solid var(--brass);padding:2px 0 4px 18px}
.margin-note small{display:block;margin-top:8px;font:400 15px/1.5 var(--sans);color:var(--muted)}

/* кнопки: зелёная рамка, основная залита */
.btn{display:inline-block;font:600 14px/1.25 var(--sans);color:var(--wall);border:1.5px solid var(--wall);border-radius:999px;background:transparent;padding:9px 16px;white-space:nowrap;text-align:center;cursor:pointer}
.btn:hover{background:var(--wall);color:var(--cream)}
.btn-main{background:var(--wall);color:var(--cream);font-size:15px;padding:12px 22px}
.btn-main:hover{background:var(--wall-d);color:var(--cream)}
.stamp{display:inline-block;margin-left:6px;padding:4px 7px;border-radius:3px;background:var(--wine);color:var(--cream);font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;vertical-align:1px}

/* бланк гостя: поля, галочки и переключатели */
.ticks{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 18px;border:0;margin:0;padding:0}
.ticks legend{float:left;margin-right:4px;padding:0;color:var(--muted)}
.tick{display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}
.tick input{position:absolute;opacity:0;width:1px;height:1px}
.tick i{position:relative;display:inline-block;width:18px;height:18px;border:1.5px solid var(--ink);border-radius:3px;background:#fff;flex:none}
.tick input:checked+i{background:var(--wall);border-color:var(--wall);box-shadow:inset 0 0 0 3px #fff}
.tick input[type=radio]+i{border-radius:50%}
.tick input:focus-visible+i{outline:3px solid var(--brass);outline-offset:2px}
.blank{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;color:var(--muted)}
.blank input{width:5.6em;font:500 23px/1.3 var(--mono);color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid var(--ink);padding:0 4px 2px;border-radius:0}
.blank-s input{width:2.4em;text-align:center}
.calc-form{display:flex;flex-wrap:wrap;align-items:center;gap:14px 36px;margin-bottom:28px;padding:22px 26px;background:var(--card);border:1px solid var(--edge);box-shadow:inset 0 0 0 5px var(--card),inset 0 0 0 6px var(--edge)}
.tick-own{font-style:italic;color:var(--muted);white-space:normal}

/* расчёт: по счёту на каждый сервис, строки счетов выровнены между собой (subgrid) */
.ledger{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:16px;row-gap:0;padding-top:12px}
.ledger .lg-labels{display:none}
.lg-col{position:relative;display:grid;grid-row:span 6;grid-template-rows:subgrid;min-width:0;margin-bottom:18px;padding:18px 16px 16px;background:var(--card);border:1px solid var(--edge)}
.lg-col>div{min-width:0;padding:4px 0;font-size:15px;line-height:1.45}
.lg-col>div[data-l]{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.lg-col>div[data-l]::before{content:attr(data-l);order:-2;flex:none;color:var(--muted);font:400 14px/1.45 var(--sans);letter-spacing:0}
.lg-col>div[data-l]::after{content:"";order:-1;flex:1 1 auto;min-width:10px;border-bottom:1px dotted var(--dots);transform:translateY(-4px)}
.lg-col>div.lg-h{padding:0 0 10px;font:700 19px/1.25 var(--serif)}
.lg-col>div.js-best{display:block;padding:6px 0}
.lg-col>div.js-best::before{display:block;margin-bottom:2px}
.lg-col>div.js-best::after{display:none}
.js-best b{display:block;font:600 16px/1.4 var(--mono);letter-spacing:.04em;color:var(--ink)}
.js-best small{display:block;font-size:13.5px;line-height:1.4;color:var(--muted)}
.lg-col .num{font:500 16px/1.4 var(--mono)}
.lg-col>div.lg-total{margin-top:8px;padding-top:10px;border-top:3px double var(--ink);font:700 26px/1.15 var(--serif)}
.lg-col>div.lg-total::before{font:400 13px/1.4 var(--sans)}
.lg-col>div.lg-total::after{display:none}
.lg-col>div.js-act{padding-top:14px}
.lg-col .btn{display:block;width:100%;white-space:normal;background:var(--wall);color:var(--cream)}
.lg-col .btn:hover{background:var(--wall-d)}
.lg-col.is-none{color:var(--muted)}
.lg-col.is-none .btn{background:transparent;color:var(--wall)}
.lg-col.is-none .btn:hover{background:var(--wall);color:var(--cream)}
.lg-col .own{flex:0 1 5.4em;width:5.4em;min-width:3.6em;font:500 17px/1.3 var(--mono);color:var(--ink);text-align:right;background:#fff;border:0;border-bottom:1.5px solid var(--ink);padding:2px 4px}
.lg-col.is-best{border-color:var(--wine);box-shadow:0 0 0 2px var(--wine)}
.lg-col.is-best::before{content:"Выгоднее всего";position:absolute;top:-12px;left:14px;padding:6px 10px;background:var(--wine);color:var(--cream);font:600 11px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.lg-col.is-best>div.lg-total{color:var(--wine)}
.rednote{min-height:28px;font:italic 700 21px/1.35 var(--serif);color:var(--wine)}
.calc-note{max-width:52em;margin-top:8px;font-size:15px;line-height:1.6;color:var(--muted)}

/* список кодов: бирки со скидкой */
.reg-filter{margin-bottom:14px}
.reg-wrap{overflow-x:auto}
.reg{width:100%;border-collapse:collapse;border-top:1px solid var(--edge)}
.reg th,.reg td{text-align:left;vertical-align:middle;padding:12px 10px;border-bottom:1px solid var(--edge)}
.reg th{font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;padding-top:10px;padding-bottom:10px}
.reg td{font-size:16px;line-height:1.45}
.reg td.n{width:40px;font:500 14px/1.4 var(--mono);color:var(--muted)}
.reg td.val{white-space:nowrap}
.kt{position:relative;display:inline-block;padding:9px 13px 9px 25px;background:var(--wall);color:var(--cream);border-radius:4px 14px 14px 4px;font:700 18px/1 var(--serif);white-space:nowrap}
.kt::before{content:"";position:absolute;left:9px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--paper)}
.reg td.val small{display:block;margin-top:5px;font-size:13px;color:var(--muted)}
.reg td.till{white-space:nowrap;color:var(--muted)}
.reg td.act{text-align:right}
.reg-arch td{color:var(--muted)}
.reg-arch .kt{background:#8C877B}
.worked{font-size:14px;color:var(--link);white-space:nowrap}
.soon{padding-left:1.2em;max-width:60em}
.soon li+li{margin-top:6px}

/* частые вопросы и соседние разделы */
.faq details{border-bottom:1px solid var(--edge);max-width:60em}
.faq summary{position:relative;cursor:pointer;list-style:none;padding:14px 46px 14px 0;font-weight:600;font-size:18px;line-height:1.45}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;width:28px;height:28px;margin-top:-14px;border:1.5px solid var(--brass);border-radius:50%;font:400 20px/25px var(--sans);text-align:center;color:var(--wall)}
.faq details[open] summary::after{content:"−"}
.faq details p{padding:0 0 16px}
.related ul{list-style:none;padding:0;max-width:60em;border-top:1px solid var(--edge)}
.related li{padding:10px 0;border-bottom:1px solid var(--edge)}
.related a{font-weight:600}

/* таблицы в тексте */
.tbl-wrap{overflow-x:auto}
.tbl{border-collapse:collapse;width:100%;background:var(--card)}
.tbl th,.tbl td{border:1px solid var(--edge);padding:10px 14px;text-align:left;vertical-align:top;line-height:1.5}
.tbl th{font:600 12px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--head)}
.tbl td:first-child{font-weight:600}
.tbl-num td.ok{font:500 15px/1.5 var(--mono);color:var(--wall);white-space:nowrap}
.tbl-num td.no{font-style:italic;color:var(--muted);white-space:nowrap}

/* карточка с показателями (поиск на странице сравнения) */
.card{align-self:start;background:var(--card);border:1px solid var(--edge);padding:6px 20px 12px}
.card .cap{font:600 12px/36px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--edge)}
.row{display:flex;gap:12px;align-items:baseline;padding:6px 0;border-bottom:1px dotted var(--dots)}
.row span{font-size:15px;color:var(--muted)}
.row .hand{margin-left:auto;text-align:right}

/* окно кода */
.modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,43,36,.62)}
.modal[hidden]{display:none}
html.is-locked{overflow:hidden}
.modal-box{position:relative;width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow:auto;background:var(--card);border-top:6px solid var(--brass);box-shadow:0 24px 60px rgba(0,0,0,.35);padding:20px 26px 22px}
.modal-x{position:absolute;right:8px;top:6px;border:0;background:none;font:400 32px/1 var(--sans);color:var(--muted);cursor:pointer;padding:4px 8px}
.cm-svc{font:600 12px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cm-title{font:700 25px/1.25 var(--serif);margin:4px 34px 8px 0}
.cm-cond{font-size:15px;line-height:1.55;color:var(--muted)}
.cm-code{display:flex;align-items:center;gap:12px;margin-top:16px}
.cm-codebox{flex:1;font:600 26px/1 var(--mono);letter-spacing:.08em;text-align:center;padding:14px 10px;border:2px dashed var(--wall);color:var(--wall);background:#fff;user-select:all}
.cm-copy{font:600 14px/1.2 var(--sans);border:1.5px solid var(--wall);border-radius:999px;background:transparent;color:var(--wall);padding:11px 16px;cursor:pointer}
.cm-copy:hover{background:var(--wall);color:var(--cream)}
.cm-status{min-height:30px;margin-top:6px;font:italic 700 19px/30px var(--serif);color:var(--wine)}
.cm-how{font-size:15px;line-height:1.55;margin-bottom:14px}
.cm-go{display:block;background:var(--wall);color:var(--cream);font-size:15px;padding:13px}
.cm-go:hover{background:var(--wall-d);color:var(--cream)}
.cm-ad{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.cm-vote{margin-top:14px;font-weight:600}
.cm-vote button{font:600 13px/1.2 var(--sans);border:1.5px solid var(--wall);border-radius:999px;background:transparent;color:var(--wall);padding:6px 14px;margin-left:8px;cursor:pointer}

/* подвал: та же зелёная стена */
.foot{margin-top:clamp(56px,6vw,90px);background:var(--wall);color:var(--cream-m);border-top:3px double var(--brass);padding:30px 0 34px;font-size:15px;line-height:1.6}
.foot-in{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:28px 48px}
.foot-name{font:700 22px/1.3 var(--serif);color:var(--cream);margin-bottom:8px}
.foot-h{font:600 12px/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:10px}
.foot ul{list-style:none;padding:0}
.foot li+li{margin-top:4px}
.foot a{color:var(--cream)}
.foot a:hover{color:var(--brass-l)}

/* сравнение цен на один объект */
.cmp-form select{max-width:min(12em,68vw);font:500 19px/1.3 var(--mono);color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid var(--ink);padding:0 4px 2px}
.cmp-form input[type=date]{width:9em;font:500 18px/1.3 var(--mono);color:var(--ink);background:transparent;border:0;border-bottom:1.5px solid var(--ink);padding:0 2px 2px}
.cmp-status{max-width:640px;margin:6px 0 12px}
.cmp-find{margin:4px 0 14px;flex-wrap:wrap;white-space:normal}
.cmp-find input{width:min(14em,100%);font:500 18px/1.3 var(--mono)}
.cmp-link{flex:1 1 100%;flex-wrap:wrap;white-space:normal}
.cmp-link input{flex:1 1 20em;width:auto;min-width:0;font:500 18px/1.3 var(--mono)}
.cmp-or{flex:1 1 100%;font-style:italic;color:var(--muted)}
.cmp-table td{vertical-align:top}
.cmp-table td small{display:block;font-size:13.5px;line-height:1.4;color:var(--muted)}
.cmp-table td b{font-weight:600}
.cmp-p .num{font:600 17px/1.5 var(--mono)}
.cmp-p small b{font:600 15px/1.4 var(--mono);color:var(--ink)}
.cmp-p .btn{margin-top:6px;font-size:13px;padding:5px 12px}
.cmp-p.is-win small b{color:var(--wine);border-bottom:2px solid var(--wine)}
.cmp-p.is-none{color:var(--muted);text-align:center}
.cmp-w{font-weight:600;color:var(--wine);white-space:nowrap}
.cmp-table td.act{white-space:nowrap}
.cmp-btns .btn{margin:0 8px 8px 0}

@media (max-width:1100px){
  .hero,.with-margin{grid-template-columns:1fr}
  .ledger{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot-in{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:16px}
  .nav{margin-left:0;gap:2px 18px}
  .nav a{font-size:15px}
  .calc-form{padding:18px 16px}
  .ledger{grid-template-columns:minmax(0,1fr)}
  .reg thead{display:none}
  .reg,.reg tbody,.reg tr,.reg td{display:block}
  .reg tr{border-bottom:1px solid var(--edge);padding:12px 0}
  .reg td{border:0;padding:3px 0;white-space:normal}
  .reg td.n{display:none}
  .reg td[data-l]::before{content:attr(data-l) ": ";color:var(--muted)}
  .reg td.val[data-l]::before{content:none}
  .reg td.act{text-align:left;padding-top:8px}
  .cmp-table td.is-none{display:none}
  .foot-in{grid-template-columns:1fr}
}
@media (max-width:640px){
  .facts{display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:10px 22px;font-size:13.5px}
  .facts b{font-size:28px}
  .rack{padding:20px 12px 22px}
  .hooks{gap:6px;padding-top:30px}
  .ktag{padding:26px 2px 10px;border-radius:8px 8px 12px 12px;transform-origin:50% -30px}
  .ktag::after{top:-32px;height:46px}
  .ktag .s{font-size:9px;letter-spacing:.02em}
  .ktag .d{font-size:16px}
  .ktag .d small{font-size:9px;letter-spacing:0}
  .ktag .p{font-size:10.5px}
}
/* атрибут hidden сильнее любых display у классов */
[hidden]{display:none!important}
