@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Jost:wght@300;400;500;600&display=swap');

/* =========================================================
   Idylle Thermale — "Nuit dorée"
   Dark, refined luxury system. Loaded after style.css on:
   index / espace-thermal / piscine-privee / suite-thermale /
   admin / seed-prices. Overrides the shared header/footer too.
   ========================================================= */
:root{
  --ink:        #0a0a0c;   /* page ground */
  --ink-2:      #101013;   /* raised panel */
  --ink-3:      #16161a;   /* raised panel 2 */
  --ivory:      #f2efe6;   /* primary text */
  --soft:       #b9b3a6;   /* secondary text */
  --faint:      #7c766b;   /* tertiary text */
  --gold:       #c8a86a;   /* accent */
  --gold-bright:#e7d3a4;   /* accent hi */
  --gold-deep:  #9a7d45;
  --line:       rgba(200,168,106,.20);   /* hairline */
  --line-soft:  rgba(242,239,230,.10);
  --ring:       rgba(231,211,164,.55);

  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Jost", "Century Gothic", "Futura", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --max: 1180px;
  --pad: clamp(18px, 4vw, 40px);
}

/* ---------- base ---------- */
.ix-page{
  margin:0;
  background:
    radial-gradient(1100px 520px at 78% -6%, rgba(200,168,106,.10), transparent 62%),
    radial-gradient(900px 600px at 8% 6%, rgba(231,211,164,.05), transparent 60%),
    var(--ink);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  letter-spacing:.005em;
}
.ix-page a{ color:inherit; text-decoration:none; }
.ix-page ::selection{ background:rgba(200,168,106,.28); color:#fff; }
.ix-page img{ max-width:100%; display:block; }

h1,h2,h3,.ix-h1{ font-family:var(--serif); font-weight:600; line-height:1.12; letter-spacing:.005em; }

.ix-main{ max-width:var(--max); margin:0 auto; padding:clamp(28px,6vw,64px) var(--pad) 96px; }

/* small tracked label */
.ix-eyebrow{
  font-family:var(--sans);
  font-size:11px; font-weight:500;
  letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold-bright);
  display:inline-flex; align-items:center; gap:12px;
}
.ix-eyebrow::before{ content:""; width:34px; height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }

.ix-h1{ font-size:clamp(2.1rem, 5.2vw, 3.4rem); margin:.5rem 0 1rem; font-weight:600; }
.ix-lead{ color:var(--soft); font-size:1.02rem; line-height:1.8; max-width:58ch; font-weight:300; }

/* hairline divider */
.ix-rule{ height:1px; border:0; background:linear-gradient(90deg,transparent,var(--line),transparent); margin:0; }

/* ---------- shared header (overrides style.css .topbar) ---------- */
.ix-page .topbar{
  position:sticky; top:0; z-index:60;
  background:rgba(10,10,12,.55);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.ix-page .topbar__inner{
  max-width:var(--max); margin:0 auto;
  padding:18px var(--pad);
  display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:22px;
}
.ix-page .topbar__left{ display:flex; }
.ix-page .topbar__right{ display:flex; justify-content:flex-end; align-items:center; gap:16px; }
.ix-lang{ display:inline-flex; align-items:center; }
.ix-lang [data-lang]{
  background:transparent; border:0; cursor:pointer; padding:4px 8px;
  font-family:var(--sans); font-size:.66rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--faint); transition:color .3s ease; position:relative;
}
.ix-lang [data-lang] + [data-lang]::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:11px; background:var(--line); }
.ix-lang [data-lang]:hover{ color:var(--soft); }
.ix-lang [data-lang].is-active{ color:var(--gold-bright); }
.ix-page .brand{ display:inline-flex; align-items:center; gap:14px; }
.ix-page .brand__logo{ width:40px !important; height:40px !important; max-width:40px !important; object-fit:contain; opacity:.96; }
.ix-page .brand__text{ display:grid; gap:3px; line-height:1; }
.ix-page .brand__name{
  font-family:var(--serif); font-weight:600; font-size:1.12rem;
  letter-spacing:.24em; text-transform:uppercase; color:var(--ivory);
}
.ix-page .brand__tagline{
  font-family:var(--sans); font-size:.62rem; font-weight:400;
  letter-spacing:.22em; text-transform:uppercase; color:var(--faint);
}
.ix-page .nav{ display:flex; align-items:center; gap:6px; justify-content:center; flex-wrap:wrap; }
.ix-page .nav__link{
  position:relative;
  font-family:var(--sans); font-size:.72rem; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--soft); padding:10px 14px; border-radius:0;
  transition:color .3s ease;
}
.ix-page .nav__link::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:center; transition:transform .35s ease;
}
.ix-page .nav__link:hover{ color:var(--ivory); background:transparent; }
.ix-page .nav__link:hover::after{ transform:scaleX(1); }
.ix-page .nav__link--cta{ color:var(--gold-bright); border:0; background:transparent; }
.ix-page .nav__link--cta::after{ transform:scaleX(1); background:linear-gradient(90deg,transparent,var(--gold),transparent); }
.ix-page .cart,
.ix-page .ix-acct{
  position:relative; width:42px; height:42px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line); background:transparent; color:var(--soft);
  transition:border-color .3s ease, color .3s ease, transform .3s ease;
}
.ix-page .cart:hover,
.ix-page .ix-acct:hover{ border-color:var(--ring); color:var(--ivory); transform:translateY(-1px); }
.ix-page .ix-acct span{ font-size:15px; filter:grayscale(1) opacity(.85); }
.ix-page .cart__icon{ font-size:15px; filter:grayscale(1) opacity(.85); }
.ix-page .cart__count{
  position:absolute; top:-6px; right:-6px; min-width:19px; height:19px; padding:0 5px;
  border-radius:999px; display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-size:10px; font-weight:600;
  background:var(--gold); color:#17110a; border:2px solid var(--ink);
}
@media (max-width:940px){
  .ix-page .topbar__inner{ grid-template-columns:1fr auto; grid-template-areas:"brand cart" "nav nav"; gap:14px; }
  .ix-page .topbar__left{ grid-area:brand; min-width:0; }
  .ix-page .topbar__right{ grid-area:cart; }
  .ix-page .nav{ grid-area:nav; justify-content:flex-start; gap:2px; }
  .ix-page .brand__tagline{ display:none; }
}
@media (max-width:560px){
  .ix-page .topbar__inner{ grid-template-columns:1fr; grid-template-areas:"brand" "acts" "nav"; gap:12px; }
  .ix-page .topbar__right{ grid-area:acts; justify-content:flex-start; }
  .ix-page .nav{
    grid-area:nav; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none;
    margin:0 calc(-1 * var(--pad)); padding:0 var(--pad);
  }
  .ix-page .nav::-webkit-scrollbar{ display:none; }
  .ix-page .nav__link{ white-space:nowrap; padding:8px 10px; }
  .ix-page .brand__name{ font-size:1rem; letter-spacing:.14em; }
}

/* ---------- panels ---------- */
.ix-card{
  position:relative;
  background:linear-gradient(180deg, rgba(22,22,26,.9), rgba(14,14,17,.9));
  border:1px solid var(--line);
  border-radius:2px;
}
.ix-card--frame::before{
  content:""; position:absolute; inset:10px; border:1px solid var(--line-soft); pointer-events:none;
}

/* ---------- carousel ---------- */
.ix-carousel{
  position:relative; overflow:hidden;
  border:1px solid var(--line); border-radius:2px; background:#0c0c0e;
  min-height:520px;
}
.ix-slides{ height:100%; display:flex; transition:transform .9s cubic-bezier(.16,1,.3,1); will-change:transform; }
.ix-slide{ min-width:100%; height:560px; position:relative; }
.ix-slide img{ width:100%; height:100%; object-fit:cover; filter:contrast(1.03) saturate(.98) brightness(.92); }
.ix-slide::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,8,10,.15) 0%, rgba(8,8,10,0) 30%, rgba(8,8,10,.55) 100%),
            linear-gradient(90deg, rgba(8,8,10,.45), transparent 55%);
}
.ix-caption{
  position:absolute; left:clamp(20px,4vw,40px); bottom:clamp(20px,4vw,40px); right:auto; max-width:70%;
  font-family:var(--serif); font-weight:500; font-size:1.15rem; letter-spacing:.02em;
  color:var(--ivory); padding-left:18px; border-left:1px solid var(--gold);
}
.ix-controls{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(10px,2vw,20px); pointer-events:none; }
.ix-controls button{
  pointer-events:auto; width:46px; height:46px; border-radius:50%;
  border:1px solid rgba(242,239,230,.35); background:rgba(10,10,12,.3); color:var(--ivory);
  font-family:var(--serif); font-size:20px; cursor:pointer;
  transition:background .3s ease, border-color .3s ease; backdrop-filter:blur(6px);
}
.ix-controls button:hover{ background:rgba(200,168,106,.22); border-color:var(--ring); }
.ix-dots{ position:absolute; left:50%; transform:translateX(-50%); bottom:20px; display:flex; gap:10px; }
.ix-dot{ width:26px; height:2px; border:0; padding:0; cursor:pointer; background:rgba(242,239,230,.28); transition:background .3s ease; }
.ix-dot.is-active{ background:var(--gold-bright); }
@media (max-width:980px){ .ix-carousel{ min-height:360px; } .ix-slide{ height:380px; } .ix-caption{ max-width:88%; font-size:1rem; } }

/* ---------- area hero ---------- */
.ix-hero{ display:grid; grid-template-columns:1.25fr .9fr; gap:clamp(16px,3vw,34px); align-items:stretch; margin-top:14px; }
.ix-hero .ix-side{
  padding:clamp(24px,3.4vw,44px);
  background:linear-gradient(180deg, rgba(22,22,26,.92), rgba(13,13,16,.92));
  border:1px solid var(--line);
  display:flex; flex-direction:column; justify-content:center;
}
.ix-hero .ix-side .ix-h1{ font-size:clamp(1.9rem,3.6vw,2.7rem); margin:.6rem 0 1rem; }
@media (max-width:980px){ .ix-hero{ grid-template-columns:1fr; } }

/* amenities list (replaces emoji legend) */
.ix-amenities{ list-style:none; margin:22px 0 0; padding:0; }
.ix-amenities li{
  display:flex; align-items:center; gap:16px;
  padding:12px 0; border-top:1px solid var(--line-soft);
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); font-weight:400;
}
.ix-amenities li:last-child{ border-bottom:1px solid var(--line-soft); }
.ix-amenities li::before{ content:""; width:6px; height:6px; flex:0 0 6px; background:var(--gold); transform:rotate(45deg); }

/* ---------- description block ---------- */
.ix-desc{ margin-top:clamp(20px,3vw,34px); padding:clamp(26px,3.6vw,48px); }
.ix-desc h2{ font-size:clamp(1.6rem,3vw,2.1rem); margin:0 0 1rem; }
.ix-desc p{ color:var(--soft); line-height:1.85; font-weight:300; margin:0 0 1rem; max-width:70ch; }
.ix-desc ul{ margin:1.2rem 0 0; padding:0; list-style:none; display:grid; gap:0; }
.ix-desc ul li{ padding:14px 0; border-top:1px solid var(--line-soft); color:var(--soft); font-weight:300; }
.ix-desc ul li:last-child{ border-bottom:1px solid var(--line-soft); }
.ix-desc strong{ color:var(--ivory); font-weight:500; }

/* ---------- booking widget ---------- */
.ix-book{ margin-top:clamp(20px,3vw,34px); padding:clamp(26px,3.6vw,48px); }
.ix-book h2{ font-size:clamp(1.5rem,2.8vw,2rem); margin:0 0 .35rem; }
.ix-book .ix-sub{ color:var(--faint); font-size:.82rem; letter-spacing:.1em; text-transform:uppercase; margin-bottom:28px; }
.ix-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,3vw,36px); align-items:end; }
.ix-grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:820px){ .ix-grid, .ix-grid--4{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .ix-grid, .ix-grid--4{ grid-template-columns:1fr; } }

.ix-field{ display:flex; flex-direction:column; gap:10px; }
.ix-field label{
  font-family:var(--sans); font-size:10px; font-weight:500;
  letter-spacing:.24em; text-transform:uppercase; color:var(--faint);
}
.ix-field input, .ix-field select{
  width:100%; height:42px; padding:0 2px;
  background:transparent; color:var(--ivory);
  border:0; border-bottom:1px solid var(--line);
  font-family:var(--sans); font-size:.95rem; font-weight:300;
  outline:none; border-radius:0;
  appearance:none; -webkit-appearance:none;
  transition:border-color .3s ease;
}
.ix-field input:focus, .ix-field select:focus{ border-bottom-color:var(--ring); }
.ix-field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:right 6px center, right 1px center;
  background-size:5px 5px, 5px 5px; background-repeat:no-repeat;
  padding-right:22px; cursor:pointer;
}
.ix-field select option{ background:#15151b; color:var(--ivory); }
.ix-field input[type="date"]::-webkit-calendar-picker-indicator{ filter:invert(.8) sepia(1) saturate(2) hue-rotate(5deg) brightness(.9); cursor:pointer; }

.ix-priceline{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
}
.ix-priceline > span:first-child{
  font-family:var(--sans); font-size:10px; font-weight:500; letter-spacing:.24em; text-transform:uppercase; color:var(--faint);
}
.ix-priceline .amt{ font-family:var(--serif); font-weight:600; font-size:1.7rem; color:var(--gold-bright); letter-spacing:.01em; }

.ix-actions{ margin-top:32px; padding-top:26px; border-top:1px solid var(--line-soft); display:flex; gap:14px; flex-wrap:wrap; align-items:center; }

.ix-btn{
  --b:var(--gold);
  position:relative; overflow:hidden; isolation:isolate;
  height:52px; padding:0 34px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold-bright); background:transparent;
  border:1px solid var(--b); border-radius:0; cursor:pointer;
  transition:color .4s ease;
}
.ix-btn::before{
  content:""; position:absolute; inset:0; background:var(--gold);
  transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.16,1,.3,1); z-index:-1;
}
.ix-btn:hover{ color:#15100a; }
.ix-btn:hover::before{ transform:scaleX(1); }
.ix-btn--primary{ background:var(--gold); color:#15100a; border-color:var(--gold); }
.ix-btn--primary::before{ background:var(--gold-bright); }
.ix-btn--primary:hover{ color:#15100a; }
.ix-btn:disabled{ opacity:.35; cursor:not-allowed; }
.ix-btn:disabled::before{ transform:scaleX(0); }

.ix-note{ margin-top:22px; padding:16px 20px; font-size:.9rem; line-height:1.6; color:var(--soft); display:none; border-left:1px solid var(--gold); background:rgba(200,168,106,.05); }
.ix-note.is-on{ display:block; }
.ix-note--ok{ border-left-color:#8fbf9a; background:rgba(143,191,154,.06); color:#dbeee0; }
.ix-note--warn{ border-left-color:var(--gold-bright); background:rgba(231,211,164,.06); color:#f4ecda; }
.ix-note--err{ border-left-color:#c98b8b; background:rgba(201,139,139,.07); color:#f2dede; }
.ix-note .ix-btn{ height:38px; padding:0 18px; font-size:10px; margin:10px 0 0 8px; }

/* ---------- home ---------- */
.ix-cover{
  position:relative; margin:14px 0 clamp(30px,6vw,64px);
  min-height:min(74vh,640px); display:flex; align-items:flex-end;
  border:1px solid var(--line); overflow:hidden;
}
.ix-cover__bg{ position:absolute; inset:0; }
.ix-cover__bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.5) contrast(1.05) saturate(.95); }
.ix-cover__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,10,12,.2), rgba(10,10,12,.75)); }
.ix-cover__inner{ position:relative; padding:clamp(28px,5vw,64px); max-width:720px; }
.ix-cover h1{ font-size:clamp(2.6rem,7vw,4.6rem); font-weight:600; margin:1rem 0 1.2rem; }
.ix-cover .ix-lead{ color:#d8d2c6; }
.ix-cover .ix-btn{ margin-top:30px; }

.ix-hub{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .ix-hub{ grid-template-columns:1fr; } }
.ix-hub__card{ position:relative; background:var(--ink); display:flex; flex-direction:column; }
.ix-hub__img{ height:300px; overflow:hidden; position:relative; }
.ix-hub__img img{ width:100%; height:100%; object-fit:cover; filter:brightness(.72) saturate(.95); transition:transform 1.1s cubic-bezier(.16,1,.3,1), filter .6s ease; }
.ix-hub__card:hover .ix-hub__img img{ transform:scale(1.06); filter:brightness(.82) saturate(1); }
.ix-hub__body{ padding:clamp(22px,2.6vw,34px); display:flex; flex-direction:column; gap:14px; flex:1; }
.ix-hub__body h3{ font-size:1.5rem; font-weight:600; margin:0; }
.ix-hub__body p{ margin:0; color:var(--soft); font-size:.92rem; line-height:1.75; font-weight:300; flex:1; }
.ix-hub__link{
  align-self:flex-start; margin-top:6px;
  font-family:var(--sans); font-size:.68rem; font-weight:500; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold-bright); display:inline-flex; align-items:center; gap:12px;
}
.ix-hub__link::after{ content:""; width:26px; height:1px; background:var(--gold); transition:width .35s ease; }
.ix-hub__card:hover .ix-hub__link::after{ width:44px; }

.ix-intro{ margin-top:clamp(30px,6vw,72px); text-align:center; max-width:660px; margin-inline:auto; }
.ix-intro .ix-eyebrow{ justify-content:center; }
.ix-intro .ix-eyebrow::after{ content:""; width:34px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); }
.ix-intro h2{ font-size:clamp(1.7rem,3.4vw,2.4rem); margin:1rem 0; font-weight:600; }
.ix-intro p{ color:var(--soft); line-height:1.9; font-weight:300; }

/* ---------- shared footer (overrides style.css .site-footer) ---------- */
.ix-page .site-footer{ background:#08080a; border-top:1px solid var(--line); color:var(--soft); font-family:var(--sans); }
.ix-page .footer-wrap{ max-width:var(--max); margin:0 auto; padding:clamp(44px,6vw,72px) var(--pad) 26px; }
.ix-page .footer-top{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:clamp(24px,4vw,56px); }
@media (max-width:900px){ .ix-page .footer-top{ grid-template-columns:1fr; } }
.ix-page .footer-title{ font-family:var(--sans); font-size:.66rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-bright); margin:0 0 20px; }
.ix-page .footer-title-center{ text-align:left; }
.ix-page .footer-list, .ix-page .footer-navlist{ list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.ix-page .footer-link, .ix-page .contact-text{ font-size:.86rem; font-weight:300; color:var(--soft); letter-spacing:.02em; }
.ix-page .footer-link{ transition:color .3s ease; } .ix-page .footer-link:hover{ color:var(--ivory); }
.ix-page .footer-contact-icons .contact-item{ display:grid; grid-template-columns:16px 1fr; gap:14px; align-items:center; }
.ix-page .contact-icon{ width:14px; height:14px; opacity:.5; filter:invert(1); }
.ix-page .map-card{ max-width:280px; aspect-ratio:4/3; border:1px solid var(--line); overflow:hidden; filter:grayscale(1) contrast(.9) brightness(.8); }
.ix-page .map-card iframe{ width:100%; height:100%; border:0; }
.ix-page .footer-bottom{ margin-top:clamp(36px,5vw,56px); padding-top:24px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 2fr 1fr; gap:18px; align-items:center; }
@media (max-width:900px){ .ix-page .footer-bottom{ grid-template-columns:1fr; text-align:center; } .ix-page .footer-social,.ix-page .footer-admin{ justify-content:center; } }
.ix-page .footer-social{ display:flex; gap:12px; }
.ix-page .social-btn{ width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); transition:border-color .3s ease, transform .3s ease; }
.ix-page .social-btn:hover{ border-color:var(--ring); transform:translateY(-1px); }
.ix-page .social-btn img{ width:15px; height:15px; opacity:.6; filter:invert(1); }
.ix-page .footer-legal{ text-align:center; display:grid; gap:8px; }
.ix-page .footer-company, .ix-page .footer-copy{ font-size:.74rem; font-weight:300; color:var(--faint); letter-spacing:.04em; }
.ix-page .footer-links{ font-size:.74rem; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.ix-page .legal-link{ color:var(--soft); text-decoration:none; border-bottom:1px solid transparent; }
.ix-page .legal-link:hover{ border-bottom-color:var(--line); }
.ix-page .dot{ opacity:.4; }
.ix-page .footer-admin{ display:flex; justify-content:flex-end; gap:10px; }
.ix-page .admin-link{ font-size:.64rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--faint); padding:8px 14px; border:1px solid var(--line); border-radius:0; transition:color .3s ease, border-color .3s ease; }
.ix-page .admin-link:hover{ color:var(--gold-bright); border-color:var(--ring); }

/* ---------- admin ---------- */
.ix-admin{ max-width:var(--max); margin:0 auto; padding:clamp(24px,5vw,52px) var(--pad) 90px; }
.ix-admin .ix-eyebrow{ margin-bottom:6px; }
.ix-tabbar{ display:flex; gap:2px; margin:18px 0 26px; border-bottom:1px solid var(--line); }
.ix-tab{
  height:46px; padding:0 22px; background:transparent; border:0; border-bottom:1px solid transparent;
  font-family:var(--sans); font-size:.68rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--faint); cursor:pointer; transition:color .3s ease, border-color .3s ease; margin-bottom:-1px;
}
.ix-tab:hover{ color:var(--soft); }
.ix-tab.is-active{ color:var(--gold-bright); border-bottom-color:var(--gold); }
.ix-panel{ display:none; } .ix-panel.is-active{ display:block; }

.ix-pricegroup{ margin-bottom:14px; padding:clamp(18px,2.4vw,28px); }
.ix-pricegroup h3{ font-size:1.2rem; font-weight:600; color:var(--gold-bright); margin:0 0 16px; }

.ix-photohint{ margin:0 0 14px; font-size:12px; line-height:1.5; color:var(--soft); }
.ix-photogrid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:12px; }
.ix-photo{ position:relative; aspect-ratio:4/3; border:1px solid var(--line); overflow:hidden; background:#0c0c0e; }
.ix-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.ix-photo__dim{
  position:absolute; left:6px; bottom:6px; padding:2px 6px; border-radius:3px;
  font-family:var(--sans); font-size:10px; font-weight:500; letter-spacing:.02em;
  background:rgba(10,10,12,.72); color:rgba(242,239,230,.9);
}
.ix-photo__dim.is-small{ background:rgba(201,120,120,.85); color:#fff; }
.ix-photo--default{ opacity:.6; }
.ix-photo--default img{ filter:grayscale(.4); }
.ix-photo__del{
  position:absolute; top:6px; right:6px; width:26px; height:26px; border-radius:50%;
  border:1px solid rgba(255,255,255,.35); background:rgba(10,10,12,.7); color:#fff;
  cursor:pointer; font-size:12px; line-height:1; display:grid; place-items:center; transition:background .2s ease;
}
.ix-photo__del:hover{ background:rgba(201,120,120,.85); border-color:transparent; }
.ix-pricerow{ display:grid; grid-template-columns:1fr 120px 110px; gap:16px; align-items:center; padding:12px 0; border-top:1px solid var(--line-soft); }
.ix-pricerow:last-child{ border-bottom:1px solid var(--line-soft); }
.ix-pricerow label{ font-size:.9rem; font-weight:300; color:var(--soft); }
.ix-pricerow input{ height:38px; padding:0 10px; background:transparent; color:var(--ivory); border:1px solid var(--line); border-radius:0; font-family:var(--sans); }
.ix-pricerow input:focus{ outline:none; border-color:var(--ring); }
.ix-pricerow .ix-btn{ height:38px; padding:0 14px; font-size:9px; }

.ix-subtabs, .ix-modes{ display:flex; gap:2px; flex-wrap:wrap; margin-bottom:18px; }
.ix-subtabs{ border-bottom:1px solid var(--line); }
.ix-modes .ix-tab{ height:38px; border:1px solid var(--line); margin:0; }
.ix-modes .ix-tab.is-active{ border-color:var(--gold); color:var(--gold-bright); }

.ix-daygrid{ display:grid; grid-template-columns:72px 1fr; gap:6px 16px; }
.ix-daytime{ font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; color:var(--faint); padding-top:9px; }
.ix-dayslot{ height:32px; border:1px solid var(--line-soft); position:relative; overflow:hidden; }
.ix-dayfill{ position:absolute; inset:0; display:grid; place-items:center; font-family:var(--sans); font-size:.7rem; letter-spacing:.08em; color:var(--ivory); }
.ix-dayfill--green{ background:rgba(143,191,154,.16); }
.ix-dayfill--amber{ background:rgba(231,211,164,.2); }
.ix-dayfill--red{ background:rgba(201,139,139,.22); }

.ix-weekgrid, .ix-monthgrid{ display:grid; gap:2px; background:var(--line); border:1px solid var(--line); }
.ix-weekgrid{ grid-template-columns:repeat(7,1fr); }
.ix-monthgrid{ grid-template-columns:repeat(4,1fr); }
@media (max-width:760px){ .ix-weekgrid{ grid-template-columns:repeat(3,1fr); } .ix-monthgrid{ grid-template-columns:repeat(2,1fr); } }
.ix-cell{ background:var(--ink); padding:14px; min-height:78px; }
.ix-cell .d{ font-family:var(--sans); font-size:.7rem; letter-spacing:.08em; color:var(--faint); }
.ix-cell .n{ font-family:var(--serif); font-size:1.4rem; font-weight:600; color:var(--gold-bright); margin-top:8px; }

.ix-strip{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; background:var(--line); border:1px solid var(--line); margin-bottom:2px; }
.ix-stripcell{ background:var(--ink); padding:8px; min-height:64px; position:relative; }
.ix-stripcell .sd{ font-family:var(--sans); font-size:.66rem; letter-spacing:.06em; color:var(--faint); }
.ix-bar{ position:absolute; left:0; right:0; height:12px; }
.ix-bar--night{ background:#6f4a2e; bottom:20px; }
.ix-bar--day{ background:#3f7d54; bottom:4px; }
.ix-legend{ display:flex; gap:22px; margin:0 0 12px; font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); }
.ix-legend i{ display:inline-block; width:16px; height:9px; margin-right:8px; vertical-align:middle; }
.ix-legend .night{ background:#6f4a2e; } .ix-legend .day{ background:#3f7d54; }

.ix-loginwrap{ max-width:400px; margin:clamp(40px,10vh,110px) auto; padding:clamp(28px,4vw,44px); }
.ix-loginwrap .ix-h1{ font-size:1.6rem; margin:.6rem 0 1.4rem; }
.ix-loginwrap input{ width:100%; height:46px; margin:8px 0; padding:0 14px; background:transparent; color:var(--ivory); border:1px solid var(--line); border-radius:0; font-family:var(--sans); }
.ix-loginwrap input:focus{ outline:none; border-color:var(--ring); }
.ix-msg{ margin-top:14px; font-size:.82rem; letter-spacing:.04em; }
.ix-msg--err{ color:#e2b3b3; } .ix-msg--ok{ color:#b3e2c2; }

/* utility */
.ix-page code{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.85em; color:var(--gold-bright); }
