/* ═══════════════════════════════════════════════
   АКВАЛОО — Конструктор путёвки
   constructor.css  v1.0.0
═══════════════════════════════════════════════ */

.aqc-wrap *, .aqc-wrap *::before, .aqc-wrap *::after { box-sizing: border-box; margin: 0; padding: 0; }

.aqc-wrap {
  --aqc-bg:       #f2f8fb;
  --aqc-brand:    #214151;
  --aqc-mid:      #2d5a70;
  --aqc-lt:       #3a7a97;
  --aqc-accent:   #f5f3e2;
  --aqc-acdk:     #e8e4c8;
  --aqc-white:    #ffffff;
  --aqc-text:     #214151;
  --aqc-textmid:  #3d5f70;
  --aqc-muted:    #6b8fa0;
  --aqc-border:   #d0e4ed;
  --aqc-shadow:   0 4px 24px rgba(33,65,81,.10);
  --aqc-shadowlg: 0 12px 48px rgba(33,65,81,.18);
  --aqc-r:        14px;
  --aqc-rsm:      8px;

  font-family: 'Nunito', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--aqc-bg);
  color: var(--aqc-text);
  width: 100%;
  overflow: hidden;
  border-radius: var(--aqc-r);
  box-shadow: var(--aqc-shadowlg);
}

/* ── HEADER ── */
.aqc-hd {
  background: var(--aqc-brand);
  padding: 0 28px; height: 68px;
  display: flex; align-items: center; justify-content: space-between;
}
.aqc-logo { display: flex; align-items: center; gap: 12px; }
.aqc-logo-ico {
  width: 38px; height: 38px; border-radius: 10px;
  background: rgba(245,243,226,0.15);
  display: flex; align-items: center; justify-content: center; font-size: 22px;
}
.aqc-logo-txt { font-family: 'Cormorant Garamond', Georgia, serif; color: #fff; line-height: 1.15; }
.aqc-logo-name { font-size: 21px; font-weight: 600; letter-spacing: .04em; display: block; }
.aqc-logo-tag  { font-size: 12px; opacity: .6; font-weight: 300; letter-spacing: .06em; display: block; }

/* ── PROGRESS STRIP ── */
.aqc-strip {
  background: var(--aqc-brand);
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 0 28px 16px;
}
.aqc-prog {
  display: flex; align-items: center;
  overflow-x: auto; scrollbar-width: none;
}
.aqc-prog::-webkit-scrollbar { display: none; }
.aqc-si {
  display: flex; align-items: center; gap: 8px; flex-shrink: 0;
  cursor: pointer; padding: 6px 14px 6px 6px;
  border-radius: 32px; transition: background .2s;
}
.aqc-si:hover { background: rgba(255,255,255,.06); }
.aqc-dot {
  width: 32px; height: 32px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; transition: all .3s; flex-shrink: 0;
}
.aqc-dot.done    { background: rgba(245,243,226,.9); color: var(--aqc-brand); }
.aqc-dot.active  { background: var(--aqc-accent); color: var(--aqc-brand); box-shadow: 0 0 0 4px rgba(245,243,226,.25); }
.aqc-dot.pending { background: rgba(255,255,255,.12); color: rgba(255,255,255,.35); }
.aqc-slbl { font-size: 13px; font-weight: 600; white-space: nowrap; transition: color .3s; }
.aqc-si.done    .aqc-slbl { color: rgba(245,243,226,.65); }
.aqc-si.active  .aqc-slbl { color: var(--aqc-accent); }
.aqc-si.pending .aqc-slbl { color: rgba(255,255,255,.3); }
.aqc-conn { flex:1; min-width:12px; max-width:28px; height:1px; background:rgba(255,255,255,.12); flex-shrink:0; }

/* price row */
.aqc-pr {
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(0,0,0,.2); border-radius: 10px;
  padding: 10px 18px; margin-top: 12px; gap: 12px; flex-wrap: wrap;
}
.aqc-pr-left { display: flex; align-items: baseline; gap: 10px; }
.aqc-pr-lbl  { font-size: 14px; color: rgba(255,255,255,.5); font-weight: 500; white-space: nowrap; }
.aqc-pr-val  {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 32px; font-weight: 600; color: var(--aqc-accent); transition: all .35s;
}
.aqc-pr-val .cur { font-size: 18px; opacity: .75; }
.aqc-pr-note { font-size: 13px; color: rgba(255,255,255,.4); }
.aqc-pr-tag  { background: var(--aqc-accent); color: var(--aqc-brand); padding: 5px 14px; border-radius: 20px; font-size: 12px; font-weight: 700; display: none; }
.aqc-pr-tag.show { display: block; }

/* ── BODY ── */
.aqc-body {
  padding: 32px 28px 40px;
  background: var(--aqc-bg);
}

/* panels */
.aqc-panel { display: none; animation: aqcFade .35s ease; }
.aqc-panel.on { display: block; }
@keyframes aqcFade {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}

.aqc-s-title {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(32px, 4vw, 46px);
  font-weight: 400; line-height: 1.15; color: var(--aqc-brand); margin-bottom: 6px;
}
.aqc-s-title em { font-style: italic; color: var(--aqc-lt); }
.aqc-s-sub { font-size: 15px; color: var(--aqc-muted); margin-bottom: 28px; line-height: 1.55; }
.aqc-div  { width: 52px; height: 3px; background: linear-gradient(90deg,var(--aqc-lt),var(--aqc-brand)); border-radius: 2px; margin-bottom: 28px; }

/* ── ROOM CARDS ── */
.aqc-rooms { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 16px; }

.aqc-rc {
  background: var(--aqc-white); border-radius: var(--aqc-r); overflow: hidden;
  cursor: pointer; border: 2.5px solid transparent;
  transition: all .28s; box-shadow: var(--aqc-shadow); position: relative;
}
.aqc-rc:hover { transform: translateY(-4px); box-shadow: var(--aqc-shadowlg); }
.aqc-rc.sel { border-color: var(--aqc-brand); box-shadow: 0 0 0 4px rgba(33,65,81,.12),var(--aqc-shadow); }
.aqc-rc.sel::after {
  content:'✓'; position:absolute; top:12px; right:12px;
  width:30px; height:30px; background:var(--aqc-brand); color:#fff;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:15px; font-weight:700; z-index:3;
}
.aqc-rc-img {
  width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  background: linear-gradient(135deg,#c5dde8,#5c9ab5);
  position: relative;
}
.aqc-rc-img-ph {
  width:100%; aspect-ratio:4/3;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg,#c5dde8,#5c9ab5);
  color:rgba(255,255,255,.5); font-size:14px;
  position: relative;
}
.aqc-rc-badge {
  position:absolute; bottom:10px; left:10px;
  background:rgba(33,65,81,.8); backdrop-filter:blur(8px);
  color:#fff; padding:5px 12px; border-radius:20px;
  font-size:12px; font-weight:700; letter-spacing:.04em;
}
.aqc-rc-body { padding: 18px; }
.aqc-rc-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:23px; font-weight:600; color:var(--aqc-brand); margin-bottom:10px; }
.aqc-rc-specs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.aqc-sp { background:var(--aqc-accent); color:var(--aqc-brand); padding:4px 10px; border-radius:6px; font-size:13px; font-weight:700; }
.aqc-rc-desc { font-size:14px; color:var(--aqc-textmid); line-height:1.55; margin-bottom:14px; }
.aqc-rc-pr-row { display:flex; align-items:baseline; justify-content:space-between; border-top:1px solid var(--aqc-border); padding-top:12px; gap:8px; }
.aqc-rc-price { font-family:'Cormorant Garamond',Georgia,serif; font-size:28px; font-weight:600; color:var(--aqc-brand); }
.aqc-rc-pr-note { font-size:13px; color:var(--aqc-muted); text-align:right; line-height:1.4; }
.aqc-room-prompt { text-align:center; padding:14px 0 2px; font-size:14px; color:var(--aqc-muted); font-style:italic; }

/* ── MEAL CARDS ── */
.aqc-meals { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }

.aqc-mc {
  background:var(--aqc-white); border-radius:var(--aqc-r);
  cursor:pointer; border:2.5px solid transparent;
  transition:all .28s; box-shadow:var(--aqc-shadow); position:relative; overflow:hidden;
}
.aqc-mc::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--aqc-border); transition:background .3s; }
.aqc-mc.sel::before { background:var(--aqc-brand); }
.aqc-mc.sel { border-color:var(--aqc-brand); box-shadow:0 0 0 4px rgba(33,65,81,.1),var(--aqc-shadow); }
.aqc-mc:hover { transform:translateY(-3px); box-shadow:var(--aqc-shadowlg); }
.aqc-mc-chk {
  position:absolute; top:14px; right:14px;
  width:26px; height:26px; border-radius:50%;
  background:var(--aqc-brand); color:#fff;
  font-size:13px; font-weight:700; display:none; align-items:center; justify-content:center;
}
.aqc-mc.sel .aqc-mc-chk { display:flex; }
.aqc-mc-img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
.aqc-mc-img-ph { width:100%; aspect-ratio:16/9; background:linear-gradient(135deg,#c5dde8,#5c9ab5); }
.aqc-mc-body { padding:20px 20px 22px; }
.aqc-mc-code { font-family:'Cormorant Garamond',Georgia,serif; font-size:38px; font-weight:600; color:var(--aqc-brand); line-height:1; }
.aqc-mc-name { font-size:15px; font-weight:700; color:var(--aqc-lt); margin:4px 0 14px; }
.aqc-mc-list { list-style:none; margin-bottom:18px; }
.aqc-mc-list li { font-size:14px; color:var(--aqc-textmid); padding:4px 0 4px 16px; position:relative; line-height:1.45; }
.aqc-mc-list li::before { content:'—'; position:absolute; left:0; color:var(--aqc-lt); }
.aqc-mc-extra { font-family:'Cormorant Garamond',Georgia,serif; font-size:23px; color:var(--aqc-brand); font-weight:600; }
.aqc-mc-extra span { font-size:13px; font-family:inherit; color:var(--aqc-muted); font-weight:400; font-family:'Nunito',sans-serif; }

/* ── TREATMENT ── */
.aqc-treat-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
.aqc-tc {
  background:var(--aqc-white); border-radius:var(--aqc-r); padding:28px 24px;
  cursor:pointer; border:2.5px solid transparent;
  transition:all .28s; box-shadow:var(--aqc-shadow); text-align:center;
}
.aqc-tc:hover { transform:translateY(-3px); box-shadow:var(--aqc-shadowlg); }
.aqc-tc.sel { border-color:var(--aqc-brand); box-shadow:0 0 0 4px rgba(33,65,81,.1),var(--aqc-shadow); }
.aqc-tc-name { font-family:'Cormorant Garamond',Georgia,serif; font-size:25px; font-weight:600; color:var(--aqc-brand); margin-bottom:10px; }
.aqc-tc-desc { font-size:14px; color:var(--aqc-textmid); line-height:1.6; margin-bottom:16px; }
.aqc-tc-price { font-family:'Cormorant Garamond',Georgia,serif; font-size:23px; font-weight:600; color:var(--aqc-brand); }
.aqc-tc-price span { font-size:13px; font-family:'Nunito',sans-serif; color:var(--aqc-muted); font-weight:400; }
.aqc-treat-det { background:var(--aqc-white); border-radius:var(--aqc-r); padding:24px; border:2px solid var(--aqc-border); display:none; }
.aqc-treat-det.on { display:block; }
.aqc-treat-det-ttl { font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--aqc-brand); margin-bottom:16px; }
.aqc-treat-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:10px; }
.aqc-ti { display:flex; align-items:flex-start; gap:8px; font-size:14px; color:var(--aqc-text); line-height:1.4; }
.aqc-tdot { width:7px; height:7px; border-radius:50%; background:var(--aqc-lt); flex-shrink:0; margin-top:5px; }

/* ── SUMMARY ── */
.aqc-dates { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; margin-bottom:20px; }
.aqc-dbox { background:var(--aqc-white); border-radius:var(--aqc-rsm); padding:12px 16px; box-shadow:var(--aqc-shadow); border:1.5px solid var(--aqc-border); }
.aqc-dbox-lbl { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--aqc-muted); margin-bottom:5px; font-weight:700; }
.aqc-dbox input, .aqc-dbox select {
  width:100%; border:none; outline:none;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:700; color:var(--aqc-brand); background:transparent; cursor:pointer;
}
.aqc-nbanner { background:var(--aqc-accent); border-left:4px solid var(--aqc-brand); padding:10px 16px; border-radius:0 8px 8px 0; font-size:15px; color:var(--aqc-brand); font-weight:700; margin-bottom:20px; }

.aqc-sum { background:var(--aqc-white); border-radius:var(--aqc-r); box-shadow:var(--aqc-shadow); overflow:hidden; margin-bottom:20px; }
.aqc-sum-hd { background:var(--aqc-brand); padding:22px 24px; }
.aqc-sum-hd-lbl { font-size:12px; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:6px; }
.aqc-sum-hd-ttl { font-family:'Cormorant Garamond',Georgia,serif; font-size:30px; font-weight:400; color:#fff; }
.aqc-sum-hd-ttl em { font-style:italic; color:var(--aqc-accent); }
.aqc-sum-rows { padding:0 24px; }
.aqc-sum-row { display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--aqc-border); gap:16px; }
.aqc-sum-row:last-child { border-bottom:none; }
.aqc-sum-rl { display:flex; align-items:center; gap:14px; }
.aqc-sum-ico { width:42px; height:42px; border-radius:10px; background:var(--aqc-accent); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
.aqc-sum-lbl { font-size:12px; color:var(--aqc-muted); text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.aqc-sum-val { font-size:16px; font-weight:700; color:var(--aqc-brand); margin-top:2px; }
.aqc-sum-p { font-family:'Cormorant Garamond',Georgia,serif; font-size:22px; font-weight:600; color:var(--aqc-brand); text-align:right; flex-shrink:0; }
.aqc-sum-total { background:var(--aqc-brand); padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.aqc-sum-total-lbl { font-size:13px; letter-spacing:.07em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.aqc-sum-total-p { font-family:'Cormorant Garamond',Georgia,serif; font-size:44px; font-weight:600; color:var(--aqc-accent); }
.aqc-sum-nights { font-size:14px; color:rgba(255,255,255,.5); margin-top:3px; }
.aqc-sum-period { font-size:19px; font-family:'Cormorant Garamond',Georgia,serif; color:var(--aqc-accent); font-weight:600; }

/* booking buttons */
.aqc-book { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.aqc-btn {
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 20px; border-radius:12px;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:700;
  border:none; cursor:pointer; transition:all .22s; text-decoration:none;
}
.aqc-btn-book { background:var(--aqc-brand); color:#fff; grid-column:1/-1; padding:18px; font-size:17px; box-shadow:0 6px 24px rgba(33,65,81,.32); }
.aqc-btn-book:hover { background:var(--aqc-mid); transform:translateY(-2px); }
.aqc-btn-app  { background:var(--aqc-accent); color:var(--aqc-brand); }
.aqc-btn-app:hover  { background:var(--aqc-acdk); transform:translateY(-1px); }
.aqc-btn-call { background:transparent; color:var(--aqc-brand); border:2px solid var(--aqc-brand); }
.aqc-btn-call:hover { background:var(--aqc-brand); color:#fff; }
.aqc-btn-wa { background:#25D366; color:#fff; }
.aqc-btn-wa:hover { background:#1fb958; transform:translateY(-1px); }

/* nav */
.aqc-nav { display:flex; align-items:center; justify-content:space-between; margin-top:32px; gap:12px; }
.aqc-btn-back {
  background:transparent; border:none;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:600; color:var(--aqc-muted);
  cursor:pointer; padding:10px 14px; border-radius:10px; transition:color .2s;
}
.aqc-btn-back:hover { color:var(--aqc-brand); }
.aqc-btn-next {
  background:var(--aqc-brand); color:#fff;
  padding:15px 32px; border-radius:12px;
  font-family:'Nunito',sans-serif; font-size:16px; font-weight:700;
  border:none; cursor:pointer;
  transition:all .22s; box-shadow:0 4px 18px rgba(33,65,81,.28);
  min-width:200px; text-align:center;
}
.aqc-btn-next:hover { background:var(--aqc-mid); transform:translateY(-2px); }
.aqc-btn-next:disabled { background:var(--aqc-muted); cursor:not-allowed; box-shadow:none; transform:none; opacity:.55; }

/* mobile bar */
.aqc-mob {
  background:var(--aqc-brand); padding:13px 20px;
  display:none; align-items:center; justify-content:space-between; gap:14px;
}
.aqc-mob-lbl { font-size:11px; color:rgba(255,255,255,.45); letter-spacing:.07em; font-weight:700; }
.aqc-mob-price { font-family:'Cormorant Garamond',Georgia,serif; font-size:28px; font-weight:600; color:var(--aqc-accent); }
.aqc-btn-mob { background:var(--aqc-accent); color:var(--aqc-brand); padding:11px 24px; border-radius:10px; font-family:'Nunito',sans-serif; font-size:15px; font-weight:700; border:none; cursor:pointer; transition:all .2s; }
.aqc-btn-mob:hover { background:var(--aqc-acdk); }

/* ── RESPONSIVE ── */
@media (max-width:680px) {
  .aqc-hd { padding:0 16px; height:60px; }
  .aqc-logo-name { font-size:18px; }
  .aqc-strip { padding:0 16px 14px; }
  .aqc-body { padding:20px 16px 28px; }
  .aqc-rooms { grid-template-columns:1fr 1fr; }
  .aqc-meals { grid-template-columns:1fr; }
  .aqc-treat-grid { grid-template-columns:1fr; }
  .aqc-book { grid-template-columns:1fr; }
  .aqc-btn-book { grid-column:1; }
  .aqc-dates { grid-template-columns:1fr 1fr; }
  .aqc-dates .aqc-dg3 { grid-column:1/-1; }
  .aqc-mob { display:flex; }
  .aqc-nav .aqc-btn-next { display:none; }
}
@media (max-width:400px) { .aqc-rooms { grid-template-columns:1fr; } }
@media (min-width:681px) { .aqc-mob { display:none !important; } }
