/* MiReservaYa: dirección visual editorial para la plataforma y las propiedades. */
:root{
  --premium-ink:#17352e;
  --premium-muted:#5b6d64;
  --premium-paper:#f7f4ec;
  --premium-cream:#ede8dc;
  --premium-line:#d8d5c9;
  --premium-gold:#b68b57;
}
:focus-visible{outline:2px solid #b68b57;outline-offset:3px}

/* Landing de la plataforma */
.marketing-site{
  --marketing-ink:#17352e;
  --marketing-muted:#5b6d64;
  --marketing-paper:#f7f4ec;
  --marketing-line:#d8d5c9;
  --marketing-accent:#c7a172;
  color:var(--marketing-ink);
  background:var(--marketing-paper);
}
.marketing-site .marketing-header{
  max-width:none;
  padding:22px clamp(22px,5vw,76px);
  border-bottom:1px solid var(--marketing-line);
  background:#f7f4ecf2;
}
.marketing-site .marketing-logo{color:var(--marketing-ink);font-size:1.13rem;letter-spacing:-.04em}
.marketing-site .marketing-logo span{
  width:40px;height:40px;border-radius:50%;color:#fff;
  background:#24473d;font-family:"DM Serif Display",serif;
  font-size:1rem;font-weight:400;letter-spacing:0;
}
.marketing-site .marketing-nav{gap:23px}
.marketing-site .marketing-nav a,.marketing-site .marketing-login{
  color:#53675c;font-size:.76rem;font-weight:700;letter-spacing:.04em;
}
.marketing-site .marketing-nav a:hover,.marketing-site .marketing-login:hover{color:#a47847}
.marketing-site .marketing-nav-cta,.marketing-site .marketing-primary-btn{
  border:1px solid #24473d;border-radius:3px;color:#fff;background:#24473d;
  box-shadow:none;font-weight:700;letter-spacing:.02em;text-transform:none;
}
.marketing-site .marketing-nav-cta:hover,.marketing-site .marketing-primary-btn:hover{
  color:#fff;background:#17352e;transform:translateY(-2px);
}
.marketing-site .marketing-hero{
  max-width:1500px;min-height:760px;grid-template-columns:minmax(0,1fr) minmax(0,.98fr);
  align-items:center;gap:clamp(30px,5vw,90px);
  padding:90px clamp(22px,5vw,76px) 110px;
  background:radial-gradient(circle at 7% 12%,#fffdf8 0,transparent 44%),#f7f4ec;
}
.marketing-site .marketing-hero-copy{padding-top:0}
.marketing-site .marketing-eyebrow{color:#987143;letter-spacing:.17em}
.marketing-site .marketing-eyebrow-dot{background:#ad895b;box-shadow:none}
.marketing-site .marketing-hero h1{
  max-width:820px;color:#17352e;
  font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(4.3rem,6.4vw,7.8rem);
  font-weight:400;line-height:.96;letter-spacing:-.055em;
  text-transform:none;
}
.marketing-site .marketing-hero h1 em{
  display:inline;color:#a97f51;font-family:"DM Serif Display",Georgia,serif;
  font-weight:400;font-style:italic;
}
.marketing-site .marketing-lead{
  max-width:620px;margin-top:30px;color:#5b6d64;
  font-size:1.12rem;line-height:1.7;
}
.marketing-site .marketing-text-btn{color:#24473d;font-size:.86rem;font-weight:700}
.marketing-site .marketing-proof{border-color:#d8d5c9}
.marketing-site .marketing-proof p{color:#67776c}
.marketing-site .marketing-proof strong{color:#17352e}
.marketing-site .marketing-avatars span{color:#17352e;background:#e7dac6;border-color:#f7f4ec}
.marketing-site .marketing-hero-art{
  min-height:610px;border:1px solid #d7d3c6;border-radius:200px 200px 8px 8px;
  background:linear-gradient(145deg,#c2d3c6,#758e7d 56%,#24473d);
  box-shadow:22px 24px 0 #e7e0d2;overflow:visible;
}
.marketing-site .marketing-hero-art::before{border-color:#fff8e25e}
.marketing-site .marketing-hero-art::after{background:#d0b58d}
.marketing-site .marketing-orbit{border-color:#fff5dd6b}
.marketing-site .marketing-dashboard-card{
  width:82%;border:1px solid #dedfd4;border-radius:9px;
  color:#18362e;background:#fffdf8;
  box-shadow:0 35px 85px #12302645;transform:rotate(-3deg);
}
.marketing-site .marketing-mini-brand span{color:#fff;background:#24473d}
.marketing-site .marketing-online{color:#547366}
.marketing-site .marketing-dashboard-title small,
.marketing-site .marketing-dashboard-title>span{color:#819087}
.marketing-site .marketing-dashboard-title strong{
  color:#17352e;font-family:"DM Serif Display",Georgia,serif;
  font-size:2.15rem;font-weight:400;letter-spacing:-.04em;text-transform:none;
}
.marketing-site .marketing-stat-row>div{border:1px solid #e5e7dd;background:#f7f8f2}
.marketing-site .marketing-stat-row small,.marketing-site .marketing-calendar-head span{color:#68786e}
.marketing-site .marketing-stat-row strong{color:#17352e}
.marketing-site .marketing-mini-calendar{border-color:#e4e7dc;background:#fbfbf6}
.marketing-site .marketing-calendar-grid b{color:#325648;background:#ecf2e9}
.marketing-site .marketing-calendar-grid b.calendar-booking{background:#c9dfca}
.marketing-site .marketing-calendar-grid b.calendar-airbnb{background:#eed5c9}
.marketing-site .marketing-calendar-grid b.calendar-direct{background:#e4ceab}
.marketing-site .marketing-reservation-note{background:#f2f5ec}
.marketing-site .marketing-reservation-note small{color:#728075}
.marketing-site .note-icon{color:#fff;background:#416b51}
.marketing-site .marketing-floating-card{
  border:1px solid #e5dfd2;border-radius:7px;color:#17352e;background:#fffdf8;
  box-shadow:0 18px 40px #17352e2b;
}
.marketing-site .marketing-floating-card small{color:#798479}
.marketing-site .marketing-floating-card>b{color:#5a7c60}
.marketing-site .booking-icon{color:#fff;background:#24473d}
.marketing-site .checkin-icon{color:#17352e;background:#e4ceab}
.marketing-site .marketing-trust{
  max-width:none;padding:25px clamp(22px,5vw,76px);
  color:#66796c;background:#e8eee5;border:0;
  text-transform:none;
}
.marketing-site .marketing-trust>div{color:#24473d}
.marketing-site .marketing-trust i{color:#b49971}
.marketing-site .marketing-section{max-width:none;padding:112px clamp(22px,5vw,76px);background:#f7f4ec}
.marketing-site .marketing-section h2{
  max-width:1000px;color:#17352e;font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(3.1rem,5.4vw,6.1rem);font-weight:400;
  line-height:1.02;letter-spacing:-.045em;text-transform:none;
}
.marketing-site .marketing-section-intro>p:last-child{
  max-width:680px;color:#657469;font-size:1rem;line-height:1.72;
}
.marketing-site .marketing-product,.marketing-site .marketing-demos,
.marketing-site .marketing-faq{background:#fffdf8}
.marketing-site .marketing-feature-grid{gap:16px;background:transparent}
.marketing-site .marketing-feature-card{
  min-height:470px;border:1px solid #e3dfd3;border-radius:5px;
  color:#17352e;background:#f3f0e8;
}
.marketing-site .feature-calendar{background:#e6eee6}
.marketing-site .feature-checkin{background:#f1e6d8}
.marketing-site .feature-page{background:#e9e5dd}
.marketing-site .feature-icon{color:#24473d;background:#ffffff9a}
.marketing-site .marketing-feature-card h3,.marketing-site .marketing-advantage-grid h3,
.marketing-site .marketing-steps h3,.marketing-site .marketing-plan-card h3,
.marketing-site .marketing-faq summary{
  color:#17352e;font-family:"DM Serif Display",Georgia,serif;
  font-weight:400;letter-spacing:-.025em;text-transform:none;
}
.marketing-site .marketing-feature-card h3{font-size:2.15rem;line-height:1.1}
.marketing-site .marketing-feature-card p{color:#617167;font-size:.9rem;line-height:1.65}
.marketing-site .marketing-feature-card a{color:#24473d;text-transform:none}
.marketing-site .marketing-advantage{background:#f2eee6}
.marketing-site .marketing-advantage-grid{gap:1px;border-color:#dbd8cc;background:#dbd8cc}
.marketing-site .marketing-advantage-grid article{background:#f7f4ec}
.marketing-site .marketing-advantage-grid article>span{color:#a97f51;font-family:"DM Serif Display",serif}
.marketing-site .marketing-advantage-grid h3{font-size:1.85rem}
.marketing-site .marketing-advantage-grid p{color:#66766a}
.marketing-site .marketing-connection{border-radius:5px;background:#e3e8dc}
.marketing-site .marketing-connection strong{
  color:#17352e;font-family:"DM Serif Display",serif;font-size:1.6rem;text-transform:none;
}
.marketing-site .marketing-connection>b{color:#a97f51}
.marketing-site .marketing-workflow{color:#f7f4ec;background:#1e4237}
.marketing-site .marketing-workflow h2{color:#f7f4ec}
.marketing-site .marketing-workflow .marketing-eyebrow{color:#d7b583}
.marketing-site .marketing-workflow-copy>p:not(.marketing-eyebrow){color:#cfddd1}
.marketing-site .marketing-dark-btn{border-radius:3px;color:#17352e;background:#efe3d0;text-transform:none}
.marketing-site .marketing-steps,.marketing-site .marketing-steps article{border-color:#ffffff34}
.marketing-site .marketing-steps article>span{color:#d7b583;font-family:"DM Serif Display",serif}
.marketing-site .marketing-steps h3{color:#f7f4ec;font-size:2rem}
.marketing-site .marketing-steps p{color:#cedbd0}
.marketing-site .marketing-demo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:transparent}
.marketing-site .marketing-demo-card{
  min-height:360px;border:0;border-radius:5px;
  background-image:linear-gradient(180deg,#152d2110 10%,#10251ce8 100%),var(--template-photo);
  background-size:cover;background-position:center;
}
.marketing-site .marketing-demo-card::before{background:transparent}
.marketing-site .marketing-demo-card strong{
  max-width:330px;color:#fff;font-family:"DM Serif Display",serif;
  font-size:2.2rem;font-weight:400;line-height:1.05;letter-spacing:-.03em;text-transform:none;
}
.marketing-site .marketing-demo-card small{color:#f2e8d9}
.marketing-site .marketing-demo-card i{color:#fff;text-transform:none}
.marketing-site .demo-echo{background-position:40% center;filter:saturate(.75)}
.marketing-site .demo-oppa{background-position:55% center;filter:saturate(1.12)}
.marketing-site .demo-laguna{background-position:75% center}
.marketing-site .marketing-plans{background:#f2eee6}
.marketing-site .marketing-plan-card{border:1px solid #d8d5c9;border-radius:5px;background:#fffdf8}
.marketing-site .marketing-plan-card.featured{border-color:#24473d;background:#e6eee6}
.marketing-site .marketing-plan-card h3{font-size:2.4rem}
.marketing-site .marketing-plan-card>p,.marketing-site .marketing-plan-card ul,
.marketing-site .featured>p,.marketing-site .featured ul{color:#617167}
.marketing-site .marketing-plan-btn{border-radius:3px;color:#fff;background:#24473d;text-transform:none}
.marketing-site .marketing-plan-btn.outline{border-color:#24473d;color:#24473d;background:transparent}
.marketing-site .marketing-plan-note{color:#748176}
.marketing-site .marketing-faq-list,.marketing-site .marketing-faq details{border-color:#d8d5c9}
.marketing-site .marketing-faq summary{font-size:1.45rem}
.marketing-site .marketing-faq summary::after{color:#b68b57}
.marketing-site .marketing-faq details p{color:#657469}
.marketing-site .marketing-final-cta{color:#f7f4ec;background:#24473d}
.marketing-site .marketing-final-cta h2{
  color:#f7f4ec;font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(3rem,5.5vw,6rem);font-weight:400;line-height:1;
  letter-spacing:-.045em;text-transform:none;
}
.marketing-site .marketing-final-cta .marketing-eyebrow{color:#d7b583}
.marketing-site .marketing-primary-btn.light{color:#24473d;background:#f3e5d1;border-color:#f3e5d1}
.marketing-site .marketing-text-btn.light-link{color:#f7f4ec}
.marketing-site .marketing-footer{color:#d9e1d7;background:#17352e}
.marketing-site .marketing-footer .marketing-logo{color:#fff}
.marketing-site .marketing-footer p,.marketing-site .marketing-footer small{color:#b4c5ba}

/* Sistema común de páginas de alojamiento */
.public-app{
  --property-ink:#173b33;
  --property-muted:#5d7469;
  --property-paper:#f7f4ed;
  --property-soft:#e9eee8;
  --property-accent:#c99765;
  --property-deep:#1c4439;
}
.public-app.theme-echo{
  --property-ink:#f1eadc;--property-muted:#d0c6b6;
  --property-paper:#17231f;--property-soft:#24362e;
  --property-accent:#d0ae7d;--property-deep:#111d19;
}
.public-app.theme-oppa{
  --property-ink:#3a3028;--property-muted:#6e665b;
  --property-paper:#f6eee5;--property-soft:#ebe0d0;
  --property-accent:#b86f51;--property-deep:#563b30;
}
.public-app.theme-laguna{
  --property-ink:#16403d;--property-muted:#5d7770;
  --property-paper:#f7f6ef;--property-soft:#e6f0e9;
  --property-accent:#c27e61;--property-deep:#16403d;
}
.public-app .hotel-landing{
  color:var(--property-ink);background:var(--property-paper);
  font-family:"DM Sans",sans-serif;
}
.public-app .hotel-hero{
  min-height:min(930px,100svh);padding:140px clamp(22px,6vw,92px) 55px;
  color:#fff;
  background-image:linear-gradient(90deg,#102c26e8 0%,#18352dbd 43%,#18352d24 100%),var(--hero-image);
  background-position:center;background-size:cover;
}
.public-app.theme-oppa .hotel-hero{
  background-image:linear-gradient(270deg,#34261fdb 0%,#563f35b0 50%,#34261f24 100%),var(--hero-image);
}
.public-app.theme-echo .hotel-hero{
  background-image:linear-gradient(90deg,#101a18ef 0%,#15231dd0 46%,#15231d2c 100%),var(--hero-image);
}
@media(min-width:900px){
  .public-app.theme-laguna .hotel-hero{
    min-height:860px;color:#16403d;
    background-image:linear-gradient(90deg,#f7f6ef 0%,#f7f6ef 40%,#f7f6efd9 53%,transparent 61%),var(--hero-image);
    background-position:center,right center;background-size:cover,auto 100%;
    background-repeat:no-repeat;
    background-color:#f7f6ef;
  }
  .public-app.theme-laguna .hotel-hero-copy{max-width:54%;margin-right:auto}
  .public-app.theme-laguna .hotel-hero-copy h1{
    max-width:690px;color:#16403d;font-size:clamp(3.9rem,5.3vw,6.4rem);
  }
  .public-app.theme-laguna .hotel-hero-copy>p{color:#a5694a}
  .public-app.theme-laguna .hotel-hero-copy>span{color:#5d7770}
  .public-app.theme-laguna .hero-facts span{
    border-color:#cbd9ce;color:#16403d;background:#fffdf8e8;
  }
  .public-app.theme-laguna .hero-explore{border-color:#16403d;color:#16403d}
}
.public-app .hotel-header{
  top:28px;right:clamp(22px,5vw,78px);left:clamp(22px,5vw,78px);
  grid-template-columns:minmax(180px,1fr) auto auto;gap:22px;
  padding:15px 19px;border:1px solid #ffffff50;border-radius:6px;
  color:#173b33;background:#fbf9f2ec;
  box-shadow:0 16px 38px #102b2330;backdrop-filter:blur(18px);
}
.public-app.demo-site .hotel-header{top:78px}
.public-app.demo-site .hotel-hero{padding-top:190px}
.public-app .demo-banner+.hotel-landing .hotel-header{padding:15px 19px}
.public-app .hotel-logo{min-width:0}
.public-app .hotel-logo>span{
  flex:0 0 40px;width:40px;height:40px;border:0;border-radius:50%;
  color:#fff;background:#24473d;font-family:"DM Serif Display",serif;font-weight:400;
}
.public-app .hotel-logo>div{min-width:0}
.public-app .hotel-logo strong{
  display:block;max-width:410px;
  font-family:"DM Serif Display",serif;font-size:1.02rem;font-weight:400;line-height:1.12;
}
.public-app .hotel-logo small{color:#6e8175;font-size:.68rem}
.public-app .hotel-header nav{gap:23px}
.public-app .hotel-header nav a{
  color:#36594e;font-size:.73rem;font-weight:700;letter-spacing:.02em;
}
.public-app .hotel-header nav a:hover{color:#b0784f}
.public-app .hotel-header-cta{
  padding:12px 20px;border-radius:3px;color:#fff;background:#24473d;
  font-size:.75rem;letter-spacing:.02em;white-space:nowrap;
}
.public-app.theme-echo .hotel-header{
  border-color:#ffffff42;color:#f1eadc;background:#17231fdc;
}
.public-app.theme-echo .hotel-logo>span{color:#17231f;background:#d0ae7d}
.public-app.theme-echo .hotel-logo small,.public-app.theme-echo .hotel-header nav a{color:#dbd0bd}
.public-app.theme-echo .hotel-header-cta{color:#17231f;background:#d0ae7d}
.public-app.theme-oppa .hotel-header-cta{background:#8e573c}
.public-app .hotel-hero-copy{max-width:850px;margin-bottom:46px}
.public-app.theme-oppa .hotel-hero-copy{margin-left:auto;text-align:right}
.public-app .hotel-hero-copy>p{
  color:#f2d5ad;font-size:.72rem;font-weight:700;letter-spacing:.17em;
}
.public-app .hotel-hero-copy h1{
  max-width:850px;margin-bottom:24px;color:#fff;
  font-family:"DM Serif Display",Georgia,serif;font-size:clamp(4.3rem,7.6vw,8.4rem);
  font-weight:400;line-height:.92;letter-spacing:-.055em;text-transform:none;text-wrap:balance;
}
.public-app.theme-oppa .hotel-hero-copy h1{margin-left:auto}
.public-app .hotel-hero-copy>span{
  max-width:620px;color:#f7f5efdf;font-size:1.02rem;line-height:1.65;
}
.public-app.theme-oppa .hotel-hero-copy>span{margin-left:auto}
.public-app .hero-facts{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px}
.public-app.theme-oppa .hero-facts{justify-content:flex-end}
.public-app .hero-facts span{
  padding:8px 12px;border:1px solid #ffffff65;border-radius:2px;
  color:#fff;background:#ffffff14;font-size:.73rem;font-weight:700;
  backdrop-filter:blur(8px);
}
.public-app .hero-explore{
  display:inline-flex;align-items:center;gap:16px;align-self:flex-start;
  padding:15px 0;border-bottom:1px solid #fff9;color:#fff;font-weight:700;
}
.public-app .quick-search{
  max-width:1150px;grid-template-columns:1fr 1fr .75fr auto;
  border:1px solid #fff6;border-radius:5px;color:#173b33;
  background:#fffdf8;box-shadow:0 24px 64px #102b234d;overflow:hidden;
}
.public-app .quick-search label{color:#668075;border-color:#e4e4da}
.public-app .quick-search input{color:#173b33;background:transparent}
.public-app .quick-search button{
  min-width:200px;padding:0 22px;border-radius:0;color:#fff;
  background:#24473d;font-size:.83rem;
}
.public-app.theme-echo .quick-search button{color:#17231f;background:#d0ae7d}
.public-app.theme-oppa .quick-search button{background:#8e573c}
.public-app .hotel-about{
  max-width:1420px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 170px;
  gap:clamp(28px,5vw,86px);padding:118px clamp(22px,6vw,92px);
  color:var(--property-ink);background:var(--property-paper);
}
.public-app .hotel-eyebrow{color:var(--property-accent);letter-spacing:.17em}
.public-app .hotel-about h2,.public-app .availability-heading h2,
.public-app .hotel-contact h2,.public-app .gallery-heading h2{
  color:inherit;font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(2.8rem,4.5vw,5.3rem);font-weight:400;
  line-height:1.02;letter-spacing:-.045em;text-transform:none;
}
.public-app .hotel-about>div:nth-child(2)>p{
  color:var(--property-muted);font-size:1rem;line-height:1.8;
}
.public-app .hotel-about ul{gap:10px}
.public-app .hotel-about li{
  padding:9px 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--property-ink) 16%,transparent);
  border-radius:0;color:var(--property-ink);background:transparent;font-size:.82rem;
}
.public-app .hotel-about li span{color:var(--property-accent)}
.public-app .hotel-about aside{border-color:color-mix(in srgb,var(--property-ink) 20%,transparent)}
.public-app .hotel-about aside span{color:var(--property-muted)}
.public-app .hotel-gallery{
  padding:110px clamp(22px,6vw,92px);color:var(--property-ink);
  background:var(--property-soft);
}
.public-app .gallery-heading{max-width:1320px}
.public-app .gallery-heading>p{color:var(--property-muted);line-height:1.75}
.public-app .gallery-grid{max-width:1320px;grid-template-rows:260px 260px;gap:12px}
.public-app .gallery-card{
  border:0;border-radius:3px;background:color-mix(in srgb,var(--property-ink) 15%,#fff);
  box-shadow:none;transform:none;
}
.public-app .gallery-card:nth-child(even){transform:none}
.public-app .gallery-card img{transition:transform .5s ease}
.public-app .gallery-card figcaption{
  right:0;bottom:0;left:0;padding:22px;
  color:#fff;background:linear-gradient(transparent,#10231cba);
  font-size:.73rem;font-weight:700;letter-spacing:.05em;text-transform:none;
}
.public-app .availability-section{
  padding:112px clamp(22px,6vw,92px);color:#f7f4ec;
  background:var(--property-deep);
}
.public-app .availability-heading{max-width:1320px}
.public-app .availability-heading h2{color:#f7f4ec}
.public-app .availability-heading>p{color:#d7e3d8;line-height:1.7}
.public-app .availability-layout{
  max-width:1320px;grid-template-columns:minmax(0,1.1fr) minmax(360px,.82fr);gap:18px;
}
.public-app .public-calendar-card{
  padding:28px;border:1px solid #ffffff3a;border-radius:5px;
  color:#f7f4ec;background:#ffffff12;box-shadow:none;
}
.public-app .public-calendar-head button{color:#fff;border-color:#ffffff6b}
.public-app .public-calendar-legend{color:#d1dfd4}
.public-app .public-calendar-legend span:last-child i{background:var(--property-accent)}
.public-app .public-day{color:#f7f4ec;border-color:#ffffff2e}
.public-app .public-day.occupied{
  color:#162d26;border-color:var(--property-accent);background:var(--property-accent);
}
.public-app .hotel-booking-card{
  height:100%;padding:32px;border:1px solid #f4e8d6;border-radius:5px;
  color:#173b33;background:#fffdf8;box-shadow:0 22px 55px #0e211a31;
}
.public-app .hotel-booking-card h3{
  color:#173b33;font-family:"DM Serif Display",Georgia,serif;
  font-size:2.15rem;font-weight:400;letter-spacing:-.03em;
}
.public-app .hotel-booking-card .hotel-eyebrow{color:#9b7045}
.public-app .booking-card-intro,.public-app .booking-soon>p:not(.hotel-eyebrow){
  color:#64776b;font-size:.85rem;line-height:1.6;
}
.public-app .hotel-booking-card .public-form-grid label{color:#536b60}
.public-app .hotel-booking-card input,.public-app .hotel-booking-card select{
  border:1px solid #d9dfd6;border-radius:3px;background:#fff;
}
.public-app .hotel-reserve-button{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;border-radius:3px;color:#fff;background:#24473d;
}
.public-app .booking-soon a{
  display:inline-block;margin-top:18px;padding-bottom:6px;border-bottom:1px solid #b68b57;
  color:#24473d;font-size:.84rem;font-weight:700;
}
.public-app .hotel-contact{
  max-width:none;padding:112px clamp(22px,6vw,92px);
  color:var(--property-ink);background:var(--property-paper);
}
.public-app .hotel-contact>div{max-width:750px}
.public-app .hotel-contact>a{border-color:var(--property-accent);color:var(--property-ink)}
.public-app .hotel-footer{
  padding:38px clamp(22px,6vw,92px);color:#dde5d9;background:#122f28;
}
.public-app .hotel-footer span,.public-app .hotel-footer small{color:#a7bdb0}
.public-app.theme-echo .hotel-about,.public-app.theme-echo .hotel-contact{background:#17231f}
.public-app.theme-echo .hotel-gallery{background:#22312a}
.public-app.theme-echo .availability-section{background:#111d19}
.public-app.theme-oppa .hotel-about,.public-app.theme-oppa .hotel-contact{background:#f6eee5}
.public-app.theme-oppa .hotel-gallery{background:#eee1d2}
.public-app.theme-oppa .availability-section{background:#563b30}
.public-app.theme-laguna .hotel-about,.public-app.theme-laguna .hotel-contact{background:#f7f6ef}
.public-app.theme-laguna .hotel-gallery{background:#e6f0e9}
.public-app.theme-laguna .availability-section{background:#16403d}
.public-app .rdls-trust-strip{color:#173b33;background:#f7f6ef}
.public-app .rdls-trust-strip article{border-color:#d2ded4;background:#fffdf8}
.public-app.theme-laguna .rdls-hero-badges span{
  border-color:#bfd4c7;color:#16403d;background:#fffdf8dc;
}

/* Selector de plantilla y datos de la nueva propiedad */
.onboarding-page{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.onboarding-page .login-visual{
  position:sticky;top:0;align-self:start;height:100svh;min-height:720px;
  background:linear-gradient(145deg,#102d27e6,#1b483cbd),url("/property-placeholder.svg") center/cover;
}
.onboarding-page .login-visual h1{
  font-family:"DM Serif Display",Georgia,serif;font-size:clamp(3.3rem,4.5vw,5.4rem);
  font-weight:400;letter-spacing:-.04em;
}
.onboarding-page .login-panel{padding:54px clamp(22px,5vw,76px);background:#f7f4ec}
.onboarding-page .login-card{width:min(100%,710px);max-width:710px;color:#17352e}
.onboarding-page .login-card h2{
  color:#17352e;font-family:"DM Serif Display",Georgia,serif;
  font-size:clamp(2.8rem,4vw,4.5rem);font-weight:400;letter-spacing:-.04em;
}
.onboarding-page .login-card>p:not(.kicker){color:#67776a}
.onboarding-page .login-card input,.onboarding-page .login-card select,
.onboarding-page .login-card textarea{border-radius:4px;border-color:#d6d8cb;background:#fffdf8}
.onboarding-page .login-card .btn.primary{
  min-height:52px;border-radius:3px;color:#fff;background:#24473d;
}
.onboarding-details{display:grid;gap:15px;margin:25px 0}
.onboarding-details label{display:grid;gap:7px}
.onboarding-detail-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.onboarding-section-label{
  margin:10px 0 0;color:#a67847;font-size:.72rem;font-weight:800;
  letter-spacing:.15em;text-transform:uppercase;
}
.onboarding-native-theme{
  position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;
}
.onboarding-template-picker{margin:24px 0}
.onboarding-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.onboarding-template-option{
  overflow:hidden;border:1px solid #d6d8cb;border-radius:5px;background:#fffdf8;
}
.onboarding-template-option button{
  display:grid;width:100%;gap:5px;padding:8px;border:0;background:transparent;text-align:left;
}
.onboarding-template-option button[aria-pressed="true"]{box-shadow:inset 0 0 0 2px #24473d}
.onboarding-template-art{
  position:relative;display:flex;min-height:138px;flex-direction:column;justify-content:flex-end;
  padding:14px;color:#fff;background:linear-gradient(180deg,#16312610,#142a24db),url("/property-placeholder.svg") center/cover;
  overflow:hidden;
}
.onboarding-template-art.template-echo{filter:saturate(.65);background-position:20% center}
.onboarding-template-art.template-oppa{filter:sepia(.2) saturate(1.2);background-position:55% center}
.onboarding-template-art.template-laguna{background-position:75% center}
.onboarding-template-art b{position:relative;font-family:"DM Serif Display",serif;font-size:1.2rem;font-weight:400;line-height:1}
.onboarding-template-art em{position:relative;margin-top:4px;font-size:.63rem;font-style:normal}
.onboarding-template-option strong{padding:6px 5px 0;font-size:.78rem}
.onboarding-template-option small{padding:0 5px 5px;color:#758276}
.onboarding-template-option>a{display:block;padding:9px 13px;border-top:1px solid #ecebe3;color:#24473d;font-size:.72rem;font-weight:700}
.onboarding-template-note{margin:12px 0 0;color:#6f7d70;font-size:.78rem;line-height:1.5}
.admin-app .theme-shot{
  background-image:linear-gradient(180deg,#17352e18,#17352ecf),var(--template-photo);
  background-position:center;background-size:cover;
}
.admin-app .theme-shot b{color:#fff;text-shadow:0 2px 8px #0008}
.admin-app .theme-shot i{display:none}
.admin-app .theme-shot em{height:2px;background:#f0dfc0}
.admin-app .theme-card{border-radius:6px}
.admin-app .theme-shot{border-radius:3px}

@media(max-width:1100px){
  .marketing-site .marketing-nav{display:none}
  .marketing-site .marketing-hero{grid-template-columns:1fr;gap:65px}
  .marketing-site .marketing-hero-art{min-height:540px;max-width:780px;width:100%;margin:auto}
  .public-app .hotel-header{grid-template-columns:minmax(0,1fr) auto}
  .public-app .hotel-header nav{display:none}
  .public-app .hotel-about{grid-template-columns:1fr 1fr}
  .public-app .hotel-about aside{grid-column:1/-1}
}
@media(max-width:760px){
  .onboarding-page{grid-template-columns:1fr}
  .onboarding-page .login-visual{
    position:relative;display:flex;height:auto;min-height:390px;padding:30px 22px;
  }
  .onboarding-page .login-panel{display:block;min-height:0;padding:38px 22px 70px}
  .onboarding-page .login-visual h1{font-size:3.2rem}
  .marketing-site .marketing-header{padding:16px 18px}
  .marketing-site .marketing-hero{min-height:0;padding:62px 20px 85px}
  .marketing-site .marketing-hero h1{font-size:clamp(3.4rem,12vw,5.4rem)}
  .marketing-site .marketing-lead{font-size:1rem}
  .marketing-site .marketing-hero-art{min-height:430px;box-shadow:10px 13px 0 #e7e0d2}
  .marketing-site .marketing-dashboard-card{width:86%;padding:15px}
  .marketing-site .marketing-section{padding:78px 20px}
  .marketing-site .marketing-section h2{font-size:clamp(2.7rem,10vw,4.2rem)}
  .marketing-site .marketing-feature-grid,.marketing-site .marketing-plan-grid,
  .marketing-site .marketing-demo-grid{grid-template-columns:1fr}
  .marketing-site .marketing-feature-card:last-child,
  .marketing-site .marketing-plan-card:last-child{grid-column:auto}
  .marketing-site .marketing-demo-card{min-height:270px}
  .marketing-site .marketing-final-cta{padding:78px 20px}
  .marketing-site .marketing-final-cta h2{font-size:clamp(2.9rem,10vw,4.7rem)}
  .public-app .hotel-hero{min-height:770px;padding:130px 20px 28px;background-image:linear-gradient(180deg,#102c26a3 0%,#102c26a0 50%,#102c26eb 100%),var(--hero-image)}
  .public-app.theme-oppa .hotel-hero{background-image:linear-gradient(180deg,#34261fa3 0%,#34261fa0 50%,#34261feb 100%),var(--hero-image)}
  .public-app .hotel-header{top:16px;right:15px;left:15px;padding:11px 12px}
  .public-app.demo-site .hotel-header{top:64px}
  .public-app.demo-site .hotel-hero{padding-top:176px}
  .public-app .demo-banner+.hotel-landing .hotel-header{padding:11px 12px}
  .public-app .hotel-header-cta{padding:11px 13px;font-size:.69rem}
  .public-app .hotel-logo strong{max-width:190px;font-size:.93rem}
  .public-app .hotel-logo small{display:none}
  .public-app .hotel-hero-copy,.public-app.theme-oppa .hotel-hero-copy{margin-left:0;text-align:left}
  .public-app .hotel-hero-copy h1,.public-app.theme-oppa .hotel-hero-copy h1{
    margin-left:0;font-size:clamp(3.45rem,13vw,5.6rem);line-height:.96;
  }
  .public-app.theme-oppa .hotel-hero-copy>span{margin-left:0}
  .public-app.theme-oppa .hero-facts{justify-content:flex-start}
  .public-app .quick-search{grid-template-columns:1fr 1fr}
  .public-app .quick-search label{padding:11px 13px}
  .public-app .quick-search button{min-width:0;min-height:54px}
  .public-app .hotel-about,.public-app .hotel-contact{grid-template-columns:1fr;padding:78px 20px}
  .public-app .hotel-about aside{grid-column:auto}
  .public-app .hotel-gallery,.public-app .availability-section{padding:78px 20px}
  .public-app .gallery-heading{flex-direction:column;align-items:flex-start;gap:12px}
  .public-app .gallery-grid{grid-template-rows:220px 170px 170px}
  .public-app .availability-layout{grid-template-columns:1fr}
  .onboarding-template-grid{grid-template-columns:1fr}
  .onboarding-template-option{display:grid;grid-template-columns:1fr auto;align-items:end}
  .onboarding-template-option>a{border-top:0;padding:13px}
  .onboarding-template-art{min-height:120px}
}
@media(max-width:520px){
  .marketing-site .marketing-hero-art{min-height:365px}
  .marketing-site .marketing-floating-card{display:none}
  .marketing-site .marketing-dashboard-card{width:92%}
  .marketing-site .marketing-header-actions .marketing-nav-cta{font-size:.68rem}
  .public-app .hotel-logo strong{max-width:130px}
  .public-app .hotel-hero-copy h1,.public-app.theme-oppa .hotel-hero-copy h1{font-size:clamp(3.1rem,14vw,4.3rem)}
  .public-app .hero-facts span{font-size:.66rem}
  .public-app .quick-search button{font-size:.76rem}
  .public-app .public-calendar-card,.public-app .hotel-booking-card{padding:20px}
  .onboarding-detail-pair{grid-template-columns:1fr}
  .public-app .gallery-grid{grid-template-columns:1fr 1fr}
  .public-app .gallery-card-1{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){
  .marketing-site *, .public-app .hotel-landing *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
