:root{
  --bg:#ffffff;
  --bg2:#ffffff;
  --card:#ffffff;
  --text:#121212;
  --muted:#5e5e5e;
  --brand:#111111;
  --line:rgba(0,0,0,.08);
  --shadow: 0 14px 40px rgba(0,0,0,.35);
  --radius:18px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: "Georama", "Segoe UI", Arial, sans-serif;
  background: var(--bg);
  color:var(--text);
  position:relative;
  --scroll-y: 0px;
}
body::before,
body::after{
  content:"";
  position:fixed;
  inset:auto;
  pointer-events:none;
  z-index:-1;
  opacity:.6;
  transform: translate3d(0, calc(var(--scroll-y) * 0.05), 0);
}
body::before{
  top:-12vh;
  left:-12vw;
  width:52vw;
  height:52vw;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,203,107,.22), transparent 58%),
    radial-gradient(circle at 70% 60%, rgba(12,35,61,.16), transparent 62%);
  filter: blur(6px);
  animation: drift 18s ease-in-out infinite;
}
body::after{
  right:-10vw;
  bottom:-14vh;
  width:56vw;
  height:56vw;
  background:
    radial-gradient(circle at 30% 30%, rgba(12,35,61,.2), transparent 60%),
    radial-gradient(circle at 60% 70%, rgba(255,203,107,.18), transparent 64%);
  filter: blur(10px);
  animation: drift 22s ease-in-out infinite reverse;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block;border-radius: calc(var(--radius) - 6px);}

.container{width:min(1120px, 92%); margin:0 auto;}
.muted{color:var(--muted)}
.lead{font-size:1.05rem; line-height:1.7}

.site-header{
  position:sticky; top:0; z-index:50;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(14px);
  border-bottom:1px solid var(--line);
  box-shadow: 0 14px 40px rgba(12,35,61,.08);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-name{white-space:nowrap;}
.brand-mark{
  width:46px;height:46px;border-radius:0;
  display:grid;place-items:center;
  background: transparent;
  border:0;
  padding:0;
  box-shadow: none;
}
.brand-mark img{width:100%; height:100%; object-fit:contain; border-radius:0;}
.brand-name{font-weight:700; letter-spacing:.6px; text-transform:uppercase; font-size:.95rem}

.nav{
  display:flex;
  gap:18px;
  align-items:center;
  padding:0;
  background: transparent;
  border:0;
  box-shadow:none;
}
.nav a{
  position:relative;
  padding:8px 2px;
  border-radius:0;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:1.1px;
  font-size:.78rem;
  border:0;
  transition: color .2s ease;
}
.nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-6px;
  height:2px;
  border-radius:999px;
  background: linear-gradient(90deg, transparent, #0c233d, transparent);
  opacity:0;
  transform: scaleX(.4);
  transition: opacity .2s ease, transform .2s ease;
}
.nav a.active, .nav a:hover{
  color:#0c233d;
}
.nav a.active::after, .nav a:hover::after{
  opacity:1;
  transform: scaleX(1);
}

.header-actions{display:flex; gap:12px; align-items:center;}
.lang-switch{display:flex; align-items:center; gap:8px; font-weight:600; font-size:.85rem; color:var(--muted);}
.lang-switch a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid transparent;
}
.lang-switch a.active{color:var(--text); border-color: var(--line); background: rgba(0,0,0,.04);}
.lang-flag{
  width:18px;
  height:12px;
  border-radius:3px;
  display:inline-block;
  border:1px solid rgba(0,0,0,.15);
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}
.lang-flag-es{
  background: linear-gradient(90deg, #d91023 0 33%, #ffffff 33% 66%, #d91023 66% 100%);
}
.lang-flag-en{
  background-color:#ffffff;
  background-image:
    linear-gradient(90deg, transparent 0 40%, #c8102e 40% 60%, transparent 60% 100%),
    linear-gradient(transparent 0 40%, #c8102e 40% 60%, transparent 60% 100%);
}

.burger{
  display:none;
  border:1px solid var(--line);
  background: rgba(0,0,0,.04);
  color:var(--text);
  border-radius:12px;
  padding:10px 12px;
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:1.4px;
  font-size:.7rem;
}

.mobile-nav{
  border-top:1px solid var(--line);
  padding:10px 0;
}
.mobile-nav a{
  display:block;
  padding:12px 4%;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:1.2px;
  font-size:.78rem;
}
.mobile-nav a:hover{color:var(--text); background: rgba(0,0,0,.04);}
.mobile-lang{
  display:flex;
  gap:10px;
  padding:10px 6%;
  border-top:1px solid var(--line);
}
.mobile-lang a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  color:var(--muted);
}
.mobile-lang a.active{
  color:var(--text);
  background: rgba(0,0,0,.04);
}
.mobile-lang{
  display:flex;
  gap:10px;
  padding:10px 6%;
}
.mobile-lang a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  color:var(--muted);
}
.mobile-lang a.active{
  color:var(--text);
  background: rgba(0,0,0,.04);
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 14px;
  border-radius:14px;
  background: #0c233d;
  color:#ffffff;
  font-weight:800;
  border:1px solid rgba(12,35,61,.45);
  box-shadow: 0 12px 28px rgba(12,35,61,.18);
}
.btn:hover{filter:brightness(1.04)}
.btn-ghost{
  background: #ffffff;
  border:1px solid rgba(12,35,61,.2);
  color:#0c233d;
  box-shadow: 0 8px 18px rgba(12,35,61,.12);
}
.btn-small{padding:10px 12px; border-radius:12px; font-weight:800; font-size:.95rem;}
.badge{
  display:inline-flex; padding:8px 10px; border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.05);
  color:var(--muted);
  font-weight:600;
}

.site-main{min-height: 65vh;}
.section{padding:56px 0;}
.section-alt{background: transparent; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section-head{margin-bottom:18px;}
.section-head h2{margin:0 0 8px 0; font-size:1.7rem}
.section-cta{margin-top:18px; display:flex; gap:12px; flex-wrap:wrap;}

.hero{
  position:relative;
  min-height:100vh;
  padding:42px 0;
  display:flex;
  align-items:center;
  color:#ffffff;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 40%, rgba(255,203,107,.18), transparent 45%),
    radial-gradient(circle at 65% 70%, rgba(255,255,255,.08), transparent 45%);
  mix-blend-mode: screen;
  opacity:.6;
  pointer-events:none;
  z-index:1;
  animation: pulse 7.5s ease-in-out infinite;
}
.hero--image{
  background: none;
}
.hero-slides{
  position:absolute;
  inset:0;
  z-index:0;
}
.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition: opacity 1.1s ease;
}
.hero-slide.is-active{
  opacity:1;
}
@media (prefers-reduced-motion: reduce){
  .hero-slide{transition:none;}
}
.hero-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
  border-radius:0;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(120deg, rgba(0,0,0,.72), rgba(0,0,0,.45) 45%, rgba(0,0,0,.65));
  z-index:1;
}
.hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns: 1fr;
  gap:22px;
  align-items:center;
}
.hero-copy h1{font-size:3rem; margin:0 0 10px 0}
.hero .lead{color: rgba(255,255,255,.88)}
.hero .badge{
  border-color: rgba(255,255,255,.35);
  background: rgba(255,255,255,.14);
  color:#ffffff;
}
.hero .btn-ghost{
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.35);
  color:#ffffff;
}
.hero-copy{max-width:680px;}
.hero .container{
  text-align:center;
}
.hero .hero-copy{
  margin:0 auto;
}
.hero h1{
  color:#ffffff;
}
.hero .lead{
  color:rgba(255,255,255,.88);
}
.hero .badge{
  border-color: rgba(255,255,255,.35);
  background: rgba(255,255,255,.18);
  color:#ffffff;
}
.hero .btn{
  background:#0c233d;
  border-color:#0c233d;
  color:#ffffff;
}
.hero .btn-ghost{
  background: rgba(255,203,107,.22);
  border-color: rgba(12,35,61,.35);
  color:#0c233d;
}
.section-head-center{
  text-align:center;
}
.section-head-center h2{
  color:#0c233d;
}
.section-head-center .muted{
  margin-left:auto;
  margin-right:auto;
  max-width: 820px;
}
.cards .btn-small,
.card-spiritual .btn-small{
  background:#0c233d;
  border-color:#0c233d;
  color:#ffffff;
}
.list-card .dot{
  background:#ffcb6b;
}
.list-title{
  color:#0c233d;
}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap; margin:16px 0;}
.hero-actions{justify-content:center;}
.hero-badges{display:flex; gap:10px; flex-wrap:wrap;}

/* Reveal */
.reveal{
  opacity:0;
  transform: translateY(18px) scale(.985);
  transition: opacity .8s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal.is-visible{
  opacity:1;
  transform: translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce){
  .reveal{transition:none; transform:none; opacity:1;}
  body::before,
  body::after,
  .hero::after{animation:none;}
}

@keyframes drift{
  0%,100%{transform: translate3d(-6px, calc(var(--scroll-y) * 0.05), 0) scale(1);}
  50%{transform: translate3d(6px, calc(var(--scroll-y) * 0.08), 0) scale(1.03);}
}
@keyframes pulse{
  0%,100%{opacity:.5; transform: translateY(0);}
  50%{opacity:.85; transform: translateY(-4px);}
}


.page-hero{
  position: relative;
  min-height:400px;
  padding:56px 0 24px;
  border-bottom:1px solid var(--line);
  display:flex;
  align-items:center;
}
.page-hero--image{
  background-image: var(--page-hero-image);
  background-size: cover;
  background-position: center;
}
.page-hero--image::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.06) 45%, rgba(0,0,0,.1));
}
.page-hero--image h1,
.page-hero--image .muted,
.page-hero--image .back-link{
  color:#ffffff;
  text-shadow: 0 10px 24px rgba(0,0,0,.28);
}
.page-hero--image .container{
  position: relative;
  z-index: 1;
}
.page-hero--image .container{
  text-align:center;
}
.page-hero--image .muted{
  margin-left:auto;
  margin-right:auto;
  max-width: 820px;
}
.page-hero h1{margin:0 0 8px 0; font-size:2rem}
.back-link{display:inline-block; margin-bottom:12px; color:var(--muted)}
.back-link:hover{color:var(--text)}

.grid{display:grid; gap:16px;}
.cards{grid-template-columns: repeat(3, minmax(0, 1fr));}
.card{
  background: #ffffff;
  border:1px solid rgba(0,0,0,.08);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: none;
  transition: transform .35s ease, box-shadow .35s ease;
}
.card:hover{
  transform: translateY(-6px) scale(1.01);
  box-shadow: 0 20px 50px rgba(12,35,61,.18);
}
.card-media img{
  width:100%;
  height:200px;
  object-fit: cover;
  border-radius:0;
  transition: transform .6s ease;
}
.card:hover .card-media img{
  transform: scale(1.05);
}
.card-body{padding:16px;}
.card-body{padding:14px;}
.card-title{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.card-title h3{margin:0; font-size:1.15rem}
.pill{
  font-size:.82rem;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  color:var(--muted);
  background: rgba(255,255,255,.04);
  white-space:nowrap;
}
.card-meta{margin:10px 0 12px; color:var(--muted); line-height:1.5;}

.meta-list{margin:10px 0 14px; padding-left:18px; color:var(--muted); line-height:1.7;}
.meta-list strong{color:var(--text); font-weight:800}

.list-cards{grid-template-columns: repeat(2, minmax(0, 1fr));}
.list-card{
  display:flex; gap:12px; align-items:flex-start;
  background: var(--card);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:14px;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.list-card:hover{
  transform: translateY(-4px);
  border-color: rgba(12,35,61,.22);
  box-shadow: 0 16px 36px rgba(12,35,61,.14);
}
.about-essence .lead{
  max-width: 560px;
  margin-bottom:18px;
}
.about-essence-media img{
  box-shadow: 0 18px 45px rgba(12,35,61,.18);
  max-width: 88%;
  margin-left: auto;
}
.mini{grid-template-columns: repeat(3, minmax(0, 1fr)); gap:18px;}
.mini-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
  background: #ffffff;
  border:1px solid rgba(12,35,61,.1);
  border-radius: 18px;
  padding:18px;
  box-shadow: 0 12px 28px rgba(12,35,61,.08);
  transition: transform .2s ease, box-shadow .2s ease;
  min-height: 190px;
}
.mini-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(12,35,61,.12);
}
.mini-icon{
  width:48px;
  height:48px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background: radial-gradient(circle at 30% 30%, #ffdb7a, #f2b84b 60%, #d79c2f 100%);
  color:#0c233d;
  border:1px solid rgba(12,35,61,.12);
  box-shadow: 0 10px 20px rgba(12,35,61,.18);
  flex:0 0 auto;
}
.mini-icon i{font-size:18px;}
.mini-card h3{margin:0 0 4px 0; color:#0c233d; font-size:1.05rem;}
.mini-card p{margin:0; line-height:1.5;}
.list-icon{
  width:44px;
  height:44px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background: linear-gradient(145deg, #0c233d, #0a1a2c);
  color:#ffffff;
  border:1px solid rgba(12,35,61,.35);
  box-shadow: 0 8px 20px rgba(12,35,61,.25);
  flex:0 0 auto;
}
.list-icon i{font-size:18px;}
.dot{width:10px;height:10px;border-radius:99px;background:var(--brand); margin-top:7px;}
.list-title{font-weight:900}

.two-col{display:grid; grid-template-columns: 1fr 1fr; gap:18px; align-items:start;}
.media img{border:0; box-shadow: none; border-radius: var(--radius); height: 360px; object-fit: cover; width: 100%;}

.info-card{
  background: var(--card);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:16px;
}
.contact-card h2{margin:0 0 8px 0;}
.contact-card .muted{margin:0 0 14px 0;}
.contact-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:12px;
}
.contact-item{
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.contact-icon{
  width:40px;
  height:40px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background: #0c233d;
  color:#ffffff;
  box-shadow: 0 10px 22px rgba(12,35,61,.18);
  flex:0 0 auto;
}
.contact-item strong{display:block; color:#0c233d;}
.contact-item a{color:var(--text);}
.contact-item a:hover{color:#0c233d;}
.map-embed{
  margin-top:16px;
  border-radius: 16px;
  overflow:hidden;
  border:1px solid rgba(12,35,61,.12);
  box-shadow: 0 14px 32px rgba(12,35,61,.12);
}
.map-embed iframe{
  width:100%;
  height:260px;
  border:0;
  display:block;
}
.about-mission .info-card{
  text-align:center;
}
.about-mission .info-card h3{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.about-mission .info-card p{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.about-mission .card-body{
  text-align:center;
}
.mission-head{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 10px 0;
}
.mission-icon{
  width:40px;
  height:40px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background: linear-gradient(145deg, #0c233d, #0a1a2c);
  color:#ffffff;
  border:1px solid rgba(12,35,61,.35);
  box-shadow: 0 8px 20px rgba(12,35,61,.2);
  flex:0 0 auto;
}
.mission-icon i{font-size:16px;}
.notice{
  margin-top:16px;
  padding:14px;
  border-radius: var(--radius);
  border:1px dashed rgba(0,0,0,.18);
  background: rgba(0,0,0,.03);
  color: var(--muted);
}

.form{display:grid; gap:12px;}
label{display:grid; gap:8px; font-weight:700; color: var(--text);}
input, textarea{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background: #ffffff;
  color: var(--text);
  outline:none;
}
.form .btn{
  background:#0c233d;
  border-color:#0c233d;
  color:#ffffff;
}
input:focus, textarea:focus{
  border-color: rgba(12,35,61,.45);
  box-shadow: 0 0 0 4px rgba(12,35,61,.12);
}

.room-grid{display:grid; grid-template-columns: 1.1fr .9fr; gap:18px; align-items:start;}
.room-layout{
  display:grid;
  grid-template-columns: 7fr 3fr;
  gap:20px;
  align-items:start;
}
.room-content{
  display:grid;
  gap:18px;
}
.room-form{
  position: sticky;
  top: 100px;
}
.room-img{width:100%; height: 420px; object-fit:cover; border:0; border-radius: var(--radius); box-shadow: none;}
.room-note{margin-top:10px; font-size:.95rem}
.room-cta{margin-top:12px}

.site-footer{
  position: relative;
  border-top:1px solid rgba(255,255,255,.12);
  padding:36px 0 0;
  background: #0c233d;
  color: #ffffff;
}
.site-footer::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr .9fr .9fr .9fr;
  gap:24px;
  align-items:start;
}
.footer-brand-block{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer-logo{
  width:90px;
  height:90px;
  object-fit:contain;
}
.footer-name{
  font-weight:800;
  letter-spacing:.8px;
  text-transform:uppercase;
}
.footer-tagline{
  color: rgba(255,255,255,.78);
  margin:0;
  max-width: 320px;
}
.footer-col{display:flex; flex-direction:column; gap:10px;}
.footer-title{
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.8px;
  font-size:.9rem;
}
.footer-title-space{margin-top:12px;}
.footer-list{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.footer-list a{color: rgba(255,255,255,.82);}
.footer-list a:hover{color:#ffffff;}
.footer-contact{
  display:flex;
  flex-direction:column;
  gap:6px;
  color: rgba(255,255,255,.82);
}
.footer-contact a{color: inherit;}
.footer-contact a:hover{color:#ffffff;}
.footer-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.footer-badges span{
  border:1px solid rgba(255,255,255,.25);
  width:36px;
  height:36px;
  border-radius:999px;
  font-size:.8rem;
  display:inline-flex;
  align-items:center;
  gap:6px;
  justify-content:center;
  line-height:1;
}
.footer-badges i{
  font-size:1.05rem;
}
.footer-social{
  display:flex;
  gap:10px;
}
.footer-social a{
  width:36px;
  height:36px;
  border-radius:999px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.25);
  color:#ffffff;
  font-weight:700;
}
.footer-social a:hover{background: rgba(255,255,255,.12);}
.footer-bottom{
  margin-top:28px;
  padding:14px 0 18px;
  border-top:1px solid rgba(255,255,255,.14);
  text-align:center;
  color: rgba(255,255,255,.78);
  font-size:.85rem;
}

.whatsapp-float{
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 60;
  display:grid;
  place-items:center;
  width:70px;
  height:70px;
  padding:0;
  border-radius: 999px;
  border:2px solid rgba(37,211,102,.45);
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.45), rgba(255,255,255,0) 55%),
    linear-gradient(145deg, #25D366 0%, #1bb657 60%, #129347 100%);
  backdrop-filter: blur(6px);
  box-shadow:
    0 20px 45px rgba(16,92,40,.3),
    0 0 0 7px rgba(37,211,102,.16);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.whatsapp-float::before{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:999px;
  border:2px solid rgba(255,255,255,.55);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.2);
  pointer-events:none;
}
.wa-icon{
  font-size:34px;
  color:#ffffff;
}
.whatsapp-float:hover{
  transform: translateY(-4px) scale(1.04);
  box-shadow:
    0 30px 80px rgba(16,92,40,.38),
    0 0 0 12px rgba(37,211,102,.2);
  filter: brightness(1.03);
}

.center{display:grid; place-items:center; min-height:100vh;}
.error-page{
  background:
    radial-gradient(circle at 10% 10%, rgba(12,35,61,.08), transparent 45%),
    radial-gradient(circle at 90% 30%, rgba(255,203,107,.12), transparent 55%);
}
.error-wrap{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:28px;
  align-items:center;
  max-width: 980px;
}
.error-panel{
  background:#ffffff;
  border:1px solid rgba(12,35,61,.12);
  border-radius: 22px;
  padding:28px;
  box-shadow: 0 18px 45px rgba(12,35,61,.12);
}
.error-kicker{
  display:inline-flex;
  padding:6px 12px;
  border-radius:999px;
  background: rgba(12,35,61,.08);
  color:#0c233d;
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.error-code{
  font-size:5rem;
  margin:10px 0 6px 0;
  color:#0c233d;
}
.error-text{
  max-width:520px;
}
.error-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:16px;
}
.error-art{
  position:relative;
  min-height:220px;
}
.error-orb{
  position:absolute;
  right:10%;
  top:10%;
  width:180px;
  height:180px;
  border-radius:999px;
  background: radial-gradient(circle at 30% 30%, #ffffff, #e5ecf4 55%, #c7d5e5 100%);
  box-shadow: 0 20px 50px rgba(12,35,61,.18);
}
.error-ring{
  position:absolute;
  left:5%;
  bottom:0;
  width:220px;
  height:220px;
  border-radius:999px;
  border:2px solid rgba(12,35,61,.12);
}
.error-ring--small{
  width:120px;
  height:120px;
  left:auto;
  right:0;
  top:50%;
  bottom:auto;
  transform: translateY(-50%);
  border-color: rgba(12,35,61,.18);
}

@media (max-width: 960px){
  .cards{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .hero-grid{grid-template-columns: 1fr;}
  .two-col{grid-template-columns: 1fr;}
  .mini{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .error-wrap{grid-template-columns: 1fr; text-align:center;}
  .error-actions{justify-content:center;}
  .error-art{display:none;}
  .room-grid{grid-template-columns: 1fr;}
  .nav{display:none;}
  .burger{display:inline-flex;}
  .header-actions{flex-wrap:wrap;}
  .room-layout{grid-template-columns: 1fr;}
  .room-form{position: static;}
}
@media (max-width: 560px){
  .cards{grid-template-columns: 1fr;}
  .list-cards{grid-template-columns: 1fr;}
  .mini{grid-template-columns: 1fr;}
  .header-inner{flex-wrap:nowrap; gap:10px;}
  .brand-name{font-size:.85rem;}
  .header-actions{width:auto; justify-content:flex-end; gap:10px;}
  .header-actions .btn{padding:10px 14px; border-radius:12px;}
  .header-actions .btn-ghost{display:none;}
  .lang-switch{display:none;}
  .burger{flex:0 0 auto;}
  .mobile-nav a{padding:14px 6%;}
  .hero{min-height:70vh; padding:32px 0;}
  .hero-copy h1{font-size:1.75rem}
  .hero .lead{font-size:.98rem;}
  .hero-actions{justify-content:center;}
  .hero-actions .btn{width:100%; max-width:220px;}
  .hero-badges{justify-content:center;}
  .badge{font-size:.85rem; padding:6px 10px;}
  .page-hero{min-height:260px; padding:40px 0 18px;}
}
@media (max-width: 980px){
  .footer-grid{grid-template-columns: 1fr 1fr;}
}
@media (max-width: 640px){
  .footer-grid{grid-template-columns: 1fr;}
  .footer-logo{width:70px; height:70px;}
  .footer-bottom{padding-left:16px; padding-right:16px;}
  .footer-col{gap:8px;}
  .footer-title{font-size:.85rem;}
  .footer-list{gap:6px;}
  .footer-badges span{font-size:.75rem;}
}

/* Room Gallery */
.gallery{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:12px;
}
.gallery-item img{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius: var(--radius);
  border:0;
  box-shadow: none;
  transition: transform .25s ease;
}
.gallery-item img:hover{
  transform: scale(1.03);
}
@media (max-width: 960px){
  .gallery{grid-template-columns: repeat(2, minmax(0,1fr));}
}
@media (max-width: 520px){
  .gallery{grid-template-columns: 1fr;}
}

/* Carousel */
.carousel{
  position: relative;
  overflow: hidden;
  padding-bottom: 6px;
}
.carousel-track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type: x mandatory;
  scroll-behavior:smooth;
  padding-bottom:8px;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.carousel-track::-webkit-scrollbar{height:0}
.carousel .card{
  flex:0 0 calc((100% - 32px) / 3);
  scroll-snap-align: start;
}
@media (max-width: 980px){
  .carousel .card{flex:0 0 calc((100% - 16px) / 2);}
}
@media (max-width: 640px){
  .carousel .card{flex:0 0 100%;}
}
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.8);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 80;
  padding: 24px;
}
.lightbox.open{
  display: flex;
}
.lightbox img{
  max-width: min(1100px, 92vw);
  max-height: 82vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}
.lightbox-close{
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(0,0,0,.4);
  color: #ffffff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
