/* ═══════════════════════════════════════════════════════════════
   RIMM Hébergement v7 — Frontend CSS
   Aesthetic: Kerkennah · Mediterranean · World Music · Editorial
   Fonts: Cormorant Garamond (display) + Barlow (body) + Barlow Condensed (labels)
═══════════════════════════════════════════════════════════════ */

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

.rimm-heb {
  --rh-sand:     #E8D5B0; --rh-sand-lt:  #F5EDD8; --rh-sand-dk:  #C4A96A;
  --rh-sea:      #2A6B7C; --rh-sea-lt:   #4A9BAD; --rh-sea-dp:   #1A4552;
  --rh-terra:    #C4622D; --rh-terra-lt: #E07A45;
  --rh-olive:    #5C6B3A;
  --rh-ink:      #1C1810; --rh-ink-soft: #3D3526;
  --rh-cream:    #FAF5EC; --rh-white:    #FEFCF8;
  --rh-fd: 'Cormorant Garamond', Georgia, serif;
  --rh-fb: 'Barlow', sans-serif;
  --rh-fc: 'Barlow Condensed', sans-serif;
  font-family: var(--rh-fb); color: var(--rh-ink); background: transparent; position: relative;
}
/* Targeted reset — strips theme button chrome without nuking our own styles */
.rimm-heb button { box-sizing:border-box; outline:none; -webkit-tap-highlight-color:transparent; }
.rimm-heb button:focus { outline:none; }
.rimm-heb button:focus-visible { outline:none; }
.rimm-heb *, .rimm-heb *::before, .rimm-heb *::after { box-sizing: border-box; }

.rh-step { display: none; padding: clamp(28px,4vw,48px) 0 clamp(44px,6vw,68px); animation: rhIn .38s ease both; }
.rh-step.active { display: block; }
@keyframes rhIn { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }

/* PROGRESS */
.rh-progress { display:flex; align-items:flex-start; justify-content:center; gap:0; padding:28px 12px 40px; max-width:560px; margin:0 auto; }
.rh-progress-step { display:flex; flex-direction:column; align-items:center; gap:8px; flex:1; position:relative; }
.rh-progress-step::before { content:''; position:absolute; top:14px; left:calc(-50% + 14px); right:calc(50% + 14px); height:1px; background:rgba(196,169,106,.22); transition:background .5s; }
.rh-progress-step:first-child::before { display:none; }
.rh-progress-step.done::before { background:var(--rh-terra); }
.rh-progress-step.active::before { background:linear-gradient(to right,var(--rh-terra),rgba(196,98,45,.4)); }
.rh-progress-dot { width:28px; height:28px; border-radius:50%; border:1.5px solid rgba(196,169,106,.3); background:var(--rh-cream); display:flex; align-items:center; justify-content:center; font-family:var(--rh-fc); font-size:0.58rem; font-weight:600; color:rgba(196,169,106,.6); position:relative; z-index:1; transition:all .3s cubic-bezier(.4,0,.2,1); }
.rh-progress-step.active .rh-progress-dot { border-color:var(--rh-terra); background:var(--rh-terra); color:#fff; box-shadow:0 0 0 5px rgba(196,98,45,.12),0 2px 8px rgba(196,98,45,.3); }
.rh-progress-step.done .rh-progress-dot { border-color:var(--rh-terra); background:var(--rh-terra); color:#fff; }
.rh-progress-label { font-family:var(--rh-fc); font-size:0.5rem; font-weight:500; letter-spacing:0.2em; text-transform:uppercase; color:rgba(196,169,106,.5); text-align:center; transition:color .3s; }
.rh-progress-step.active .rh-progress-label { color:var(--rh-terra); font-weight:700; }
.rh-progress-step.done .rh-progress-label { color:var(--rh-ink-soft); }

/* TYPOGRAPHY */
.rh-step-header { margin-bottom:clamp(24px,4vw,40px); }
.rh-section-eyebrow { font-family:var(--rh-fc); font-weight:500; font-size:0.62rem; letter-spacing:0.36em; text-transform:uppercase; color:var(--rh-sea); margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.rh-section-eyebrow::after { content:''; width:32px; height:1px; background:var(--rh-sea-lt); opacity:.4; }
.rh-title { font-family:var(--rh-fd); font-weight:700; font-size:clamp(2rem,5vw,3.2rem); color:var(--rh-ink); line-height:1.0; margin-bottom:4px; }
.rh-title em { font-style:italic; color:var(--rh-terra); }
.rh-subtitle { font-family:var(--rh-fc); font-size:0.64rem; font-weight:500; letter-spacing:0.28em; text-transform:uppercase; color:var(--rh-sea); margin-top:10px; display:block; opacity:.8; }

.rh-back { display:inline-flex; align-items:center; gap:8px; background:var(--rh-sea-dp); border:none; color:var(--rh-sand-lt); font-family:var(--rh-fc); font-size:0.62rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; padding:10px 18px 10px 14px; margin-bottom:22px; border-radius:2px; cursor:pointer; transition:background .2s,gap .2s,box-shadow .2s; box-shadow:0 2px 10px rgba(26,69,82,.22); }
.rh-back::before { content:'←'; transition:transform .2s; }
.rh-back:hover { background:var(--rh-sea); color:#fff; gap:12px; box-shadow:0 4px 16px rgba(26,69,82,.32); }
.rh-back:hover::before { transform:translateX(-3px); }

/* BUTTONS */
.rh-btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; background:var(--rh-terra); color:#fff; font-family:var(--rh-fc); font-weight:700; font-size:0.78rem; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; padding:14px 28px; border-radius:2px; border:none; cursor:pointer; transition:background .22s,transform .22s,box-shadow .22s; box-shadow:0 4px 16px rgba(196,98,45,.25); }
.rh-btn:hover { background:var(--rh-terra-lt); color:#fff; text-decoration:none; transform:translateY(-2px); box-shadow:0 8px 24px rgba(196,98,45,.35); }
.rh-btn-submit { width:100%; padding:18px; margin-top:32px; font-size:0.86rem; letter-spacing:0.22em; }
.rh-btn-secondary { background:transparent; border:1px solid rgba(28,24,16,.18); color:var(--rh-ink-soft); box-shadow:none; }
.rh-btn-secondary:hover { border-color:var(--rh-ink); color:var(--rh-ink); background:rgba(28,24,16,.03); transform:none; box-shadow:none; }
.rh-btn-sea { background:var(--rh-sea-dp); box-shadow:0 4px 16px rgba(26,69,82,.28); }
.rh-btn-sea:hover { background:var(--rh-sea); }
.rh-btn-ext { background:var(--rh-sea-dp); width:100%; justify-content:center; box-shadow:0 3px 14px rgba(26,69,82,.28); }
.rh-btn-ext:hover { background:var(--rh-sea); color:#fff; text-decoration:none; }
.rh-btn-pay { background:var(--rh-sea-dp); padding:18px 44px; margin-top:10px; font-size:0.86rem; animation:rhPayPulse 2.8s ease-in-out infinite; }
.rh-btn-pay:hover { background:var(--rh-sea); animation:none; color:#fff; }
@keyframes rhPayPulse { 0%,100%{box-shadow:0 4px 16px rgba(26,69,82,.28)} 50%{box-shadow:0 4px 28px rgba(26,69,82,.5)} }

/* CATEGORY CARDS — entire card is the button */
.rh-categories-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:22px; }
.rh-category-card {
  position:relative; display:flex; flex-direction:column;
  background:var(--rh-white); border:1px solid rgba(196,169,106,.2); border-radius:3px; overflow:hidden;
  cursor:pointer; text-align:left; padding:0; width:100%;
  transition:transform .32s cubic-bezier(.4,0,.2,1),box-shadow .32s,border-color .32s;
  box-shadow:0 2px 16px rgba(28,24,16,.07); -webkit-appearance:none; appearance:none; font-family:var(--rh-fb);
  -webkit-tap-highlight-color:transparent; color:var(--rh-ink);
}
/* Category cards are <div> elements — no theme button override needed */
.rh-category-card:not([data-disabled]):hover { transform:translateY(-7px); box-shadow:0 22px 52px rgba(28,24,16,.15); border-color:rgba(196,98,45,.4); }
.rh-category-card:focus { outline:none !important; }
.rh-category-card:focus-visible { outline:2px solid var(--rh-sea) !important; outline-offset:2px; }
.rh-category-card[data-disabled],.rh-cat-empty { opacity:.44; cursor:not-allowed; filter:grayscale(.3); }
.rh-category-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(to bottom,var(--rh-terra-lt),var(--rh-terra)); transform:scaleY(0); transform-origin:bottom; transition:transform .35s cubic-bezier(.4,0,.2,1); }
.rh-category-card:not([data-disabled]):hover::before { transform:scaleY(1); }

.rh-cat-image { width:100%; height:185px; overflow:hidden; position:relative; }
.rh-cat-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .65s cubic-bezier(.4,0,.2,1); }
.rh-category-card:not([data-disabled]):hover .rh-cat-image img { transform:scale(1.08); }
.rh-cat-image::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(26,69,82,.6) 0%,transparent 55%); pointer-events:none; }

.rh-cat-icon { width:100%; height:160px; background:linear-gradient(145deg,var(--rh-sea-dp) 0%,var(--rh-sea) 60%,var(--rh-sea-lt) 100%); display:flex; align-items:center; justify-content:center; font-size:4rem; position:relative; overflow:hidden; }
.rh-cat-icon::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(-45deg,rgba(255,255,255,.03) 0,rgba(255,255,255,.03) 1px,transparent 1px,transparent 10px); }

.rh-cat-body { padding:22px 24px 26px; flex:1; position:relative; }
.rh-cat-body h3 { font-family:var(--rh-fd); font-weight:700; font-size:clamp(1.4rem,2.8vw,1.7rem); color:var(--rh-ink); margin-bottom:7px; line-height:1.0; transition:color .22s; }
.rh-category-card:not([data-disabled]):hover .rh-cat-body h3 { color:var(--rh-terra); }
.rh-cat-desc { font-size:0.82rem; font-weight:300; color:var(--rh-ink-soft); line-height:1.85; margin-bottom:16px; }
.rh-cat-meta { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.rh-cat-badge { font-family:var(--rh-fc); font-size:0.56rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; padding:4px 12px; border-radius:1px; }
.rh-cat-badge-ok { background:rgba(42,107,124,.08); border:1px solid rgba(42,107,124,.22); color:var(--rh-sea-dp); }
.rh-cat-badge-empty { background:rgba(196,98,45,.07); border:1px solid rgba(196,98,45,.2); color:var(--rh-terra); }
.rh-cat-arrow { position:absolute; bottom:22px; right:22px; width:34px; height:34px; border-radius:50%; background:var(--rh-terra); color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.9rem; font-weight:700; opacity:0; transform:translateX(-8px) scale(.85); transition:opacity .25s,transform .25s; }
.rh-category-card:not([data-disabled]):hover .rh-cat-arrow { opacity:1; transform:translateX(0) scale(1); }

/* HOTEL CARDS — entire card clickable */
.rh-hotels-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; }
.rh-hotel-card {
  background:var(--rh-white); border:1px solid rgba(196,169,106,.18); border-radius:3px; overflow:hidden;
  box-shadow:0 2px 14px rgba(28,24,16,.07); display:flex; flex-direction:column;
  transition:transform .32s cubic-bezier(.4,0,.2,1),box-shadow .32s,border-color .32s;
  position:relative; cursor:pointer;
}
.rh-hotel-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(28,24,16,.13); border-color:rgba(196,169,106,.4); }
.rh-hotel-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(to bottom,var(--rh-terra-lt),var(--rh-terra)); transform:scaleY(0); transform-origin:bottom; transition:transform .35s cubic-bezier(.4,0,.2,1); }
.rh-hotel-card:hover::before { transform:scaleY(1); }

.rh-hotel-img { overflow:hidden; position:relative; }
.rh-hotel-img img { width:100%; height:210px; object-fit:cover; display:block; transition:transform .55s cubic-bezier(.4,0,.2,1); }
.rh-hotel-card:hover .rh-hotel-img img { transform:scale(1.06); }
.rh-hotel-img::after { content:''; position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(to top,rgba(26,69,82,.52),transparent); pointer-events:none; }
.rh-hotel-img-placeholder { width:100%; height:150px; background:linear-gradient(145deg,var(--rh-sea-dp) 0%,var(--rh-sea) 70%); display:flex; align-items:center; justify-content:center; font-size:3rem; position:relative; overflow:hidden; }
.rh-hotel-img-placeholder::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(60deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 16px); }

.rh-hotel-body { padding:24px 26px 26px; flex:1; display:flex; flex-direction:column; }
.rh-hotel-body h3 { font-family:var(--rh-fd); font-weight:700; font-size:clamp(1.25rem,2.5vw,1.6rem); color:var(--rh-ink); margin-bottom:5px; line-height:1.05; transition:color .22s; }
.rh-hotel-card:hover .rh-hotel-body h3 { color:var(--rh-terra); }
.rh-hotel-desc { font-size:0.8rem; font-weight:300; color:var(--rh-ink-soft); line-height:1.85; margin-bottom:14px; }
.rh-mode-badge { display:inline-flex; align-items:center; gap:5px; font-family:var(--rh-fc); font-size:0.52rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; padding:3px 10px; border-radius:1px; margin-bottom:12px; }
.rh-mode-internal { background:rgba(42,107,124,.08); border:1px solid rgba(42,107,124,.22); color:var(--rh-sea); }
.rh-mode-external { background:rgba(92,107,58,.08); border:1px solid rgba(92,107,58,.22); color:var(--rh-olive); }
.rh-divider { height:1px; background:linear-gradient(to right,rgba(196,169,106,.3),transparent); margin:12px 0; }
.rh-hotel-meta { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.rh-hotel-meta span,.rh-hotel-meta a { font-size:0.88rem; font-weight:400; color:var(--rh-ink); display:flex; align-items:center; gap:7px; text-decoration:none; }
.rh-hotel-meta a { color:var(--rh-sea); transition:color .2s; }
.rh-hotel-meta a:hover { color:var(--rh-sea-lt); text-decoration:underline; }
.rh-sold-out-banner { text-align:center; background:rgba(196,98,45,.05); border:1px solid rgba(196,98,45,.18); color:var(--rh-terra); font-family:var(--rh-fc); font-size:0.56rem; font-weight:600; letter-spacing:0.22em; text-transform:uppercase; padding:11px; border-radius:1px; margin-top:auto; }
.rh-hotel-cta { margin-top:auto; }
.rh-hotel-cta .rh-btn { width:100%; }
.rh-hotel-arrow { position:absolute; top:18px; right:18px; width:34px; height:34px; border-radius:50%; background:rgba(196,98,45,.9); color:#fff; display:flex; align-items:center; justify-content:center; font-size:0.9rem; font-weight:700; opacity:0; transform:translateY(-6px) scale(.85); transition:opacity .25s,transform .25s; box-shadow:0 3px 12px rgba(196,98,45,.4); }
.rh-hotel-card:hover .rh-hotel-arrow { opacity:1; transform:translateY(0) scale(1); }

/* ROOM CARDS */
.rh-rooms-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
.rh-room-card { background:var(--rh-white); border:1px solid rgba(196,169,106,.18); border-radius:3px; overflow:hidden; box-shadow:0 2px 12px rgba(28,24,16,.07); display:flex; flex-direction:column; transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s,border-color .3s; position:relative; cursor:pointer; }
.rh-room-card:not(.rh-sold-out):hover { transform:translateY(-6px); box-shadow:0 18px 44px rgba(28,24,16,.13); border-color:rgba(196,169,106,.4); }
.rh-room-card.rh-sold-out { opacity:.46; filter:grayscale(.25); cursor:default; }
.rh-room-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(to bottom,var(--rh-terra-lt),var(--rh-terra)); transform:scaleY(0); transform-origin:bottom; transition:transform .35s cubic-bezier(.4,0,.2,1); }
.rh-room-card:not(.rh-sold-out):hover::before { transform:scaleY(1); }
.rh-room-top { background:linear-gradient(145deg,var(--rh-sea-dp) 0%,var(--rh-sea) 80%,#3D8FA3 100%); padding:24px 22px 20px; position:relative; min-height:96px; overflow:hidden; }
.rh-room-top::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(-45deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 12px); }
.rh-room-top h4 { font-family:var(--rh-fd); font-weight:700; font-size:clamp(1.1rem,2.2vw,1.35rem); color:var(--rh-sand-lt); margin-bottom:6px; padding-right:90px; line-height:1.15; position:relative; }
.rh-room-desc-top { font-size:0.7rem; font-weight:300; color:rgba(255, 253, 208, 1) !important; line-height:1.65; position:relative; }
.rh-room-price-badge { position:absolute; top:18px; right:18px; background:var(--rh-terra); color:#fff; font-family:var(--rh-fc); font-weight:700; font-size:0.88rem; letter-spacing:0.04em; padding:6px 13px; border-radius:1px; white-space:nowrap; box-shadow:0 3px 12px rgba(196,98,45,.4); }
.rh-room-body { padding:18px 22px 22px; flex:1; display:flex; flex-direction:column; gap:16px; }
.rh-room-tags { display:flex; flex-wrap:wrap; gap:6px; }
.rh-tag { display:inline-flex; align-items:center; gap:4px; font-family:var(--rh-fc); font-size:0.56rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; padding:4px 10px; border-radius:1px; background:var(--rh-sand-lt); border:1px solid rgba(196,169,106,.35); color:var(--rh-ink-soft); }
.rh-tag-stock-ok  { background:rgba(92,107,58,.08);  border-color:rgba(92,107,58,.28);  color:var(--rh-olive); }
.rh-tag-stock-low { background:rgba(196,169,106,.18); border-color:rgba(196,169,106,.45); color:#7A5C1E; }
.rh-tag-sold      { background:rgba(196,98,45,.07);   border-color:rgba(196,98,45,.22);   color:var(--rh-terra); }
.rh-room-cta { margin-top:auto; }
.rh-room-cta .rh-btn { width:100%; }

/* FORM */
.rh-booking-summary { margin-bottom:28px; }
.rh-summary { display:flex; flex-wrap:wrap; gap:0; background:linear-gradient(135deg,var(--rh-sea-dp) 0%,var(--rh-sea) 100%); border-radius:2px; padding:22px 28px; position:relative; overflow:hidden; }
.rh-summary::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(60deg,rgba(255,255,255,.025) 0,rgba(255,255,255,.025) 1px,transparent 1px,transparent 20px); pointer-events:none; }
.rh-summary-item { display:flex; flex-direction:column; gap:4px; padding:0 24px 0 0; margin-right:24px; border-right:1px solid rgba(232,213,176,.15); position:relative; }
.rh-summary-item:last-child { border-right:none; padding-right:0; margin-right:0; }
.rh-summary-label { font-family:var(--rh-fc); font-size:0.5rem; font-weight:500; letter-spacing:0.26em; text-transform:uppercase; color:rgba(232,213,176,.4); }
.rh-summary-value { font-family:var(--rh-fd); font-weight:600; font-size:1.05rem; color:var(--rh-sand-lt); line-height:1.1; }
.rh-summary-value.accent { color:var(--rh-sand-dk); }
.rh-form-section { background:var(--rh-white); border:1px solid rgba(196,169,106,.2); border-radius:2px; padding:clamp(18px,4vw,26px); margin-bottom:14px; box-shadow:0 1px 8px rgba(28,24,16,.04); }
.rh-form-section h3 { font-family:var(--rh-fc); font-weight:700; font-size:0.62rem; letter-spacing:0.26em; text-transform:uppercase; color:var(--rh-sea); margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.rh-form-section h3::after { content:''; flex:1; height:1px; background:rgba(42,107,124,.18); }
.rh-person-section { background:var(--rh-white); border:1px solid rgba(196,169,106,.2); border-left:3px solid var(--rh-terra); border-radius:2px; padding:clamp(16px,3.5vw,22px); margin-bottom:12px; box-shadow:0 1px 6px rgba(28,24,16,.04); }
.rh-person-section h3 { font-family:var(--rh-fc); font-weight:700; font-size:0.62rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--rh-terra); margin-bottom:18px; }
.rh-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:520px){.rh-form-row{grid-template-columns:1fr}}
.rh-form-group { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.rh-form-group:last-child { margin-bottom:0; }
.rh-form-group label { font-family:var(--rh-fc); font-size:0.62rem; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; color:var(--rh-ink-soft); }
.rh-req { color:var(--rh-terra); }
.rh-form-group input,.rh-form-group select,.rh-form-group textarea { background:var(--rh-cream); border:1px solid rgba(196,169,106,.4); border-radius:2px; padding:12px 15px; color:var(--rh-ink); font-family:var(--rh-fb); font-size:0.88rem; font-weight:300; width:100%; outline:none; transition:border-color .22s,box-shadow .22s,background .22s; -webkit-appearance:none; }
.rh-form-group input:focus,.rh-form-group select:focus,.rh-form-group textarea:focus { border-color:var(--rh-sea); box-shadow:0 0 0 3px rgba(42,107,124,.1); background:var(--rh-white); }
.rh-form-group input::placeholder,.rh-form-group textarea::placeholder { color:rgba(28,24,16,.22); }
#rh-capacity-note { font-size:0.65rem; color:var(--rh-sand-dk); font-family:var(--rh-fc); letter-spacing:0.08em; }
.rh-ticket-warning { display:none; margin-top:8px; background:rgba(196,98,45,.08); border:1px solid rgba(196,98,45,.25); border-left:3px solid var(--rh-terra); border-radius:2px; padding:12px 16px; font-family:var(--rh-fb); font-size:0.82rem; font-weight:400; color:var(--rh-terra); line-height:1.7; }
.rh-ticket-warning.visible { display:block; }

/* SUCCESS */
.rh-success-box { text-align:center; max-width:580px; margin:0 auto; padding:clamp(44px,7vw,68px) clamp(20px,5vw,32px); }
.rh-success-icon-wrap { width:80px; height:80px; border-radius:50%; background:linear-gradient(135deg,rgba(92,107,58,.12),rgba(42,107,124,.08)); border:1.5px solid rgba(92,107,58,.3); display:flex; align-items:center; justify-content:center; font-size:2.2rem; margin:0 auto 24px; animation:rhSuccessPop .5s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes rhSuccessPop { from{transform:scale(.4);opacity:0} to{transform:scale(1);opacity:1} }
.rh-success-box h2 { font-family:var(--rh-fd); font-weight:700; font-style:italic; font-size:clamp(1.6rem,4vw,2.4rem); color:var(--rh-ink); margin-bottom:12px; }
.rh-success-ref { font-family:var(--rh-fc); font-size:0.64rem; font-weight:500; letter-spacing:0.28em; text-transform:uppercase; color:var(--rh-sand-dk); margin-bottom:20px; }
.rh-success-email-note { font-size:0.82rem; font-weight:300; color:var(--rh-ink-soft); padding:16px 22px; margin-bottom:28px; background:var(--rh-sand-lt); border-radius:2px; border:1px solid rgba(196,169,106,.32); line-height:1.85; }
#rh-pay-btn-wrap { display:flex; flex-direction:column; align-items:center; gap:12px; }

/* LOADING / EMPTY */
.rh-loading { text-align:center; padding:56px 20px; color:var(--rh-sand-dk); font-family:var(--rh-fc); font-size:0.64rem; letter-spacing:0.28em; text-transform:uppercase; display:flex; align-items:center; justify-content:center; gap:14px; }
.rh-loading::before,.rh-loading::after { content:''; width:28px; height:1px; background:rgba(196,169,106,.45); }
.rh-empty { color:var(--rh-sand-dk); font-family:var(--rh-fc); font-size:0.68rem; letter-spacing:0.16em; text-transform:uppercase; padding:32px 0; text-align:center; display:flex; align-items:center; justify-content:center; gap:12px; }
.rh-empty::before,.rh-empty::after { content:''; width:22px; height:1px; background:rgba(196,169,106,.45); }

/* RESPONSIVE */
@media(max-width:640px){
  .rh-categories-grid,.rh-hotels-grid,.rh-rooms-grid { grid-template-columns:1fr; gap:16px; }
  .rh-summary { flex-direction:column; gap:12px; padding:18px 20px; }
  .rh-summary-item { border-right:none; border-bottom:1px solid rgba(232,213,176,.15); padding:0 0 10px; margin:0 0 2px; }
  .rh-summary-item:last-child { border-bottom:none; padding-bottom:0; }
  .rh-room-top { padding:18px 16px; }
  .rh-room-top h4 { padding-right:80px; font-size:1rem; }
  .rh-room-price-badge { font-size:0.8rem; padding:5px 10px; top:16px; right:14px; }
  .rh-progress { padding:20px 8px 32px; }
  .rh-progress-label { font-size:0.46rem; }
  .rh-hotel-img img { height:170px; }
  .rh-cat-image { height:150px; }
}
@media(max-width:380px){
  .rh-progress-dot { width:22px; height:22px; font-size:0.54rem; }
  .rh-hotel-body { padding:18px; }
  .rh-cat-body { padding:16px 18px 18px; }
  .rh-title { font-size:1.7rem; }
}
