@font-face{ font-family:'Giane'; src:url(giane-extralight.woff2) format('woff2'); font-weight:200; font-style:normal; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-light.woff2) format('woff2'); font-weight:300; font-style:normal; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-regular.woff2) format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-italic.woff2) format('woff2'); font-weight:400; font-style:italic; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-medium.woff2) format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-mediumitalic.woff2) format('woff2'); font-weight:500; font-style:italic; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-semibold.woff2) format('woff2'); font-weight:600; font-style:normal; font-display:swap; }
@font-face{ font-family:'Giane'; src:url(giane-bold.woff2) format('woff2'); font-weight:700; font-style:normal; font-display:swap; }

:root{
  --bg:#ffffff; --ink:#241f1f; --ink-soft:#3a3532; --gray:#55585b;
  --maroon:#471e1f; --maroon-2:#311516; --booking-bg:#e6e1e0; --tan:#d6c6aa;
  --display:'Giane','Georgia',serif;
  --serif:'Georgia',serif;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--ink-soft); font-family:var(--serif); }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
.wrap{ padding:0 36px; }
.site-header{ position:absolute; top:0; left:0; right:0; z-index:20; padding:20px 0; }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; }
.logo{ font-family:var(--display); font-size:1.7rem; color:var(--ink); line-height:1; }
nav.main-nav{ display:flex; align-items:center; gap:24px; }
nav.main-nav a:not(.btn-solid){ font-family:var(--serif); font-size:.85rem; color:var(--gray); transition:color .2s ease; text-decoration:none; text-underline-offset:4px; }
nav.main-nav a:not(.btn-solid):hover{ color:var(--ink); text-decoration:underline; }
nav.main-nav a.active{ color:var(--ink); }
.nav-toggle-input{ display:none; }
.nav-toggle-btn{ display:none; flex-direction:column; justify-content:center; gap:5px; width:34px; height:28px; cursor:pointer; flex-shrink:0; }
.nav-toggle-btn span{ display:block; width:100%; height:2px; background:var(--ink); border-radius:2px; }
a.nav-mobile-cta{ display:none; }

/* .site-header.hero-dark marks pages whose hero photo is genuinely dark at
   the top (checked per photo, not guessed) — there the header floats over
   that dark area (while not yet stuck) so the logo and hamburger icon
   switch to white to stay legible. Pages with a light/bright hero top keep
   the normal dark ink text, since white would be the low-contrast choice
   there instead. The inline desktop nav links do the same, but only above
   the mobile breakpoint — under it, nav.main-nav becomes the white dropdown
   panel and needs its own dark text (see the mobile nav rules), which must
   not get overridden here. */
.site-header.hero-dark:not(.is-stuck) .logo{ color:#fff; }
.site-header.hero-dark:not(.is-stuck) .nav-toggle-btn span{ background:#fff; }
@media (min-width:861px){
  .site-header.hero-dark:not(.is-stuck) nav.main-nav a:not(.btn-solid){ color:rgba(255,255,255,.88); }
  .site-header.hero-dark:not(.is-stuck) nav.main-nav a:not(.btn-solid):hover{ color:#fff; text-decoration:underline; }
  .site-header.hero-dark:not(.is-stuck) nav.main-nav a.active{ color:#fff; text-decoration:underline; }
}
.btn-solid{ display:inline-flex; align-items:center; padding:.8em 1.5em; background:var(--maroon); border:1px solid var(--maroon); color:#fff; font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.03em; transition:background-color .2s ease, border-color .2s ease, transform .15s ease; }
.btn-solid:hover{ background:var(--maroon-2); border-color:var(--maroon-2); transform:translateY(-2px); }
.hero{ position:relative; height:88vh; min-height:600px; color:#fff; overflow:hidden; }
.hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,7,5,.15) 0%, rgba(10,7,5,0) 30%, rgba(10,7,5,.15) 55%, rgba(10,7,5,.6) 100%); }
.hero-quote{ position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); z-index:2; text-align:left; }
.hero-quote .wrap{ max-width:1000px; margin:0; }
.hero-quote p{ font-family:var(--serif); font-size:1.5rem; color:#fff; line-height:1.4; margin-bottom:.5em; }
.hero-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.8rem; color:#fff; display:inline-block; transform:translateY(15%); }
.booking-bar{ position:absolute; left:40px; right:40px; bottom:40px; z-index:3; }
.booking-inner{ background:var(--booking-bg); display:grid; grid-template-columns:1fr 1fr 1fr auto; align-items:stretch; }
.booking-field{ padding:12px 20px; border-right:1px solid #c9c2bf; position:relative; }
.booking-field label{ display:block; font-family:var(--sans); font-size:.6rem; font-weight:700; letter-spacing:.08em; color:var(--ink); margin-bottom:5px; }
.booking-field .val{ font-family:var(--sans); font-size:.76rem; color:#6b6560; }
.bk-trigger{ cursor:pointer; user-select:none; }
.bk-trigger:hover{ background:rgba(0,0,0,.03); }
.bk-trigger.bk-active{ background:rgba(0,0,0,.05); }
.bk-popover{ display:none; position:fixed; top:0; left:0; background:#fff; border-radius:6px; box-shadow:0 14px 32px rgba(0,0,0,.2); padding:18px; z-index:1000; cursor:default; }
.bk-popover.bk-open{ display:block; }
.bk-cal{ width:270px; }
.bk-cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.bk-cal-head span{ font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--ink); text-transform:capitalize; }
.bk-cal-nav{ background:none; border:1px solid #d8d2ce; border-radius:50%; width:24px; height:24px; cursor:pointer; font-size:.7rem; color:var(--ink); line-height:1; }
.bk-cal-nav:hover{ background:#f2efec; }
.bk-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.bk-cal-grid .dow{ font-family:var(--sans); font-size:.62rem; color:#9a938c; text-align:center; padding:4px 0 8px; }
.bk-cal-grid button{ font-family:var(--sans); font-size:.74rem; color:var(--ink); background:none; border:none; border-radius:50%; width:28px; height:28px; cursor:pointer; }
.bk-cal-grid button:hover:not(:disabled){ background:#e9e4e0; }
.bk-cal-grid button:disabled{ color:#d3cec9; cursor:default; }
.bk-cal-grid button.bk-sel{ background:var(--maroon); color:#fff; }
.bk-cal-grid button.bk-empty{ visibility:hidden; cursor:default; }
.bk-guests{ width:220px; }
.bk-guest-row{ display:flex; align-items:center; justify-content:space-between; }
.bk-guest-row span:first-child{ font-family:var(--sans); font-size:.82rem; color:var(--ink); }
.bk-stepper{ display:flex; align-items:center; gap:12px; }
.bk-stepper button{ width:26px; height:26px; border-radius:50%; border:1px solid #c9c2bf; background:#fff; color:var(--ink); font-size:1rem; line-height:1; cursor:pointer; }
.bk-stepper button:hover:not(:disabled){ background:#f2efec; }
.bk-stepper button:disabled{ opacity:.35; cursor:default; }
.bk-count{ font-family:var(--sans); font-size:.85rem; color:var(--ink); min-width:14px; text-align:center; }
.btn-dark{ display:flex; align-items:center; justify-content:center; padding:0 26px; background:#181513; color:#fff; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.02em; transition:background-color .2s ease, transform .15s ease; }
.btn-dark:hover{ background:var(--maroon); transform:translateY(-2px); }
.btn-ghost{ display:inline-flex; align-items:center; gap:8px; padding:.75em 1.4em; background:transparent; border:1px solid rgba(255,255,255,.75); color:#fff; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; transition:background-color .2s ease, color .2s ease, transform .15s ease; }
.btn-ghost:hover{ background:#fff; color:var(--ink); transform:translateY(-2px); }
.quickfacts{ background:#fff; border-bottom:1px solid #e9e4e0; padding:22px 44px; }
.quickfacts-row{ max-width:1740px; margin:0 auto; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 0; font-family:var(--sans); font-size:.78rem; letter-spacing:.04em; color:var(--ink-soft); text-align:center; }
.quickfacts-row span.sep{ margin:0 16px; color:#c9c2bf; }

.maxw-wrap{ max-width:1740px; margin:0 auto; padding:0 44px; }
.split{ display:grid; grid-template-columns:.62fr 1fr 1fr; gap:26px; align-items:start; padding:90px 0 0; }
.split h2{ font-family:var(--display); font-weight:400; color:var(--ink); font-size:2.6rem; line-height:1.12; margin:0 0 .35em; }
.split p{ font-size:.95rem; line-height:1.55; color:var(--ink-soft); margin:0 0 1.4em; max-width:340px; }
.rating-badges{ display:flex; flex-direction:column; align-items:flex-start; max-width:340px; }
.rating-airbnb{ display:flex; flex-direction:column; align-items:center; width:100%; }
.rating-src{ display:block; font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#a39c92; margin-bottom:10px; }
.laurel-row{ display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:16px; width:100%; }
.laurel{ color:var(--ink); flex-shrink:0; }
.laurel-right{ transform:scaleX(-1); }
.rating-num{ font-family:var(--display); font-weight:400; font-size:2.9rem; color:var(--ink); line-height:1; }
.rating-title{ font-family:var(--sans); font-weight:700; font-size:.98rem; color:var(--ink); text-align:center; width:100%; margin-bottom:8px; }
.rating-desc{ font-family:var(--sans); font-size:.78rem; line-height:1.6; color:var(--gray); text-align:center; width:100%; margin:0 0 10px; }
.rating-link{ display:block; text-align:center; width:100%; font-family:var(--sans); font-size:.78rem; color:var(--ink); text-decoration:underline; text-underline-offset:3px; transition:color .2s ease; }
.rating-link:hover{ color:var(--maroon); }
.rating-divider{ width:100%; height:1px; background:#e4dfda; margin:26px 0; }
.rating-booking{ width:100%; display:flex; flex-direction:column; align-items:center; }
.booking-score-row{ display:flex; align-items:center; justify-content:center; width:100%; margin-bottom:16px; }
.booking-score{ display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:8px; background:#003580; color:#fff; font-family:var(--sans); font-weight:700; font-size:1.4rem; letter-spacing:-.01em; }
.split{ align-items:stretch; }
.split .frame{ overflow:hidden; aspect-ratio:3/4; align-self:stretch; width:100%; min-width:0; }
.split .frame img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){
  .split{ grid-template-columns:1fr; padding:50px 0 0; }
  .split .frame{ aspect-ratio:4/3; }
}
.photo-hero{ overflow:hidden; margin-top:44px; background:#fff; }
.photo-hero img{ width:100%; height:auto; display:block; }

.combo2{ background:var(--tan); display:grid; grid-template-columns:1fr 1fr; min-height:640px; }
.combo2-text{ padding:70px; display:flex; flex-direction:column; justify-content:space-between; }
.combo2-text blockquote{ font-family:var(--serif); font-size:1.3rem; line-height:1.45; color:var(--ink); margin:0; }
.combo2-text .cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.92rem; color:#fff; margin-top:18px; display:block; }
.combo2-text .name h2{ font-family:var(--display); font-weight:400; font-size:4.4rem; color:var(--ink); line-height:1; margin:0; }
.combo2-text .name .place{ font-family:var(--serif); font-size:1.2rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); margin-top:.2em; display:block; }
.combo2-photo{ overflow:hidden; }
.combo2-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){
  .combo2{ grid-template-columns:1fr; }
  .combo2-text{ padding:40px 24px; }
  .combo2-photo{ aspect-ratio:4/5; }
}

.ticker{ border-top:1px solid #c9bda3; border-bottom:1px solid #c9bda3; padding:20px 44px; }
.ticker-row{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px 40px; }
.ticker-row span{ font-family:var(--sans); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:#8c8578; white-space:nowrap; }
.kitchen{ display:grid; grid-template-columns:1fr 60px 1fr; align-items:stretch; }
.kitchen .photo{ overflow:hidden; }
.kitchen .photo img{ width:100%; height:100%; object-fit:cover; min-height:560px; display:block; }
.kitchen .vlabel{ display:flex; align-items:center; justify-content:center; }
.kitchen .vlabel span{ writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#8c8578; }
.kitchen .copy{ padding:70px 60px 40px 0; }
.kitchen .copy h2{ font-family:var(--display); font-weight:400; font-size:4.4rem; color:var(--maroon); line-height:1.1; margin:0; }
.kitchen .copy p{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); max-width:460px; margin:.6em 0 0; }
.kitchen .smallphoto{ margin:24px auto 0 auto; overflow:hidden; aspect-ratio:1/1; max-width:280px; }
.kitchen .smallphoto img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){
  .kitchen{ grid-template-columns:1fr; }
  .kitchen .vlabel{ display:none; }
  .kitchen .copy{ padding:40px 24px; }
  .kitchen .smallphoto{ margin:24px 24px 40px; }
}

.bg-tan{ background:#fff; padding:90px 0; }
.reviews-head{ text-align:center; margin-bottom:50px; }
.reviews-head h2{ font-family:var(--sans); font-size:1.05rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); font-weight:600; margin:0; }
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:50px; max-width:1740px; margin:0 auto; padding:0 44px; }
.review-head{ display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.avatar{ width:44px; height:44px; border-radius:50%; object-fit:cover; background:var(--tan); display:block; }
.review-head b{ display:block; font-family:var(--sans); font-size:.92rem; font-weight:700; color:var(--ink); }
.review-head span{ display:block; font-family:var(--sans); font-size:.8rem; color:#8c8578; }
.review-meta{ font-family:var(--sans); font-size:.8rem; color:var(--ink); margin-bottom:10px; }
.review-meta .stars{ letter-spacing:.1em; }
.review-card p{ font-family:var(--sans); font-size:.92rem; line-height:1.55; color:var(--ink-soft); margin:0 0 8px; }
.review-card a{ font-family:var(--sans); font-size:.82rem; color:var(--ink); text-decoration:underline; }
.photo-strip{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; padding:0 44px; }
.photo-strip .frame{ aspect-ratio:3/4; overflow:hidden; }
.photo-strip img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){
  .review-grid{ grid-template-columns:1fr; gap:36px; }
  .photo-strip{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:640px){
  .photo-strip{ grid-template-columns:repeat(2,1fr); }
}

.glance{ display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:stretch; padding:100px 44px 44px; max-width:1740px; margin:0 auto; }
.glance-text{ display:flex; flex-direction:column; }
.glance-text .spec-table{ margin-top:auto; }
.glance .frame{ overflow:hidden; }
.glance .frame img{ width:100%; height:580px; object-fit:cover; display:block; }
.glance h2{ font-family:var(--display); font-weight:400; font-size:3.8rem; line-height:1; color:var(--maroon); margin:-.08em 0 .4em; }
.glance-text p{ font-family:var(--serif); font-size:1.1rem; line-height:1.5; color:var(--ink); max-width:520px; margin:0 0 1.4em; }
.spec-table{ width:100%; border-collapse:collapse; }
.spec-table tr{ border-top:1px solid #c9bda3; }
.spec-table tr:last-child{ border-bottom:1px solid #c9bda3; }
.spec-table td{ padding:13px 0; font-family:var(--sans); font-size:.94rem; color:var(--ink); }
.spec-table td:first-child{ color:var(--gray); }
.spec-table td:last-child{ text-align:right; }
.glance-box{ border:1px solid #c9bda3; height:64px; margin-top:20px; }
@media (max-width:980px){
  .glance{ grid-template-columns:1fr; padding:60px 24px 28px; }
  .glance .frame img{ height:340px; }
}

.photo-strip4{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:0 44px; }
.photo-strip4 .frame{ aspect-ratio:3/4; overflow:hidden; }
.photo-strip4 img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){
  .photo-strip4{ grid-template-columns:repeat(2,1fr); }
}

.closer{ position:relative; height:78vh; min-height:560px; color:#fff; overflow:hidden; margin-top:44px; }
.closer img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.closer::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,7,5,0) 55%, rgba(10,7,5,.45) 100%); }
.closer-content{ position:absolute; left:0; right:0; bottom:70px; z-index:2; padding:0 44px; }
.closer-content .wrap2{ max-width:640px; }
.closer-content p{ font-family:var(--serif); font-size:1.4rem; color:#fff; line-height:1.35; margin:0 0 .5em; }
.closer-content cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.98rem; color:#fff; }
.closer-content .dash{ color:#fff; margin-right:8px; }
footer{ background:var(--maroon); color:#fff; padding:80px 44px 0; }
footer .wrap2{ max-width:1740px; margin:0 auto; }
footer .logo{ color:#fff; font-size:2.2rem; display:block; margin-bottom:14px; }
footer .tagline{ font-family:var(--serif); font-size:.95rem; color:rgba(255,255,255,.7); line-height:1.6; max-width:280px; margin:0; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.18); }
.footer-col h4{ font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:0 0 18px; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.footer-col a{ font-family:var(--serif); font-size:.95rem; color:#fff; transition:opacity .2s ease; }
.footer-col a:hover{ opacity:.7; }
.footer-col p{ font-family:var(--serif); font-size:.95rem; color:#fff; margin:0 0 6px; line-height:1.5; }
.footer-social{ display:flex; gap:14px; margin-top:4px; }
.footer-social a{ width:36px; height:36px; border:1px solid rgba(255,255,255,.35); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--sans); font-size:.8rem; transition:background-color .2s ease, border-color .2s ease; }
.footer-social a:hover{ background:rgba(255,255,255,.15); border-color:#fff; }
.footer-bottom{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:22px 0; }
.footer-bottom p{ font-family:var(--sans); font-size:.78rem; color:rgba(255,255,255,.6); margin:0; }
.footer-legal{ display:flex; gap:22px; list-style:none; margin:0; padding:0; }
.footer-legal a{ font-family:var(--sans); font-size:.78rem; color:rgba(255,255,255,.6); transition:color .2s ease; }
.footer-legal a:hover{ color:#fff; }
@media (max-width:980px){
  .footer-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .footer-bottom{ justify-content:flex-start; }
}
@media (max-width:640px){
  .footer-grid{ grid-template-columns:1fr; }
}

/* ===== Scroll reveal animations ===== */
.reveal{ opacity:0; transform:translateY(36px); transition:opacity .9s cubic-bezier(.16,.8,.28,1), transform .9s cubic-bezier(.16,.8,.28,1); will-change:opacity,transform; }
.reveal.in-view{ opacity:1; transform:translateY(0); }
.reveal-stagger > *{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; will-change:opacity,transform; }
.reveal-stagger.in-view > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.in-view > *:nth-child(1){ transition-delay:.03s; }
.reveal-stagger.in-view > *:nth-child(2){ transition-delay:.12s; }
.reveal-stagger.in-view > *:nth-child(3){ transition-delay:.21s; }
.reveal-stagger.in-view > *:nth-child(4){ transition-delay:.30s; }
.reveal-stagger.in-view > *:nth-child(5){ transition-delay:.39s; }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-stagger > *{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ===== Responsive fixes (global pass) ===== */

/* Prevent grid blowout from images/long content forcing columns wider than their track */
.booking-inner > *,
.split > *,
.combo2 > *,
.kitchen > *,
.review-grid > *,
.photo-strip > *,
.glance > *,
.photo-strip4 > *,
.footer-grid > *{ min-width:0; }

html{ overflow-x:hidden; scroll-behavior:smooth; }
body{ overflow-x:hidden; }
img{ max-width:100%; }

/* Mobile nav: hamburger menu */
@media (max-width:860px){
  .header-cta{ display:none; }
  .nav-toggle-btn{ display:flex; }
  nav.main-nav{
    display:none;
    position:absolute;
    top:100%; left:0; right:0;
    background:#fff;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:8px 24px 24px;
    box-shadow:0 12px 24px rgba(0,0,0,.12);
  }
  nav.main-nav a{ padding:13px 0; border-bottom:1px solid rgba(0,0,0,.08); color:var(--ink); font-size:.95rem; }
  a.nav-mobile-cta{ display:inline-flex; justify-content:center; margin-top:16px; border-bottom:none; }
  .nav-toggle-input:checked ~ nav.main-nav{ display:flex; }
}

/* Small desktop / tablet landscape (861-1100): tighten spacing so nothing crowds */
@media (max-width:1100px){
  .wrap{ padding:0 28px; }
  .maxw-wrap{ padding:0 28px; }
  .booking-bar{ left:24px; right:24px; bottom:24px; }
  .split{ gap:18px; }
  .glance{ gap:40px; padding:70px 28px 28px; }
  .review-grid{ padding:0 28px; gap:34px; }
  .photo-strip{ padding:0 28px; }
  .photo-strip4{ padding:0 28px; }
}

/* Tablet / narrow desktop: stack columns earlier where content is tight */
@media (max-width:860px){
  .logo{ font-size:1.4rem; }
  .hero-quote p{ font-size:1.25rem; }
  .hero{ height:76vh; min-height:520px; }
  .hero img{ transform:scale(1.22); transform-origin:50% 78%; }
  .booking-inner{ grid-template-columns:1fr 1fr; }
  .booking-inner .btn-dark{ grid-column:1 / -1; padding:16px; }
  .booking-field{ border-bottom:1px solid #c9c2bf; }
  .kitchen .copy h2{ font-size:2.6rem; }
  .combo2-text .name h2{ font-size:3rem; }
  .glance h2{ font-size:2.6rem; }
  footer{ padding:60px 24px 0; }
}

/* Phones */
@media (max-width:640px){
  .wrap{ padding:0 20px; }
  .maxw-wrap{ padding:0 20px; }
  .quickfacts{ padding:16px 20px; }
  .quickfacts-row{ font-size:.7rem; gap:8px 0; }
  .quickfacts-row span.sep{ margin:0 10px; }
  .hero{ height:66vh; min-height:460px; }
  .hero img{ transform:scale(1.4); transform-origin:50% 82%; }
  .hero-quote p{ font-size:1.1rem; }
  .booking-bar{ left:16px; right:16px; bottom:16px; }
  .booking-inner{ grid-template-columns:1fr; }
  .booking-field{ padding:12px 16px; }
  .booking-inner .btn-dark{ padding:14px; }
  .booking-field[data-field="checkout"],
  .booking-field[data-field="guests"]{ display:none; }
  .booking-field[data-field="checkin"]{ border-bottom:none; }
  .bk-cal{ width:calc(100vw - 32px); max-width:320px; }
  .bk-guests{ width:calc(100vw - 32px); max-width:260px; }
  .split{ padding:50px 0 0; }
  .split .frame{ aspect-ratio:16/10; }
  .review-grid{ padding:0 20px; }
  .photo-strip{ display:none; }
  .photo-strip4{ display:none; }
  .footer-col:nth-child(2),
  .footer-col:nth-child(4){ display:none; }
  .glance{ padding:50px 20px 20px; }
  .glance .frame img{ height:240px; }
  .combo2-text{ padding:32px 20px; }
  .combo2-text blockquote{ font-size:1.1rem; }
  .combo2-text .name h2{ font-size:2.4rem; }
  .kitchen .copy{ padding:32px 20px; }
  .kitchen .copy h2{ font-size:2.1rem; }
  .kitchen .smallphoto{ margin:20px auto 32px; max-width:220px; }
  footer{ padding:50px 20px 0; }
  .footer-bottom{ padding:20px 0 30px; }
  .closer{ height:60vh; min-height:420px; margin-top:28px; }
  .closer-content{ padding:0 20px; bottom:36px; }
  .closer-content p{ font-size:1.1rem; }
  .photo-hero{ margin-top:28px; }
}

/* ===== Subpage components (La casa, etc.) ===== */

/* Full-bleed page hero, with room at the bottom for the booking bar */
.page-hero{ position:relative; height:74vh; min-height:560px; color:#fff; overflow:hidden; }
.page-hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,7,5,.32) 0%, rgba(10,7,5,.15) 28%, rgba(10,7,5,.4) 62%, rgba(10,7,5,.64) 100%); }
.page-hero-content{ position:absolute; left:0; right:0; bottom:172px; z-index:2; }
.page-hero-content .wrap{ max-width:1740px; margin:0 auto; }
.page-hero-eyebrow{ display:block; font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.85); margin-bottom:10px; }
.page-hero-content h1{ font-family:var(--display); font-weight:400; font-size:3.6rem; line-height:1.05; color:#fff; margin:0; }
.page-hero-content .quote-text{ font-family:var(--serif); font-weight:400; font-size:1.3rem; line-height:1.45; color:#fff; max-width:820px; margin:0 0 10px; }
.page-hero-content .quote-cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.04em; color:rgba(255,255,255,.9); }
@media (max-width:860px){
  .page-hero{ height:64vh; min-height:520px; }
  .page-hero img{ transform:scale(1.15); transform-origin:50% 70%; }
  .page-hero-content{ bottom:148px; }
  .page-hero-content h1{ font-size:2.4rem; }
  .page-hero-content .quote-text{ font-size:1.1rem; max-width:600px; }
}
@media (max-width:640px){
  .page-hero{ height:60vh; min-height:480px; }
  .page-hero img{ transform:scale(1.3); transform-origin:50% 76%; }
  .page-hero-content{ bottom:128px; }
  .page-hero-content h1{ font-size:1.9rem; }
  .page-hero-content .quote-text{ font-size:1rem; max-width:90%; }
}

/* Sentinel used to trigger the sticky header/booking-bar transition on scroll */
.scroll-sentinel{ height:1px; }

/* Sticky header: once scrolled past the hero, the header pins to the top as
   ONE compact row — logo, the booking fields (moved here from the hero by
   booking.js) and the hamburger all share that single row, so the booking
   bar keeps inviting a reservation without the page ever growing a second
   bar underneath. The nav dropdown still collapses to the hamburger
   regardless of viewport width. */
.site-header.is-stuck{ position:fixed; top:0; left:0; right:0; background:#fff; padding:12px 0; box-shadow:0 2px 16px rgba(0,0,0,.09); animation:barSlideDown .28s ease; }
.site-header.is-stuck .wrap{ flex-wrap:nowrap; }
.site-header.is-stuck .logo{ font-size:1.3rem; flex-shrink:0; color:var(--ink); }
.site-header.is-stuck .header-cta{ display:none; }
.site-header.is-stuck .nav-toggle-btn{ display:flex; flex-shrink:0; }
.site-header.is-stuck nav.main-nav{
  display:none; position:absolute; top:100%; left:0; right:0;
  background:#fff; flex-direction:column; align-items:stretch; gap:0;
  padding:8px 24px 24px; box-shadow:0 12px 24px rgba(0,0,0,.12);
}
.site-header.is-stuck nav.main-nav a{ padding:13px 0; border-bottom:1px solid rgba(0,0,0,.08); color:var(--ink); font-size:.95rem; }
.site-header.is-stuck a.nav-mobile-cta{ display:inline-flex; justify-content:center; margin-top:16px; border-bottom:none; }
.site-header.is-stuck .nav-toggle-input:checked ~ nav.main-nav{ display:flex; }
@keyframes barSlideDown{ from{ transform:translateY(-10px); opacity:.5; } to{ transform:translateY(0); opacity:1; } }

/* Empty placeholder in the header markup: booking.js moves the real
   .booking-inner node in here once the page is scrolled (and back out
   again when it isn't), so logo + fields + hamburger render as one row. */
.header-booking-slot{ display:none; }
.site-header.is-stuck .header-booking-slot{ display:flex; align-items:stretch; flex:1; min-width:0; margin:0 20px; }
.header-booking-slot .booking-inner{ display:flex; align-items:center; width:100%; background:transparent; }
.header-booking-slot .booking-field{ padding:2px 18px; border-right:1px solid #d8d2ce; flex:1; min-width:0; }
.header-booking-slot .booking-field label{ font-size:.56rem; margin-bottom:2px; }
.header-booking-slot .booking-field .val{ font-size:.72rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.header-booking-slot .btn-dark{ flex:0 0 auto; margin-left:18px; padding:.7em 1.3em; font-size:.7rem; white-space:nowrap; }

/* The hero's own booking bar simply disappears while its content is
   borrowed by the header row above; it reappears once un-stuck. */
.booking-bar.is-stuck{ visibility:hidden; pointer-events:none; }

@media (max-width:1100px){
  .header-booking-slot{ margin:0 14px; }
  .header-booking-slot .booking-field[data-field="guests"]{ display:none; }
}
@media (max-width:860px){
  .header-booking-slot .booking-field label{ display:none; }
  .header-booking-slot .booking-field{ padding:0 14px; }
  .header-booking-slot .booking-field[data-field="checkout"]{ display:none; }
}
@media (max-width:640px){
  .site-header.is-stuck{ padding:10px 0; }
  .site-header.is-stuck .logo{ font-size:1.05rem; }
  .header-booking-slot{ margin:0 10px; }
  .header-booking-slot .booking-field{ display:none; }
  .header-booking-slot .btn-dark{ margin-left:0; width:100%; text-align:center; padding:.65em 0; font-size:.66rem; }
}

/* Section intro: centered heading + paragraph */
.section-intro{ max-width:900px; margin:0 auto; padding:100px 44px 50px; text-align:center; }
.section-intro .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); margin-bottom:16px; }
.section-intro h2{ font-family:var(--display); font-weight:400; font-size:2.7rem; line-height:1.15; color:var(--ink); margin:0 0 .5em; }
.section-intro p{ font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--ink-soft); margin:0; }
@media (max-width:640px){
  .section-intro{ padding:60px 20px 30px; }
  .section-intro h2{ font-size:2rem; }
}

/* Room / dormitorio cards */
.room-section{ max-width:1740px; margin:0 auto; padding:20px 44px 100px; }
.room-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.room-card{ display:flex; flex-direction:column; }
.room-card .frame{ overflow:hidden; aspect-ratio:4/5; margin-bottom:16px; }
.room-card .frame img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.room-card:hover .frame img{ transform:scale(1.04); }
.room-card h3{ font-family:var(--display); font-weight:400; font-size:1.3rem; color:var(--ink); margin:0 0 .3em; }
.room-card p{ font-family:var(--sans); font-size:.86rem; line-height:1.5; color:var(--gray); margin:0; }
.room-note{ max-width:1740px; margin:0 auto; padding:0 44px 40px; }
.room-note p{ font-family:var(--sans); font-size:.88rem; line-height:1.6; color:var(--gray); max-width:700px; margin:0; font-style:italic; }
@media (max-width:980px){
  .room-grid{ grid-template-columns:1fr 1fr; gap:22px; }
}
@media (max-width:640px){
  .room-section{ padding:10px 20px 60px; }
  .room-grid{ grid-template-columns:1fr; gap:26px; }
  .room-note{ padding:0 20px 30px; }
}

/* Alternating feature rows (zonas de estar, exterior, confort) */
.feature{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; min-height:520px; background:var(--tan); }
.feature-photo{ overflow:hidden; }
.feature-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.feature-text{ padding:70px; display:flex; flex-direction:column; justify-content:center; }
.feature-text .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px; }
.feature-text h2{ font-family:var(--display); font-weight:400; font-size:2.6rem; color:var(--ink); margin:0 0 .5em; line-height:1.1; }
.feature-text p{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); margin:0 0 1em; max-width:460px; }
.feature-list{ list-style:none; margin:8px 0 0; padding:0; max-width:460px; }
.feature-list li{ font-family:var(--sans); font-size:.88rem; color:var(--ink-soft); padding:9px 0; border-top:1px solid rgba(71,30,31,.15); }
.feature-list li:last-child{ border-bottom:1px solid rgba(71,30,31,.15); }
.feature-white{ background:#fff; }
.feature-rev{ grid-template-columns:1fr 1fr; }
.feature-rev .feature-photo{ order:2; }
.feature-rev .feature-text{ order:1; }
@media (max-width:980px){
  .feature, .feature-rev{ grid-template-columns:1fr; min-height:0; }
  .feature-rev .feature-photo{ order:0; }
  .feature-rev .feature-text{ order:0; }
  .feature-photo{ aspect-ratio:4/3; }
  .feature-text{ padding:44px 24px; }
}
@media (max-width:640px){
  .feature-text{ padding:36px 20px; }
  .feature-text h2{ font-size:2rem; }
}

/* Small exterior gallery strip (reuses photo-strip4 grid but standalone) */
.mini-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; max-width:1740px; margin:0 auto; padding:12px 44px 100px; }
.mini-strip .frame{ aspect-ratio:3/4; overflow:hidden; }
.mini-strip img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:980px){ .mini-strip{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .mini-strip{ padding:12px 20px 60px; } }

/* Lifestyle grid: real guests enjoying the house (people, not just architecture) */
.life-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:1740px; margin:0 auto; padding:12px 44px 80px; }
.life-grid .frame{ overflow:hidden; aspect-ratio:4/5; border-radius:2px; }
.life-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.life-grid .frame:hover img{ transform:scale(1.04); }
@media (max-width:980px){ .life-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .life-grid{ padding:12px 20px 50px; gap:10px; } }

/* Lifestyle pair: two loose photos, no quote */
.life-pair-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; max-width:1740px; margin:0 auto; padding:12px 44px 12px; }
.life-pair-grid .frame{ overflow:hidden; aspect-ratio:16/9; border-radius:2px; }
.life-pair-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.life-pair-grid .frame:hover img{ transform:scale(1.04); }
@media (max-width:640px){ .life-pair-grid{ grid-template-columns:1fr; padding:12px 20px 12px; gap:10px; } }

/* Lifestyle split cards: photo + real Booking.com review, half and half */
.life-split-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; max-width:1740px; margin:0 auto; padding:12px 44px 80px; }
.life-split{ display:grid; grid-template-columns:1fr 1fr; background:var(--tan); overflow:hidden; min-height:360px; }
.life-split:nth-child(even) .life-split-photo{ order:2; }
.life-split-photo{ overflow:hidden; }
.life-split-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.life-split-quote{ display:flex; flex-direction:column; justify-content:center; padding:40px 46px; }
.life-split-quote p{ font-family:var(--serif); font-weight:400; font-style:italic; font-size:1.15rem; line-height:1.5; color:var(--ink); margin:0 0 16px; }
.life-split-quote cite{ display:block; font-style:normal; font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.04em; color:var(--maroon); }
@media (max-width:980px){
  .life-split-grid{ grid-template-columns:1fr; padding:12px 28px 60px; gap:20px; }
  .life-split{ grid-template-columns:1fr; min-height:auto; }
  .life-split-photo{ aspect-ratio:16/10; order:0 !important; }
  .life-split-quote{ padding:30px 32px; }
}
@media (max-width:640px){
  .life-split-grid{ padding:10px 20px 50px; gap:16px; }
  .life-split-quote{ padding:26px 24px; }
  .life-split-quote p{ font-size:1.05rem; }
}

/* Plano band: single centered callout line */
.plano-band{ border-top:1px solid #c9bda3; border-bottom:1px solid #c9bda3; padding:44px; text-align:center; }
.plano-band p{ font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--ink); max-width:760px; margin:0 auto; line-height:1.4; }
.plano-band cite{ display:block; margin-top:16px; font-style:normal; font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.04em; color:var(--maroon); }
@media (max-width:640px){
  .plano-band{ padding:32px 20px; }
  .plano-band p{ font-size:1.05rem; }
}

/* Amenities */
.amenities{ max-width:1740px; margin:0 auto; padding:100px 44px; }
.amenities-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px; margin-top:50px; }
.amenity-cat h4{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--maroon); margin:0 0 16px; }
.amenity-cat ul{ list-style:none; margin:0; padding:0; }
.amenity-cat li{ font-family:var(--serif); font-size:.92rem; color:var(--ink-soft); padding:7px 0; border-top:1px solid #e9e4e0; }
@media (max-width:980px){
  .amenities{ padding:70px 28px; }
  .amenities-grid{ grid-template-columns:1fr 1fr; gap:30px; }
}
@media (max-width:640px){
  .amenities{ padding:50px 20px; }
  .amenities-grid{ grid-template-columns:1fr; gap:30px; }
}

/* ===== Estancias ===== */
.plan-section{ max-width:1740px; margin:0 auto; padding:20px 44px 110px; }
.plan-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.plan-image{ background:#fff; border:1px solid #e9e4e0; padding:22px; }
.plan-image img{ width:100%; height:auto; display:block; }
.plan-text .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px; }
.plan-text h2{ font-family:var(--display); font-weight:400; font-size:2.4rem; color:var(--ink); margin:0 0 .5em; line-height:1.15; }
.plan-text p{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); margin:0 0 1.3em; max-width:460px; }
.plan-houses{ list-style:none; margin:0; padding:0; max-width:460px; }
.plan-houses li{ display:flex; align-items:baseline; justify-content:space-between; padding:13px 0; border-top:1px solid rgba(71,30,31,.15); font-family:var(--sans); font-size:.86rem; color:var(--ink-soft); letter-spacing:.02em; }
.plan-houses li:last-child{ border-bottom:1px solid rgba(71,30,31,.15); }
.plan-houses li b{ font-family:var(--serif); font-weight:400; color:var(--ink); font-size:1.08rem; letter-spacing:0; }
@media (max-width:980px){
  .plan-section{ padding:10px 28px 70px; }
  .plan-grid{ grid-template-columns:1fr; gap:34px; }
  .plan-text h2{ font-size:2rem; }
}
@media (max-width:640px){
  .plan-section{ padding:10px 20px 50px; }
  .plan-image{ padding:12px; }
}

/* Estancias hub: brief teaser cards linking out to dedicated pages */
.hub-grid{ max-width:1740px; margin:0 auto; padding:10px 44px 110px; display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
.hub-card{ display:block; text-decoration:none; color:inherit; }
.hub-card .hub-photo{ aspect-ratio:3/4; overflow:hidden; margin-bottom:16px; }
.hub-card .hub-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.hub-card:hover .hub-photo img{ transform:scale(1.05); }
.hub-card h3{ font-family:var(--display); font-weight:400; font-size:1.3rem; color:var(--ink); margin:0 0 .3em; }
.hub-card p{ font-family:var(--serif); font-size:.86rem; line-height:1.5; color:var(--ink-soft); margin:0 0 .6em; }
.hub-card .hub-link{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--maroon); }
.hub-card .hub-link::after{ content:" →"; }
@media (max-width:1100px){
  .hub-grid{ grid-template-columns:repeat(3,1fr); gap:24px 20px; }
}
@media (max-width:640px){
  .hub-grid{ grid-template-columns:repeat(2,1fr); padding:10px 20px 60px; gap:24px 16px; }
}

/* Route / recommendation cards (Ciclismo, Senderismo) */
.route-section{ max-width:1740px; margin:0 auto; padding:90px 44px; }
.route-section-head{ max-width:640px; margin-bottom:50px; }
.route-section-head .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px; }
.route-section-head h2{ font-family:var(--display); font-weight:400; font-size:2.4rem; color:var(--ink); margin:0; line-height:1.15; }
.route-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.route-card{ padding:26px 0 0; border-top:1px solid #e9e4e0; }
.route-card h4{ font-family:var(--display); font-weight:400; font-size:1.25rem; color:var(--ink); margin:0 0 .4em; }
.route-card .route-facts{ font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--maroon); margin-bottom:.7em; }
.route-card p{ font-family:var(--serif); font-size:.92rem; line-height:1.55; color:var(--ink-soft); margin:0; }
@media (max-width:980px){
  .route-section{ padding:60px 28px; }
  .route-grid{ grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width:640px){
  .route-section{ padding:44px 20px; }
  .route-grid{ grid-template-columns:1fr; gap:24px; }
}

/* Illustrated map (Tramuntana) */
.map-section{ max-width:1100px; margin:0 auto; padding:20px 44px 110px; text-align:center; }
.map-svg{ width:100%; height:auto; }
.map-svg text{ font-family:var(--sans); }
.map-legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 28px; margin-top:30px; font-family:var(--sans); font-size:.78rem; color:var(--ink-soft); }
.map-legend span.dot{ display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; vertical-align:middle; }
@media (max-width:640px){
  .map-section{ padding:10px 20px 60px; }
}

/* História: timeline */
.timeline{ max-width:1740px; margin:0 auto; padding:20px 44px 110px; }
.timeline-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:24px; }
.timeline-item .timeline-photo{ aspect-ratio:3/4; overflow:hidden; margin-bottom:16px; background:var(--tan); }
.timeline-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.timeline-photo.placeholder{ display:flex; align-items:center; justify-content:center; padding:14px; box-sizing:border-box; }
.timeline-photo.placeholder span{ font-family:var(--serif); font-style:italic; font-size:.78rem; color:var(--maroon); text-align:center; line-height:1.4; }
.timeline-era{ display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--maroon); margin-bottom:8px; }
.timeline-item h4{ font-family:var(--display); font-weight:400; font-size:1.15rem; color:var(--ink); margin:0 0 .3em; line-height:1.2; }
.timeline-item p{ font-family:var(--serif); font-size:.85rem; color:var(--ink-soft); margin:0; line-height:1.45; }
@media (max-width:980px){
  .timeline{ padding:10px 28px 70px; }
  .timeline-grid{ grid-template-columns:repeat(2,1fr); gap:28px 20px; }
}
@media (max-width:640px){
  .timeline{ padding:10px 20px 50px; }
  .timeline-grid{ grid-template-columns:1fr 1fr; gap:24px 16px; }
}

/* Special form (Retiros / Work retreats / Producciones) */
.special-note{ max-width:640px; margin:0 auto 50px; text-align:center; font-family:var(--serif); font-style:italic; font-size:1.05rem; color:var(--ink-soft); line-height:1.5; }
.special-form-wrap{ max-width:640px; margin:0 auto; padding:20px 44px 120px; }
@media (max-width:640px){
  .special-form-wrap{ padding:10px 20px 70px; }
}

/* ===== Contacto ===== */
.cta-banner{ background:var(--maroon); color:#fff; padding:36px 44px; }
.cta-banner-row{ max-width:1740px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.cta-banner-row p{ font-family:var(--serif); font-size:1.05rem; margin:0; color:#fff; }
.cta-banner-row .btn-ghost{ flex-shrink:0; }
@media (max-width:640px){
  .cta-banner{ padding:26px 20px; }
  .cta-banner-row p{ font-size:.95rem; }
}

.contact-wrap{ max-width:1740px; margin:0 auto; padding:90px 44px 120px; }
.contact-grid{ display:grid; grid-template-columns:1.35fr 1fr; gap:70px; align-items:start; }
.contact-form .field{ margin-bottom:26px; }
.contact-form label{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:8px; }
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%; border:none; border-bottom:1px solid #c9bda3; background:transparent;
  padding:10px 2px; font-family:var(--serif); font-size:1rem; color:var(--ink-soft);
  border-radius:0; appearance:none;
}
.contact-form select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23471e1f' stroke-width='1.4' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 4px center; padding-right:20px; }
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{ outline:none; border-bottom-color:var(--maroon); }
.contact-form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.contact-form textarea{ resize:vertical; min-height:110px; font-family:var(--serif); }
.form-note{ font-family:var(--sans); font-size:.82rem; color:var(--gray); line-height:1.6; margin:-6px 0 30px; }
.form-success{ display:none; background:var(--tan); padding:40px; text-align:center; }
.form-success h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; color:var(--ink); margin:0 0 .4em; }
.form-success p{ font-family:var(--sans); font-size:.92rem; color:var(--ink-soft); margin:0; }

.contact-sidebar{ background:var(--tan); padding:50px 40px; }
.contact-sidebar h3{ font-family:var(--display); font-weight:400; font-size:1.5rem; color:var(--ink); margin:0 0 .5em; }
.contact-sidebar p{ font-family:var(--sans); font-size:.9rem; line-height:1.6; color:var(--ink-soft); margin:0 0 1.2em; }
.contact-sidebar-divider{ height:1px; background:#c9bda3; margin:26px 0; }
.contact-info dl{ margin:0; }
.contact-info dt{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#a39c92; margin:0 0 4px; }
.contact-info dd{ font-family:var(--serif); font-size:1rem; color:var(--ink); margin:0 0 18px; }
@media (max-width:980px){
  .contact-wrap{ padding:60px 28px 80px; }
  .contact-grid{ grid-template-columns:1fr; gap:44px; }
}
@media (max-width:640px){
  .contact-wrap{ padding:50px 20px 60px; }
  .contact-form .row2{ grid-template-columns:1fr; gap:0; }
  .contact-sidebar{ padding:34px 24px; }
}

/* ===== Galería ===== */
.gallery-intro{ max-width:820px; margin:0 auto; padding:70px 44px 50px; text-align:center; }
.gallery-intro .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); margin-bottom:16px; }
.gallery-intro h1, .gallery-intro h2{ font-family:var(--display); font-weight:400; font-size:2.8rem; line-height:1.15; color:var(--ink); margin:0 0 .5em; }
.gallery-intro p{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); margin:0; }

.gallery-grid{ column-count:4; column-gap:14px; max-width:1740px; margin:0 auto; padding:0 44px 100px; }
.gallery-grid .g-item{ break-inside:avoid; margin-bottom:14px; overflow:hidden; cursor:zoom-in; background:#f2efec; }
.gallery-grid .g-item img{ width:100%; display:block; transition:transform .5s ease; }
.gallery-grid .g-item:hover img{ transform:scale(1.035); }

.lightbox{ display:none; position:fixed; inset:0; z-index:2000; background:rgba(15,10,8,.94); align-items:center; justify-content:center; }
.lightbox.lb-open{ display:flex; }
.lightbox img{ max-width:88vw; max-height:86vh; object-fit:contain; display:block; }
.lb-close{ position:absolute; top:22px; right:28px; background:none; border:none; color:#fff; font-size:1.8rem; line-height:1; cursor:pointer; font-family:var(--sans); }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); background:none; border:none; color:#fff; font-size:2.4rem; line-height:1; cursor:pointer; padding:10px 18px; opacity:.75; font-family:var(--sans); }
.lb-nav:hover{ opacity:1; }
.lb-prev{ left:8px; }
.lb-next{ right:8px; }
@media (max-width:1100px){
  .gallery-grid{ column-count:3; padding:0 28px 80px; }
}
@media (max-width:640px){
  .gallery-intro{ padding:50px 20px 30px; }
  .gallery-intro h1, .gallery-intro h2{ font-size:2.1rem; }
  .gallery-grid{ column-count:2; column-gap:10px; padding:0 16px 60px; }
  .gallery-grid .g-item{ margin-bottom:10px; }
  .lb-nav{ font-size:1.8rem; padding:8px 10px; }
  .lb-close{ top:14px; right:16px; }
}

/* Decorative ornaments (hand-drawn motifs) */
img.orn-divider{ position:static; display:block; width:96px; height:auto; margin:30px auto 0; opacity:.5; object-fit:contain; }
img.orn-quote{ position:static; display:block; width:24px; height:auto; margin:0 auto 16px; opacity:.75; object-fit:contain; }
img.orn-footer{ position:static; display:block; width:38px; height:auto; margin-top:16px; opacity:.6; object-fit:contain; }
img.orn-leaf{ position:static; display:inline-block; width:20px; height:auto; margin-right:10px; vertical-align:-4px; opacity:.85; object-fit:contain; }
img.orn-heading{ position:static; display:inline-block; width:34px; height:auto; margin-right:14px; vertical-align:-8px; opacity:.8; object-fit:contain; }
@media (max-width:640px){
  img.orn-divider{ width:76px; margin-top:22px; }
  img.orn-quote{ width:20px; margin-bottom:12px; }
  img.orn-footer{ width:32px; }
  img.orn-heading{ width:26px; margin-right:10px; vertical-align:-5px; }
}

/* Direct-booking promo popup (built dynamically by booking.js) */
.promo-overlay{
  position:fixed; inset:0; z-index:500; background:rgba(20,14,12,.55);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.promo-overlay.is-open{ opacity:1; pointer-events:auto; }
.promo-card{
  position:relative; background:#fff; width:100%; max-width:420px;
  padding:46px 40px 38px; text-align:center;
  box-shadow:0 24px 64px rgba(0,0,0,.28);
  transform:translateY(16px); transition:transform .3s ease;
}
.promo-overlay.is-open .promo-card{ transform:translateY(0); }
.promo-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px;
  display:flex; align-items:center; justify-content:center;
  background:none; border:none; cursor:pointer; font-size:1.5rem; line-height:1;
  color:var(--gray); font-family:var(--sans);
}
.promo-close:hover{ color:var(--ink); }
.promo-card img.orn-divider{ margin:0 auto 16px; width:72px; opacity:.7; }
.promo-eyebrow{ display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px; }
.promo-card h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; line-height:1.22; color:var(--ink); margin:0 0 14px; }
.promo-card p{ font-family:var(--serif); font-size:.94rem; line-height:1.6; color:var(--ink-soft); margin:0 0 26px; }
.promo-card .btn-solid{ width:100%; justify-content:center; }
@media (max-width:480px){
  .promo-card{ padding:38px 26px 28px; }
  .promo-card h3{ font-size:1.35rem; }
  .promo-card img.orn-divider{ width:60px; }
}

/* CTA fijo en móvil: siempre visible durante toda la navegación */
.mobile-cta-bar{ display:none; }
@media (max-width:860px){
  .mobile-cta-bar{ display:flex; align-items:center; justify-content:center; position:fixed; left:0; right:0; bottom:0; z-index:900; min-height:54px; padding:0 20px calc(env(safe-area-inset-bottom, 0px)); background:var(--maroon); color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.06em; text-decoration:none; box-shadow:0 -2px 14px rgba(0,0,0,.12); }
  .mobile-cta-bar:active{ filter:brightness(.92); }
  body{ padding-bottom:calc(54px + env(safe-area-inset-bottom, 0px)); }
  a.nav-mobile-cta, .site-header.is-stuck a.nav-mobile-cta{ display:none; }
  .header-booking-slot .btn-dark{ display:none; }
}

/* Hero home: copy sobre la foto */
.hero-content{ position:absolute; left:0; right:0; top:100px; bottom:140px; z-index:2; display:flex; align-items:center; }
.hero-content .wrap{ max-width:760px; margin:0; }
.hero-eyebrow{ display:block; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.9); margin-bottom:18px; }
.hero-title{ font-family:var(--display); font-weight:400; font-size:3.6rem; line-height:1.06; color:#fff; margin:0 0 20px; }
.hero-intro{ font-family:var(--serif); font-size:1.12rem; line-height:1.5; color:rgba(255,255,255,.92); max-width:560px; margin:0 0 28px; }
.hero-testimonial{ margin:0 0 30px; padding-left:18px; border-left:1px solid rgba(255,255,255,.55); max-width:560px; }
.hero-testimonial p{ font-family:var(--serif); font-style:italic; font-size:1.05rem; line-height:1.45; color:#fff; margin:0 0 8px; }
.hero-testimonial cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.06em; color:rgba(255,255,255,.85); }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:12px; }
.btn-ghost-light{ display:inline-flex; align-items:center; padding:.8em 1.5em; border:1px solid rgba(255,255,255,.85); color:#fff; font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.03em; text-decoration:none; transition:background-color .2s ease, color .2s ease, transform .15s ease; }
.btn-ghost-light:hover{ background:#fff; color:var(--ink); transform:translateY(-2px); }
.hero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(10,7,5,.5) 0%, rgba(10,7,5,.28) 40%, rgba(10,7,5,0) 70%); pointer-events:none; }
@media (max-width:980px){
  .hero-title{ font-size:2.8rem; }
}
@media (max-height:800px) and (min-width:641px){
  .hero-title{ font-size:2.9rem; margin-bottom:14px; }
  .hero-eyebrow{ margin-bottom:12px; }
  .hero-intro{ font-size:1.02rem; margin-bottom:18px; }
  .hero-testimonial{ margin-bottom:20px; }
}
@media (max-width:640px){
  .hero{ height:auto; min-height:max(100svh, 780px); }
  .hero-content{ top:80px; bottom:150px; align-items:center; }
  .hero .booking-bar{ bottom:70px; }
  .hero .hero-content{ bottom:205px; }
  .hero-eyebrow{ font-size:.66rem; margin-bottom:12px; }
  .hero-title{ font-size:2.1rem; margin-bottom:14px; }
  .hero-intro{ font-size:.98rem; margin-bottom:18px; }
  .hero-testimonial{ margin-bottom:20px; padding-left:14px; }
  .hero-testimonial p{ font-size:.95rem; }
  .hero-ctas .btn-solid{ display:none; }
  .hero::before{ background:linear-gradient(180deg, rgba(10,7,5,.2) 0%, rgba(10,7,5,.55) 100%); }
}

/* Foto a todo ancho con reseña encima */
.photo-quote{ position:relative; }
.photo-quote img{ height:82vh; min-height:520px; max-height:900px; object-fit:cover; object-position:50% 68%; }
.photo-quote::after{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(10,7,5,0) 35%, rgba(10,7,5,.62) 100%), linear-gradient(90deg, rgba(10,7,5,.35) 0%, rgba(10,7,5,0) 60%); pointer-events:none; }
.photo-quote-text{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:0 44px 60px; }
.photo-quote-text blockquote{ max-width:620px; margin:0; padding-left:18px; border-left:1px solid rgba(255,255,255,.6); }
.photo-quote-text p{ font-family:var(--serif); font-style:italic; font-size:1.35rem; line-height:1.45; color:#fff; margin:0 0 10px; text-shadow:0 1px 14px rgba(0,0,0,.35); }
.photo-quote-text cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.06em; color:rgba(255,255,255,.88); }
@media (max-width:860px){
  .photo-quote-text{ padding:0 28px 40px; }
  .photo-quote-text p{ font-size:1.15rem; }
}
@media (max-width:640px){
  .photo-quote img{ height:auto; min-height:0; aspect-ratio:4/5; object-position:55% 80%; }
  .photo-quote::after{ background:linear-gradient(180deg, rgba(10,7,5,0) 25%, rgba(10,7,5,.72) 100%); }
  .photo-quote-text{ padding:0 20px 28px; }
  .photo-quote-text blockquote{ padding-left:14px; }
  .photo-quote-text p{ font-size:1rem; }
}

/* Credenciales Airbnb / Booking: mucho aire, números grandes */
.creds{ display:flex; flex-direction:column; gap:44px; max-width:360px; margin-top:48px; }
.cred{ display:flex; flex-direction:column; align-items:flex-start; text-decoration:none; color:var(--ink); transition:opacity .2s ease; }
.cred:hover{ opacity:.7; }
.cred-src{ display:flex; align-items:center; font-family:var(--sans); font-size:.64rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-bottom:12px; }
.cred-logo{ display:inline-block; width:16px; height:16px; margin-right:9px; vertical-align:-3px; }
.cred-score{ display:flex; align-items:center; gap:10px; }
.cred-score .laurel{ color:var(--ink); width:22px; height:auto; }
.cred-num{ font-family:var(--display); font-weight:300; font-size:3.6rem; line-height:1; letter-spacing:-.02em; color:var(--ink); }
.cred-max{ font-family:var(--display); font-weight:300; font-size:1.3rem; color:var(--gray); align-self:flex-end; margin:0 4px 6px -2px; }
.cred-meta{ font-family:var(--sans); font-size:.76rem; color:var(--gray); margin-top:10px; }
@media (max-width:980px){ .creds{ flex-direction:row; gap:56px; margin-top:32px; } }
@media (max-width:640px){ .creds{ flex-direction:column; gap:36px; } .cred-num{ font-size:3rem; } }

/* Sello "Recomendación del viajero" (Airbnb) */
.gf{ display:grid; grid-template-columns:auto 1fr; grid-template-areas:"badge badge" "text text" "stats stats" "src src"; gap:14px 18px; padding:22px 24px; border:1px solid #e4dfda; border-radius:14px; text-decoration:none; color:var(--ink); transition:border-color .2s ease, box-shadow .2s ease; }
.gf:hover{ border-color:#cfc7bf; box-shadow:0 6px 22px rgba(0,0,0,.06); }
.gf-badge{ grid-area:badge; display:flex; align-items:center; gap:8px; }
.gf-badge .laurel{ width:20px; height:auto; color:var(--ink); }
.gf-label{ font-family:var(--sans); font-weight:700; font-size:1rem; line-height:1.15; text-align:center; }
.gf-text{ grid-area:text; font-family:var(--sans); font-weight:600; font-size:.92rem; line-height:1.35; }
.gf-stats{ grid-area:stats; display:flex; align-items:center; gap:22px; }
.gf-stat{ display:flex; flex-direction:column; align-items:center; }
.gf-stat b{ font-family:var(--sans); font-weight:700; font-size:1.3rem; line-height:1.1; }
.gf-stat span{ font-family:var(--sans); font-size:.7rem; color:var(--ink); margin-top:2px; }
.gf-stars{ font-size:.62rem !important; letter-spacing:.08em; }
.gf-sep{ width:1px; align-self:stretch; background:#e4dfda; }
.gf-src{ grid-area:src; display:flex; align-items:center; font-family:var(--sans); font-size:.64rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); }
@media (min-width:1500px){
  .creds{ max-width:none; }
}

/* Tarjeta Booking.com */
.gf.bk{ grid-template-areas:"sq sq" "row row" "src src"; }
.bk-squares{ grid-area:sq; display:flex; gap:2px; }
.bk-squares i{ display:block; width:11px; height:11px; border-radius:2px; background:#febb02; }
.bk-row{ grid-area:row; display:flex; align-items:center; gap:12px; }
.bk-score{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:8px 8px 8px 0; background:#003580; color:#fff; font-family:var(--sans); font-weight:700; font-size:1.1rem; }
.bk-txt{ display:flex; flex-direction:column; }
.bk-txt b{ font-family:var(--sans); font-weight:600; font-size:1.05rem; line-height:1.2; }
.bk-txt span{ font-family:var(--sans); font-size:.8rem; color:#6b6b6b; }
.creds{ gap:18px; }

/* Quickfacts encima de la foto de la piscina */
.quickfacts + .photo-quote{ margin-top:0; }
.quickfacts{ margin-top:44px; border-top:1px solid #e9e4e0; }
@media (max-width:640px){ .quickfacts{ margin-top:28px; } }
.quickfacts-btn{ margin-left:28px; display:inline-flex; align-items:center; padding:.7em 1.3em; border:1px solid var(--ink); color:var(--ink); font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.08em; text-decoration:none; transition:background-color .2s ease, color .2s ease; }
.quickfacts-btn:hover{ background:var(--ink); color:#fff; }
@media (max-width:640px){ .quickfacts-btn{ margin:14px 0 0; flex-basis:100%; justify-content:center; } }
.qf-item{ display:inline-flex; align-items:center; gap:8px; }
.qf-ico{ width:18px; height:18px; flex-shrink:0; color:var(--ink); opacity:.8; }
@media (max-width:640px){ .qf-ico{ width:15px; height:15px; } .qf-item{ gap:6px; } }

/* Tarjetas de valoraciones (centradas, mismo formato) */
.creds{ display:grid; grid-template-columns:1fr; gap:16px; max-width:360px; margin-top:44px; }
.rc{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:26px 24px 0; background:#fff; border:1px solid #ebe6e1; border-radius:16px; box-shadow:0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(40,25,15,.06); text-decoration:none; color:var(--ink); transition:transform .2s ease, box-shadow .2s ease; overflow:hidden; }
.rc:hover{ transform:translateY(-3px); box-shadow:0 2px 4px rgba(0,0,0,.05), 0 16px 34px rgba(40,25,15,.1); }
.rc-head{ display:flex; align-items:center; gap:8px; font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); margin-bottom:16px; }
.rc-head img{ width:16px; height:16px; }
.rc-score{ display:flex; align-items:center; justify-content:center; gap:10px; min-height:60px; margin-bottom:8px; }
.rc-score .laurel{ width:24px; height:auto; color:var(--ink); }
.rc-num{ font-family:var(--sans); font-weight:700; font-size:2.6rem; line-height:1; letter-spacing:-.03em; }
.rc-box{ display:inline-flex; align-items:center; justify-content:center; width:58px; height:58px; border-radius:10px 10px 10px 0; background:#003580; color:#fff; font-family:var(--sans); font-weight:700; font-size:1.45rem; letter-spacing:-.02em; }
.rc-stars{ font-size:.8rem; letter-spacing:.14em; color:var(--ink); height:14px; line-height:14px; margin-bottom:14px; }
.rc-squares{ display:flex; gap:3px; height:14px; align-items:center; margin-bottom:14px; }
.rc-squares i{ width:12px; height:12px; border-radius:2px; background:#febb02; }
.rc-title{ font-family:var(--sans); font-weight:700; font-size:1.02rem; margin-bottom:4px; }
.rc-sub{ font-family:var(--sans); font-size:.82rem; line-height:1.4; color:#6f6a64; max-width:250px; margin-bottom:20px; }
.rc-foot{ align-self:stretch; display:flex; align-items:center; justify-content:center; gap:6px; margin:auto -24px 0; padding:13px 24px; border-top:1px solid #efeae5; background:#faf8f6; font-family:var(--sans); font-size:.78rem; color:#6f6a64; }
.rc-foot b{ color:var(--ink); }
.rc-link{ margin-left:auto; font-weight:700; color:var(--ink); }
.rc:hover .rc-link{ color:var(--maroon); }
@media (max-width:980px){ .creds{ grid-template-columns:1fr 1fr; max-width:640px; } }
@media (max-width:560px){ .creds{ grid-template-columns:1fr; } }

/* Quickfacts más grande */
.quickfacts{ padding:34px 44px; }
.quickfacts-row{ font-size:1rem; letter-spacing:.02em; color:var(--ink); gap:14px 0; }
.quickfacts-row span.sep{ margin:0 22px; }
.qf-ico{ width:24px; height:24px; }
.qf-item{ gap:11px; }
.quickfacts-btn{ margin-left:36px; padding:1em 1.8em; font-size:.8rem; }
@media (max-width:980px){ .quickfacts-row{ font-size:.92rem; } .quickfacts-row span.sep{ margin:0 14px; } }
@media (max-width:640px){
  .quickfacts{ padding:24px 20px; }
  .quickfacts-row{ font-size:.86rem; gap:10px 0; }
  .quickfacts-row span.sep{ margin:0 10px; }
  .qf-ico{ width:19px; height:19px; }
  .quickfacts-btn{ margin:18px 0 0; }
}
.rc-score .laurel-right{ transform:scaleX(-1); }
.rc{ border-radius:0; }

/* Reseña de Jonas centrada en la foto */
.photo-quote::after{ background:rgba(10,7,5,.32); }
.photo-quote-text{ top:0; bottom:0; display:flex; align-items:center; justify-content:center; padding:0 44px; text-align:center; }
.photo-quote-text blockquote{ max-width:760px; padding:0; border-left:0; }
.photo-quote-text p{ font-size:1.7rem; line-height:1.4; margin-bottom:16px; text-shadow:0 1px 18px rgba(0,0,0,.35); }
.photo-quote-text cite{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }
@media (max-width:860px){ .photo-quote-text{ padding:0 28px; } .photo-quote-text p{ font-size:1.3rem; } }
@media (max-width:640px){
  .photo-quote::after{ background:rgba(10,7,5,.38); }
  .photo-quote-text{ padding:0 22px; }
  .photo-quote-text blockquote{ padding:0; }
  .photo-quote-text p{ font-size:1.08rem; }
}
.photo-quote-text{ flex-direction:column; }
.photo-quote-btn{ margin-top:30px; padding:1em 1.8em; font-size:.8rem; letter-spacing:.08em; }
@media (max-width:640px){ .photo-quote-btn{ margin-top:20px; } }

/* Móvil: "Consultar disponibilidad" siempre en la cabecera, entre logo y hamburguesa */
@media (max-width:860px){
  .site-header .header-cta,
  .site-header.is-stuck .header-cta{ display:flex; margin-left:auto; margin-right:16px; flex-shrink:0; }
  .site-header .header-cta .btn-solid{ padding:.7em 1em; font-size:.66rem; letter-spacing:.05em; white-space:nowrap; }
  .site-header.is-stuck .header-booking-slot{ display:none; }
  .mobile-cta-bar{ display:none; }
  body{ padding-bottom:0; }
}
@media (max-width:380px){
  .site-header .header-cta .btn-solid{ padding:.65em .8em; font-size:.6rem; }
  .site-header .header-cta, .site-header.is-stuck .header-cta{ margin-right:12px; }
}
.photo-quote-text blockquote{ max-width:1020px; }
.photo-quote-text p{ text-wrap:balance; }

/* Los espacios */
.espacios{ background:#f6f5f3; padding:70px 0 44px; }
.espacios-intro{ max-width:900px; margin:0 auto; padding:0 44px 50px; text-align:center; }
.espacios-orn{ display:block; width:96px; height:auto; margin:0 auto 34px; opacity:.8; }
.espacios-eyebrow{ display:block; font-family:var(--serif); font-size:.88rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }
.espacios-intro h2{ font-family:var(--display); font-weight:400; font-size:2.7rem; line-height:1.15; color:var(--ink); margin:0 0 .45em; }
.espacios-intro p{ font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--ink-soft); max-width:780px; margin:0 auto 30px; }
.espacios-btn{ display:inline-flex; align-items:center; padding:.8em 1.6em; border:1px solid var(--ink); color:var(--ink); font-family:var(--serif); font-size:.95rem; letter-spacing:.02em; text-decoration:none; transition:background-color .2s ease, color .2s ease; }
.espacios-btn:hover{ background:var(--ink); color:#fff; }
.espacios-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:0 44px; max-width:1740px; margin:0 auto; }
.espacios-grid .frame{ aspect-ratio:3/4; overflow:hidden; }
.espacios-grid img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.espacios-grid .frame:hover img{ transform:scale(1.03); }
@media (max-width:980px){ .espacios-grid{ grid-template-columns:repeat(2,1fr); padding:0 28px; } .espacios-intro h2{ font-size:2.2rem; } }
@media (max-width:640px){
  .espacios{ padding:50px 0 28px; }
  .espacios-intro{ padding:0 20px 34px; }
  .espacios-intro h2{ font-size:1.8rem; }
  .espacios-intro p{ font-size:.98rem; }
  .espacios-grid{ padding:0 20px; gap:8px; }
}
.espacios{ background:#fff; }
.espacio{ margin:0; }
.espacio figcaption{ font-family:var(--serif); font-size:.95rem; color:var(--ink); padding-top:12px; text-align:left; }
.espacios-orn{ margin-bottom:26px; }
@media (max-width:640px){ .espacio figcaption{ font-size:.85rem; padding-top:8px; } }

/* Nombre del espacio al pasar el ratón */
.espacios-intro p{ margin-bottom:0; }
.espacio.frame{ position:relative; aspect-ratio:3/4; overflow:hidden; }
.espacio figcaption{ position:absolute; left:0; right:0; bottom:0; padding:60px 22px 20px; text-align:left; font-family:var(--display); font-size:1.35rem; color:#fff; background:linear-gradient(180deg, rgba(10,7,5,0) 0%, rgba(10,7,5,.55) 100%); opacity:0; transform:translateY(8px); transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
.espacio:hover figcaption, .espacio:focus-within figcaption{ opacity:1; transform:none; }
@media (hover:none){ .espacio figcaption{ opacity:1; transform:none; padding:40px 16px 14px; font-size:1.05rem; } }

/* Espacios: enlace a La casa + nombre centrado */
a.espacio{ display:block; text-decoration:none; }
.espacio-cap{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:20px; font-family:var(--display); font-size:1.5rem; color:#fff; background:rgba(10,7,5,.38); opacity:0; transition:opacity .35s ease; pointer-events:none; }
.espacio:hover .espacio-cap, .espacio:focus-visible .espacio-cap{ opacity:1; }
@media (hover:none){ .espacio-cap{ opacity:1; background:rgba(10,7,5,.22); font-size:1.1rem; } }
.espacio-cap{ flex-direction:column; gap:10px; }
.espacio-more{ font-family:var(--sans); font-size:.78rem; font-weight:600; letter-spacing:.06em; color:#fff; text-decoration:underline; text-underline-offset:4px; }

/* Reseña de Anna bajo la foto pequeña de la cocina */
.kitchen-review{ max-width:380px; margin:28px auto 60px; padding:0 20px; text-align:center; }
.kitchen-review p{ font-family:var(--serif); font-style:italic; font-size:1.05rem; line-height:1.55; color:var(--ink-soft); margin:0 0 12px; }
.kitchen-review cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
@media (max-width:980px){ .kitchen-review{ margin:0 auto 44px; } }
@media (max-width:640px){ .kitchen-review{ margin:-8px auto 36px; } .kitchen-review p{ font-size:.98rem; } }
/* Cocina sin título: foto pequeña + reseña centradas en vertical */
.kitchen > div:last-child{ display:flex; flex-direction:column; justify-content:center; padding:60px 0; }
.kitchen .smallphoto{ margin-top:0; max-width:340px; width:100%; }
@media (max-width:980px){ .kitchen > div:last-child{ padding:40px 0 0; } }
.ticker-line{ margin:0; text-align:center; font-family:var(--serif); font-style:italic; font-size:1.15rem; line-height:1.5; color:var(--ink); }
.ticker-line span{ font-style:normal; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#8c8578; margin-left:8px; white-space:nowrap; }
@media (max-width:640px){ .ticker{ padding:18px 20px; } .ticker-line{ font-size:1rem; } .ticker-line span{ display:block; margin:6px 0 0; } }
.kitchen .smallphoto{ aspect-ratio:auto; max-width:320px; }
.kitchen .smallphoto img{ height:auto; }

/* Tres reseñas de la cocina */
.ticker{ padding:44px 44px; }
.ticker-reviews{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; max-width:1300px; margin:36px auto 0; }
.ticker-reviews blockquote{ margin:0; padding-top:20px; border-top:1px solid #e4dfda; text-align:center; }
.ticker-reviews p{ font-family:var(--serif); font-style:italic; font-size:1rem; line-height:1.55; color:var(--ink-soft); margin:0 0 12px; }
.ticker-reviews cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
@media (max-width:860px){ .ticker-reviews{ grid-template-columns:1fr; gap:24px; } }
@media (max-width:640px){ .ticker{ padding:32px 20px; } }

/* Cocina: columna derecha más grande + avatar de la huésped */
.kitchen .smallphoto{ max-width:400px; }
.kitchen-review{ max-width:480px; margin-top:34px; }
.kitchen-review p{ font-size:1.22rem; line-height:1.55; color:var(--ink); }
.kr-author{ display:flex; align-items:center; justify-content:center; gap:12px; margin-top:18px; }
.kr-avatar{ width:40px; height:40px; border-radius:50%; background:var(--maroon); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-family:var(--display); font-size:1.15rem; }
@media (max-width:640px){ .kitchen-review p{ font-size:1.05rem; } .kitchen .smallphoto{ max-width:300px; } }
.ticker-open{ padding:28px 44px; }
.ticker-rev{ border-top:0; }
.ticker-rev .ticker-reviews{ margin-top:0; }
@media (max-width:640px){ .ticker-open{ padding:20px 20px; } }
.kr-meta{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; text-align:left; }
.kr-stars{ font-size:.72rem; letter-spacing:.12em; color:var(--ink); line-height:1; }
.ticker-reviews .kr-author{ justify-content:center; margin-top:14px; }
.ticker-reviews .kr-avatar{ width:34px; height:34px; font-size:1rem; }

/* Cocina: foto de la derecha protagonista */
.kitchen .smallphoto{ max-width:540px; width:calc(100% - 80px); aspect-ratio:4/5; }
.kitchen .smallphoto img{ height:100%; object-fit:cover; }
.kitchen > div:last-child{ padding:70px 0; }
@media (max-width:980px){ .kitchen .smallphoto{ width:calc(100% - 56px); max-width:none; } }
@media (max-width:640px){ .kitchen .smallphoto{ width:calc(100% - 40px); } }
.closer + .photo-strip{ margin-top:44px; margin-bottom:44px; } @media (max-width:640px){ .closer + .photo-strip{ margin-top:20px; margin-bottom:20px; } }

/* Localización: review + copy | foto Tramuntana con mapa en blanco */
.loc{ display:grid; grid-template-columns:1fr 1.15fr; gap:70px; align-items:center; max-width:1740px; margin:0 auto; padding:100px 44px; }
.loc-quote{ margin:0 0 56px; }
.loc-quote p{ font-family:var(--display); font-weight:400; font-size:2.3rem; line-height:1.22; color:var(--ink); margin:0 0 16px; }
.loc-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.loc-text h2{ font-family:var(--display); font-weight:400; font-size:2rem; line-height:1.15; color:var(--maroon); margin:0 0 16px; }
.loc-text > p{ font-family:var(--serif); font-size:1.05rem; line-height:1.65; color:var(--ink-soft); max-width:520px; margin:0 0 26px; }
.loc-link{ font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.06em; color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.loc-link:hover{ color:var(--maroon); }
.loc-visual{ position:relative; overflow:hidden; aspect-ratio:4/5; }
.loc-visual > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 40%; }
.loc-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,7,5,.5) 0%, rgba(10,7,5,.35) 50%, rgba(10,7,5,.55) 100%); }
.loc-map{ position:absolute; z-index:2; left:4%; right:4%; top:50%; transform:translateY(-50%); width:92%; height:auto; }
.loc-map text{ font-family:var(--sans); }
@media (max-width:980px){
  .loc{ grid-template-columns:1fr; gap:44px; padding:70px 28px; }
  .loc-quote p{ font-size:1.9rem; }
}
@media (max-width:640px){
  .loc{ padding:50px 20px; gap:32px; }
  .loc-quote{ margin-bottom:36px; }
  .loc-quote p{ font-size:1.5rem; }
  .loc-text h2{ font-size:1.6rem; }
  .loc-visual{ aspect-ratio:3/4; }
  .loc-map{ left:0; right:0; width:100%; }
}
.loc-map{ left:2%; right:2%; width:96%; }
.loc-map{ left:3%; right:3%; width:94%; }
.loc-visual::after{ background:rgba(10,7,5,.46); }
.loc-map text.loc-center{ font-family:var(--display); font-weight:400; }
.loc-quote p{ font-size:1.9rem; line-height:1.28; } @media (max-width:640px){ .loc-quote p{ font-size:1.35rem; } }
/* Localización en caja: texto alineado arriba y abajo con la foto */
.loc{ align-items:stretch; }
.loc-text{ display:flex; flex-direction:column; justify-content:space-between; }
.loc-quote{ margin-bottom:40px; }
.loc-quote p{ margin-top:-.2em; }
.loc-link{ align-self:flex-start; margin-bottom:-.2em; }
.loc-text > p:last-of-type{ margin-bottom:22px; }
@media (max-width:980px){ .loc-text{ display:block; } }
.loc-text{ justify-content:flex-start; } .loc-text > p{ margin-top:auto; }
/* Corrección: la foto se ajusta a la altura del texto (recorte arriba/abajo) */
.loc-text{ display:block; }
.loc-text > p{ margin-top:0; }
.loc-quote{ margin-bottom:44px; }
.loc-quote p{ margin-top:0; }
.loc-link{ margin-bottom:0; }
.loc{ align-items:stretch; }
.loc-visual{ aspect-ratio:auto; min-height:520px; }
.loc-map{ top:50%; left:50%; right:auto; width:auto; height:94%; max-width:96%; transform:translate(-50%,-50%); }
@media (max-width:980px){ .loc-visual{ aspect-ratio:4/5; min-height:0; } .loc-map{ height:auto; width:96%; } }
@media (max-width:640px){ .loc-visual{ aspect-ratio:3/4; } .loc-map{ width:100%; max-width:100%; } }
@media (min-width:981px){ .loc-visual{ min-height:0; } }
/* Localización a sangre derecha, tocando en esquina con la foto de la cocina */
@media (min-width:981px){
  .loc{ max-width:none; margin:0; padding:0; gap:0; grid-template-columns:calc((100% - 60px) / 2) 1fr; align-items:stretch; }
  .loc-text{ padding:70px 70px 70px 44px; }
  .loc-visual{ margin:0; }
}
.loc-quote p{ font-size:2.3rem; line-height:1.22; } @media (max-width:640px){ .loc-quote p{ font-size:1.5rem; } }
.loc + .photo-hero{ margin-top:0; }
@media (min-width:981px){
  .loc{ min-height:760px; }
  .loc-text{ padding:120px 70px 120px 44px; display:flex; flex-direction:column; justify-content:center; }
}

/* Más maneras de vivir Sa Sínia */
.usos{ padding:100px 44px; max-width:1740px; margin:0 auto; }
.usos-intro{ text-align:center; max-width:760px; margin:0 auto 56px; }
.usos-intro h2{ font-family:var(--display); font-weight:400; font-size:2.7rem; line-height:1.15; color:var(--ink); margin:0 0 14px; }
.usos-intro p{ font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--ink-soft); margin:0; }
.usos-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.uso{ display:flex; flex-direction:column; text-decoration:none; color:var(--ink); }
.uso-img{ aspect-ratio:3/4; overflow:hidden; margin-bottom:20px; }
.uso-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.uso:hover .uso-img img{ transform:scale(1.04); }
.uso-label{ font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:12px; }
.uso-quote{ font-family:var(--serif); font-style:italic; font-size:1.05rem; line-height:1.5; color:var(--ink); margin:0 0 10px; }
.uso-cite{ font-family:var(--sans); font-size:.72rem; letter-spacing:.06em; color:var(--gray); margin-bottom:16px; }
.uso-more{ margin-top:auto; font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.04em; text-decoration:underline; text-underline-offset:4px; }
.uso:hover .uso-more{ color:var(--maroon); }
@media (max-width:1100px){ .usos-grid{ grid-template-columns:repeat(2,1fr); gap:44px 24px; } }
@media (max-width:640px){
  .usos{ padding:60px 20px; }
  .usos-intro h2{ font-size:2rem; }
  .usos-grid{ grid-template-columns:1fr; gap:40px; }
  .uso-img{ aspect-ratio:4/5; }
}
@media (min-width:981px){ .combo2{ grid-template-columns:calc((100% - 60px) / 2) 1fr; } }

/* Una casa con historia: foto histórica marca la altura */
.hist{ background:var(--tan); display:grid; grid-template-columns:calc((100% - 60px) / 2) 1fr; align-items:center; }
.hist-photo img{ width:100%; height:auto; display:block; filter:grayscale(1); }
.hist-text{ padding:40px 70px; }
.hist-text h2{ font-family:var(--display); font-weight:400; font-size:3.2rem; line-height:1.05; color:var(--ink); margin:0 0 24px; }
.hist-text p{ font-family:var(--serif); font-size:1.05rem; line-height:1.65; color:var(--ink); max-width:500px; margin:0 0 14px; }
.hist-link{ display:inline-block; margin-top:14px; font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.03em; color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.hist-link:hover{ color:var(--maroon); }
@media (max-width:980px){ .hist{ grid-template-columns:1fr; } .hist-text{ padding:44px 28px 56px; } .hist-text h2{ font-size:2.5rem; } }
@media (max-width:640px){ .hist-text{ padding:34px 20px 44px; } .hist-text h2{ font-size:2rem; } }

/* Cierre de la Home: Graham + Stay at Sa Sínia */
.closer2{ height:88vh; min-height:620px; margin-top:0; }
.closer2::after{ background:rgba(10,7,5,.42); }
.closer2-content{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 44px; }
.closer2 blockquote{ margin:0 0 64px; max-width:900px; }
.closer2 blockquote p{ font-family:var(--display); font-weight:400; font-size:3.4rem; line-height:1.12; color:#fff; margin:0 0 22px; text-wrap:balance; }
.closer2 blockquote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.76rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.88); }
.closer2-cta{ display:flex; flex-direction:column; align-items:center; gap:18px; }
.closer2-stay{ font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:#fff; }
.closer2-cta .btn-solid{ padding:1.05em 2.2em; font-size:.82rem; letter-spacing:.08em; }
@media (max-width:980px){ .closer2 blockquote p{ font-size:2.6rem; } }
@media (max-width:640px){
  .closer2{ height:auto; min-height:560px; }
  .closer2-content{ padding:0 22px; }
  .closer2 blockquote{ margin-bottom:40px; }
  .closer2 blockquote p{ font-size:1.9rem; }
}
.closer2 img{ object-position:50% 70%; }

/* ===== Escalas de guest voice ===== */
/* 1 · Hero quote: grande y protagonista (hero + cierre) */
.hero-testimonial p{ font-family:var(--display); font-style:normal; font-size:1.55rem; line-height:1.3; }
.hero-testimonial cite, .closer2 blockquote cite{ font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
/* 2 · Story quote: 2–3 líneas dentro de cada capítulo (Jonas, Anna, Jingle) */
.photo-quote-text p, .kitchen-review p, .loc-quote p{ font-family:var(--display); font-style:normal; font-weight:400; font-size:1.6rem; line-height:1.32; text-wrap:balance; }
.photo-quote-text blockquote{ max-width:780px; }
.kitchen-review{ max-width:460px; }
.loc-quote p{ max-width:560px; }
.photo-quote-text cite, .kitchen-review cite, .loc-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
/* 3 · Microquote: una frase bajo cada uso (ya en .uso-quote) */
.uso-quote{ font-size:1rem; }
@media (max-width:640px){
  .hero-testimonial p{ font-size:1.15rem; }
  .photo-quote-text p, .kitchen-review p, .loc-quote p{ font-size:1.22rem; }
}
.kitchen-review{ max-width:620px; }

/* ===== Footer trabajado ===== */
.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.ft{ padding-top:70px; }
.ft-senefa{ display:block; width:110px; height:auto; margin:0 auto 26px; filter:brightness(0) invert(1); opacity:.55; }
.ft-news{ text-align:center; max-width:640px; margin:0 auto; padding-bottom:64px; border-bottom:1px solid rgba(255,255,255,.18); margin-bottom:60px; }
.ft-news h3{ font-family:var(--display); font-weight:400; font-size:2.3rem; line-height:1.1; color:#fff; margin:0 0 10px; }
.ft-news > p{ font-family:var(--serif); font-size:1.08rem; color:rgba(255,255,255,.85); margin:0 0 26px; }
.ft-news strong{ color:#fff; font-weight:700; }
.ft-form{ display:flex; max-width:500px; margin:0 auto 14px; border:1px solid rgba(255,255,255,.5); }
.ft-form input{ flex:1; min-width:0; background:transparent; border:0; padding:15px 18px; color:#fff; font-family:var(--serif); font-size:1rem; outline:none; }
.ft-form input::placeholder{ color:rgba(255,255,255,.6); }
.ft-form button{ border:0; background:#fff; color:var(--maroon); font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.1em; padding:0 22px; cursor:pointer; transition:background-color .2s ease; }
.ft-form button:hover{ background:var(--tan); }
.ft-news small{ font-family:var(--sans); font-size:.72rem; color:rgba(255,255,255,.55); }
.ft-news small a{ color:rgba(255,255,255,.8); text-decoration:underline; }
footer .logo{ font-size:2rem; }
.footer-social a{ color:#fff; }
.footer-social svg{ display:block; }
.ft-book{ display:inline-flex; margin-top:22px; padding:.85em 1.6em; background:#fff; color:var(--maroon) !important; font-family:var(--sans) !important; font-size:.74rem !important; font-weight:700; letter-spacing:.1em; transition:background-color .2s ease; }
.ft-book:hover{ background:var(--tan); opacity:1 !important; }
.footer-grid{ position:relative; padding-bottom:110px; }
.ft-ride{ position:absolute; left:calc((100% - 120px) * 2.3 / 4.3 + 80px); right:0; bottom:28px; height:60px; overflow:hidden; }
.ft-road{ position:absolute; left:0; right:0; bottom:4px; border-bottom:1px dashed rgba(255,255,255,.35); }
.ft-rider{ position:absolute; bottom:5px; left:0; color:rgba(255,255,255,.85); animation:ftRide 16s linear infinite; }
.ft-wheel{ transform-box:fill-box; transform-origin:center; animation:ftSpin .9s linear infinite; }
@keyframes ftRide{ from{ transform:translateX(-100px); } to{ transform:translateX(calc(50vw + 40px)); } }
@keyframes ftSpin{ to{ transform:rotate(360deg); } }
.footer-bottom{ align-items:center; }
.ft-senefa-sm{ width:60px; margin:0; opacity:.4; }
@media (prefers-reduced-motion: reduce){ .ft-rider, .ft-wheel{ animation:none; } .ft-rider{ left:40%; } }
@media (max-width:980px){
  .ft-ride{ left:0; }
  @keyframes ftRide{ from{ transform:translateX(-100px); } to{ transform:translateX(100vw); } }
}
@media (max-width:640px){
  .ft-news h3{ font-size:1.8rem; }
  .ft-form{ flex-direction:column; border:0; gap:10px; }
  .ft-form input{ border:1px solid rgba(255,255,255,.5); }
  .ft-form button{ padding:14px; }
  .ft-senefa-sm{ display:none; }
  .footer-grid{ padding-bottom:90px; }
}
.ft-ride{ height:88px; }
.ft-bike{ overflow:visible; }
.ft-wheel-small{ animation-duration:.35s; }
.ft-wheel:not(.ft-wheel-small){ animation-duration:1.4s; }
.ft-rider{ animation-duration:20s; }
.ft-ride{ height:112px; }
.footer-grid{ padding-bottom:132px; }

/* Footer v2: marca+contacto | newsletter (2 col) | reservas */
.ft{ padding-top:80px; }
.ft-grid{ grid-template-columns:1.3fr 2fr 1fr; gap:60px; align-items:start; }
.ft-grid .ft-news{ max-width:none; margin:0; padding:0 50px; border:0; border-left:1px solid rgba(255,255,255,.18); border-right:1px solid rgba(255,255,255,.18); }
.ft-grid .ft-senefa{ margin-bottom:20px; }
.ft-grid .ft-news h3{ font-size:2rem; }
.ft-contact{ margin:22px 0 4px; }
.ft-contact p{ font-family:var(--serif); font-size:.95rem; color:#fff; margin:0 0 4px; }
.ft-contact a{ color:#fff; }
.ft-ride{ left:calc((100% - 120px) * 1.3 / 4.3 + 60px); height:80px; }
.footer-grid.ft-grid{ padding-bottom:100px; }
@media (max-width:980px){
  .ft-grid{ grid-template-columns:1fr 1fr; }
  .ft-grid .ft-news{ grid-column:1 / -1; order:-1; border:0; padding:0 0 40px; border-bottom:1px solid rgba(255,255,255,.18); }
  .ft-ride{ left:0; }
}
@media (max-width:640px){
  .ft-grid{ grid-template-columns:1fr; }
  .footer-col:nth-child(2), .footer-col:nth-child(4){ display:block; }
}
.ft-wheel-small{ animation-duration:1s; }
.ft-wheel{ animation-duration:1s !important; }
.ft-ride{ height:64px; }
.footer-grid.ft-grid{ padding-bottom:88px; }
.ft-bottom-right{ display:flex; align-items:center; gap:28px; }
.ft-bottom-right .footer-social{ margin:0; gap:10px; }
.ft-bottom-right .footer-social a{ width:32px; height:32px; }
.ft-bottom-right .footer-social svg{ width:15px; height:15px; }
@media (max-width:640px){ .ft-bottom-right{ flex-direction:column; align-items:flex-start; gap:16px; } }
/* Bici rodando sobre la línea del copyright */
.ft-ride{ left:0 !important; right:0; bottom:0; height:64px; }
.ft-road{ display:none; }
.ft-rider{ bottom:-3px; animation-name:ftRideFull; animation-duration:24s; }
@keyframes ftRideFull{ from{ transform:translateX(-110px); } to{ transform:translateX(calc(100vw + 10px)); } }
.footer-grid.ft-grid{ padding-bottom:96px; }
footer.ft{ overflow:hidden; } .ft-ride{ overflow:visible; } .ft-rider{ bottom:-8px; }
/* Newsletter al final y alineada a la izquierda */
.ft-grid{ grid-template-columns:1.2fr 1fr 2fr; }
.ft-grid .ft-news{ text-align:left; border-right:0; padding:0 0 0 50px; }
.ft-grid .ft-senefa{ margin:0 0 20px; }
.ft-grid .ft-form{ margin:0 0 14px; }
@media (max-width:980px){ .ft-grid .ft-news{ order:0; padding:40px 0 0; border-left:0; border-bottom:0; border-top:1px solid rgba(255,255,255,.18); } }
/* Footer a 4 columnas */
.ft-grid{ grid-template-columns:1.1fr .8fr .8fr 1.7fr; gap:50px; }
.ft-contact-col p{ font-family:var(--serif); font-size:.95rem; color:#fff; margin:0 0 8px; }
.ft-contact-col a{ color:#fff; }
.ft-grid .ft-news{ padding-left:44px; }
@media (max-width:1100px){ .ft-grid{ grid-template-columns:1fr 1fr 1fr; } .ft-grid .ft-news{ grid-column:1 / -1; border-left:0; padding:40px 0 0; border-top:1px solid rgba(255,255,255,.18); } }
@media (max-width:640px){ .ft-grid{ grid-template-columns:1fr; } }
.ft-brand .ft-senefa{ margin:0 0 18px; width:100px; }
.ft-brand .ft-senefa{ width:170px; margin-bottom:22px; opacity:.7; }

/* Footer: contenido según buenas prácticas UX */
.footer-col h2{ font-family:var(--sans); font-weight:700; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.6); margin:0 0 18px; }
.ft-news .ft-news-title{ font-family:var(--display); font-weight:400; font-size:2rem; line-height:1.1; color:#fff; margin:0 0 10px; letter-spacing:0; text-transform:none; }
.ft-trust{ margin:14px 0 0; font-family:var(--sans); font-size:.82rem; color:rgba(255,255,255,.75); }
.ft-trust a{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
.ft-contact-col ul, .footer-col ul{ gap:10px; }
.footer-bottom p, .footer-legal a{ font-size:.85rem; }
.ft-news small{ font-size:.8rem; }
.ft-book{ font-size:.72rem !important; }
@media (max-width:640px){
  .footer-col a, .footer-legal a{ display:inline-block; padding:6px 0; }
  .ft-bottom-right .footer-social a{ width:44px; height:44px; }
  .footer-legal{ flex-wrap:wrap; gap:6px 18px; }
}
.ft-book{ white-space:nowrap; padding:.85em 1.2em; font-size:.68rem !important; }
/* Keypoints sin iconos y más espaciados */
.quickfacts-row span.sep{ margin:0 40px; }
.quickfacts-row{ letter-spacing:.04em; }
@media (max-width:980px){ .quickfacts-row span.sep{ margin:0 22px; } }
@media (max-width:640px){ .quickfacts-row span.sep{ margin:0 12px; } }
.quickfacts{ border-top:0 !important; border-bottom:0 !important; }
/* Franja "La cocina" en granate */
.ticker-open{ background:var(--maroon); border-top:0; border-bottom:0; }
.ticker-open .ticker-line{ color:#fff; }
.ticker-open .ticker-line span{ color:rgba(255,255,255,.75); }
.usos-orn{ display:block; width:130px; height:auto; margin:0 auto 26px; opacity:.85; }
.usos-orn{ width:90px; }
/* Historia en blanco */
.hist{ background:#fff; }
.hist{ border-bottom:1px solid #e4dfda; }
.kitchen{ border-top:1px solid #e4dfda; }
.kitchen .vlabel .vlabel-quote{ font-family:var(--serif); font-style:italic; font-size:.95rem; letter-spacing:.01em; text-transform:none; color:var(--ink); white-space:nowrap; }
.kitchen .vlabel .vlabel-quote b{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:#8c8578; margin-left:6px; }
@media (max-width:980px){ .kitchen .vlabel{ display:flex; padding:28px 28px 0; } .kitchen .vlabel .vlabel-quote{ writing-mode:horizontal-tb; transform:none; white-space:normal; text-align:center; } }
/* Iconos estilo romántico (como las senefas) */
.qf-rom{ width:30px; height:30px; color:var(--maroon); opacity:.9; }
.qf-item{ gap:10px; }
@media (max-width:640px){ .qf-rom{ width:22px; height:22px; } }
/* Espacios: fotos a sangre, sin blancos */
.espacios{ padding-bottom:0; }
.espacios-grid{ padding:0 !important; gap:0 !important; max-width:none; }
.espacios + .kitchen{ border-top:0; }
/* Evitar costuras blancas por redondeo de subpíxeles */
.espacios-grid{ margin-bottom:-1px; }
.espacio.frame img{ width:calc(100% + 2px); height:calc(100% + 2px); margin:-1px; max-width:none; }
.espacios-grid.reveal-stagger.in-view > *{ transform:none; }
.kitchen .photo img{ margin-top:-1px; height:calc(100% + 1px); }
/* Tramuntana en granate */
.loc{ background:var(--maroon); }
.loc-quote p, .loc-text > p, .loc-link{ color:#fff; }
.loc-quote cite{ color:rgba(255,255,255,.7); }
.loc-link:hover{ color:var(--tan); }
.hero{ height:100vh; height:100svh; }

/* ===== Páginas interiores: líneas del home ===== */
.page-hero{ height:88vh; min-height:640px; }
.page-hero::before{ content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg, rgba(10,7,5,.5) 0%, rgba(10,7,5,.22) 45%, rgba(10,7,5,0) 72%); pointer-events:none; }
.page-hero-content{ z-index:2; bottom:150px; }
.page-hero-content .wrap{ max-width:820px; margin:0; }
.ph-title{ font-family:var(--display); font-weight:400; font-size:3.4rem; line-height:1.06; color:#fff; margin:0 0 16px; }
.ph-intro{ font-family:var(--serif); font-size:1.1rem; line-height:1.5; color:rgba(255,255,255,.92); max-width:600px; margin:0 0 26px; }
.ph-quote{ margin:0; padding-left:18px; border-left:1px solid rgba(255,255,255,.55); max-width:640px; }
.ph-quote p{ font-family:var(--display); font-size:1.35rem; line-height:1.32; color:#fff; margin:0 0 10px; }
.ph-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.85); }
@media (max-height:800px) and (min-width:641px){ .ph-title{ font-size:2.8rem; } .ph-quote p{ font-size:1.15rem; } .ph-intro{ margin-bottom:18px; } }
@media (max-width:980px){ .ph-title{ font-size:2.6rem; } }
@media (max-width:640px){
  .page-hero{ height:auto; min-height:max(100svh, 720px); }
  .page-hero-content{ bottom:200px; }
  .ph-title{ font-size:2rem; }
  .ph-intro{ font-size:.98rem; margin-bottom:18px; }
  .ph-quote p{ font-size:1.05rem; }
  .page-hero::before{ background:linear-gradient(180deg, rgba(10,7,5,.15) 0%, rgba(10,7,5,.55) 100%); }
}
/* microcitas dentro de capítulos */
.micro-quote{ margin:22px 0 0; padding-top:16px; border-top:1px solid #e4dfda; max-width:460px; }
.micro-quote p{ font-family:var(--serif); font-style:italic; font-size:1rem; line-height:1.5; color:var(--ink); margin:0 0 6px; }
.micro-quote cite{ font-style:normal; font-family:var(--sans); font-size:.72rem; letter-spacing:.06em; color:var(--gray); }
/* citas de capítulo en listas/bandas */
.life-split-quote p, .plano-band p{ font-family:var(--display); font-style:normal; }
/* historia */
.tl-bw{ filter:grayscale(1); }
.timeline-photo.tl-quiet{ background:#f3eee8; display:flex; align-items:center; justify-content:center; }
.timeline-photo.tl-quiet img{ width:46%; height:auto; object-fit:contain; opacity:.55; }
/* la casa: servicios */
.amenities-grid-3{ grid-template-columns:repeat(3,1fr); }
.amenity-cat h3{ font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--maroon); margin:0 0 12px; }
@media (max-width:980px){ .amenities-grid-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .amenities-grid-3{ grid-template-columns:1fr; } }
/* mapa Tramuntana v2 */
.map-svg-v2{ max-width:900px; display:block; margin:0 auto; }
.map-svg-v2 text{ font-family:var(--sans); }
.map-svg-v2 text.loc-center{ font-family:var(--display); }

/* ===== Reservar ===== */
.rv-book{ padding:100px 44px 90px; text-align:center; }
.rv-book-inner{ max-width:760px; margin:0 auto; }
.rv-orn{ display:block; width:120px; height:auto; margin:0 auto 26px; opacity:.85; }
.rv-facts{ font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--maroon); margin:0 0 16px; }
.rv-book h2{ font-family:var(--display); font-weight:400; font-size:2.7rem; line-height:1.12; color:var(--ink); margin:0 0 18px; }
.rv-book p{ font-family:var(--serif); font-size:1.08rem; line-height:1.65; color:var(--ink-soft); margin:0 auto 28px; max-width:640px; }
.rv-cta{ padding:1.1em 2em; font-size:.8rem; letter-spacing:.08em; }
.rv-small{ font-family:var(--sans); font-size:.85rem !important; line-height:1.55; color:var(--gray) !important; margin:22px auto 0 !important; max-width:560px; }
.rv-h2{ font-family:var(--display); font-weight:400; font-size:2rem; line-height:1.15; color:var(--ink); margin:0 0 22px; }
.rv-trust{ background:var(--maroon); color:#fff; text-align:center; padding:80px 44px; }
.rv-trust .rv-h2{ color:#fff; }
.rv-trust .rv-small{ color:rgba(255,255,255,.7) !important; }
.rv-trust-grid{ display:grid; grid-template-columns:repeat(2, minmax(0,300px)); justify-content:center; gap:24px; }
.rv-score{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:30px 24px; border:1px solid rgba(255,255,255,.3); color:#fff; text-decoration:none; transition:background-color .2s ease; }
.rv-score:hover{ background:rgba(255,255,255,.07); }
.rv-src{ display:flex; align-items:center; gap:8px; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.rv-src img{ width:18px; height:18px; background:#fff; border-radius:3px; padding:2px; }
.rv-num{ font-family:var(--display); font-size:3.4rem; line-height:1; }
.rv-num small{ font-size:1.2rem; opacity:.7; margin-left:4px; }
.rv-meta{ font-family:var(--sans); font-size:.85rem; color:rgba(255,255,255,.8); }
.rv-link{ font-family:var(--sans); font-size:.78rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; margin-top:6px; }
.rv-info{ display:grid; grid-template-columns:repeat(3,1fr); gap:60px; max-width:1500px; margin:0 auto; padding:90px 44px; }
.rv-info .rv-h2{ font-size:1.6rem; }
.rv-list{ list-style:none; margin:0; padding:0; }
.rv-list li{ font-family:var(--serif); font-size:.98rem; line-height:1.55; color:var(--ink-soft); padding:12px 0; border-top:1px solid #e9e4e0; }
.rv-help{ text-align:center; padding:0 44px 100px; }
.rv-help p{ font-family:var(--serif); font-size:1.1rem; color:var(--ink); max-width:620px; margin:0 auto 14px; }
.rv-help-link{ font-family:var(--sans); font-size:.82rem; font-weight:700; color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
@media (max-width:980px){ .rv-info{ grid-template-columns:1fr; gap:40px; padding:60px 28px; } }
@media (max-width:640px){
  .rv-book{ padding:60px 20px; } .rv-book h2{ font-size:2rem; }
  .rv-trust{ padding:56px 20px; } .rv-trust-grid{ grid-template-columns:1fr; }
  .rv-info{ padding:50px 20px; } .rv-help{ padding:0 20px 60px; }
  .rv-cta{ font-size:.72rem; padding:1em 1.2em; }
}

/* At a glance (home) */
.aag{ display:grid; grid-template-columns:1fr 1.6fr; background:#f3eee8; border-top:1px solid #e4dfda; border-bottom:1px solid #e4dfda; }
.aag-head{ padding:70px 44px; display:flex; flex-direction:column; justify-content:flex-start; }
.aag-eyebrow{ font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--gray); margin-bottom:18px; }
.aag-title{ font-family:var(--display); font-weight:400; font-size:3.4rem; line-height:1; color:var(--ink); margin:0 0 14px; }
.aag-sub{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-soft); margin:0; }
.aag-grid{ display:grid; grid-template-columns:repeat(3,1fr); border-left:1px solid #e4dfda; }
.aag-cell{ position:relative; min-height:190px; padding:26px 28px; border-right:1px solid #e4dfda; border-bottom:1px solid #e4dfda; display:flex; flex-direction:column; justify-content:space-between; }
.aag-cell:nth-child(3){ border-right:0; }
.aag-cell:nth-child(n+4){ border-bottom:0; }
.aag-label{ font-family:var(--sans); font-size:.9rem; line-height:1.35; color:var(--ink); }
.aag-num{ align-self:flex-end; font-family:var(--display); font-weight:400; font-size:4.6rem; line-height:.9; color:var(--ink); }
.aag-dark{ grid-column:span 2; background:var(--maroon); border-right:0; }
.aag-dark .aag-label{ color:#fff; font-family:var(--display); font-size:2.2rem; line-height:1.05; }
.aag-note{ align-self:flex-start; font-family:var(--sans); font-size:.8rem; letter-spacing:.04em; color:rgba(255,255,255,.75); }
@media (max-width:980px){
  .aag{ grid-template-columns:1fr; }
  .aag-head{ padding:50px 28px 30px; }
  .aag-grid{ border-left:0; border-top:1px solid #e4dfda; }
}
@media (max-width:640px){
  .aag-head{ padding:40px 20px 24px; }
  .aag-title{ font-size:2.4rem; }
  .aag-grid{ grid-template-columns:1fr 1fr; }
  .aag-cell{ min-height:130px; padding:18px 20px; }
  .aag-cell:nth-child(3){ border-right:1px solid #e4dfda; }
  .aag-cell:nth-child(2n){ border-right:0; }
  .aag-cell:nth-child(n+4){ border-bottom:1px solid #e4dfda; }
  .aag-num{ font-size:3.2rem; }
  .aag-dark{ grid-column:span 2; }
  .aag-dark .aag-label{ font-size:1.7rem; }
}
.aag{ background:#fff; }
.split-cta{ display:inline-flex; align-items:center; padding:.9em 1.7em; border:1px solid var(--ink); color:var(--ink); font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.08em; text-decoration:none; margin:4px 0 8px; transition:background-color .2s ease, color .2s ease; }
.split-cta:hover{ background:var(--ink); color:#fff; }
/* Valoraciones sin tarjetas: mismo diseño, separadas por una línea */
.rc{ background:transparent; border:0; box-shadow:none; border-radius:0; padding:28px 0 0; }
.rc:hover{ transform:none; box-shadow:none; }
.rc-foot{ background:transparent; border-top:0; margin:0; padding:14px 0 0; justify-content:center; gap:18px; }
.rc-link{ margin-left:0; }
.creds{ gap:0; }
.creds .rc + .rc{ border-top:1px solid #e4dfda; margin-top:28px; }
@media (max-width:980px){ .creds{ grid-template-columns:1fr; max-width:360px; } }
.rc-foot{ gap:6px; } .rc-foot .rc-link{ margin-left:18px; }
/* De un vistazo más alto */
.aag-cell{ min-height:270px; padding:34px 34px; }
.aag-head{ padding:100px 44px; }
.aag-num{ font-size:5.6rem; }
@media (max-width:640px){ .aag-cell{ min-height:170px; padding:22px 20px; } .aag-num{ font-size:3.6rem; } .aag-head{ padding:50px 20px 30px; } }
.ft-senefa-sm{ width:70px; opacity:.55; }
/* Zoom suave al pasar el ratón por las valoraciones */
.rc{ transition:transform .35s ease; transform-origin:center; }
.rc:hover, .rc:focus-visible{ transform:scale(1.05); }
.rv-score{ transition:transform .35s ease, background-color .2s ease; }
.rv-score:hover{ transform:scale(1.04); }
@media (prefers-reduced-motion: reduce){ .rc:hover, .rv-score:hover{ transform:none; } }
/* Más aire arriba y abajo en la sección Valldemossa + valoraciones */
#la-casa .split{ padding:140px 0 120px; }
@media (max-width:980px){ #la-casa .split{ padding:80px 0 70px; } }
@media (max-width:640px){ #la-casa .split{ padding:60px 0 50px; } }
/* Más aire en Rincones con carácter */
.espacios{ padding-top:130px; }
.espacios-intro{ padding-bottom:80px; }
@media (max-width:980px){ .espacios{ padding-top:80px; } .espacios-intro{ padding-bottom:50px; } }
@media (max-width:640px){ .espacios{ padding-top:60px; } .espacios-intro{ padding-bottom:36px; } }
.espacios-link{ display:inline-block; margin-top:22px; font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.espacios-link:hover{ color:var(--maroon); }

/* ===== Galería editorial ===== */
.ed{ max-width:1740px; margin:0 auto; padding:110px 44px 0; }
.ed:last-of-type{ padding-bottom:110px; }
.ed-head{ display:grid; grid-template-columns:auto 1fr; column-gap:22px; align-items:baseline; border-top:1px solid var(--ink); padding-top:18px; margin-bottom:44px; }
.ed-num{ font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.14em; color:var(--maroon); }
.ed-head h2{ font-family:var(--display); font-weight:400; font-size:2.6rem; line-height:1; color:var(--ink); margin:0; }
.ed-head p{ grid-column:2; font-family:var(--serif); font-size:1rem; line-height:1.55; color:var(--ink-soft); max-width:560px; margin:14px 0 0; }
.ed figure{ margin:0; overflow:hidden; }
.ed figure img{ display:block; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.ed figure:hover img{ transform:scale(1.03); }
/* 01 índice / hoja de contactos */
.cs-spread{ display:grid; grid-template-columns:1fr 1fr; gap:0; background:#f4f1ed; padding:48px 44px; }
.cs-page{ padding:0 36px; }
.cs-page + .cs-page{ border-left:1px solid #ddd6ce; }
.cs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.cs-item{ position:relative; aspect-ratio:1/1; }
.cs-n{ position:absolute; left:6px; bottom:5px; font-family:var(--sans); font-size:.62rem; font-weight:700; color:#fff; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.cs-caps{ list-style:none; margin:30px 0 0; padding:0; columns:2; column-gap:24px; }
.cs-caps li{ font-family:var(--sans); font-size:.72rem; line-height:1.45; color:var(--ink-soft); padding:4px 0; break-inside:avoid; display:flex; gap:10px; }
.cs-caps li span{ color:var(--gray); min-width:18px; }
/* 02 doble página */
.sp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.sp-big{ aspect-ratio:4/5; }
.sp-right{ display:grid; grid-template-rows:auto 1fr; gap:34px; }
.sp-small{ aspect-ratio:4/3; }
.sp-text{ columns:2; column-gap:30px; padding-right:10px; }
.sp-text p{ font-family:var(--serif); font-size:.95rem; line-height:1.6; color:var(--ink-soft); margin:0 0 12px; }
.sp-text .sp-lead{ column-span:all; font-family:var(--display); font-size:1.6rem; line-height:1.25; color:var(--ink); margin-bottom:22px; }
.sp-cap{ display:block; font-family:var(--sans); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gray); margin-top:8px; }
/* 03 mosaico */
.mo-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; grid-template-rows:280px 280px 220px; gap:14px; grid-template-areas:"a b c" "a d c" "e e c"; }
.mo.a{ grid-area:a; } .mo.b{ grid-area:b; } .mo.c{ grid-area:c; } .mo.d{ grid-area:d; } .mo.e{ grid-area:e; }
.mo{ position:relative; }
.mo figcaption{ position:absolute; left:14px; bottom:12px; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.45); }
/* 04 tríptico */
.tr-grid{ display:grid; grid-template-columns:1fr 1fr 1fr .55fr; gap:14px; align-items:end; }
.tr-grid figure{ aspect-ratio:3/5; }
.tr-cap{ align-self:end; padding-left:10px; display:flex; flex-direction:column; gap:4px; }
.tr-cap span{ font-family:var(--display); font-size:1.4rem; line-height:1.15; color:var(--ink); }
.tr-cap p{ font-family:var(--serif); font-size:.85rem; line-height:1.5; color:var(--gray); margin:16px 0 0; }
@media (max-width:980px){
  .ed{ padding:80px 28px 0; }
  .cs-spread{ grid-template-columns:1fr; padding:32px 24px; }
  .cs-page{ padding:0; } .cs-page + .cs-page{ border-left:0; border-top:1px solid #ddd6ce; margin-top:32px; padding-top:32px; }
  .sp-grid{ grid-template-columns:1fr; }
  .mo-grid{ grid-template-columns:1fr 1fr; grid-template-rows:260px 200px 200px 260px; grid-template-areas:"a c" "b c" "d e" "d e"; }
  .tr-grid{ grid-template-columns:1fr 1fr 1fr; } .tr-cap{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; gap:14px; padding:14px 0 0; } .tr-cap p{ width:100%; margin-top:4px; }
}
@media (max-width:640px){
  .ed{ padding:60px 20px 0; }
  .ed-head{ grid-template-columns:1fr; } .ed-head p{ grid-column:1; } .ed-head h2{ font-size:2rem; margin-top:6px; }
  .cs-grid{ grid-template-columns:repeat(3,1fr); gap:6px; } .cs-caps{ columns:1; }
  .sp-text{ columns:1; }
  .mo-grid{ grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:none; }
  .mo-grid .mo{ grid-area:auto; aspect-ratio:4/3; }
  .tr-grid{ grid-template-columns:1fr 1fr 1fr; gap:6px; }
}

/* Galería: scroll continuo, sin cortes ni textos, fondo blanco */
.ed-flow{ background:#fff; padding:14px 14px 110px; }
.ed-flow .ed{ max-width:none; padding:0; margin:0 0 14px; }
.ed-flow .ed:last-of-type{ padding-bottom:0; margin-bottom:0; }
.ed-flow .sp-right{ grid-template-rows:1fr; }
.ed-flow .sp-small{ aspect-ratio:auto; height:100%; }
.ed-flow .tr-grid{ grid-template-columns:repeat(3,1fr); }
.ed-flow .cs-spread{ background:#fff; padding:0; gap:14px; }
.ed-flow .cs-page{ padding:0; }
.ed-flow .cs-page + .cs-page{ border:0; margin:0; padding:0; }
.ed-flow .cs-grid{ gap:14px; }
.ed-flow .cs-n{ display:none; }
@media (max-width:980px){ .ed-flow .sp-small{ aspect-ratio:4/3; height:auto; } .ed-flow .cs-spread{ grid-template-columns:1fr; } }
@media (max-width:640px){ .ed-flow{ padding:8px 8px 60px; } .ed-flow .ed, .ed-flow .sp-grid, .ed-flow .mo-grid, .ed-flow .tr-grid, .ed-flow .cs-grid, .ed-flow .cs-spread{ gap:8px; } .ed-flow .ed{ margin-bottom:8px; } }

/* Galería v3: recortes ajustados + reseñas en la cuadrícula */
.ed-flow .sp-grid{ grid-template-columns:1fr 1fr; }
.ed-flow .sp-big{ aspect-ratio:9/10; }
.ed-flow .sp-right{ display:grid; grid-template-rows:1fr auto; gap:14px; }
.ed-flow .sp-small{ height:100%; min-height:0; aspect-ratio:auto; }
.ed-flow .mo-grid{ grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:330px 330px 330px; grid-template-areas:"a b c" "a d c" "e e f"; }
.mo.f{ grid-area:f; }
.ed-flow .tr-grid{ grid-template-columns:repeat(3,1fr); }
.ed-flow .tr-grid figure{ aspect-ratio:3/4; }
.cs-all{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.cs-all .cs-item{ aspect-ratio:4/5; }
/* reseñas dentro de la cuadrícula */
.gq{ margin:0; background:#fff; border:1px solid #e4dfda; display:flex; flex-direction:column; justify-content:center; padding:36px 40px; }
.gq p{ font-family:var(--display); font-size:1.55rem; line-height:1.3; color:var(--ink); margin:0 0 16px; text-wrap:balance; }
.gq cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.gq-tile{ min-height:220px; }
.gq-wide{ margin-top:14px; align-items:center; text-align:center; padding:60px 40px; }
.gq-wide p{ font-size:2.1rem; max-width:900px; }
.gq-cell{ grid-column:span 2; padding:24px 28px; }
.gq-cell p{ font-size:1.25rem; }
@media (max-width:980px){
  .ed-flow .sp-grid{ grid-template-columns:1fr; }
  .ed-flow .sp-small{ aspect-ratio:4/3; }
  .ed-flow .mo-grid{ grid-template-columns:1fr 1fr; grid-template-rows:auto; grid-template-areas:"a c" "b d" "e e" "f f"; }
  .ed-flow .mo-grid .mo{ aspect-ratio:4/5; }
  .ed-flow .mo-grid .mo.b, .ed-flow .mo-grid .mo.d{ aspect-ratio:4/3; }
  .ed-flow .mo-grid .mo.f{ aspect-ratio:3/2; }
  .ed-flow .mo-grid .gq-tile{ aspect-ratio:auto; }
  .cs-all{ grid-template-columns:repeat(4,1fr); }
}
@media (max-width:640px){
  .cs-all{ grid-template-columns:repeat(2,1fr); gap:8px; }
  .gq{ padding:24px 22px; } .gq p{ font-size:1.2rem; } .gq-wide p{ font-size:1.4rem; }
  .ed-flow .mo-grid{ grid-template-columns:1fr; grid-template-areas:none; }
  .ed-flow .mo-grid > *{ grid-area:auto !important; }
}

/* Galería: textos editoriales en los huecos + más aire */
.gt{ margin:0; display:flex; flex-direction:column; justify-content:center; padding:40px 48px; background:#fff; }
.gt p{ font-family:var(--serif); font-size:1rem; line-height:1.65; color:var(--ink-soft); margin:0; max-width:520px; }
.gt .gt-lead{ font-family:var(--display); font-size:1.7rem; line-height:1.25; color:var(--ink); margin:0 0 16px; }
.gt-eyebrow{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); margin-bottom:14px; }
.gt.gq-wide{ align-items:center; text-align:center; padding:110px 40px; margin:0; }
.gt .gt-words{ font-family:var(--display); font-size:2.4rem; color:var(--ink); margin:0 0 12px; max-width:none; }
.gt.gq-cell{ padding:20px 26px; } .gt.gq-cell p{ font-family:var(--display); font-size:1.3rem; line-height:1.35; color:var(--ink); }

.gq, .gt{ border:0 !important; background:#fff !important; box-shadow:none !important; } .ed-flow, .ed-flow .ed, .cs-all{ background:#fff !important; }
.cs-all{ grid-template-columns:repeat(7,1fr); }
@media (max-width:980px){ .cs-all{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px){ .cs-all{ grid-template-columns:repeat(2,1fr); } .gt.gq-cell{ grid-column:1 / -1; } }
@media (min-width:981px){ .ed-flow .sp-grid{ align-items:stretch; } .ed-flow .sp-big{ aspect-ratio:auto; height:100%; min-height:640px; } .ed-flow .sp-big img{ height:100%; } }
.cs-all{ grid-template-columns:repeat(8,1fr); }
.gt-q{ padding:0; margin-left:0 !important; }
@media (max-width:980px){ .cs-all{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:640px){ .cs-all{ grid-template-columns:repeat(2,1fr); } .gt.gq-cell{ grid-row:auto; } }
/* Galería: la reseña sustituye al texto */
.gv{ margin:0; }
.gv p{ font-family:var(--display) !important; font-size:1.7rem !important; line-height:1.3 !important; color:var(--ink) !important; margin:0 0 16px !important; max-width:560px; text-wrap:balance; }
.gv cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.gv.gq-wide p{ font-size:2.4rem !important; max-width:900px; margin-left:auto !important; margin-right:auto !important; }
.gv.gq-cell p{ font-size:1.3rem !important; }
@media (max-width:640px){ .gv p{ font-size:1.3rem !important; } .gv.gq-wide p{ font-size:1.6rem !important; } }
@media (min-width:981px){ .cs-all{ grid-template-columns:repeat(7,1fr); } .gt.gq-cell{ grid-row:auto; } }
.ed-flow .cs-all{ grid-auto-flow:row dense !important; } .ed-flow .cs-all > .gq-cell{ grid-column:span 2 !important; } @media (max-width:640px){ .ed-flow .cs-all > .gq-cell{ grid-column:1 / -1 !important; } }
.ed-flow.ed-nohero{ padding-top:110px; }
@media (max-width:640px){ .ed-flow.ed-nohero{ padding-top:84px; } }
.ed-flow.ed-nohero{ padding-top:76px; } @media (max-width:640px){ .ed-flow.ed-nohero{ padding-top:70px; } }
.ed-flow .sp-big img{ transform:scale(1.06); transform-origin:50% 60%; } .ed-flow .sp-big:hover img{ transform:scale(1.09); }
/* Galería: menú sticky con reservas desde el inicio */
.page-hero.gal-bookhost{ height:0 !important; min-height:0 !important; overflow:hidden; padding:0; margin:0; }
.page-hero.gal-bookhost::before, .page-hero.gal-bookhost::after{ display:none; }
.gal-bookhost + .scroll-sentinel{ position:absolute; top:0; left:0; height:1px; width:1px; }
.site-header.gal-header, .site-header.gal-header.is-stuck{ box-shadow:none !important; animation:none !important; }
/* Galería: menos blanco (menú y entre fotos) */
.ed-flow{ padding-left:8px; padding-right:8px; }
.ed-flow.ed-nohero{ padding-top:60px; }
.ed-flow .ed{ margin-bottom:8px; }
.ed-flow .sp-grid, .ed-flow .sp-right, .ed-flow .mo-grid, .ed-flow .tr-grid, .ed-flow .cs-all{ gap:8px !important; }
@media (max-width:640px){ .ed-flow.ed-nohero{ padding-top:57px; } }
.ed-flow{ padding-bottom:8px !important; } .ed-flow .ed:last-of-type{ margin-bottom:0 !important; }
/* Home: menú legible sobre el hero */
.hero::after{ background:linear-gradient(180deg, rgba(10,7,5,.55) 0%, rgba(10,7,5,.18) 22%, rgba(10,7,5,.05) 45%, rgba(10,7,5,.15) 60%, rgba(10,7,5,.6) 100%); }
.site-header.hero-dark:not(.is-stuck) .logo, .site-header.hero-dark:not(.is-stuck) nav.main-nav a:not(.btn-solid){ color:#fff !important; text-shadow:0 1px 10px rgba(0,0,0,.25); }
.site-header.hero-dark:not(.is-stuck) .nav-toggle-btn span{ background:#fff !important; }
nav.main-nav a.nav-mobile-cta, .site-header.is-stuck nav.main-nav a.nav-mobile-cta{ color:#fff !important; } nav.main-nav a.nav-mobile-cta:hover{ color:#fff !important; opacity:.9; }

/* ===== Contacto (rehecha) ===== */
.ct{ max-width:1500px; margin:0 auto; padding:110px 44px 100px; }
.ct-grid{ display:grid; grid-template-columns:0.9fr 1.3fr; gap:100px; align-items:start; }
.ct-info{ position:sticky; top:110px; }
.ct-info h2, .ct-rules-head h2{ font-family:var(--display); font-weight:400; font-size:2.8rem; line-height:1.05; color:var(--ink); margin:0 0 18px; }
.ct-info > p{ font-family:var(--serif); font-size:1.05rem; line-height:1.65; color:var(--ink-soft); margin:0 0 34px; max-width:440px; }
.ct-list{ margin:0 0 34px; border-top:1px solid #e4dfda; }
.ct-list > div{ display:grid; grid-template-columns:110px 1fr; gap:16px; padding:14px 0; border-bottom:1px solid #e4dfda; }
.ct-list dt{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); padding-top:3px; }
.ct-list dd{ margin:0; font-family:var(--serif); font-size:1rem; line-height:1.5; color:var(--ink); }
.ct-list a, .ct-direct a{ color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.ct-list a:hover, .ct-direct a:hover{ color:var(--maroon); }
.ct-direct{ font-family:var(--serif); font-size:.98rem; color:var(--ink-soft); margin:0; }
.ct-direct a{ font-family:var(--sans); font-size:.82rem; font-weight:700; display:inline-block; margin-top:6px; }
.ct-form{ display:flex; flex-direction:column; gap:28px; }
.ct-types{ border:0; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.ct-types legend, .ct-field label{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); margin-bottom:14px; padding:0; }
.ct-types label{ cursor:pointer; }
.ct-types input{ position:absolute; opacity:0; pointer-events:none; }
.ct-types span{ display:inline-block; padding:.7em 1.2em; border:1px solid #d6cfc8; font-family:var(--sans); font-size:.82rem; color:var(--ink); transition:all .2s ease; }
.ct-types label:hover span{ border-color:var(--ink); }
.ct-types input:checked + span{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
.ct-types input:focus-visible + span{ outline:2px solid var(--maroon); outline-offset:2px; }
.ct-row{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.ct-field{ display:flex; flex-direction:column; }
.ct-field label{ margin-bottom:8px; }
.ct-field input, .ct-field textarea{ font-family:var(--serif); font-size:1.05rem; color:var(--ink); border:0; border-bottom:1px solid #cfc7bf; background:transparent; padding:10px 0; outline:none; border-radius:0; transition:border-color .2s ease; resize:vertical; }
.ct-field input:focus, .ct-field textarea:focus{ border-bottom-color:var(--maroon); }
.ct-field input::placeholder, .ct-field textarea::placeholder{ color:#a8a098; }
.ct-check{ display:flex; gap:10px; align-items:flex-start; font-family:var(--sans); font-size:.85rem; color:var(--ink-soft); }
.ct-check input{ margin-top:3px; accent-color:var(--maroon); }
.ct-check a{ color:var(--ink); text-decoration:underline; }
.ct-submit{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.ct-submit .btn-solid{ padding:1.05em 2em; font-size:.8rem; letter-spacing:.08em; cursor:pointer; }
.ct-submit span{ font-family:var(--sans); font-size:.82rem; color:var(--gray); }
.ct-rules{ max-width:1500px; margin:0 auto; padding:90px 44px 110px; border-top:1px solid #e4dfda; display:grid; grid-template-columns:0.9fr 1.3fr; gap:100px; }
.ct-rules-head p{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-soft); margin:0 0 18px; }
.ct-rules-head a{ font-family:var(--sans); font-size:.82rem; font-weight:700; color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.ct-rules-grid{ margin:0; display:grid; grid-template-columns:1fr 1fr; gap:0 44px; }
.ct-rules-grid > div{ padding:20px 0; border-top:1px solid #e4dfda; }
.ct-rules-grid dt{ font-family:var(--display); font-size:1.25rem; color:var(--ink); margin-bottom:8px; }
.ct-rules-grid dd{ margin:0; font-family:var(--serif); font-size:.95rem; line-height:1.6; color:var(--ink-soft); }
.ct-license{ grid-column:2; font-family:var(--sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); margin:10px 0 0; }
@media (max-width:980px){
  .ct{ padding:70px 28px; } .ct-grid, .ct-rules{ grid-template-columns:1fr; gap:50px; }
  .ct-info{ position:static; } .ct-rules{ padding:60px 28px 80px; } .ct-license{ grid-column:1; }
}
@media (max-width:640px){
  .ct{ padding:50px 20px; } .ct-rules{ padding:50px 20px 60px; }
  .ct-info h2, .ct-rules-head h2{ font-size:2.1rem; }
  .ct-row, .ct-rules-grid{ grid-template-columns:1fr; }
  .ct-list > div{ grid-template-columns:90px 1fr; }
}
.ct .form-success{ background:#fff; border-top:1px solid var(--ink); padding:40px 0; text-align:left; } .ct .form-success h3{ font-size:2rem; }
.ct-types label{ position:relative; }
.ct-types input[type=radio]{ position:absolute !important; opacity:0 !important; width:1px !important; height:1px !important; margin:0 !important; -webkit-appearance:none; appearance:none; }
.ct-types label:first-of-type span{ background:transparent; }
.ct-types input:checked + span{ background:var(--maroon) !important; border-color:var(--maroon); color:#fff; }
.ct-rules{ row-gap:0; }
.ct-license{ margin-top:24px; }

/* ===== Contacto editorial ===== */
.cx{ background:#fff; padding:90px 44px 0; }
.cx-title{ font-family:var(--display); font-weight:400; font-size:clamp(3.6rem, 8.2vw, 8.4rem); line-height:.92; letter-spacing:-.02em; color:var(--ink); margin:0; display:flex; flex-direction:column; }
.cx-indent{ padding-left:1.1em; }
.cx-top{ display:grid; grid-template-columns:1.6fr 1fr; gap:60px; align-items:start; padding-bottom:120px; }
.cx-intro{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); max-width:360px; margin:36px 0 70px 1.1em; margin-left:calc(clamp(3.6rem, 8.2vw, 8.4rem) * 1.1); }
.cx-intro a{ color:var(--maroon); text-decoration:underline; text-underline-offset:3px; }
.cx-form{ max-width:760px; }
.cx-form .ct-form{ gap:26px; }
.cx-photo{ margin:0; overflow:hidden; }
.cx-photo img{ display:block; width:100%; height:100%; object-fit:cover; }
.cx-photo-tall{ aspect-ratio:3/4.4; margin-top:40px; }
.cx-info{ border-top:1px solid #e4dfda; padding:60px 0 120px; }
.cx-mark{ display:block; width:44px; height:auto; margin:0 0 50px; opacity:.85; }
.cx-info-grid{ display:grid; grid-template-columns:1fr 1.6fr; gap:60px; }
.cx-data{ display:grid; grid-template-columns:1fr 1fr; gap:40px 30px; align-content:end; }
.cx-data h3{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); margin:0 0 10px; }
.cx-data a, .cx-data p{ font-family:var(--serif); font-size:1.05rem; line-height:1.5; color:var(--ink); margin:0; }
.cx-data a{ text-decoration:underline; text-underline-offset:4px; display:inline-block; }
.cx-data a:hover{ color:var(--maroon); }
.cx-title-2{ font-size:clamp(3rem, 6.4vw, 6.6rem); margin-bottom:40px; }
.cx-photo-wide{ aspect-ratio:16/10; }
.cx-rules{ border-top:1px solid #e4dfda; padding:60px 0 120px; display:grid; grid-template-columns:1fr 1.6fr; gap:60px; }
.cx-rules-head h2{ font-family:var(--display); font-weight:400; font-size:2.8rem; line-height:1; color:var(--ink); margin:0 0 18px; }
.cx-rules-head a{ font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.cx-sign{ border-top:1px solid #e4dfda; padding:40px 0 70px; text-align:center; overflow:hidden; }
.cx-big{ font-family:var(--display); font-weight:400; font-size:clamp(5rem, 19vw, 20rem); line-height:.9; letter-spacing:-.03em; color:var(--maroon); margin:0 0 30px; white-space:nowrap; }
.cx-social{ list-style:none; margin:0 0 18px; padding:0; display:flex; justify-content:center; gap:34px; }
.cx-social a{ font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.cx-license{ font-family:var(--sans); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); margin:0; }
@media (max-width:980px){
  .cx{ padding:80px 28px 0; }
  .cx-top, .cx-info-grid, .cx-rules{ grid-template-columns:1fr; gap:40px; }
  .cx-intro{ margin-left:0; }
  .cx-photo-tall{ aspect-ratio:4/3; margin-top:0; }
  .cx-top{ padding-bottom:80px; }
}
@media (max-width:640px){
  .cx{ padding:72px 20px 0; }
  .cx-title{ font-size:3.1rem; } .cx-title-2{ font-size:2.7rem; }
  .cx-indent{ padding-left:.6em; }
  .cx-intro{ margin:24px 0 44px; }
  .cx-data{ grid-template-columns:1fr; gap:26px; }
  .cx-info, .cx-rules{ padding:44px 0 70px; }
  .cx-social{ gap:20px; }
}
.cx-top .cx-title{ font-size:clamp(3.4rem, 6.6vw, 7rem); }
.cx-top .cx-title span{ white-space:nowrap; }
.cx-intro{ margin-left:calc(clamp(3.4rem, 6.6vw, 7rem) * 1.1); }
@media (max-width:980px){ .cx-intro{ margin-left:0; } .cx-info-right{ order:-1; } }
@media (max-width:640px){ .cx-top .cx-title{ font-size:3.1rem; } .cx-top .cx-title span{ white-space:normal; } }

/* ===== Contacto · strip hero + formulario solo ===== */
.cx{ background:#fff; padding:64px 0 0; }
@media (max-width:640px){ .cx{ padding-top:58px; } }
.cx-strip{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cx-strip figure{ margin:0; overflow:hidden; }
.cx-strip img{ width:100%; aspect-ratio:3/4; object-fit:cover; display:block; transition:transform .6s ease; }
.cx-strip figure:hover img{ transform:scale(1.04); }
.cx-bot img{ aspect-ratio:4/5; }
.cx-strip figcaption{ font-family:var(--sans); font-size:11px; letter-spacing:.04em; color:var(--gray); padding:8px 2px 0; }
.cx-mid{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:40px; padding:56px 4vw; }
.cx-brand{ max-width:260px; }
.cx-brand p{ font-family:var(--sans); font-size:13px; line-height:1.5; color:var(--ink-soft); margin:0; }
.cx-brand .cx-name{ font-family:var(--display); font-size:18px; color:var(--ink); margin-bottom:6px; }
.cx-title{ font-family:var(--display); font-weight:500; font-size:clamp(64px,9vw,150px); line-height:.9; letter-spacing:-.02em; color:var(--maroon); margin:0; text-align:center; }
.cx-links{ justify-self:end; display:flex; flex-direction:column; gap:6px; text-align:left; }
.cx-links a{ font-family:var(--sans); font-size:clamp(18px,1.7vw,26px); color:var(--ink); text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.cx-links a:hover{ color:var(--maroon); }
@media (max-width:900px){
  .cx-strip{ grid-template-columns:repeat(4,1fr); }
  .cx-strip figure:nth-child(n+5){ display:none; }
  .cx-mid{ grid-template-columns:1fr; text-align:center; gap:24px; padding:40px 20px; }
  .cx-brand{ max-width:none; order:2; } .cx-title{ order:1; } .cx-links{ order:3; justify-self:center; text-align:center; }
}
.ct.ct-solo{ padding:96px 20px 110px; background:#fff; }
.ct.ct-solo .ct-grid{ display:block !important; max-width:760px; margin:0 auto; }
@media (max-width:640px){ .ct.ct-solo{ padding:64px 16px 80px; } }
.cx .cx-strip{ padding:0 !important; margin:0 !important; }
.cx .cx-mid{ padding:52px 4vw 52px; }

/* ===== Contacto · formulario estándar ===== */
.ct-solo .ct-head{ max-width:760px; margin:0 auto 36px; }
.ct-solo .ct-head h2{ font-family:var(--display); font-weight:400; font-size:2rem; color:var(--ink); margin:0 0 8px; }
.ct-solo .ct-head p{ font-family:var(--sans); font-size:15px; color:var(--ink-soft); margin:0; }
.ct-solo .ct-form{ display:flex !important; flex-direction:column; gap:20px !important; }
.ct-solo .ct-row{ display:grid !important; grid-template-columns:1fr 1fr; gap:20px; }
.ct-solo .ct-field{ display:flex; flex-direction:column; gap:6px; }
.ct-solo .ct-field label{ font-family:var(--sans) !important; font-size:14px !important; font-weight:500 !important; letter-spacing:0 !important; text-transform:none !important; color:var(--ink) !important; }
.ct-solo .ct-field input, .ct-solo .ct-field select, .ct-solo .ct-field textarea{
  font-family:var(--sans) !important; font-size:15px !important; color:var(--ink);
  background:#fff !important; border:1px solid #d6d1cb !important; border-radius:4px !important;
  padding:12px 14px !important; width:100%; box-sizing:border-box; outline:none; transition:border-color .2s, box-shadow .2s;
}
.ct-solo .ct-field select{ appearance:none; -webkit-appearance:none; padding-right:40px !important;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23471e1f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center !important; }
.ct-solo .ct-field input::placeholder, .ct-solo .ct-field textarea::placeholder{ color:#9a948e; font-family:var(--sans); }
.ct-solo .ct-field input:focus, .ct-solo .ct-field select:focus, .ct-solo .ct-field textarea:focus{ border-color:var(--maroon) !important; box-shadow:0 0 0 3px rgba(71,30,31,.12); }
.ct-solo .ct-field textarea{ min-height:150px; resize:vertical; }
.ct-solo .ct-check{ font-family:var(--sans); font-size:14px; display:flex; align-items:center; gap:10px; }
.ct-solo .ct-check input{ width:16px; height:16px; accent-color:var(--maroon); margin:0; }
.ct-solo .ct-submit{ display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.ct-solo .ct-submit .btn-solid{ border-radius:4px; padding:15px 32px; }
@media (max-width:640px){ .ct-solo .ct-row{ grid-template-columns:1fr; } .ct-solo .ct-submit .btn-solid{ width:100%; } }

/* Tramuntana · sección entorno estilo home */
.loc-tram .loc-text h2{ color:#fff; font-size:2.4rem; margin:0 0 22px; }
.loc-tram .loc-text > p.loc-note{ font-family:var(--sans); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.65); margin:28px 0 0; }
@media (max-width:640px){ .loc-tram .loc-text h2{ font-size:1.7rem; } }
.loc.loc-tram{ background:#fff; }
.loc-tram .loc-text h2{ color:var(--ink); }
.loc-tram .loc-text > p{ color:var(--ink-soft); }
.loc-tram .loc-text > p.loc-note{ color:var(--gray); }

/* Tramuntana · datos rápidos + recomendaciones */
.tr-facts{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin:34px 0 0; max-width:520px; border-top:1px solid #e3ded8; }
.tr-facts div{ padding:18px 0; border-bottom:1px solid #e3ded8; }
.tr-facts div:nth-child(odd){ padding-right:20px; border-right:1px solid #e3ded8; }
.tr-facts div:nth-child(even){ padding-left:24px; }
.tr-facts dt{ font-family:var(--display); font-size:1.35rem; color:var(--maroon); margin:0 0 4px; }
.tr-facts dd{ font-family:var(--sans); font-size:.9rem; color:var(--ink-soft); margin:0; }
.tr-recos{ max-width:1300px; margin:0 auto; padding:110px 44px 100px; }
.tr-recos-head{ max-width:620px; margin:0 0 56px; }
.tr-recos-head h2{ font-family:var(--display); font-weight:400; font-size:2.4rem; color:var(--ink); margin:0 0 12px; }
.tr-recos-head p{ font-family:var(--serif); font-size:1.05rem; line-height:1.6; color:var(--ink-soft); margin:0; }
.tr-recos-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px; }
.tr-reco{ border-top:1px solid var(--ink); padding-top:22px; }
.tr-reco h3{ font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin:0 0 20px; }
.tr-reco ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:18px; }
.tr-reco li strong{ display:block; font-family:var(--display); font-weight:400; font-size:1.25rem; color:var(--ink); margin-bottom:3px; }
.tr-reco li span{ font-family:var(--sans); font-size:.86rem; line-height:1.45; color:var(--ink-soft); }
.tr-reco-link{ display:inline-block; margin-top:22px; font-family:var(--sans); font-size:.8rem; font-weight:700; color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.tr-reco-link:hover{ color:var(--maroon); }
.tr-recos-note{ margin:56px 0 0; font-family:var(--sans); font-size:.88rem; color:var(--gray); }
.tr-recos-note a{ color:var(--maroon); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:980px){ .tr-recos-grid{ grid-template-columns:1fr 1fr; gap:44px 32px; } }
@media (max-width:640px){ .tr-recos{ padding:70px 20px; } .tr-recos-grid{ grid-template-columns:1fr; } .tr-recos-head h2{ font-size:1.8rem; } .tr-facts dt{ font-size:1.15rem; } }

/* Mapa · puntos clicables a Google Maps */
.loc-map .map-pt{ cursor:pointer; }
.loc-map .map-pt circle{ transition:r .25s ease; transform-box:fill-box; }
.loc-map .map-pt text{ transition:opacity .25s ease; }
.loc-map .map-pt:hover circle, .loc-map .map-pt:focus-visible circle{ r:10; }
.loc-map .map-pt:hover text:first-of-type, .loc-map .map-pt:focus-visible text:first-of-type{ text-decoration:underline; text-underline-offset:4px; }
.loc-map .map-pt:hover text:last-of-type::after{ content:""; }
.loc-map:has(.map-pt:hover) .map-pt:not(:hover){ opacity:.55; transition:opacity .25s; }
.loc-map .map-pt{ transition:opacity .25s; }
.aag-tram .aag-num{ font-size:5.6rem; white-space:nowrap; }
.aag-tram .aag-cell:nth-child(4) .aag-num{ font-size:4.2rem; }
@media (max-width:640px){ .aag-tram .aag-num{ font-size:3.6rem; } .aag-tram .aag-cell:nth-child(4) .aag-num{ font-size:2.4rem; } }
/* Tramuntana · vistazo a ancho completo */
.aag.aag-tram{ grid-template-columns:1fr; }
.aag-tram .aag-grid{ grid-template-columns:repeat(4,1fr); border-left:0; }
.aag-tram .aag-cell{ border-right:1px solid #e4dfda !important; border-bottom:1px solid #e4dfda !important; }
.aag-tram .aag-cell:nth-child(4){ border-right:0 !important; }
.aag-tram .aag-cell:nth-child(n+5){ border-bottom:0 !important; }
.aag-tram .aag-cell:nth-child(4) .aag-num{ font-size:5.6rem; }
.aag-tram .aag-cell:nth-child(5) .aag-num{ font-size:4.2rem; }
.loc-tram .aag-eyebrow{ display:block; margin-bottom:10px; }
.loc-tram .loc-text > p.loc-sub{ font-family:var(--serif); font-size:1.05rem; color:var(--gray); margin:0 0 26px; }
@media (max-width:980px){ .aag-tram .aag-grid{ grid-template-columns:1fr 1fr; } .aag-tram .aag-cell:nth-child(2n){ border-right:0 !important; } .aag-tram .aag-cell:nth-child(n+5){ border-bottom:1px solid #e4dfda !important; } }
@media (max-width:640px){ .aag-tram .aag-cell:nth-child(4) .aag-num{ font-size:3.6rem; } .aag-tram .aag-cell:nth-child(5) .aag-num{ font-size:2.4rem; } }
.aag-tram .aag-num small{ font-size:.32em; margin-left:.12em; letter-spacing:0; }
.aag-tram .aag-cell:nth-child(n) .aag-num{ font-size:clamp(3rem,5vw,5.2rem); }
.aag-tram .aag-cell:nth-child(n+5){ border-bottom:0 !important; }
/* Tramuntana · perfil de la Serra */
.tr-profile{ margin:44px 0 0; max-width:560px; color:var(--ink); }
.tr-profile svg{ display:block; width:100%; height:90px; }
.tr-profile figcaption{ position:relative; display:flex; justify-content:space-between; margin-top:10px; font-family:var(--sans); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gray); }
.tr-profile .tr-here{ color:var(--maroon); font-weight:700; }
.tr-profile figcaption{ display:block; height:1.2em; }
.tr-profile figcaption span{ position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; }
.tr-profile figcaption span[style="left:0"]{ transform:none; }
.tr-profile figcaption span[style="left:100%"]{ transform:translateX(-100%); }
.tr-reco li strong a{ color:inherit; text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat; transition:background-size .3s, color .2s; }
.tr-reco li strong a::after{ content:" ↗"; font-family:var(--sans); font-size:.6em; color:var(--gray); vertical-align:.35em; }
.tr-reco li strong a:hover{ color:var(--maroon); background-size:100% 1px; }
.tr-profile{ position:relative; }
.tr-peaks{ position:relative; height:1.4em; margin-bottom:4px; font-family:var(--sans); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gray); }
.tr-peaks span{ position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; }
.loc-tram .loc-visual > img{ object-position:60% 50%; }

/* ===== Menú hamburguesa abierto: pantalla completa marrón + foto con review ===== */
.nav-feature{ display:none; }
@media (max-width:860px){ .site-header .nav-toggle-input:checked ~ nav.main-nav{ display:grid !important; } }
.site-header.is-stuck .nav-toggle-input:checked ~ nav.main-nav{ display:grid !important; }
:is(.site-header.is-stuck, .site-header) .nav-toggle-input:checked ~ nav.main-nav{
  position:fixed !important; inset:0 !important; top:0 !important; z-index:1;
  width:100vw; height:100vh; height:100dvh; background:var(--maroon) !important; box-shadow:none !important;
  grid-template-columns:1fr 1fr; grid-auto-flow:row; align-content:center; column-gap:0;
  padding:110px 0 60px 6vw !important; overflow:auto;
}
.site-header .nav-toggle-input:checked ~ nav.main-nav a:not(.btn-solid){
  grid-column:1; justify-self:start; padding:6px 0 !important; border:0 !important;
  font-family:var(--display) !important; font-size:clamp(2rem,4.2vw,3.6rem) !important; line-height:1.15;
  color:#fff !important; text-shadow:none !important; text-decoration:none; opacity:.92;
}
.site-header .nav-toggle-input:checked ~ nav.main-nav a:not(.btn-solid):hover,
.site-header .nav-toggle-input:checked ~ nav.main-nav a.active{ opacity:1; text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:1px; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.nav-mobile-cta{
  grid-column:1; justify-self:start; display:inline-flex !important; margin-top:28px;
  background:#fff !important; color:var(--maroon) !important; border:0;
}
.site-header .nav-toggle-input:checked ~ nav.main-nav .nav-feature{
  display:block; grid-column:2; grid-row:1 / span 8; position:fixed; top:0; right:0; bottom:0; width:50vw;
}
.nf-slide{ position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1.2s ease; }
.nf-slide.is-on{ opacity:1; }
.nf-slide img{ width:100%; height:100%; object-fit:cover; display:block; }
.nf-slide::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.6) 100%); }
.nf-slide blockquote{ position:absolute; z-index:1; left:48px; right:48px; bottom:52px; margin:0; color:#fff; }
.nf-slide blockquote p{ font-family:var(--display); font-size:clamp(1.3rem,1.9vw,1.9rem); line-height:1.3; margin:0 0 14px; text-wrap:balance; }
.nf-slide cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.8); }
/* header on top while open */
.site-header:has(.nav-toggle-input:checked){ background:transparent !important; box-shadow:none !important; }
.site-header:has(.nav-toggle-input:checked) .wrap{ position:relative; z-index:2; }
.site-header:has(.nav-toggle-input:checked) .logo{ color:#fff !important; text-shadow:none !important; }
.site-header:has(.nav-toggle-input:checked) .header-booking-slot{ visibility:hidden; }
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn span{ background:#fff !important; transition:transform .25s, opacity .2s; }
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn span:nth-child(2){ opacity:0; }
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
body:has(.nav-toggle-input:checked){ overflow:hidden; }
@media (max-width:860px){
  .site-header .nav-toggle-input:checked ~ nav.main-nav{ grid-template-columns:1fr; padding:100px 24px 40px !important; align-content:start; }
  .site-header .nav-toggle-input:checked ~ nav.main-nav .nav-feature{ position:relative; grid-column:1; grid-row:auto; width:auto; height:300px; margin:36px -24px -40px; top:auto; }
  .nf-slide blockquote{ left:24px; right:24px; bottom:24px; }
  .nf-slide blockquote p{ font-size:1.1rem; }
}
.site-header:has(.nav-toggle-input:checked) .logo,
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn{ position:relative; z-index:3; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.nav-mobile-cta{ padding:15px 30px !important; font-size:.78rem !important; letter-spacing:.08em; }
@media (max-width:860px){
  .site-header .nav-toggle-input:checked ~ nav.main-nav .nav-feature{ justify-self:stretch; width:calc(100% + 48px); height:320px; }
  .site-header .nav-toggle-input:checked ~ nav.main-nav a:not(.btn-solid){ font-size:2.1rem !important; }
}
@media (max-width:860px){
  :is(.site-header.is-stuck, .site-header) .nav-toggle-input:checked ~ nav.main-nav{ grid-template-columns:1fr; padding:100px 24px 40px !important; align-content:start; }
}
@media (max-width:860px){ .site-header .nav-toggle-input:checked ~ nav.main-nav .nav-feature{ width:100vw !important; margin:36px 0 -40px -24px !important; } }

/* ===== Tramuntana · bloque editorial Deià / costa / montaña ===== */
.tr-ed{ background:#fff; padding:120px 44px 110px; }
.tr-ed-grid{ max-width:1400px; margin:0 auto; display:grid; grid-template-columns:repeat(12,1fr); column-gap:24px; row-gap:0; align-items:start; }
.tr-ed figure{ margin:0; }
.tr-ed figure img{ display:block; width:100%; object-fit:cover; }
.tr-ed figcaption{ margin-top:10px; font-family:var(--sans); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.tr-ed figcaption span{ margin-right:10px; color:var(--ink); }
.ed-a{ grid-column:1 / 4; grid-row:1 / 3; }
.ed-a img{ aspect-ratio:4/5; }
.ed-meta{ display:flex; gap:26px; font-family:var(--sans); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
.ed-meta1{ grid-column:4 / 7; grid-row:1; align-self:start; padding:40px 0 0 24px; flex-direction:column; gap:10px; }
.ed-title{ grid-column:7 / 13; grid-row:1; margin:0 0 70px; font-family:var(--display); font-weight:400; font-size:clamp(2.6rem,4.6vw,4.6rem); line-height:1.02; letter-spacing:-.01em; color:var(--ink); }
.ed-b{ grid-column:4 / 6; grid-row:2 / 4; margin-top:160px !important; }
.ed-b img{ aspect-ratio:3/4; }
.ed-texts{ grid-column:7 / 13; grid-row:2; display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding-top:10px; border-top:1px solid #e4dfda; }
.ed-texts article{ padding-top:18px; }
.ed-label{ display:block; font-family:var(--sans); font-size:.6rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:12px; }
.ed-texts h3{ font-family:var(--display); font-weight:400; font-size:1.3rem; line-height:1.2; color:var(--ink); margin:0 0 10px; }
.ed-texts p{ font-family:var(--sans); font-size:.82rem; line-height:1.6; color:var(--ink-soft); margin:0; }
.ed-c{ grid-column:10 / 13; grid-row:3; margin-top:80px !important; }
.ed-c img{ aspect-ratio:4/5; }
.ed-meta2{ grid-column:7 / 10; grid-row:3; align-self:end; padding-bottom:28px; }
@media (max-width:980px){
  .tr-ed{ padding:80px 28px; }
  .tr-ed-grid{ grid-template-columns:repeat(6,1fr); }
  .ed-a{ grid-column:1 / 4; grid-row:2; }
  .ed-meta1{ display:none; }
  .ed-title{ grid-column:1 / 7; grid-row:1; margin-bottom:40px; }
  .ed-b{ grid-column:5 / 7; grid-row:2; margin-top:120px !important; }
  .ed-texts{ grid-column:1 / 7; grid-row:3; margin-top:60px; }
  .ed-c{ grid-column:3 / 7; grid-row:4; margin-top:50px !important; }
  .ed-meta2{ grid-column:1 / 3; grid-row:4; flex-direction:column; gap:8px; }
}
@media (max-width:640px){
  .tr-ed{ padding:64px 20px; }
  .ed-texts{ grid-template-columns:1fr; gap:10px; }
  .ed-a{ grid-column:1 / 5; }
  .ed-b{ grid-column:4 / 7; margin-top:0 !important; grid-row:3; }
  .ed-texts{ grid-row:4; }
  .ed-c{ grid-column:1 / 7; grid-row:5; }
  .ed-meta2{ display:none; }
}
.feature.feature-white{ background:#fff; }
.tr-hero2 .tr-hero2-ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.tr-hero2 .photo-quote-text blockquote p{ font-size:clamp(1.8rem,3.2vw,2.9rem); }
.feature-white + .tr-hero2{ margin-top:0 !important; }
.tr-hero2::after{ background:rgba(10,7,5,.38) !important; }
/* bloque editorial solo texto */
.tr-ed{ padding:110px 44px 100px; }
.tr-ed .ed-meta1{ grid-column:1 / 4; grid-row:1; padding:18px 0 0; }
.tr-ed .ed-title{ grid-column:5 / 13; grid-row:1; margin:0 0 60px; }
.tr-ed .ed-texts{ grid-column:5 / 13; grid-row:2; }
.tr-ed .ed-meta2{ grid-column:1 / 4; grid-row:2; align-self:end; padding-bottom:6px; flex-direction:column; gap:8px; }
.tr-ed .ed-meta2 span:nth-child(2){ display:none; }
@media (max-width:980px){ .tr-ed .ed-meta1{ display:none; } .tr-ed .ed-title, .tr-ed .ed-texts{ grid-column:1 / -1; } .tr-ed .ed-texts{ grid-row:2; margin-top:0; } .tr-ed .ed-meta2{ display:none; } }
/* bloque editorial en marrón */
.tr-ed{ background:var(--maroon) !important; }
.tr-ed .ed-title, .tr-ed .ed-texts h3{ color:#fff; }
.tr-ed .ed-texts p{ color:rgba(255,255,255,.82); }
.tr-ed .ed-label{ color:rgba(255,255,255,.95); }
.tr-ed .ed-meta{ color:rgba(255,255,255,.6); }
.tr-ed .ed-texts{ border-top-color:rgba(255,255,255,.25); }
.tr-ed + .tr-hero2, .tr-ed + .photo-hero{ margin-top:0 !important; }
.tr-ed{ margin-bottom:0 !important; }
.tr-hero2 .photo-quote-text blockquote p{ font-size:clamp(1.3rem,2vw,1.9rem) !important; max-width:900px; margin-left:auto; margin-right:auto; }

/* ===== Tramuntana · rutas (ciclismo / senderismo) estilo editorial ===== */
.tr-rutas{ display:grid; grid-template-columns:1.05fr 1.15fr .8fr; gap:14px; padding:24px 24px 24px 44px; background:#fff; min-height:640px; }
.tr-rutas-text{ display:flex; flex-direction:column; padding:36px 20px 20px 0; }
.tr-rutas-text h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.4rem,3.8vw,3.8rem); line-height:1.02; letter-spacing:-.01em; color:var(--ink); margin:0; max-width:460px; }
.tr-rutas-meta{ display:flex; gap:22px; margin-top:auto; padding-top:40px; font-family:var(--sans); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
.tr-rutas-orn{ width:120px; margin-top:34px; opacity:.9; }
.tr-ruta{ position:relative; overflow:hidden; display:block; color:#fff; text-decoration:none; }
.tr-ruta img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease; }
.tr-ruta:hover img{ transform:scale(1.04); }
.tr-ruta::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.55) 100%); }
.tr-ruta-cap{ position:absolute; z-index:1; left:24px; right:24px; bottom:24px; display:flex; flex-direction:column; gap:6px; }
.tr-ruta-cap strong{ font-family:var(--display); font-weight:400; font-size:1.6rem; line-height:1.1; }
.tr-ruta-cap em{ font-style:normal; font-family:var(--sans); font-size:.78rem; color:rgba(255,255,255,.85); }
.tr-ruta-cap strong::after{ content:" →"; font-family:var(--sans); font-size:.7em; opacity:0; transition:opacity .3s; }
.tr-ruta:hover .tr-ruta-cap strong::after{ opacity:1; }
@media (max-width:980px){
  .tr-rutas{ grid-template-columns:1fr 1fr; padding:60px 28px; min-height:0; }
  .tr-rutas-text{ grid-column:1 / -1; padding:0 0 20px; }
  .tr-rutas-meta{ margin-top:24px; padding-top:0; }
  .tr-ruta{ aspect-ratio:3/4; }
}
@media (max-width:640px){
  .tr-rutas{ grid-template-columns:1fr; padding:50px 20px; }
  .tr-ruta{ aspect-ratio:4/5; }
  .tr-rutas-orn{ width:90px; }
}
.tr-rutas{ background:#e4e2de !important; padding-top:44px; padding-bottom:44px; }
.tr-ruta-lg img{ object-position:55% 60%; }
.tr-rutas{ background:#efeeeb !important; }
.tr-ruta-sm img{ object-position:33% 40%; }
.tr-rutas-links{ display:flex; flex-direction:column; gap:10px; margin-top:32px; }
.tr-rutas-links a{ align-self:flex-start; font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.tr-rutas-links a::after{ content:" →"; }
.tr-rutas-links a:hover{ color:var(--maroon); }
/* Footer · línea entre Contacto y Tu estancia + menú de navegación */
.ft-grid .ft-contact-col + .footer-col{ border-left:1px solid rgba(255,255,255,.18); padding-left:44px; }
@media (max-width:1100px){ .ft-grid .ft-contact-col + .footer-col{ padding-left:30px; } }
@media (max-width:640px){ .ft-grid .ft-contact-col + .footer-col{ border-left:0; padding-left:0; } }
.life-split-one{ padding-bottom:14px !important; max-width:none !important; } .life-split-one .life-split{ min-height:440px; } .life-split-one .life-split-quote p{ font-size:1.5rem; }
.life-split-grid.life-split-one{ display:block !important; padding:12px 44px 14px !important; } .life-split-one .life-split{ width:100%; } @media (max-width:980px){ .life-split-grid.life-split-one{ padding:12px 28px 14px !important; } }
/* Home · enlace Conoce más */
.split-link{ display:inline-block; margin-top:8px; font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.04em; color:var(--ink); text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.split-link:hover{ color:var(--maroon); }
/* Estancias · notas Airbnb / Booking */
.es-creds{ max-width:1100px; margin:10px auto 50px; padding:0 44px; }
.es-creds .creds.creds-row{ flex-direction:row !important; justify-content:center; gap:0 !important; max-width:none !important; margin:0 !important; }
.es-creds .creds-row .rc{ flex:1; max-width:380px; }
.es-creds .creds-row .rc + .rc{ border-left:1px solid #e4dfda; }
@media (max-width:640px){ .es-creds{ padding:0 20px; } .es-creds .creds.creds-row{ flex-direction:column !important; } .es-creds .creds-row .rc + .rc{ border-left:0; border-top:1px solid #e4dfda; padding-top:28px; } }
.es-creds .creds{ display:grid !important; grid-template-columns:1fr 1fr !important; max-width:820px !important; margin:0 auto !important; }
.es-creds .creds .rc{ max-width:none !important; width:auto !important; padding:10px 20px !important; border-top:0 !important; }
@media (max-width:640px){ .es-creds .creds{ grid-template-columns:1fr !important; } }
.es-senefa{ display:block; width:220px; max-width:60%; margin:0 auto 28px; } @media (max-width:640px){ .es-senefa{ width:160px; } }
/* Estancias · tarjetas de nota en horizontal */
.es-creds .creds{ gap:20px !important; max-width:980px !important; }
.es-creds .creds .rc{
  display:grid !important; grid-template-columns:auto 1fr; grid-template-areas:"score head" "score title" "score sub" "score foot";
  align-items:center; column-gap:28px; row-gap:4px; text-align:left !important;
  padding:26px 30px !important; border:1px solid #e4dfda !important; background:#fff;
}
.es-creds .creds .rc + .rc{ border-left:1px solid #e4dfda !important; }
.es-creds .rc .rc-score{ grid-area:score; justify-content:center; margin:0 !important; padding-right:28px; border-right:1px solid #e4dfda; align-self:stretch; display:flex; align-items:center; }
.es-creds .rc .rc-head{ grid-area:head; justify-content:flex-start !important; margin:0 !important; }
.es-creds .rc .rc-title{ grid-area:title; margin:0 !important; }
.es-creds .rc .rc-sub{ grid-area:sub; margin:0 !important; }
.es-creds .rc .rc-foot{ grid-area:foot; justify-content:flex-start !important; margin:6px 0 0 !important; gap:14px; }
.es-creds .rc .rc-stars{ display:none; }
.es-creds .rc .rc-num{ font-size:2.6rem; }
@media (max-width:640px){ .es-creds .creds .rc{ padding:20px !important; column-gap:18px; } .es-creds .rc .rc-score{ padding-right:18px; } }
.es-creds .creds{ align-items:stretch !important; } .es-creds .creds .rc{ margin:0 !important; height:auto; align-content:center; } .es-creds .rc .rc-score{ min-width:150px; }
/* Estancias · hero centrado y sin barra de reservas */
.es-hero .page-hero-content{ text-align:center; }
.es-hero .page-hero-content .wrap{ display:flex; flex-direction:column; align-items:center; }
.es-hero .ph-title, .es-hero .ph-intro{ margin-left:auto; margin-right:auto; text-align:center; }
.es-hero .ph-quote{ margin-left:auto; margin-right:auto; text-align:center; border-left:0 !important; padding-left:0 !important; }
.es-creds .creds .rc, .es-creds .creds .rc + .rc{ border:0 !important; background:transparent; }
.es-hero .page-hero-content{ left:0 !important; right:0 !important; display:flex; justify-content:center; }
.es-hero .page-hero-content .wrap{ width:100%; max-width:900px; margin:0 auto; padding:0 24px; }
.es-hero .ph-intro{ max-width:620px; }
.es-hero > .booking-bar{ visibility:hidden; pointer-events:none; }
.page-hero.es-hero{ height:62vh !important; min-height:460px !important; } .es-hero .page-hero-content{ top:auto; bottom:0; padding-bottom:70px; } @media (max-width:640px){ .page-hero.es-hero{ height:56vh !important; min-height:380px !important; } }
.es-hero > img{ object-position:50% 45%; }
/* Estancias hero: estrellas + texto centrado vertical */
.page-hero.es-hero{ height:72vh !important; min-height:520px !important; }
.es-hero .page-hero-content{ position:absolute !important; inset:0 !important; top:0 !important; bottom:0 !important; padding:80px 0 0 !important; display:flex !important; align-items:center; justify-content:center; }
.es-stars{ display:block; font-size:1.05rem; letter-spacing:.35em; margin:0 0 22px .35em; color:#fff; }
.es-hero .ph-title{ margin-bottom:22px !important; }
@media (max-width:640px){ .page-hero.es-hero{ height:64vh !important; min-height:440px !important; } }
.es-hero > img{ object-position:50% 78% !important; }
.es-hero > img{ object-position:50% 62% !important; }
.es-hero-quote{ margin:0 auto; max-width:820px; text-align:center; color:#fff; }
.es-hero-quote p{ font-family:var(--display); font-weight:400; font-size:clamp(1.6rem,2.8vw,2.6rem); line-height:1.25; margin:0 0 18px; text-wrap:balance; text-shadow:0 1px 14px rgba(0,0,0,.25); }
.es-hero-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.85); }
@media (max-width:640px){ .es-hero-quote p{ font-size:1.35rem; } }

/* ===== Estancias · cards con review al hover (estilo Booking) ===== */
.rv-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; padding:10px 44px 90px; max-width:1740px; margin:0 auto; }
.rv-card{ position:relative; overflow:hidden; aspect-ratio:3/4; outline:none; cursor:default; }
.rv-card > img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s ease, filter .5s ease; }
.rv-tag{ position:absolute; left:16px; bottom:16px; z-index:1; display:flex; align-items:center; gap:8px; padding:7px 12px; background:#fff; font-family:var(--sans); font-size:.72rem; font-weight:700; color:var(--ink); transition:opacity .3s; }
.rv-tag img{ width:14px; height:14px; }
.rv-panel{ position:absolute; left:14px; right:14px; bottom:14px; z-index:2; background:#fff; padding:20px 20px 22px; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.18);
  opacity:0; transform:translateY(16px); transition:opacity .35s ease, transform .35s ease; }
.rv-card:hover .rv-panel, .rv-card:focus-within .rv-panel, .rv-card:focus .rv-panel{ opacity:1; transform:none; }
.rv-card:hover .rv-tag, .rv-card:focus .rv-tag{ opacity:0; }
.rv-card:hover > img, .rv-card:focus > img{ transform:scale(1.04); filter:brightness(.8); }
.rv-head{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.rv-avatar{ width:38px; height:38px; flex:none; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--sans); font-weight:700; font-size:.95rem; color:#fff; background:#003b95; }
.rv-airbnb .rv-avatar{ background:#222; }
.rv-who{ display:flex; flex-direction:column; line-height:1.25; flex:1; min-width:0; }
.rv-who strong{ font-family:var(--sans); font-size:.9rem; color:#1a1a1a; }
.rv-who small{ font-family:var(--sans); font-size:.72rem; color:#6b6b6b; }
.rv-logo{ width:22px; height:22px; flex:none; }
.rv-stars{ display:block; font-size:.8rem; letter-spacing:.12em; color:#1a1a1a; margin:0 0 8px; }
.rv-panel p{ font-family:var(--sans); font-size:.86rem; line-height:1.55; color:#1a1a1a; margin:0; }
@media (hover:none){ .rv-panel{ opacity:1; transform:none; } .rv-tag{ display:none; } .rv-card{ aspect-ratio:auto; min-height:460px; } }
@media (max-width:1100px){ .rv-cards{ grid-template-columns:repeat(2,1fr); padding:10px 28px 70px; } }
@media (max-width:640px){ .rv-cards{ grid-template-columns:1fr; padding:10px 20px 60px; } }
.rv-card{ display:block; cursor:pointer; text-decoration:none; color:inherit; }
.rv-panel::after{ content:"Ver en la plataforma →"; display:block; margin-top:14px; font-family:var(--sans); font-size:.74rem; font-weight:700; color:#003b95; }
.rv-airbnb .rv-panel::after{ content:"Ver en Airbnb →"; color:#222; }
.rv-booking .rv-panel::after{ content:"Ver en Booking.com →"; }
/* Bloque mapa en marrón (Estancias) */
.loc.loc-tram.loc-maroon{ background:var(--maroon) !important; }
.loc-maroon .loc-text h2{ color:#fff !important; }
.loc-maroon .loc-text > p{ color:rgba(255,255,255,.85) !important; }
.loc-maroon .loc-text > p.loc-note, .loc-maroon .loc-text > p.loc-sub, .loc-maroon .aag-eyebrow{ color:rgba(255,255,255,.65) !important; }
.loc-maroon .tr-profile{ color:#fff; }
.loc-maroon .tr-profile circle{ fill:#fff; }
.loc-maroon .tr-peaks, .loc-maroon .tr-profile figcaption{ color:rgba(255,255,255,.65); }
.loc-maroon .tr-profile .tr-here{ color:#fff; }
.es-casa .loc-text > p{ margin-bottom:18px; }
.es-casa-link{ display:inline-block; margin-top:14px; font-family:var(--sans); font-size:.82rem; font-weight:700; letter-spacing:.04em; color:#fff; text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.es-casa-link:hover{ opacity:.8; }
.es-usos-intro{ padding-top:110px; padding-bottom:30px; } .es-usos-orn{ display:block; width:90px; margin:0 auto 26px; }
.es-closer img{ object-position:50% 72%; }
.closer.es-closer{ height:86vh; min-height:616px; } .es-closer img{ object-position:50% 85% !important; } @media (max-width:640px){ .closer.es-closer{ height:66vh; min-height:462px; } }

/* Footer · menú bajo las 3 columnas + línea vertical tras la marca */
@media (min-width:1101px){
  .ft-grid .ft-brand{ grid-column:1; grid-row:1 / span 2; border-right:1px solid rgba(255,255,255,.18); padding-right:40px; }
  .ft-grid .ft-nav{ grid-column:2 / -1; grid-row:2; }
}
.ft-nav{ display:flex; flex-wrap:wrap; gap:12px 34px; padding-top:26px; border-top:1px solid rgba(255,255,255,.18); align-self:end; }
.ft-nav a{ font-family:var(--display); font-size:1.2rem; color:#fff; text-decoration:none; opacity:.9; transition:opacity .2s; }
.ft-nav a:hover{ opacity:1; text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
@media (max-width:1100px){ .ft-grid .ft-nav{ grid-column:1 / -1; } }
@media (max-width:640px){ .ft-nav{ gap:10px 22px; } .ft-nav a{ font-size:1.05rem; } }
@media (min-width:1101px){ .ft-grid .ft-brand{ align-self:stretch; } }
/* Estancias · cierre centrado */
.es-closer::before{ content:""; position:absolute; inset:0; z-index:1; background:rgba(10,7,5,.38); }
.es-closer .closer-content{ top:0; bottom:0; display:flex; align-items:center; justify-content:center; text-align:center; }
.es-closer .closer-content .wrap2{ max-width:760px; margin:0 auto; }
.es-closer .closer-content p{ font-family:var(--display); font-size:clamp(1.7rem,2.8vw,2.6rem); line-height:1.25; text-wrap:balance; margin:0 0 26px; }
.ft-nav{ gap:12px 26px; } .ft-nav a{ font-size:1.1rem; }
/* Footer compacto */
.ft{ padding-top:52px !important; }
.footer-grid.ft-grid{ padding-bottom:74px !important; row-gap:26px !important; }
.ft-brand .ft-senefa{ width:130px !important; margin-bottom:14px !important; }
.ft-brand .logo{ margin-bottom:6px; }
.ft-brand .tagline{ margin:8px 0 10px !important; }
.ft-grid h2{ margin-bottom:12px !important; }
.ft-contact-col ul, .footer-col ul{ gap:6px !important; }
.ft-grid .ft-book{ margin-top:14px !important; }
.ft-grid .ft-news-title{ margin-bottom:4px !important; }
.ft-grid .ft-form{ margin:14px 0 10px !important; }
.ft-nav{ padding-top:18px !important; }
.footer-bottom{ padding-top:16px !important; padding-bottom:18px !important; }
@media (min-width:1101px){ .ft-nav{ flex-wrap:nowrap; justify-content:space-between; gap:0 14px !important; } .ft-nav a{ font-size:clamp(.85rem,1.05vw,1.05rem) !important; white-space:nowrap; } }
.footer-grid.ft-grid{ padding-bottom:30px !important; } .ft-ride{ z-index:3; pointer-events:none; }
.ft-ride{ z-index:0 !important; pointer-events:none !important; } .ft-nav{ position:relative; z-index:5; } .ft-nav a{ position:relative; z-index:5; }
.ft-license{ margin:8px 0 0; font-family:var(--sans); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
/* Tramuntana hero centrado */
.tr-hero1 > img{ object-position:50% 50% !important; }
.tr-hero1 .ph-title{ font-size:clamp(3rem,6vw,5.6rem) !important; line-height:1.02; max-width:14ch; margin-bottom:22px !important; }
.tr-hero1 .ph-intro{ font-size:clamp(1.05rem,1.4vw,1.3rem) !important; max-width:640px; line-height:1.5; }
/* Estancias hero: review más pequeña y elegante */
.es-hero:not(.tr-hero1) .es-hero-quote{ max-width:640px; }
.es-hero:not(.tr-hero1) .es-hero-quote p{ font-size:clamp(1.25rem,1.9vw,1.75rem) !important; line-height:1.4; letter-spacing:.005em; margin-bottom:20px; }
.es-hero:not(.tr-hero1) .es-hero-quote cite{ font-size:.66rem; letter-spacing:.22em; }
.es-hero:not(.tr-hero1) .es-stars{ font-size:.8rem; letter-spacing:.45em; margin-bottom:26px; }
@media (max-width:640px){ .es-hero:not(.tr-hero1) .es-hero-quote p{ font-size:1.15rem !important; } }
.hi-hero > img{ filter:grayscale(1) contrast(1.05); object-position:50% 45%; }
/* ===== Historia · todo centrado ===== */
.hi-hero > img{ object-position:50% 45% !important; }
.hi-hero .ph-title{ font-size:clamp(3rem,6vw,5.4rem) !important; line-height:1.02; margin-bottom:20px !important; }
.hi-hero .ph-intro{ font-size:clamp(1.05rem,1.4vw,1.3rem) !important; max-width:620px; }
.hi-hero .ph-quote{ max-width:640px; margin-top:26px !important; }
.hi-hero .ph-quote p{ font-size:1.2rem !important; }
.hi-page .feature-text{ text-align:center; align-items:center; }
.hi-page .feature-text p{ margin-left:auto; margin-right:auto; }
.hi-page .timeline-item{ text-align:center; }
.hi-page .timeline-item p{ margin-left:auto; margin-right:auto; }
.hi-page .timeline-item img:not(.timeline-photo img){ margin-left:auto; margin-right:auto; }
.hi-page .section-intro, .hi-page .plano-band{ text-align:center; }
.hi-closer img{ object-position:50% 60% !important; }

/* ===== Historia · litografía 1871 ===== */
.hi-lito{ display:grid; grid-template-columns:1.35fr 1fr; gap:70px; align-items:center; max-width:1500px; margin:0 auto; padding:30px 44px 110px; }
.hi-lito-img{ margin:0; }
.hi-lito-img img{ display:block; width:100%; height:auto; }
.hi-lito-img figcaption{ margin-top:12px; font-family:var(--sans); font-size:.72rem; line-height:1.5; color:var(--gray); text-align:left; }
.hi-lito-img figcaption a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.hi-lito-text{ text-align:left; }
.hi-lito-text h2{ font-family:var(--display); font-weight:400; font-size:2.4rem; line-height:1.1; color:var(--ink); margin:10px 0 18px; }
.hi-lito-text p{ font-family:var(--serif); font-size:1.02rem; line-height:1.65; color:var(--ink-soft); margin:0 0 14px; max-width:480px; }
@media (max-width:980px){ .hi-lito{ grid-template-columns:1fr; gap:36px; padding:20px 28px 80px; } }

/* ===== Historia · mapa cronológico ===== */
.hi-crono{ max-width:1740px; margin:0 auto; padding:30px 44px 110px; }
.hi-crono-head{ text-align:center; margin-bottom:46px; }
.hi-crono-head h2{ font-family:var(--display); font-weight:400; font-size:2.4rem; color:var(--ink); margin:10px 0 0; }
.hi-crono-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(6,1fr); column-gap:24px; }
.hi-step{ text-align:center; position:relative; }
.hi-step .timeline-photo{ aspect-ratio:3/4; overflow:hidden; background:var(--tan); margin-bottom:0; }
.hi-step .timeline-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.hi-step .timeline-photo.tl-quiet img{ width:46%; height:auto; object-fit:contain; }
.hi-axis{ position:relative; display:block; height:46px; margin:0 -12px; }
.hi-axis::before{ content:""; position:absolute; left:0; right:0; top:50%; border-top:1px solid var(--maroon); opacity:.45; }
.hi-step:first-child .hi-axis::before{ left:50%; }
.hi-step:last-child .hi-axis::before{ right:50%; border-top-style:dashed; }
.hi-axis i{ position:absolute; left:50%; top:50%; width:11px; height:11px; margin:-6px 0 0 -6px; border-radius:50%; background:var(--maroon); box-shadow:0 0 0 5px #fff; }
.hi-step:last-child .hi-axis i{ background:#fff; border:1px solid var(--maroon); }
.hi-step h4{ font-family:var(--display); font-weight:400; font-size:1.2rem; color:var(--ink); margin:4px 0 .35em; line-height:1.2; }
.hi-step p{ font-family:var(--serif); font-size:.86rem; line-height:1.5; color:var(--ink-soft); margin:0 auto; max-width:230px; }
@media (max-width:1100px){ .hi-crono-grid{ grid-template-columns:repeat(3,1fr); row-gap:40px; } .hi-step:nth-child(3) .hi-axis::before{ right:50%; } .hi-step:nth-child(4) .hi-axis::before{ left:50%; } }
@media (max-width:640px){
  .hi-crono{ padding:20px 20px 70px; }
  .hi-crono-grid{ grid-template-columns:1fr; row-gap:0; }
  .hi-step{ display:grid; grid-template-columns:110px 34px 1fr; column-gap:14px; text-align:left; padding-bottom:26px; }
  .hi-step .timeline-photo{ grid-row:1 / span 3; }
  .hi-axis{ grid-row:1 / span 3; height:auto; margin:0; }
  .hi-axis::before{ left:50% !important; right:auto !important; top:0; bottom:-26px; border-top:0; border-left:1px solid var(--maroon); }
  .hi-axis i{ top:14px; }
  .hi-step p{ margin:0; }
}

/* ===== Historia · hilo cronológico vertical ===== */
.hi-hilo{ padding:110px 44px 120px; background:#fff; }
.hi-hilo-head{ text-align:center; margin:0 auto 70px; max-width:720px; }
.hi-hilo-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem,3.4vw,3.2rem); line-height:1.1; color:var(--ink); margin:10px 0 18px; }
.hi-hilo-list{ list-style:none; margin:0 auto; padding:0; max-width:1240px; position:relative; }
.hi-hilo-list::before{ content:""; position:absolute; left:50%; top:0; bottom:0; border-left:1px solid rgba(71,30,31,.35); }
.hi-ch{ position:relative; display:grid; grid-template-columns:1fr 1fr; column-gap:120px; align-items:center; padding:0 0 110px; }
.hi-ch.hi-last{ padding-bottom:0; }
.hi-dot{ position:absolute; left:50%; top:50%; width:13px; height:13px; margin:-7px 0 0 -7px; border-radius:50%; background:var(--maroon); box-shadow:0 0 0 7px #fff; z-index:1; }
.hi-last .hi-dot{ background:#fff; border:1px solid var(--maroon); }
.hi-ch-img{ margin:0; }
.hi-ch-img img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.hi-ch-img.hi-bw img{ filter:grayscale(1); }
.hi-ch-img figcaption{ margin-top:10px; font-family:var(--sans); font-size:.7rem; line-height:1.5; color:var(--gray); }
.hi-ch-img figcaption a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.hi-ch-quiet{ aspect-ratio:4/3; background:#f3eee8; display:flex; align-items:center; justify-content:center; }
.hi-ch-quiet img{ width:34% !important; aspect-ratio:auto !important; opacity:.55; }
.hi-r .hi-ch-img{ order:2; }
.hi-r .hi-ch-text{ order:1; text-align:right; }
.hi-r .hi-ch-text p{ margin-left:auto; }
.hi-ch-text{ text-align:left; }
.hi-era{ display:block; font-family:var(--display); font-size:clamp(2.2rem,3.6vw,3.4rem); line-height:1; color:var(--maroon); margin-bottom:14px; }
.hi-ch-text h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; line-height:1.2; color:var(--ink); margin:0 0 14px; }
.hi-ch-text p{ font-family:var(--serif); font-size:1rem; line-height:1.65; color:var(--ink-soft); margin:0; max-width:440px; }
@media (max-width:900px){
  .hi-hilo{ padding:70px 20px 80px; }
  .hi-hilo-list::before{ left:8px; }
  .hi-ch{ grid-template-columns:1fr; row-gap:22px; padding:0 0 60px 40px; }
  .hi-dot{ left:8px; top:10px; margin:0 0 0 -6px; }
  .hi-r .hi-ch-img{ order:0; }
  .hi-r .hi-ch-text{ text-align:left; }
  .hi-r .hi-ch-text p{ margin-left:0; }
}
.hi-crono-grid{ grid-template-columns:repeat(7,1fr); column-gap:20px; } .hi-axis{ margin:0 -10px; } @media (max-width:1100px){ .hi-crono-grid{ grid-template-columns:repeat(4,1fr); } } .hi-lito-text .eyebrow{ display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
.hi-crono{ padding-top:100px !important; } .hi-crono-head .eyebrow{ display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
.hi-crono-orn{ display:block; width:64px; margin:0 auto 20px; }
.hi-hero > img{ object-position:50% 80% !important; }
.hi-hero > img{ object-position:50% 75% !important; }

/* ===== Historia · regeneración y patrimonio ===== */
.hi-regen{ display:grid; grid-template-columns:1fr 1.1fr; background:var(--maroon); color:#fff; min-height:720px; }
.hi-rg-photo{ position:relative; overflow:hidden; }
.hi-rg-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hi-rg-panel{ padding:90px 70px; display:flex; flex-direction:column; justify-content:center; text-align:left !important; }
.hi-rg-orn{ width:56px; margin:0 0 22px; filter:brightness(0) invert(1); opacity:.85; }
.hi-rg-panel h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem,3.4vw,3.2rem); line-height:1.08; color:#fff; margin:0 0 16px; max-width:14ch; }
.hi-rg-intro{ font-family:var(--serif); font-size:1.05rem; line-height:1.65; color:rgba(255,255,255,.85); margin:0 0 44px; max-width:520px; }
.hi-rg-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid rgba(255,255,255,.2); }
.hi-rg-item{ padding:28px 28px 28px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.hi-rg-item:nth-child(even){ padding-left:28px; border-left:1px solid rgba(255,255,255,.2); }
.hi-rg-ic{ display:block; width:40px; height:40px; color:#fff; margin-bottom:14px; }
.hi-rg-ic svg{ width:100%; height:100%; }
.hi-rg-item h3{ font-family:var(--display); font-weight:400; font-size:1.45rem; color:#fff; margin:0 0 8px; }
.hi-rg-item p{ font-family:var(--sans); font-size:.86rem; line-height:1.6; color:rgba(255,255,255,.8); margin:0; }
.hi-rg-foot{ margin:34px 0 0; font-family:var(--sans); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }
@media (max-width:980px){ .hi-regen{ grid-template-columns:1fr; } .hi-rg-photo{ height:52vh; } .hi-rg-panel{ padding:60px 28px; } }
@media (max-width:640px){ .hi-rg-grid{ grid-template-columns:1fr; } .hi-rg-item:nth-child(even){ padding-left:0; border-left:0; } .hi-rg-panel{ padding:50px 20px; } }

/* ===== Historia · regeneración (editorial) ===== */
.hi-regen2{ display:grid; grid-template-columns:1fr 1fr; gap:0; background:#fff; padding:100px 44px 110px; max-width:1500px; margin:0 auto; align-items:stretch; }
.rg2-main{ margin:0; min-height:680px; position:relative; overflow:hidden; }
.rg2-main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.rg2-side{ display:grid; grid-template-rows:auto 1fr; padding:0 0 0 7vw; }
.rg2-small{ margin:0 0 0 auto; width:min(230px,40%); }
.rg2-small img{ display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.rg2-small figcaption{ margin-top:8px; font-family:var(--sans); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); text-align:right; }
.rg2-text{ align-self:end; text-align:left !important; }
.rg2-label{ display:flex; align-items:center; gap:14px; font-family:var(--sans); font-size:.62rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); margin-bottom:22px; }
.rg2-label::after{ content:""; flex:1; border-top:1px solid var(--ink); opacity:.5; }
.rg2-text h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem,3.6vw,3.4rem); line-height:1.02; text-transform:uppercase; letter-spacing:.02em; color:var(--ink); margin:0 0 30px; }
.rg2-text h2 em{ display:block; text-transform:none; font-style:italic; color:var(--maroon); letter-spacing:0; }
.rg2-text p{ font-family:var(--serif); font-size:.95rem; line-height:1.7; color:var(--ink-soft); margin:0 0 26px auto; max-width:420px; }
.rg2-list{ list-style:none; margin:0 0 0 auto; padding:0; max-width:420px; border-top:1px solid #e4dfda; }
.rg2-list li{ display:flex; gap:18px; padding:12px 0; border-bottom:1px solid #e4dfda; font-family:var(--sans); font-size:.84rem; color:var(--ink-soft); }
.rg2-list b{ min-width:78px; font-weight:700; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--maroon); padding-top:2px; }
@media (max-width:980px){ .hi-regen2{ grid-template-columns:1fr; padding:70px 28px; } .rg2-main{ min-height:60vh; } .rg2-side{ padding:36px 0 0; row-gap:36px; } .rg2-small{ margin:0; } .rg2-small figcaption{ text-align:left; } .rg2-text p, .rg2-list{ margin-left:0; } }
.rg2-small{ margin-bottom:48px !important; }
.rg2-side{ grid-template-rows:1fr !important; }
/* regeneración: ajuste de espacios */
.hi-regen2{ grid-template-columns:1.05fr 1fr !important; padding:90px 44px 100px !important; max-width:1400px; }
.rg2-main{ min-height:600px !important; }
.rg2-side{ display:flex !important; align-items:center; padding:0 0 0 6vw !important; }
.rg2-text{ align-self:center !important; max-width:520px; }
.rg2-text h2{ margin-bottom:26px !important; }
.rg2-text p{ margin:0 0 30px 0 !important; max-width:none !important; font-size:1rem; }
.rg2-list{ margin:0 !important; max-width:none !important; }
@media (max-width:980px){ .rg2-side{ padding:36px 0 0 !important; } }
/* regeneración como hero */
.hi-regen2{ position:relative !important; display:flex !important; align-items:center; justify-content:center; max-width:none !important; min-height:88vh; padding:120px 44px !important; margin:0 !important; overflow:hidden; }
.hi-regen2 .rg2-main{ position:absolute !important; inset:0; min-height:0 !important; margin:0; }
.hi-regen2 .rg2-main::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,7,5,.35), rgba(10,7,5,.55)); }
.hi-regen2 .rg2-side{ position:relative; z-index:1; padding:0 !important; justify-content:center; width:100%; }
.hi-regen2 .rg2-text{ max-width:680px !important; text-align:center !important; margin:0 auto; }
.hi-regen2 .rg2-text h2{ color:#fff !important; }
.hi-regen2 .rg2-text h2 em{ color:#fff !important; }
.hi-regen2 .rg2-text p{ color:rgba(255,255,255,.9) !important; text-align:center; margin:0 auto 36px !important; max-width:600px !important; }
.hi-regen2 .rg2-list{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.35) !important; max-width:640px !important; margin:0 auto !important; }
.hi-regen2 .rg2-list li{ flex-direction:column; gap:6px; align-items:center; text-align:center; border-bottom:0 !important; padding:18px 10px 0; color:#fff !important; }
.hi-regen2 .rg2-list li + li{ border-left:1px solid rgba(255,255,255,.35); }
.hi-regen2 .rg2-list b{ min-width:0; color:rgba(255,255,255,.75) !important; }
@media (max-width:640px){ .hi-regen2{ min-height:auto; padding:90px 20px !important; } .hi-regen2 .rg2-list{ grid-template-columns:1fr; } .hi-regen2 .rg2-list li + li{ border-left:0; } }
.hi-regen2 .rg2-main::after{ background:rgba(10,7,5,.55) !important; } .hi-regen2 .rg2-text p{ font-size:1.05rem; }
.footer-grid.ft-grid{ padding-bottom:74px !important; }
/* Footer · reajuste de columnas */
@media (min-width:1101px){
  .ft-grid{ grid-template-columns:1fr .85fr .95fr 1.45fr !important; column-gap:48px !important; row-gap:0 !important; align-items:start; }
  .ft-grid .ft-brand{ grid-row:auto !important; align-self:stretch; padding-right:40px; }
  .ft-grid .ft-contact-col + .footer-col{ padding-left:40px; }
  .ft-grid .ft-news{ padding-left:40px !important; }
}
.ft-brand .logo{ font-size:1.9rem; }
@media (min-width:1101px){ .ft-grid{ grid-template-columns:1.15fr .8fr .95fr 1.55fr !important; column-gap:40px !important; } .ft-trust{ white-space:nowrap; } }
/* Footer · más ligero */
.ft{ padding-top:44px !important; }
.ft-brand .logo{ font-size:1.45rem !important; }
.ft-brand .tagline, .ft-trust{ font-size:.82rem !important; }
.ft-grid h2:not(.ft-news-title){ font-size:.6rem !important; letter-spacing:.18em; opacity:.75; margin-bottom:10px !important; }
.ft-contact-col li a, .footer-col li a, .ft-contact-col li, .footer-col li{ font-size:.84rem !important; }
.ft-grid .ft-book{ font-size:.6rem !important; padding:8px 12px !important; }
.ft-grid .ft-news-title{ font-size:1.45rem !important; line-height:1.15; }
.ft-grid .ft-news > p{ font-size:.84rem !important; }
.ft-grid .ft-form{ margin:12px 0 8px !important; }
.ft-grid .ft-form input{ height:40px !important; padding:0 14px !important; font-size:.85rem !important; }
.ft-grid .ft-form button{ height:40px !important; padding:0 16px !important; font-size:.6rem !important; }
.ft-grid .ft-news small{ font-size:.68rem !important; }
.ft-grid .ft-brand, .ft-grid .ft-contact-col + .footer-col, .ft-grid .ft-news{ border-color:rgba(255,255,255,.1) !important; }
.footer-grid.ft-grid{ padding-bottom:64px !important; }
.ft-trust, .ft-trust a{ font-size:.8rem !important; }
/* Menú hamburguesa abierto: fondo blanco */
:is(.site-header.is-stuck, .site-header) .nav-toggle-input:checked ~ nav.main-nav{ background:#fff !important; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a:not(.btn-solid){ color:var(--ink) !important; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.active{ color:var(--maroon) !important; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.nav-mobile-cta{ background:var(--maroon) !important; color:#fff !important; }
.site-header:has(.nav-toggle-input:checked) .logo{ color:var(--ink) !important; }
.site-header:has(.nav-toggle-input:checked) .nav-toggle-btn span{ background:var(--ink) !important; }

/* ===== Footer en blanco ===== */
footer.ft{ background:#fff !important; color:var(--ink) !important; border-top:1px solid #e4dfda; }
footer.ft, footer.ft p, footer.ft li, footer.ft small, footer.ft span, footer.ft h2, footer.ft .logo{ color:var(--ink) !important; }
footer.ft a{ color:var(--ink) !important; }
footer.ft a:hover{ color:var(--maroon) !important; }
footer.ft .tagline, footer.ft small, footer.ft .footer-bottom p, footer.ft .footer-legal a{ color:var(--ink-soft) !important; }
footer.ft .ft-grid h2:not(.ft-news-title){ color:var(--gray) !important; opacity:1; }
footer.ft .ft-grid .ft-brand, footer.ft .ft-grid .ft-contact-col + .footer-col, footer.ft .ft-grid .ft-news{ border-color:#e4dfda !important; }
footer.ft .footer-bottom, footer.ft .ft-road{ border-color:#e4dfda !important; }
footer.ft .ft-road{ background:#e4dfda !important; }
footer.ft .ft-book{ background:var(--maroon) !important; color:#fff !important; border-color:var(--maroon) !important; }
footer.ft .ft-book:hover{ color:#fff !important; opacity:.9; }
footer.ft .ft-form input{ background:#fff !important; border:1px solid #cfc8c1 !important; color:var(--ink) !important; }
footer.ft .ft-form input::placeholder{ color:#9a948e !important; }
footer.ft .ft-form button{ background:var(--maroon) !important; color:#fff !important; border-color:var(--maroon) !important; }
footer.ft .ft-bike, footer.ft .ft-rider{ color:var(--ink) !important; }
footer.ft .ft-senefa-sm{ filter:none !important; opacity:.8; }
footer.ft .ft-bottom-right a svg, footer.ft .ft-social a{ color:var(--ink) !important; border-color:#cfc8c1 !important; }
footer.ft img.ft-senefa{ filter:brightness(0); opacity:.6; }
footer.ft strong, footer.ft b{ color:var(--ink) !important; } footer.ft .footer-bottom{ border-top:1px solid #e4dfda !important; } footer.ft .ft-bottom-right a{ border:1px solid #cfc8c1 !important; }
footer.ft .footer-legal a{ border:0 !important; }

/* ===== Páginas legales ===== */
.lg-page{ background:#fff; padding:150px 24px 110px; }
.lg-wrap{ max-width:760px; margin:0 auto; }
.lg-eyebrow{ display:block; font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); margin-bottom:14px; }
.lg-page h1{ font-family:var(--display); font-weight:400; font-size:clamp(2.4rem,4.4vw,3.6rem); line-height:1.05; color:var(--ink); margin:0 0 10px; }
.lg-updated{ font-family:var(--sans); font-size:.78rem; color:var(--gray); margin:0 0 50px; padding-bottom:30px; border-bottom:1px solid #e4dfda; }
.lg-page h2{ font-family:var(--display); font-weight:400; font-size:1.45rem; color:var(--ink); margin:44px 0 12px; }
.lg-page p, .lg-list li{ font-family:var(--serif); font-size:1rem; line-height:1.7; color:var(--ink-soft); margin:0 0 14px; }
.lg-page a{ color:var(--maroon); text-decoration:underline; text-underline-offset:3px; }
.lg-list{ padding-left:18px; margin:0 0 14px; }
.lg-data{ list-style:none; padding:0; margin:0 0 14px; border-top:1px solid #e4dfda; }
.lg-data li{ display:flex; gap:18px; padding:11px 0; border-bottom:1px solid #e4dfda; font-family:var(--sans); font-size:.88rem; color:var(--ink-soft); }
.lg-data b{ min-width:150px; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--maroon); padding-top:3px; }
.lg-pend{ display:inline-block; font-family:var(--sans); font-size:.72rem; font-weight:700; color:#b06a00; background:#fff4e0; padding:1px 6px; border-radius:3px; }
.lg-table{ width:100%; border-collapse:collapse; font-family:var(--sans); font-size:.86rem; margin:6px 0 14px; }
.lg-table th{ text-align:left; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); padding:10px 12px 10px 0; border-bottom:1px solid var(--ink); }
.lg-table td{ padding:12px 12px 12px 0; border-bottom:1px solid #e4dfda; color:var(--ink-soft); vertical-align:top; }
.lg-cookies{ display:flex; flex-direction:column; gap:12px; padding:24px; border:1px solid #e4dfda; margin:10px 0 14px; font-family:var(--sans); font-size:.9rem; color:var(--ink); }
.lg-cookies input{ accent-color:var(--maroon); margin-right:8px; }
.lg-cookies .btn-solid{ align-self:flex-start; margin-top:8px; }
@media (max-width:640px){ .lg-page{ padding:110px 20px 70px; } .lg-data li{ flex-direction:column; gap:4px; } }
/* Header CTA en negro */
.header-cta .btn-solid, .site-header .header-cta .btn-solid{ background:#1a1a1a !important; border-color:#1a1a1a !important; color:#fff !important; }
.header-cta .btn-solid:hover{ background:#000 !important; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.nav-mobile-cta{ background:#1a1a1a !important; }
footer.ft .ft-book, footer.ft .ft-form button{ background:#1a1a1a !important; border-color:#1a1a1a !important; color:#fff !important; }
footer.ft .ft-book:hover, footer.ft .ft-form button:hover{ background:#000 !important; }
.mobile-cta-bar{ background:#1a1a1a !important; }
/* Newsletter compacta */
footer.ft .ft-grid .ft-news-title{ font-size:1.2rem !important; margin:0 0 2px !important; }
footer.ft .ft-grid .ft-news > p{ font-size:.8rem !important; margin:0 !important; }
footer.ft .ft-grid .ft-form{ margin:10px 0 6px !important; }
footer.ft .ft-grid .ft-form input, footer.ft .ft-grid .ft-form button{ height:36px !important; }
footer.ft .ft-grid .ft-news small{ font-size:.64rem !important; line-height:1.4; display:block; }
.ft{ padding-top:38px !important; }
.footer-grid.ft-grid{ padding-bottom:58px !important; }
.footer-grid.ft-grid{ padding-bottom:46px !important; }

/* ===== La casa · rediseño ===== */
.lc-hero > img{ object-position:50% 55% !important; }
.lc-hero .ph-title{ font-size:clamp(2.8rem,5.4vw,5rem) !important; line-height:1.03; margin-bottom:20px !important; }
.lc-hero .ph-intro{ max-width:620px; font-size:clamp(1rem,1.3vw,1.2rem) !important; line-height:1.55; }
.lc-hero .es-stars{ font-size:.8rem; letter-spacing:.45em; margin-bottom:24px; }
.lc-intro{ padding-top:100px; }
.lc-intro .eyebrow{ display:block; }
.lc-aag .aag-grid{ grid-template-columns:repeat(4,1fr) !important; border-left:0; }
.lc-aag{ grid-template-columns:1fr !important; }
.lc-aag .aag-cell{ border-right:1px solid #e4dfda !important; border-bottom:1px solid #e4dfda !important; }
.lc-aag .aag-cell:nth-child(4n){ border-right:0 !important; }
.lc-aag .aag-cell:nth-child(n+5){ border-bottom:0 !important; }
.lc-aag .aag-dark{ grid-column:span 1 !important; }
@media (max-width:980px){ .lc-aag .aag-grid{ grid-template-columns:1fr 1fr !important; } .lc-aag .aag-cell:nth-child(2n){ border-right:0 !important; } .lc-aag .aag-cell:nth-child(n+5){ border-bottom:1px solid #e4dfda !important; } .lc-aag .aag-dark{ grid-column:span 2 !important; } }

.lc-block{ padding:110px 44px; background:#fff; }
.lc-block-grey{ background:#efeeeb; }
.lc-head{ max-width:720px; margin:0 auto 56px; text-align:center; }
.lc-head .eyebrow{ display:block; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); margin-bottom:12px; }
.lc-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem,3.4vw,3.2rem); line-height:1.08; color:var(--ink); margin:0 0 16px; }
.lc-head p{ font-family:var(--serif); font-size:1.02rem; line-height:1.65; color:var(--ink-soft); margin:0; }
.lc-rooms{ display:grid; grid-template-columns:repeat(3,1fr); gap:56px 28px; max-width:1400px; margin:0 auto; }
.lc-room-img, .lc-space-img{ overflow:hidden; }
.lc-room-img img{ display:block; width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .8s ease; }
.lc-space-img img{ display:block; width:100%; aspect-ratio:1/1; object-fit:cover; transition:transform .8s ease; }
.lc-room:hover img, .lc-space:hover img{ transform:scale(1.04); }
.lc-room-meta{ display:flex; justify-content:space-between; align-items:baseline; margin:16px 0 6px; padding-bottom:10px; border-bottom:1px solid #e4dfda; }
.lc-num{ font-family:var(--display); font-size:1.1rem; color:var(--maroon); }
.lc-bed{ font-family:var(--sans); font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
.lc-room h3, .lc-space h3{ font-family:var(--display); font-weight:400; font-size:1.55rem; color:var(--ink); margin:10px 0 6px; }
.lc-room p, .lc-space p{ font-family:var(--serif); font-size:.92rem; line-height:1.55; color:var(--ink-soft); margin:0; }
.lc-note{ text-align:center; margin:56px auto 0; font-family:var(--sans); font-size:.8rem; color:var(--gray); }
.lc-spaces{ display:grid; grid-template-columns:repeat(4,1fr); gap:44px 22px; max-width:1500px; margin:0 auto; }
.lc-space h3{ font-size:1.3rem; margin-top:14px; }
.lc-confort{ padding:100px 44px; text-align:center; background:#fff; }
.lc-confort-head h2{ font-family:var(--display); font-weight:400; font-size:clamp(2rem,3vw,2.8rem); color:var(--ink); margin:10px 0 44px; }
.lc-confort-head .eyebrow{ display:block; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); }
.lc-confort-grid{ display:grid; grid-template-columns:repeat(4,1fr); max-width:1200px; margin:0 auto; border-top:1px solid #e4dfda; }
.lc-confort-grid div{ padding:26px 20px; border-right:1px solid #e4dfda; display:flex; flex-direction:column; gap:8px; }
.lc-confort-grid div:last-child{ border-right:0; }
.lc-confort-grid b{ font-family:var(--display); font-weight:400; font-size:1.3rem; color:var(--maroon); }
.lc-confort-grid span{ font-family:var(--sans); font-size:.85rem; line-height:1.5; color:var(--ink-soft); }
.lc-closer img{ object-position:50% 60% !important; }
@media (max-width:1100px){ .lc-spaces{ grid-template-columns:repeat(2,1fr); } .lc-confort-grid{ grid-template-columns:1fr 1fr; } .lc-confort-grid div:nth-child(2n){ border-right:0; } }
@media (max-width:760px){ .lc-rooms{ grid-template-columns:1fr 1fr; gap:40px 16px; } .lc-block{ padding:70px 20px; } }
@media (max-width:520px){ .lc-rooms, .lc-spaces, .lc-confort-grid{ grid-template-columns:1fr; } .lc-confort-grid div{ border-right:0; border-bottom:1px solid #e4dfda; } }
.plan-image img[src="casa-fachada-aljibe.jpg"]{ width:100%; height:100%; object-fit:cover; aspect-ratio:1/1; display:block; }
.plan-image{ border:0 !important; padding:0 !important; background:none !important; box-shadow:none !important; } .plan-image img{ border:0 !important; }
.lc-hero .ph-title{ font-size:clamp(2.2rem,4vw,3.8rem) !important; max-width:18ch; } .lc-hero .ph-intro{ max-width:680px !important; }
.lc-hero-quote{ margin-top:30px !important; padding-top:24px; border-top:1px solid rgba(255,255,255,.35); max-width:520px; } .lc-hero-quote p{ font-size:clamp(1.15rem,1.6vw,1.5rem) !important; margin-bottom:12px !important; } .lc-hero-quote cite{ font-size:.64rem; letter-spacing:.2em; }
.lc-hero-quote{ border-top:0 !important; padding-top:0 !important; margin-top:0 !important; max-width:760px !important; } .lc-hero-quote p{ font-size:clamp(1.6rem,2.8vw,2.6rem) !important; }
.plan-image img[src="casa-jardin-palmeras-olivo.jpg"]{ width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 60%; display:block; }
.plan-image img[src="casa-cocina-comedor-luz.jpg"]{ width:100%; aspect-ratio:1/1; object-fit:cover; object-position:50% 60%; display:block; }
.lc-hero + .scroll-sentinel ~ .plan-section, body .plan-section{ padding-top:110px !important; }
.lc-warm .photo img{ object-position:50% 70%; } .lc-warm .copy p + p{ margin-top:14px; }

#dormitorios{ background:#efeeeb !important; }
.lc-closer img{ object-position:50% 55% !important; }
.lc-space-img img[src="casa-terraza-mirador.jpg"]{ object-position:50% 50% !important; }
.lc-space-img img[src="casa-terraza-mirador.jpg"]{ object-position:36% 60% !important; }
.lc-space-img img[src="casa-patio-pozo.jpg"]{ object-position:44% 60%; }

/* Home · De un vistazo y Tramuntana con fondo gris claro */
.aag:not(.aag-tram):not(.lc-aag) .aag-dark{ background:#edebe8 !important; }
.aag:not(.aag-tram):not(.lc-aag) .aag-dark .aag-label{ color:var(--ink) !important; }
.aag:not(.aag-tram):not(.lc-aag) .aag-dark .aag-note{ color:var(--ink-soft) !important; }
.loc:not(.loc-tram){ background:#edebe8 !important; }
.loc:not(.loc-tram) .loc-quote p, .loc:not(.loc-tram) .loc-text > p{ color:var(--ink) !important; }
.loc:not(.loc-tram) .loc-quote cite{ color:var(--gray) !important; }
.loc:not(.loc-tram) .loc-link{ color:var(--ink) !important; }
.loc:not(.loc-tram) .loc-link:hover{ color:var(--maroon) !important; }
/* Home · botones en negro */
body.home .btn-solid, body.home .mobile-cta-bar{ background:#1a1a1a !important; border-color:#1a1a1a !important; color:#fff !important; }
body.home .btn-solid:hover{ background:#000 !important; border-color:#000 !important; }

/* Tramuntana y Estancias · marrón -> gris claro */
.tr-ed{ background:#edebe8 !important; }
.tr-ed .ed-title, .tr-ed .ed-texts h3{ color:var(--ink) !important; }
.tr-ed .ed-texts p{ color:var(--ink-soft) !important; }
.tr-ed .ed-label{ color:var(--maroon) !important; }
.tr-ed .ed-meta{ color:var(--gray) !important; }
.tr-ed .ed-texts{ border-top-color:#d6d1cb !important; }
.aag-tram .aag-dark{ background:#edebe8 !important; }
.aag-tram .aag-dark .aag-label{ color:var(--ink) !important; }
.aag-tram .aag-dark .aag-note{ color:var(--ink-soft) !important; }
.loc.loc-tram.loc-maroon{ background:#edebe8 !important; }
.loc-maroon .loc-text h2{ color:var(--ink) !important; }
.loc-maroon .loc-text > p{ color:var(--ink-soft) !important; }
.loc-maroon .loc-text > p.loc-note, .loc-maroon .loc-text > p.loc-sub, .loc-maroon .aag-eyebrow{ color:var(--gray) !important; }
.loc-maroon .es-casa-link{ color:var(--ink) !important; }
.loc-maroon .es-casa-link:hover{ color:var(--maroon) !important; }
.promo-card .btn-solid, .promo-overlay .btn-solid, .promo-card button[type="submit"]{ background:#1a1a1a !important; border-color:#1a1a1a !important; color:#fff !important; } .promo-card .btn-solid:hover{ background:#000 !important; }

/* ===== Todos los botones marrones -> negro ===== */
.btn-solid, a.btn-solid, button.btn-solid, .mobile-cta-bar, .ct-submit .btn-solid, .lg-cookies .btn-solid{ background:#1a1a1a !important; border-color:#1a1a1a !important; color:#fff !important; }
.btn-solid:hover, .mobile-cta-bar:hover{ background:#000 !important; border-color:#000 !important; color:#fff !important; }
.btn-dark:hover{ background:#000 !important; }
.bk-cal-grid button.bk-sel{ background:#1a1a1a !important; }
.site-header .nav-toggle-input:checked ~ nav.main-nav a.nav-mobile-cta{ background:#1a1a1a !important; }

/* ===== Páginas de estancia (ciclismo, senderismo, retiros, work) ===== */
.sp-hero .ph-title{ font-size:clamp(2.6rem,5vw,4.6rem) !important; line-height:1.03; margin-bottom:18px !important; }
.sp-hero .ph-intro{ max-width:620px; font-size:clamp(1rem,1.3vw,1.18rem) !important; line-height:1.55; }
.sp-hero .es-stars{ font-size:.8rem; letter-spacing:.45em; margin-bottom:22px; }
.sp-hero-quote{ margin-top:26px !important; padding-top:22px; border-top:1px solid rgba(255,255,255,.35); max-width:560px; }
.sp-hero-quote p{ font-size:clamp(1.05rem,1.4vw,1.3rem) !important; margin-bottom:10px !important; }
.sp-hero-quote cite{ font-size:.62rem; letter-spacing:.2em; }
.sp-intro{ padding-top:100px; padding-bottom:60px; }
.sp-intro .eyebrow{ display:block; }
.sp-aag{ grid-template-columns:1fr !important; }
.sp-aag .aag-grid{ grid-template-columns:repeat(4,1fr) !important; border-left:0; }
.sp-aag .aag-cell{ border-right:1px solid #e4dfda !important; border-bottom:1px solid #e4dfda !important; }
.sp-aag .aag-cell:nth-child(4n){ border-right:0 !important; }
.sp-aag .aag-cell:nth-child(n+5){ border-bottom:0 !important; }
.sp-aag .aag-dark{ grid-column:span 1 !important; background:#edebe8 !important; }
.sp-aag .aag-dark .aag-label{ color:var(--ink) !important; font-size:1.7rem; }
.sp-aag .aag-dark .aag-note{ color:var(--ink-soft) !important; }
.sp-aag .aag-num small{ font-size:.32em; margin-left:.12em; }
.sp-aag .aag-num{ font-size:clamp(3rem,5vw,5rem) !important; white-space:nowrap; }
@media (max-width:980px){ .sp-aag .aag-grid{ grid-template-columns:1fr 1fr !important; } .sp-aag .aag-cell:nth-child(2n){ border-right:0 !important; } .sp-aag .aag-cell:nth-child(n+5){ border-bottom:1px solid #e4dfda !important; } }

.sp-split{ display:grid; grid-template-columns:1fr 1fr; min-height:640px; background:#fff; }
.sp-split-img{ position:relative; overflow:hidden; }
.sp-split-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sp-split-text{ padding:90px 7vw; display:flex; flex-direction:column; justify-content:center; }
.sp-rev .sp-split-img{ order:2; }
.sp-split-text .eyebrow{ display:block; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gray); margin-bottom:12px; }
.sp-split-text h2{ font-family:var(--display); font-weight:400; font-size:clamp(2rem,3vw,2.8rem); line-height:1.1; color:var(--ink); margin:0 0 20px; }
.sp-split-text p{ font-family:var(--serif); font-size:1rem; line-height:1.7; color:var(--ink-soft); margin:0 0 14px; max-width:480px; }
.sp-list{ list-style:none; padding:0; margin:14px 0 0; max-width:480px; border-top:1px solid #e4dfda; }
.sp-list li{ padding:12px 0 12px 22px; border-bottom:1px solid #e4dfda; font-family:var(--sans); font-size:.88rem; line-height:1.5; color:var(--ink-soft); position:relative; }
.sp-list li::before{ content:""; position:absolute; left:2px; top:19px; width:6px; height:6px; border-radius:50%; background:var(--maroon); }
.sp-inline-quote{ margin:30px 0 0; padding-left:18px; border-left:1px solid var(--maroon); max-width:460px; }
.sp-inline-quote p{ font-family:var(--display) !important; font-size:1.25rem !important; line-height:1.35 !important; color:var(--ink) !important; margin:0 0 8px !important; }
.sp-inline-quote cite{ font-style:normal; font-family:var(--sans); font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); }
@media (max-width:900px){ .sp-split{ grid-template-columns:1fr; min-height:0; } .sp-split-img{ height:60vh; } .sp-rev .sp-split-img{ order:0; } .sp-split-text{ padding:56px 24px; } }

.sp-routes{ padding:110px 44px; background:#efeeeb; }
.sp-rlist{ list-style:none; padding:0; margin:0 auto; max-width:1100px; border-top:1px solid var(--ink); }
.sp-route{ display:grid; grid-template-columns:70px 1fr auto; column-gap:28px; align-items:baseline; padding:24px 0; border-bottom:1px solid #d6d1cb; }
.sp-rnum{ font-family:var(--display); font-size:1.2rem; color:var(--maroon); }
.sp-rname h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; color:var(--ink); margin:0 0 4px; }
.sp-rname p{ font-family:var(--serif); font-size:.94rem; line-height:1.55; color:var(--ink-soft); margin:0; }
.sp-rmeta{ font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); white-space:nowrap; }
@media (max-width:640px){ .sp-routes{ padding:70px 20px; } .sp-route{ grid-template-columns:40px 1fr; } .sp-rmeta{ grid-column:2; margin-top:8px; white-space:normal; } }

.sp-quote{ margin-top:0 !important; }
.sp-logi{ background:#fff; }
.sp-closer .closer-content .wrap2{ max-width:720px; }
.tr-rutas + .sp-closer, .sp-quote + .sp-split, .sp-split + .sp-quote{ margin-top:0 !important; }
/* Ciclismo: encuadres fotos verticales */
.sp-hero > img[src="cyc2-montana.jpg"]{ object-position:50% 58% !important; }
.sp-quote img[src="cyc2-camino.jpg"]{ object-position:50% 62% !important; }
.sp-closer img[src="cyc2-llegada.jpg"]{ object-position:50% 72% !important; }
.sp-hero > img[src="cyc2-montana.jpg"]{ object-position:50% 80% !important; }

/* ==========================================================
   v3 · Feedback del cliente (octubre 2026)
   ========================================================== */

/* Hero: más limpio, sin selector de fechas */
.hero3{ height:92vh; min-height:620px; }
.hero3 .hero-content{ bottom:60px; }
.hero3 .hero-img{ object-position:50% 55%; }
.hero-opt-b .hero3 .hero-img{ object-position:50% 45%; }
.hero-opt-c .hero3 .hero-img{ object-position:50% 60%; }
@media (max-width:640px){
  .hero3{ min-height:0; height:100svh; max-height:820px; }
  .hero3 .hero-content{ top:70px; bottom:28px; align-items:flex-end; }
  .hero3 .hero-img{ transform:none; }
  .hero3 .hero-title{ font-size:2.05rem; }
  .hero3 .hero-testimonial p{ font-size:.95rem; }
  .hero3 .hero-ctas{ flex-direction:column; align-items:stretch; }
  .hero3 .hero-ctas a{ justify-content:center; text-align:center; }
  .hero3::before{ background:linear-gradient(180deg, rgba(10,7,5,.25) 0%, rgba(10,7,5,0) 30%, rgba(10,7,5,.55) 70%, rgba(10,7,5,.7) 100%); }
}
.hero-switch{ position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:1000; display:flex; align-items:center; gap:6px; padding:8px 10px 8px 16px; background:#fff; border-radius:40px; box-shadow:0 6px 24px rgba(0,0,0,.2); font-family:var(--sans); font-size:.78rem; font-weight:600; color:var(--ink); }
.hero-switch a{ display:inline-flex; width:30px; height:30px; align-items:center; justify-content:center; border-radius:50%; border:1px solid #ddd; color:var(--ink); text-decoration:none; }
.hero-switch a.on{ background:var(--maroon); border-color:var(--maroon); color:#fff; }

.facts3{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; margin:56px auto 0; padding:0; max-width:980px; border:1px solid rgba(71,30,31,.18); background:#faf8f6; }
.facts3 li{ flex:1 1 0; min-width:150px; padding:26px 18px; font-family:var(--sans); font-size:.86rem; letter-spacing:.02em; color:var(--ink-soft); border-left:1px solid rgba(71,30,31,.14); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; }
.facts3 li:first-child{ border-left:0; }
.facts3 b{ font-family:var(--display); font-weight:400; font-size:2rem; line-height:1; color:var(--maroon); }
.facts3 small{ font-size:.78rem; color:var(--gray); }
@media (max-width:860px){
  .facts3{ margin-top:36px; }
  .facts3 li{ flex:1 1 33%; min-width:0; border-left:0; border-top:1px solid rgba(71,30,31,.14); padding:18px 10px; }
  .facts3 li:nth-child(-n+3){ border-top:0; }
  .facts3 li:nth-child(n+4){ flex-basis:50%; }
  .facts3 li:nth-child(2), .facts3 li:nth-child(3), .facts3 li:nth-child(5){ border-left:1px solid rgba(71,30,31,.14); }
}
@media (max-width:640px){
  .facts3 b{ font-size:1.7rem; }
}

/* Mapa Tramuntana: versión escritorio y versión simplificada en móvil */
.loc3{ margin-top:90px; }
.loc3 .loc-map-mob{ display:none; }
.loc3 .loc-map .map-pt:hover circle, .loc3 .loc-map .map-pt:focus-visible circle{ r:revert-layer; }
.loc-legend{ position:absolute; z-index:3; left:0; right:0; bottom:18px; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; margin:0; padding:0 16px; list-style:none; font-family:var(--sans); font-size:.74rem; letter-spacing:.04em; color:#fff; }
.loc-legend li{ display:inline-flex; align-items:center; gap:7px; }
.loc-legend svg{ width:20px; height:20px; }
@media (max-width:980px){
  .loc3 .loc-visual{ display:block !important; min-height:0; aspect-ratio:auto; padding:24px 0 64px; }
  .loc3 .loc-map-desk{ display:none; }
  .loc3 .loc-map-mob{ display:block; position:relative; z-index:2; top:auto; left:auto; transform:none; width:100%; max-width:440px; height:auto; margin:0 auto; }
}
@media (max-width:640px){ .loc3{ margin-top:60px; } }

/* Calendario de disponibilidad integrado */
.avail{ max-width:1100px; margin:0 auto; padding:90px 44px 100px; text-align:center; }
.avail-head h2{ font-family:var(--display); font-weight:400; font-size:2.6rem; line-height:1.15; color:var(--ink); margin:0 0 .3em; }
.avail-head p{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-soft); margin:0 0 40px; }
.avail-frame{ border:1px solid #e4dfda; background:#faf8f6; min-height:420px; display:flex; align-items:center; justify-content:center; }
.avail-frame.is-live{ background:#fff; display:block; }
.avail-frame iframe{ display:block; width:100%; height:760px; border:0; }
.avail-pending{ padding:40px 24px; }
.avail-pending p{ font-family:var(--serif); font-size:1rem; line-height:1.6; color:var(--gray); margin:0 0 22px; }
.avail-pending b{ font-family:var(--display); font-weight:400; font-size:1.5rem; color:var(--ink); }
@media (max-width:640px){
  .avail{ padding:60px 20px 70px; }
  .avail-head h2{ font-size:2rem; }
  .avail-frame{ min-height:300px; }
  .avail-frame iframe{ height:820px; }
}
.photo-quote img[src="aljibe-panoramica.jpg"]{ object-position:50% 85%; }
.facts3 li{ text-align:center; line-height:1.35; }
.loc3 .loc-visual::after{ background:rgba(20,12,8,.58) !important; z-index:1; }
@media (max-width:640px){ .hero3 .hero-img{ object-position:78% 50%; } .hero-opt-b .hero3 .hero-img{ object-position:40% 50%; } .hero-opt-c .hero3 .hero-img{ object-position:50% 50%; } }
@media (max-width:640px){ .hero-opt-b .hero3 .hero-img{ object-position:8% 100%; } } .hero-switch{ white-space:nowrap; }

/* La Casa v3 */
.lc-intro3{ display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; max-width:1500px; margin:0 auto; padding:110px 44px 90px; }
.lc-intro3 .eyebrow{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px; }
.lc-intro3 h2{ font-family:var(--display); font-weight:400; font-size:2.6rem; line-height:1.12; color:var(--ink); margin:0 0 .5em; }
.lc-intro3 p{ font-family:var(--serif); font-size:1.04rem; line-height:1.65; color:var(--ink-soft); margin:0; max-width:540px; }
.facts3-sm{ margin:34px 0 0; max-width:540px; }
.facts3-sm li{ min-width:0; padding:18px 8px; }
.facts3-sm b{ font-size:1.6rem; }
.plano3{ margin:0; padding:26px 26px 18px; background:#faf8f6; border:1px solid #ebe5df; }
.plano3 svg{ display:block; width:100%; height:auto; font-family:var(--sans); }
.plano3 figcaption{ font-family:var(--sans); font-size:.76rem; color:var(--gray); text-align:center; margin-top:10px; }
.pl-floor > rect:first-child{ fill:#fff; stroke:#471e1f; stroke-width:1.6; }
.pl-room{ fill:#f3ece4; stroke:rgba(71,30,31,.35); stroke-width:1; transition:fill .2s; }
.plano3 a:hover .pl-room, .plano3 a:focus-visible .pl-room{ fill:#e6d6c2; }
.pl-studio{ fill:#f3ece4; stroke:#471e1f; stroke-width:1.6; transition:fill .2s; }
.plano3 a:hover .pl-studio{ fill:#e6d6c2; }
.pl-cap{ font-size:15px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; fill:#471e1f; }
.pl-fl{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; fill:#55585b; }
.pl-rn{ font-family:'Giane',Georgia,serif; font-size:19px; fill:#241f1f; text-anchor:middle; }
.pl-sub{ font-size:12px; fill:#55585b; text-anchor:middle; letter-spacing:.04em; }
.pl-tree line{ stroke:#6b7b4f; stroke-width:2; } .pl-tree circle{ fill:#a9b98a; opacity:.8; }
@media (max-width:980px){
  .lc-intro3{ grid-template-columns:1fr; gap:40px; padding:70px 24px 60px; text-align:center; }
  .lc-intro3 p, .facts3-sm{ margin-left:auto; margin-right:auto; }
  .lc-intro3 h2{ font-size:2.1rem; }
  .plano3{ padding:14px 10px 12px; }
}
@media (max-width:640px){ .facts3-sm li:nth-child(n+4){ flex-basis:50%; } .facts3-sm li:nth-child(4){ border-left:1px solid rgba(71,30,31,.14); } .facts3-sm li:nth-child(3){ flex-basis:33%; } }
.lc-room{ scroll-margin-top:90px; }
.lc-room-meta .lc-num{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--maroon); }

.lc-kitchen3{ max-width:1740px; margin:0 auto; padding:30px 44px 110px; scroll-margin-top:80px; }
.lck3-grid{ display:grid; grid-template-columns:1.7fr 1fr; grid-template-rows:1fr 1fr; gap:10px; height:min(80vh, 820px); }
.lck3-grid figure{ margin:0; overflow:hidden; }
.lck3-grid img{ width:100%; height:100%; object-fit:cover; display:block; }
.lck3-big{ grid-row:1 / span 2; }
@media (max-width:860px){
  .lc-kitchen3{ padding:10px 20px 70px; }
  .lck3-grid{ grid-template-columns:1fr 1fr; grid-template-rows:auto; height:auto; gap:8px; }
  .lck3-big{ grid-column:1 / -1; grid-row:auto; aspect-ratio:4/3; }
  .lck3-grid figure:not(.lck3-big){ aspect-ratio:3/4; }
}

.lc-int3{ display:grid; grid-template-columns:1.5fr 1fr 1fr; grid-template-rows:auto auto; gap:10px; max-width:1740px; margin:0 auto; padding:0 44px; }
.lc-int3 figure{ margin:0; position:relative; overflow:hidden; aspect-ratio:4/3; }
.lc-int3 img{ width:100%; height:100%; object-fit:cover; display:block; }
.lc-int3-lib{ grid-row:1 / span 2; aspect-ratio:auto !important; }
.lc-int3 figcaption{ position:absolute; left:0; bottom:0; padding:10px 14px; font-family:var(--serif); font-size:.92rem; color:#fff; background:linear-gradient(0deg, rgba(10,7,5,.55), rgba(10,7,5,0)); width:100%; }
@media (max-width:860px){
  .lc-int3{ grid-template-columns:1fr 1fr; padding:0 20px; gap:8px; }
  .lc-int3-lib{ grid-column:1 / -1; grid-row:auto; aspect-ratio:4/3 !important; }
  .lc-int3 figure:last-child{ grid-column:1 / -1; aspect-ratio:16/9; }
}
#salones, #exterior, #dormitorios{ scroll-margin-top:80px; }

.lc-warm3{ grid-template-columns:1fr 1fr !important; }
.lc-warm3 .copy{ padding:70px 60px; display:flex; flex-direction:column; justify-content:center; height:100%; box-sizing:border-box; }
.lc-warm3 .copy h2{ font-size:3rem; color:var(--maroon); }
@media (max-width:980px){ .lc-warm3{ grid-template-columns:1fr !important; } .lc-warm3 .copy{ padding:40px 24px; text-align:center; } .lc-warm3 .copy h2{ font-size:2.1rem; } .lc-warm3 .copy p{ margin-left:auto; margin-right:auto; } }

mark.tbc{ background:#fff1b8; color:#6b5200; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:1px 6px; border-radius:3px; }
@media (min-width:861px){ .lc-int3 figure:last-child{ grid-column:2 / span 2; aspect-ratio:auto; } }
@media (max-width:640px){ .pl-rn{ font-size:24px; } .pl-fl{ font-size:14px; } .pl-cap{ font-size:19px; } .pl-sub{ font-size:16px; } }

/* Galería v3: solo fotografías */
.gal3-intro{ max-width:760px; margin:0 auto; padding:150px 24px 50px; text-align:center; }
.gal3-intro h1{ font-family:var(--display); font-weight:400; font-size:3rem; line-height:1.1; color:var(--ink); margin:0 0 .3em; }
.gal3-intro p{ font-family:var(--serif); font-size:1.05rem; color:var(--ink-soft); margin:0; }
.gal3.ed-flow{ padding:0 44px 90px; }
.g3-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(240px, 27vw, 560px); grid-auto-flow:dense; gap:10px; max-width:1740px; margin:0 auto; }
.g3{ margin:0; overflow:hidden; cursor:zoom-in; }
.g3-w{ grid-column:span 2; }
.g3 img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.g3:hover img{ transform:scale(1.025); }
.gal3-end{ text-align:center; margin:56px 0 0; }
.gal3-end a{ font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); text-decoration:underline; text-underline-offset:6px; }
.gal3-end a:hover{ color:var(--maroon); }
@media (max-width:860px){
  .gal3-intro{ padding:110px 20px 34px; }
  .gal3-intro h1{ font-size:2.3rem; }
  .gal3.ed-flow{ padding:0 20px 70px; }
  .g3-grid{ grid-template-columns:1fr 1fr; grid-auto-rows:46vw; gap:8px; }
}

/* Home v3 (diseño original + cambios del cliente) */
.int3-quote{ max-width:680px; margin:30px auto 0; padding:0; }
.int3-quote p{ font-family:var(--serif); font-style:italic; font-size:1.15rem; line-height:1.55; color:var(--ink); margin:0 0 14px; text-wrap:balance; }
.int3-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.rc-logo{ font-size:1.2rem; letter-spacing:-.01em; text-transform:none; font-weight:700; gap:8px; margin-bottom:20px; }
.rc-logo img{ width:24px; height:24px; }
.rc-airbnb{ color:#FF385C; } .rc-booking{ color:#003580; }
.split .creds{ gap:24px; margin-top:52px; }
.split .creds .rc{ padding-top:32px; }
@media (max-width:980px){
  .split > div:first-child{ text-align:center; }
  .split > div:first-child p{ margin-left:auto; margin-right:auto; }
  .split .creds{ margin-left:auto; margin-right:auto; }
}
.avail-frame.is-live{ background:transparent; border:0; min-height:0; display:flex; justify-content:center; }
.avail-frame .avaibook-search-widget{ width:100%; max-width:900px; }

/* Calendario de disponibilidad (estilo Casa Mana) */
.sscal{ display:grid; grid-template-columns:1fr 300px; gap:28px; text-align:left; align-items:start; }
.sscal-cal{ border:1px solid #e4dfda; background:#fff; padding:26px 28px 22px; }
.sscal-nav{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.sscal-nav button{ width:38px; height:38px; border:1px solid #d9d2cb; background:#fff; color:var(--ink); font-size:1rem; cursor:pointer; }
.sscal-nav button:disabled{ opacity:.3; cursor:default; }
.sscal-range{ font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
.sscal-months{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.sscal-month h4{ font-family:var(--display); font-weight:400; font-size:1.25rem; text-transform:capitalize; color:var(--ink); margin:0 0 12px; text-align:center; }
.sscal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px 0; }
.sscal-dow{ font-family:var(--sans); font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--gray); text-align:center; padding-bottom:6px; }
.sscal-day{ aspect-ratio:1/1; border:0; background:none; font-family:var(--sans); font-size:.82rem; color:var(--ink); cursor:pointer; position:relative; padding:0; }
.sscal-day:hover:not(:disabled){ background:#f1e8e0; }
.sscal-day.is-past{ color:#c9c3bd; cursor:default; }
.sscal-day.is-booked{ color:#b5aaa2; text-decoration:line-through; background:repeating-linear-gradient(135deg,#f4efea 0 4px,#fff 4px 8px); }
.sscal-day.is-booked:disabled{ cursor:not-allowed; }
.sscal-day.is-in{ background:#efe2d8; }
.sscal-day.is-start, .sscal-day.is-end{ background:var(--maroon) !important; color:#fff; text-decoration:none; }
.sscal-legend{ display:flex; flex-wrap:wrap; gap:8px 20px; list-style:none; margin:18px 0 0; padding:14px 0 0; border-top:1px solid #efeae5; font-family:var(--sans); font-size:.74rem; color:var(--gray); }
.sscal-legend li{ display:inline-flex; align-items:center; gap:7px; }
.sscal-legend i{ width:14px; height:14px; display:inline-block; border:1px solid #e4dfda; }
.sscal-legend .lg-booked{ background:repeating-linear-gradient(135deg,#f4efea 0 3px,#fff 3px 6px); }
.sscal-legend .lg-sel{ background:var(--maroon); border-color:var(--maroon); }
.sscal-panel{ background:#f6f3ef; border:1px solid #e9e2da; padding:26px 24px; position:sticky; top:90px; }
.sscal-panel h3{ font-family:var(--display); font-weight:400; font-size:1.6rem; color:var(--ink); margin:0 0 16px; }
.sscal-panel dl{ margin:0 0 18px; }
.sscal-panel dl div{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid rgba(71,30,31,.12); font-family:var(--sans); font-size:.86rem; }
.sscal-panel dt{ color:var(--gray); } .sscal-panel dd{ margin:0; color:var(--ink); font-weight:600; }
.sscal-guests{ display:flex; justify-content:space-between; align-items:center; font-family:var(--sans); font-size:.86rem; color:var(--gray); margin-bottom:16px; }
.sscal-hint{ font-family:var(--serif); font-size:.9rem; color:var(--ink-soft); margin:0 0 12px; min-height:1.2em; }
.sscal-book{ display:flex; justify-content:center; width:100%; box-sizing:border-box; }
.sscal-book.is-disabled{ opacity:.4; pointer-events:auto; cursor:not-allowed; }
.sscal-small{ font-family:var(--sans); font-size:.72rem; line-height:1.45; color:var(--gray); margin:14px 0 0; }
@media (max-width:980px){ .sscal{ grid-template-columns:1fr; } .sscal-panel{ position:static; } }
@media (max-width:640px){ .sscal-months{ grid-template-columns:1fr; } .sscal-cal{ padding:18px 14px; } .sscal-day{ font-size:.9rem; } }

/* Home: valoraciones lado a lado + datos + tres fotos (pedido del cliente) */
/* Presentación + valoraciones + datos (centrado también en móvil) */
.intro3{ max-width:1100px; margin:0 auto; padding:100px 44px 90px; text-align:center; }
.intro3-orn{ display:block; width:84px; height:auto; margin:0 auto 28px; opacity:.85; }
.intro3 h2{ font-family:var(--display); font-weight:400; font-size:2.7rem; line-height:1.12; color:var(--ink); margin:0 0 .4em; text-wrap:balance; }
.intro3 > p{ font-family:var(--serif); font-size:1.08rem; line-height:1.6; color:var(--ink-soft); max-width:640px; margin:0 auto; text-wrap:pretty; }
.creds.creds3{ display:grid; grid-template-columns:repeat(2, minmax(0, 340px)); justify-content:center; gap:36px; max-width:none; margin:64px auto 0; }
.creds3 .rc{ padding-top:34px; }
.creds3 .rc-head{ font-size:1.3rem; letter-spacing:-.01em; text-transform:none; font-weight:700; margin-bottom:22px; gap:9px; }
.creds3 .rc-head img{ width:26px; height:26px; }
.creds3 .rc-airbnb{ color:#FF385C; }
.creds3 .rc-booking{ color:#003580; letter-spacing:-.02em; }
.creds3 .rc-booking span{ color:#0071c2; }
.creds3 .rc-sub{ margin-bottom:24px; }
@media (max-width:860px){
  .intro3{ padding:64px 24px 60px; }
  .intro3 h2{ font-size:2.1rem; }
  .creds.creds3{ grid-template-columns:minmax(0, 360px); gap:20px; margin-top:40px; }
}
@media (max-width:640px){ .intro3 h2{ font-size:1.8rem; } .intro3 > p{ font-size:1rem; } }
/* Exteriores: fachada, jardín, piscina */
.ext3{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:10px; max-width:1740px; margin:0 auto 10px; padding:0 44px; }
.ext3 figure{ margin:0; aspect-ratio:4/5; overflow:hidden; }
.ext3 figure:first-child{ aspect-ratio:auto; }
.ext3 img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:860px){
  .ext3{ grid-template-columns:1fr 1fr; padding:0 20px; gap:8px; }
  .ext3 figure:first-child{ grid-column:1 / -1; aspect-ratio:16/10; }
}

.sscal-day.is-booked{ background:#e7ddd3; color:#9a8b80; text-decoration:line-through; border-radius:0; }
.sscal-legend .lg-booked{ background:#e7ddd3; border-color:#e7ddd3; }

/* ===== Cambios finales Luis (13/10/2026) ===== */
/* Home · cita de Austin justo después del hero */
.intro3-quote{ margin:0 auto 46px; }
.intro3-quote p{ font-size:1.35rem; }
@media (max-width:640px){ .intro3-quote{ margin-bottom:34px; } .intro3-quote p{ font-size:1.12rem; } }

/* Home · hero móvil: textos arriba para que se vea el agua del aljibe */
@media (max-width:640px){
  .hero3 .hero-content{ top:84px; bottom:auto; align-items:flex-start; }
  .hero3 .hero-img{ object-position:72% 100%; }
  .hero3::before{ background:linear-gradient(180deg, rgba(10,7,5,.62) 0%, rgba(10,7,5,.38) 38%, rgba(10,7,5,0) 62%); }
  .hero3 .hero-ctas{ flex-direction:row; flex-wrap:wrap; }
  .hero3 .hero-ctas a{ flex:1 1 auto; }
}

/* La Casa · título simple en el hero */
.lc-hero .ph-title{ max-width:none; margin-bottom:0 !important; }

/* La Casa · croquis de la finca (HTML) */
.pl-site{ display:grid; grid-template-columns:1.75fr .62fr 1fr; gap:14px; align-items:end; border-bottom:2px solid rgba(71,30,31,.35); padding-bottom:0; }
.pl-bldg{ position:relative; border:1.6px solid #471e1f; border-bottom:0; background:#fff; }
.pl-bldg::before{ content:""; position:absolute; left:-8px; right:-8px; bottom:100%; height:34px; background:#471e1f; clip-path:polygon(0 100%, 50% 0, 100% 100%, calc(100% - 2px) 100%, 50% 3px, 2px 100%); }
.pl-bldg > .pl-cap{ position:absolute; bottom:calc(100% + 42px); left:0; white-space:nowrap; }
.pl-main{ margin-top:76px; }
.pl-lvl{ padding:9px 10px 10px; border-top:1px solid rgba(71,30,31,.35); }
.pl-lvl:first-of-type{ border-top:0; }
.pl-cells{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.plano3 .pl-cap{ display:block; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#471e1f; }
.plano3 .pl-fl{ display:block; font-family:var(--sans); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:#55585b; }
.plano3 .pl-room{ flex:1 1 72px; min-height:46px; display:flex; align-items:center; justify-content:center; padding:6px 8px; background:#f3ece4; border:1px solid rgba(71,30,31,.35); font-family:'Giane',Georgia,serif; font-size:1.05rem; color:#241f1f; text-decoration:none; text-align:center; transition:background-color .2s; }
.plano3 .pl-room:hover, .plano3 .pl-room:focus-visible{ background:#e6d6c2; }
.plano3 .pl-room-wide{ flex-basis:100%; min-height:64px; }
.plano3 .pl-aux{ flex:1 1 auto; display:flex; align-items:center; justify-content:center; padding:5px 8px; border:1px dashed rgba(71,30,31,.3); font-family:var(--sans); font-size:.7rem; line-height:1.25; color:#55585b; text-decoration:none; text-align:center; }
.plano3 a.pl-aux:hover{ background:#f3ece4; color:#241f1f; }
.pl-aljibe{ display:flex; flex-direction:column-reverse; align-items:center; gap:8px; text-decoration:none; padding-bottom:0; }
.pl-aljibe .pl-cap{ text-align:center; white-space:normal; line-height:1.3; }
.pl-water{ display:block; width:100%; height:40px; background:#9cc3c4; border:1.4px solid #471e1f; border-bottom:0; box-shadow:inset 0 0 0 5px #e9e1d2; transition:background-color .2s; }
.pl-aljibe:hover .pl-water{ background:#86b4b5; }
.lc-room{ scroll-margin-top:110px; }
#salones, #exterior, #cocina, #salon-principal{ scroll-margin-top:90px; }
@media (max-width:640px){
  .pl-site{ grid-template-columns:1fr; gap:0; border-bottom:0; }
  .pl-main{ margin-top:70px; }
  .pl-bldg{ border-bottom:1.6px solid #471e1f; }
  .pl-aljibe{ flex-direction:row; justify-content:center; padding:16px 0; }
  .pl-water{ width:90px; height:30px; border-bottom:1.4px solid #471e1f; }
  .pl-studio{ margin-top:66px; }
  .plano3 .pl-room{ font-size:1.1rem; }
  .pl-bldg > .pl-cap{ right:0; text-align:center; }
}
/* La Casa · salón principal destacado en «Salones y rincones» */
@media (min-width:861px){ .lc-int3 figure#salon-principal{ aspect-ratio:2.1/1; } }
#salon-principal img{ object-position:50% 78%; }
/* Ritmo vertical más consistente (Home y La Casa): imagen y texto como un conjunto */
.lc-block{ padding-top:88px; padding-bottom:88px; }
.lc-kitchen3{ padding-bottom:88px; }
.lc-head{ margin-bottom:36px; }
.lc-rooms{ row-gap:44px; }
.lc-room-meta{ margin-top:12px; }
.lc-room h3, .lc-space h3{ margin-top:8px; }
.lc-space h3{ margin-top:10px; }
.amenities{ padding-top:84px; padding-bottom:84px; }
.espacios{ padding-top:96px; }
.espacios-intro{ padding-bottom:48px; }
.usos{ padding-top:84px; padding-bottom:84px; }
@media (max-width:980px){ .espacios{ padding-top:70px; } .espacios-intro{ padding-bottom:36px; } }
@media (max-width:760px){ .lc-block{ padding-top:60px; padding-bottom:60px; } .lc-head{ margin-bottom:28px; } }
@media (max-width:640px){ .espacios{ padding-top:56px; } .espacios-intro{ padding-bottom:28px; } }
/* Sin textos en vertical: el rótulo de La cocina pasa a horizontal también en ordenador */
@media (min-width:981px){
  .kitchen:has(> .vlabel){ grid-template-columns:1fr 1fr; }
  .kitchen > .vlabel{ grid-column:1 / -1; grid-row:1; padding:30px 44px 26px; }
  .kitchen > .photo{ grid-row:2; grid-column:1; }
  .kitchen > .vlabel + div{ grid-row:2; grid-column:2; }
  .kitchen .vlabel .vlabel-quote{ writing-mode:horizontal-tb; transform:none; white-space:normal; text-align:center; font-size:1.05rem; }
}
/* Home · cita de Austin dentro del hero */
.hero3 .hero-testimonial{ max-width:540px; text-shadow:0 1px 12px rgba(0,0,0,.35); }
@media (max-width:640px){
  .hero3 .hero-testimonial{ margin:0 0 18px; padding-left:12px; }
  .hero3 .hero-testimonial p{ font-size:.92rem; line-height:1.42; }
  .hero3 .hero-testimonial cite{ font-size:.66rem; }
}

/* ================= V7 · feedback de Lluís (15/10/2026) ================= */
/* Home · valoraciones: Airbnb y Booking con la misma estructura y alineados */
.creds.creds3{ align-items:stretch; }
.creds3 .rc{ display:grid; grid-template-rows:auto 64px auto auto 1fr; justify-items:center; align-content:start; height:100%; }
.creds3 .rc-head{ height:30px; margin-bottom:18px; }
.creds3 .rc-score{ min-height:64px; margin:0 0 10px; }
.creds3 .rc-sub{ max-width:260px; min-height:2.8em; margin-bottom:18px; }
.creds3 .rc-foot{ align-self:end; width:100%; justify-content:center; padding-top:14px; border-top:1px solid rgba(71,30,31,.12); }
.creds3 .rc-foot .rc-link{ margin-left:14px; }

/* Home · caja de datos: cinco atributos equilibrados */
.facts3-v7{ max-width:1080px; align-items:stretch; }
.facts3-v7 li{ display:flex; flex-direction:column; align-items:center; justify-content:flex-start; gap:10px; padding:26px 16px 24px; line-height:1.35; text-wrap:balance; }
.facts3-v7 b, .facts3-v7 .f-ico{ display:flex; align-items:flex-end; justify-content:center; height:34px; }
.facts3-v7 b small{ font-family:var(--sans); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gray); margin-right:6px; line-height:1.6; }
.facts3-v7 .f-ico svg{ width:32px; height:32px; fill:none; stroke:var(--maroon); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:860px){
  .facts3-v7 li{ flex:1 1 50% !important; border-left:0 !important; border-top:1px solid rgba(71,30,31,.14) !important; }
  .facts3-v7 li:nth-child(1){ flex-basis:100% !important; border-top:0 !important; }
  .facts3-v7 li:nth-child(2n+3){ border-left:1px solid rgba(71,30,31,.14) !important; }
}

/* Home · pie de foto del aljibe */
.ext3-cap{ position:relative; }
.ext3-cap figcaption{ position:absolute; left:0; right:0; bottom:0; padding:28px 18px 14px; font-family:var(--serif); font-size:.9rem; line-height:1.4; color:#fff; background:linear-gradient(to top, rgba(20,12,8,.62), rgba(20,12,8,0)); }
.ext3-cap figcaption b{ font-weight:600; }

/* Home · «Maneras de vivir»: tarjetas solo visuales */
div.uso{ cursor:default; }
div.uso:hover .uso-img img{ transform:none; }
.uso-cite{ margin-bottom:0; }

/* Footer · agencia responsable */
.ft-agency{ font-family:var(--sans); font-size:.8rem; line-height:1.5; opacity:.85; margin:0 0 12px; }
.ft-agency b{ font-weight:700; }
.cx-agency{ font-size:.92rem; line-height:1.55; opacity:.9; }

/* La Casa · croquis con iconos y ficha de cada dormitorio */
.plano7{ margin:0; padding:26px 26px 18px; background:#faf8f6; border:1px solid #ebe5df; }
.p7-site{ display:grid; grid-template-columns:1.8fr .55fr 1fr; gap:16px; align-items:end; border-bottom:2px solid rgba(71,30,31,.35); }
.p7-bldg{ position:relative; border:1.6px solid #471e1f; border-bottom:0; background:#fff; }
.p7-bldg::before{ content:""; position:absolute; left:-8px; right:-8px; bottom:100%; height:30px; background:#471e1f; clip-path:polygon(0 100%, 50% 0, 100% 100%, calc(100% - 2px) 100%, 50% 3px, 2px 100%); }
.p7-bldg > .p7-cap{ position:absolute; bottom:calc(100% + 38px); left:0; white-space:nowrap; }
.p7-main{ margin-top:70px; }
.p7-lvl{ padding:9px 10px 10px; border-top:1px solid rgba(71,30,31,.3); }
.p7-lvl:first-of-type{ border-top:0; }
.p7-cap{ display:block; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#471e1f; }
.p7-fl{ display:block; font-family:var(--sans); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:#6f6a64; }
.p7-cells{ display:grid; grid-template-columns:repeat(2, minmax(0,1.6fr)) repeat(3, minmax(0,1fr)); gap:6px; margin-top:7px; align-items:stretch; }
.p7-studio .p7-cells{ grid-template-columns:minmax(0,3fr) minmax(0,1fr); }
.p7-room{ min-height:46px; display:flex; align-items:center; justify-content:center; gap:6px; padding:6px; background:#f3ece4; border:1px solid rgba(71,30,31,.35); font-family:'Giane',Georgia,serif; font-size:1.02rem; color:#241f1f; cursor:pointer; transition:background-color .2s; }
.p7-room:hover, .p7-room:focus-visible{ background:#e6d6c2; outline:none; }
.p7-room svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.p7-ic{ position:relative; display:flex; align-items:center; justify-content:center; gap:2px; min-height:46px; border:1px dashed rgba(71,30,31,.28); color:#471e1f; }
.p7-ic svg, .p7-legend svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.p7-ic i{ font-style:normal; font-family:var(--sans); font-size:.62rem; font-weight:700; }
.p7-aljibe{ display:flex; flex-direction:column-reverse; align-items:center; gap:8px; padding:0; background:none; border:0; cursor:pointer; }
.p7-water{ display:block; width:100%; height:40px; background:#9cc3c4; border:1.4px solid #471e1f; border-bottom:0; box-shadow:inset 0 0 0 5px #e9e1d2; transition:background-color .2s; }
.p7-aljibe:hover .p7-water{ background:#86b4b5; }
.p7-legend{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; margin:16px 0 0; padding:0; font-family:var(--sans); font-size:.7rem; color:#55585b; }
.p7-legend li{ display:flex; align-items:center; gap:6px; }
.p7-legend svg{ width:16px; height:16px; color:#471e1f; }
.plano7 figcaption{ font-family:var(--sans); font-size:.74rem; color:var(--gray); text-align:center; margin-top:8px; }
@media (max-width:640px){
  .plano7{ padding:14px 12px 12px; }
  .p7-site{ grid-template-columns:1fr; gap:0; border-bottom:0; }
  .p7-bldg{ border-bottom:1.6px solid #471e1f; }
  .p7-bldg > .p7-cap{ right:0; text-align:center; }
  .p7-aljibe{ flex-direction:row; justify-content:center; padding:16px 0; }
  .p7-water{ width:90px; height:28px; border-bottom:1.4px solid #471e1f; }
  .p7-studio{ margin-top:62px; }
  .p7-cells{ grid-template-columns:1fr 1fr repeat(3, minmax(0,.7fr)); }
}
.p7-dlg{ width:min(880px, calc(100vw - 32px)); max-height:calc(100vh - 32px); padding:0; border:0; background:#fff; color:var(--ink); box-shadow:0 30px 80px rgba(30,15,10,.35); }
.p7-dlg::backdrop{ background:rgba(25,15,10,.55); }
.p7-dlg img{ display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.p7-dlg-txt{ padding:20px 26px 26px; }
.p7-dlg-txt h3{ font-family:var(--display); font-weight:400; font-size:1.8rem; margin:6px 0 6px; color:var(--ink); }
.p7-dlg-txt p{ font-family:var(--serif); font-size:1rem; line-height:1.55; color:var(--ink-soft); margin:0; }
.p7-dlg .lc-num{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--maroon); }
.p7-x{ position:absolute; top:10px; right:10px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.92); font-size:1.6rem; line-height:1; cursor:pointer; color:#241f1f; }

/* La Casa · dormitorios por planta, fotos horizontales */
.lc-floors{ max-width:1400px; margin:0 auto; display:flex; flex-direction:column; gap:64px; }
.lc-floor-t{ display:flex; align-items:center; gap:18px; font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--maroon); margin:0 0 22px; }
.lc-floor-t::after{ content:""; flex:1; height:1px; background:#e4dfda; }
.lc-floor-rooms{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.lc-floors .lc-room-img img{ aspect-ratio:3/2; }
.lc-floors .lc-room-meta .lc-num{ display:none; }
.lc-floors .lc-room-meta{ justify-content:flex-start; }
@media (max-width:760px){ .lc-floors{ gap:44px; } .lc-floor-rooms{ grid-template-columns:1fr; gap:36px; } }

/* La Casa · cocina del estudio con el porche */
.lck7-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:10px; height:min(84vh, 860px); max-width:1740px; margin:0 auto; }
.lck7-grid figure{ position:relative; margin:0; overflow:hidden; }
.lck7-grid img{ width:100%; height:100%; object-fit:cover; display:block; }
.lck7-big{ grid-row:1 / span 2; }
.lck7-wide{ grid-column:2 / span 2; }
.lck7-grid figcaption, .lc-int3 figcaption{ position:absolute; left:0; right:0; bottom:0; padding:26px 14px 11px; font-family:var(--serif); font-size:.92rem; color:#fff; background:linear-gradient(to top, rgba(20,12,8,.55), rgba(20,12,8,0)); }
@media (max-width:860px){
  .lck7-grid{ grid-template-columns:1fr 1fr; grid-template-rows:auto; height:auto; gap:8px; }
  .lck7-big, .lck7-wide{ grid-column:1 / -1; grid-row:auto; aspect-ratio:4/3; }
  .lck7-grid figure:not(.lck7-big):not(.lck7-wide){ aspect-ratio:3/4; }
}
.lc-int3-bath img{ object-position:50% 60%; }

/* La Casa · el aljibe histórico con la voz de Adam */
.aljibe7{ display:grid; grid-template-columns:1.25fr 1fr; gap:56px; align-items:center; max-width:1400px; margin:0 auto 64px; }
.aljibe7-img{ margin:0; overflow:hidden; aspect-ratio:4/3; }
.aljibe7-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.aljibe7-txt h3{ font-family:var(--display); font-weight:400; font-size:2.1rem; line-height:1.15; color:var(--ink); margin:0 0 14px; }
.aljibe7-txt > p{ font-family:var(--serif); font-size:1.05rem; line-height:1.65; color:var(--ink-soft); margin:0; max-width:480px; }
.aljibe7-q{ margin:32px 0 0; padding:22px 0 0 24px; border-left:2px solid var(--maroon); max-width:480px; }
.aljibe7-q p{ font-family:var(--serif); font-style:italic; font-size:1.12rem; line-height:1.55; color:var(--ink); margin:0 0 10px; }
.aljibe7-q cite{ font-family:var(--sans); font-style:normal; font-size:.74rem; letter-spacing:.06em; color:var(--gray); }
@media (max-width:860px){ .aljibe7{ grid-template-columns:1fr; gap:26px; margin-bottom:44px; } }

/* La Casa · todas las estaciones */
.lc-warm3 .copy .eyebrow{ display:block; margin-bottom:12px; }
.seasons7{ list-style:none; margin:24px 0 0; padding:0; display:flex; flex-direction:column; gap:12px; max-width:460px; }
.seasons7 li{ display:flex; align-items:center; gap:12px; font-family:var(--sans); font-size:.9rem; color:var(--ink); }
.seasons7 svg, .wifi7 svg{ width:22px; height:22px; flex:none; fill:none; stroke:var(--maroon); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.wifi7{ display:inline-flex !important; align-items:center; gap:12px; margin-top:26px !important; padding:12px 18px; border:1px solid rgba(71,30,31,.22); font-family:var(--sans) !important; font-size:.9rem !important; font-weight:700; color:var(--maroon) !important; max-width:none !important; }
.creds3 .rc{ margin:0 !important; border:0 !important; }
.creds.creds3{ gap:0; grid-template-columns:repeat(2, minmax(0, 330px)); }
.creds3 .rc + .rc{ border-left:1px solid rgba(71,30,31,.12) !important; }
@media (max-width:860px){ .creds.creds3{ grid-template-columns:minmax(0,360px); gap:28px; } .creds3 .rc + .rc{ border-left:0 !important; } }
/* La Casa · exteriores: seis rincones en dos filas equilibradas */
.lc-spaces{ grid-template-columns:repeat(3, 1fr) !important; gap:44px 28px !important; max-width:1400px; margin-left:auto; margin-right:auto; }
.lc-spaces .lc-space-img img{ width:100%; aspect-ratio:4/3 !important; object-fit:cover; display:block; }
@media (max-width:860px){ .lc-spaces{ grid-template-columns:1fr 1fr !important; gap:32px 16px !important; } }
@media (max-width:520px){ .lc-spaces{ grid-template-columns:1fr !important; } }
.lc-warm3 > .photo{ grid-column:1 !important; grid-row:1 !important; min-height:560px; }
.lc-warm3 > .photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 60%; }
.lc-warm3 > div:last-child{ grid-column:2 !important; grid-row:1 !important; }
@media (max-width:980px){ .lc-warm3 > .photo, .lc-warm3 > div:last-child{ grid-column:1 !important; grid-row:auto !important; } .lc-warm3 > .photo{ min-height:0; aspect-ratio:4/3; } .seasons7{ margin-left:auto; margin-right:auto; align-items:flex-start; width:max-content; max-width:100%; } }
.g3-grid{ grid-auto-flow:row dense; }

/* Valoraciones Airbnb / Booking: dos columnas con las mismas filas alineadas */
.rpair{ display:grid; grid-template-columns:repeat(2, minmax(0, 300px)); grid-template-rows:repeat(5, auto); justify-content:center; margin:64px auto 0; }
.rp{ display:grid; grid-template-rows:subgrid; grid-row:span 5; justify-items:center; align-items:center; row-gap:0; padding:8px 40px; text-align:center; text-decoration:none; color:var(--ink); }
.rp + .rp{ border-left:1px solid rgba(71,30,31,.12); }
.rp-brand{ display:flex; align-items:center; gap:8px; height:28px; font-family:var(--sans); font-size:1.05rem; font-weight:700; letter-spacing:-.01em; }
.rp-brand img{ width:22px; height:22px; }
.rp-airbnb{ color:#FF385C; } .rp-booking{ color:#003580; }
.rp-score{ margin:18px 0 10px; font-family:var(--display); font-size:3.4rem; line-height:1; letter-spacing:-.01em; }
.rp-score{ position:relative; }
.rp-score small{ position:absolute; left:100%; bottom:.2em; margin-left:6px; font-size:1.1rem; color:#9a948d; }
.rp-title{ font-family:var(--sans); font-weight:700; font-size:.98rem; }
.rp-meta{ margin-top:4px; font-family:var(--sans); font-size:.8rem; color:#6f6a64; }
.rp-link{ margin-top:16px; font-family:var(--sans); font-size:.78rem; font-weight:700; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(71,30,31,.3); transition:color .2s ease; }
.rp:hover .rp-link, .rp:focus-visible .rp-link{ color:var(--maroon); }
@media (max-width:640px){
  .rpair{ grid-template-columns:minmax(0, 320px); grid-template-rows:none; margin-top:40px; }
  .rp{ grid-template-rows:none; grid-row:auto; padding:28px 0; }
  .rp + .rp{ border-left:0; border-top:1px solid rgba(71,30,31,.12); }
}

/* Datos de la casa: una línea limpia entre dos filetes, sin cajas ni fondo */
.facts7{ list-style:none; display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); max-width:1000px; margin:72px auto 0; padding:0; }
.facts7 li{ position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; padding:0 14px; text-align:center; font-family:var(--sans); font-size:.68rem; font-weight:500; letter-spacing:.14em; line-height:1.7; text-transform:uppercase; color:#7a716b; text-wrap:balance; }
.facts7 li + li::before{ content:""; position:absolute; left:0; top:6px; height:40px; width:1px; background:rgba(71,30,31,.16); }
.facts7 b, .facts7 .f-ico{ display:flex; align-items:center; justify-content:center; height:40px; }
.facts7 b{ position:relative; font-family:var(--display); font-weight:400; font-size:2.6rem; line-height:1; letter-spacing:0; text-transform:none; color:var(--maroon); }
.facts7 b small{ position:absolute; right:100%; bottom:.45em; margin-right:7px; font-family:var(--sans); font-size:.6rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:#7a716b; }
.facts7 .f-ico svg{ width:30px; height:30px; fill:none; stroke:var(--maroon); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:640px){
  .facts7{ grid-template-columns:1fr 1fr; row-gap:30px; margin-top:44px; padding:0; }
  .facts7 li{ padding:0 8px; letter-spacing:.1em; }
  .facts7 li:first-child{ grid-column:1 / -1; }
  .facts7 li + li::before{ display:none; }
  .facts7 li:nth-child(odd):not(:first-child)::before{ display:block; }
}

/* Reservar: sin subtítulo, el título necesita su propio aire sobre el calendario */
.avail-head h2{ margin-bottom:32px; }

/* Todas las estaciones en móvil: la foto cabe en su marco 4:3 en vez de desbordarlo */
@media (max-width:980px){ .lc-warm3 > .photo img{ min-height:0; } }

/* Header unificado: arriba menú; al hacer scroll, la misma barra fija con reservas en todas las páginas.
   En las páginas sin barra en el hero (Home, Galería, Contacto) la barra vive oculta y el header la recoge. */
.booking-bar.booking-ghost{ display:none; }
.site-header.gal-header.is-stuck{ box-shadow:0 2px 16px rgba(0,0,0,.09) !important; animation:barSlideDown .28s ease !important; }

/* ===== V8 (anotaciones de Manuel, 19/10) ===== */

/* Hero de la Home centrado en desktop */
@media (min-width:641px){
  .hero3 .hero-content{ justify-content:center; text-align:center; }
  .hero3 .hero-content .wrap{ margin:0 auto; max-width:820px; }
  .hero3 .hero-testimonial{ margin-left:auto; margin-right:auto; padding-left:0; border-left:0; }
  .hero3 .hero-ctas{ justify-content:center; }
}

/* Carrusel a pantalla completa con la cita de Jonas (sustituye a las tres fotos) */
.pq-carousel .pq-slides{ position:relative; height:82vh; min-height:520px; max-height:900px; overflow:hidden; }
.pq-carousel img.pq-slide{ position:absolute; inset:0; width:100%; height:100%; min-height:0; max-height:none; aspect-ratio:auto; object-fit:cover; object-position:50% 60%; opacity:0; transition:opacity 1.4s ease; }
.pq-carousel img.pq-slide.is-on{ opacity:1; }
.pq-caps{ position:absolute; left:44px; bottom:34px; z-index:3; width:46%; height:1.4em; }
.pq-cap{ position:absolute; left:0; bottom:0; width:max-content; max-width:100%; margin:0; font-family:var(--serif); font-size:.86rem; line-height:1.4; color:rgba(255,255,255,.92); opacity:0; transition:opacity .8s ease; text-shadow:0 1px 10px rgba(0,0,0,.4); }
.pq-cap.is-on{ opacity:1; }
.pq-cap b{ font-weight:600; }
.pq-dots{ position:absolute; right:44px; bottom:38px; z-index:3; display:flex; gap:10px; }
.pq-dot{ width:8px; height:8px; padding:0; border:1px solid rgba(255,255,255,.85); border-radius:50%; background:transparent; cursor:pointer; }
.pq-dot.is-on{ background:#fff; }
@media (max-width:640px){
  .pq-carousel .pq-slides{ height:auto; min-height:0; max-height:none; aspect-ratio:4/5; }
  .pq-caps{ left:20px; right:20px; bottom:46px; width:auto; }
  .pq-cap{ font-size:.78rem; width:auto; }
  .pq-dots{ left:20px; right:auto; bottom:22px; }
}

/* Datos de la casa en móvil: lista, una fila por dato */
@media (max-width:640px){
  .facts7{ grid-template-columns:1fr; row-gap:0; max-width:320px; }
  .facts7 li, .facts7 li:first-child{ grid-column:auto; flex-direction:row; align-items:center; gap:16px; padding:14px 4px; text-align:left; border-top:1px solid rgba(71,30,31,.12); }
  .facts7 li:first-child{ border-top:0; }
  .facts7 li::before, .facts7 li + li::before, .facts7 li:nth-child(odd):not(:first-child)::before{ display:none !important; }
  .facts7 .f-ico{ height:auto; flex:0 0 30px; }
  .facts7 .f-ico svg{ width:26px; height:26px; }
}

/* WhatsApp flotante y barra fija de reservas en móvil (todas las páginas) */
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:60; width:54px; height:54px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 16px rgba(0,0,0,.18); transition:transform .2s ease; }
.wa-float:hover{ transform:scale(1.06); }
.wa-float svg{ width:30px; height:30px; fill:#fff; }
.m-bookbar{ display:none; }
@media (max-width:640px){
  .site-header .header-cta, .site-header.is-stuck .header-cta{ display:none !important; }
  .m-bookbar{ display:flex; align-items:center; justify-content:center; position:fixed; left:0; right:0; bottom:0; z-index:59; height:56px; padding-bottom:env(safe-area-inset-bottom); background:#1a1a1a; color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:700; letter-spacing:.1em; text-decoration:none; }
  body{ padding-bottom:56px; }
  .wa-float{ right:16px; bottom:72px; width:50px; height:50px; }
}

/* Galería: la última foto ocupa todo el ancho para cerrar la cuadrícula sin huecos (desktop) */

/* Contacto: tira de fotos de cierre antes del footer */
.cx-strip.cx-end{ margin-top:90px; }
@media (max-width:640px){ .cx-strip.cx-end{ margin-top:56px; } }
/* Reservar: valoraciones con el mismo bloque que la Home */
.rv-intro8{ padding-top:90px; padding-bottom:90px; }

/* Contacto: etiqueta pequeña sobre email, teléfono y WhatsApp */
.cx-label{ display:block; margin-bottom:10px; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--gray); text-decoration:none; }

/* Hero de la Home: la reseña es la protagonista; arriba, una línea pequeña */
.hero3 .hero-kicker{ margin:0 0 22px; font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.92); text-shadow:0 1px 12px rgba(0,0,0,.35); }
.hero3 .hero-testimonial.hero-review{ max-width:900px; margin:0 auto 34px; padding:0; border:0; }
.hero3 .hero-review p{ font-family:var(--display); font-style:normal; font-weight:400; font-size:clamp(2rem, 3.6vw, 3.3rem); line-height:1.18; color:#fff; margin:0 0 16px; text-wrap:balance; text-shadow:0 2px 18px rgba(0,0,0,.35); }
.hero3 .hero-review cite{ font-size:.76rem; letter-spacing:.16em; }
@media (max-width:640px){
  .hero3 .hero-kicker{ font-size:.68rem; letter-spacing:.18em; margin-bottom:16px; }
  .hero3 .hero-testimonial.hero-review{ margin:0 0 24px; }
  .hero3 .hero-review p{ font-size:1.7rem; line-height:1.22; }
}

/* Datos de la casa: icono + una sola línea, sin saltos */
.facts7{ display:flex; justify-content:center; flex-wrap:nowrap; gap:0; max-width:1240px; }
.facts7 li{ flex:0 0 auto; padding:0 26px; gap:12px; font-size:.84rem; font-weight:500; letter-spacing:.01em; text-transform:none; white-space:nowrap; color:#5f5852; }
.facts7 li + li::before{ top:4px; height:32px; }
.facts7 .f-ico{ height:34px; }
@media (max-width:1100px){ .facts7 li{ padding:0 16px; font-size:.78rem; } }
@media (max-width:900px) and (min-width:641px){ .facts7{ flex-wrap:wrap; row-gap:28px; } }
@media (max-width:640px){
  .facts7{ display:grid; max-width:340px; }
  .facts7 li, .facts7 li:first-child{ white-space:nowrap; font-size:.86rem; padding:13px 4px; }
}

/* Ornamentos variados por sección (flor, hoja, senefa) */
img.orn-hoja{ width:auto !important; height:44px !important; }
img.orn-senefa{ width:150px !important; height:auto !important; }

/* Hero: la reseña grande y en cursiva; «Una finca histórica…» pequeño, como la firma */
.hero3 .hero-kicker{ font-size:.76rem; letter-spacing:.16em; font-weight:700; margin-bottom:24px; }
.hero3 .hero-review p{ font-style:italic; font-size:clamp(2.3rem, 4.2vw, 3.9rem); line-height:1.14; }
@media (max-width:640px){ .hero3 .hero-kicker{ font-size:.68rem; } .hero3 .hero-review p{ font-size:1.9rem; } }

/* Carrusel: fotos amplias de paisaje, centradas */
.pq-carousel img.pq-slide{ object-position:50% 50%; }
.pq-dots{ left:50%; right:auto; transform:translateX(-50%); }

/* Hero: reseña más contenida, con más peso y más aire (más premium) */
.hero3 .hero-kicker{ margin-bottom:38px; letter-spacing:.24em; font-size:.72rem; }
.hero3 .hero-testimonial.hero-review{ max-width:760px; margin:0 auto 48px; }
.hero3 .hero-review p{ font-weight:500; font-size:clamp(1.75rem, 2.6vw, 2.5rem); line-height:1.32; letter-spacing:.005em; margin-bottom:26px; }
.hero3 .hero-review cite{ font-size:.72rem; letter-spacing:.22em; opacity:.9; }
.hero3 .hero-ctas{ gap:16px; }
@media (max-width:640px){
  .hero3 .hero-kicker{ margin-bottom:26px; font-size:.64rem; letter-spacing:.2em; }
  .hero3 .hero-testimonial.hero-review{ margin-bottom:34px; }
  .hero3 .hero-review p{ font-size:1.55rem; line-height:1.3; margin-bottom:20px; }
}

/* Hero de la Home alineado a la izquierda */
@media (min-width:641px){
  .hero3 .hero-content{ justify-content:flex-start; text-align:left; }
  .hero3 .hero-content .wrap{ margin:0; max-width:none; width:100%; padding-left:max(44px, calc((100vw - 1240px) / 2)); padding-right:44px; }
  .hero3 .hero-testimonial.hero-review{ margin-left:0; margin-right:0; }
  .hero3 .hero-ctas{ justify-content:flex-start; }
}

/* Hero: reseña con más peso (la cursiva media es la más gruesa de Giane; se refuerza con un trazo fino) */
.hero3 .hero-review p{ font-weight:500; -webkit-text-stroke:.6px currentColor; paint-order:stroke fill; }
@media (max-width:640px){ .hero3 .hero-review p{ -webkit-text-stroke:.45px currentColor; } }

/* Galería: la última foto a todo el ancho para cerrar sin huecos */
@media (min-width:861px){ .g3-grid > .g3-full{ grid-column:1 / -1; } }

/* Hero de la Home, más limpio: cursiva normal en blanco, sin trazo, y velo ligero para que la foto no se vea gris */
.hero3::after{ background:linear-gradient(180deg, rgba(10,7,5,.32) 0%, rgba(10,7,5,0) 22%, rgba(10,7,5,0) 70%, rgba(10,7,5,.28) 100%); }
.hero3::before{ background:linear-gradient(90deg, rgba(12,8,5,.46) 0%, rgba(12,8,5,.22) 38%, rgba(12,8,5,0) 62%); }
.hero3 .hero-review p{ font-weight:400; -webkit-text-stroke:0; color:#fff; text-shadow:0 1px 22px rgba(0,0,0,.28); }
.hero3 .hero-kicker, .hero3 .hero-review cite{ color:#fff; opacity:1; text-shadow:0 1px 14px rgba(0,0,0,.3); }
.hero3 .hero-review cite{ font-weight:600; }
@media (max-width:640px){
  .hero3::before{ background:linear-gradient(180deg, rgba(12,8,5,.5) 0%, rgba(12,8,5,.26) 40%, rgba(12,8,5,0) 62%); }
  .hero3 .hero-review p{ -webkit-text-stroke:0; }
}

/* Hero de la Home en móvil: sin botón, el texto ocupa más pantalla y respira */
.br-m{ display:none; }
@media (max-width:640px){
  .br-m{ display:inline; }
  .hero3 .hero-ctas{ display:none; }
  .hero3{ min-height:calc(100svh - 56px); height:calc(100svh - 56px); }
  .hero3 .hero-content{ top:96px; bottom:48px; align-items:center; }
  .hero3 .hero-kicker{ font-size:.72rem; line-height:1.9; letter-spacing:.22em; margin-bottom:34px; }
  .hero3 .hero-review p{ font-size:1.9rem; line-height:1.3; margin-bottom:26px; }
  .hero3 .hero-testimonial.hero-review{ margin-bottom:0; }
}

@media (max-width:640px){ .hero3::before{ background:linear-gradient(180deg, rgba(12,8,5,.5) 0%, rgba(12,8,5,.38) 45%, rgba(12,8,5,.3) 72%, rgba(12,8,5,.08) 100%); } }

/* Home: dos líneas bajo «Consultar disponibilidad» */
.avail-head h2 + .avail-sub{ margin-top:-14px; }
.avail-sub{ font-family:var(--serif); font-size:1.02rem; line-height:1.6; color:var(--ink-soft); margin:0 0 40px; text-align:center; }
@media (max-width:640px){ .avail-sub br{ display:none; } .avail-sub{ font-size:.95rem; } }

/* Cocina (Home): sin la etiqueta vertical; la frase va encima de la foto pequeña */
.kitchen:not(.lc-warm){ grid-template-columns:1fr 1fr; column-gap:60px; }
.kitchen-cap{ margin:0 0 14px; font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#8c8578; line-height:1.6; }
.kitchen-cap b{ font-weight:700; color:var(--ink); }
@media (max-width:980px){ .kitchen:not(.lc-warm){ grid-template-columns:1fr; } .kitchen-cap{ padding:0 20px; } }
@media (min-width:981px){ .kitchen:not(.lc-warm) > .photo{ grid-row:1; grid-column:1; } .kitchen:not(.lc-warm) > div:last-child{ grid-row:1; grid-column:2; padding-right:60px; } }

/* La frase de la cocina alineada con la foto pequeña */
.kitchen .kitchen-cap{ max-width:540px; width:calc(100% - 80px); margin-left:auto; margin-right:auto; padding:0; }
@media (max-width:980px){ .kitchen .kitchen-cap{ width:calc(100% - 56px); max-width:none; } }
@media (max-width:640px){ .kitchen .kitchen-cap{ width:calc(100% - 40px); } }

@media (max-width:640px){ .hero3 .hero-kicker{ font-size:.56rem; letter-spacing:.2em; line-height:1.8; margin-bottom:26px; } }

/* Cocina (Home): la foto grande hace caja con la segunda foto de «Rincones» (mitad exacta) */
@media (min-width:981px){
  .kitchen:not(.lc-warm){ grid-template-columns:1fr 1fr; column-gap:0; }
  .kitchen:not(.lc-warm) > div:last-child{ padding-left:60px; padding-right:60px; }
}

/* Historia (Home): texto a la izquierda, foto a la derecha */
@media (min-width:981px){
  .hist{ grid-template-columns:1fr 1fr; }
  .hist > .hist-text{ grid-column:1; grid-row:1; }
  .hist > .hist-photo{ grid-column:2; grid-row:1; }
}

/* Tramuntana (Home): foto a la izquierda, bloque beige con el texto a la derecha (mitades exactas) */
@media (min-width:981px){
  .loc.loc3{ grid-template-columns:1fr 1fr; }
  .loc3 > .loc-visual{ grid-column:1; grid-row:1; }
  .loc3 > .loc-text{ grid-column:2; grid-row:1; }
}

/* Historia y Tramuntana pegadas, sin blanco entre ellas */
.hist + .loc3{ margin-top:0; }
.hist{ border-bottom:0; }

/* Footer: «Cómo llegar · Valldemossa» en la primera columna */
.ft-place{ margin:10px 0 0; font-family:var(--serif); font-size:.92rem; }
.ft-place a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* Tramuntana en móvil: mapa más simple (solo pueblos) y a todo el ancho */
@media (max-width:640px){
  .loc.loc3{ padding-left:0; padding-right:0; }
  .loc3 .loc-text{ padding-left:20px; padding-right:20px; }
  .loc3 .loc-visual{ margin-left:0; margin-right:0; width:100%; padding:0 !important; }
  .loc3 .loc-legend{ display:none; }
}

/* Móvil: datos centrados con margen a los lados */
@media (max-width:640px){
  .facts7{ max-width:none; margin-left:24px; margin-right:24px; }
  .facts7 li, .facts7 li:first-child{ justify-content:center; text-align:center; }
}

/* Móvil: Airbnb y Booking uno al lado del otro */
@media (max-width:640px){
  .rpair{ grid-template-columns:1fr 1fr; grid-template-rows:repeat(5, auto); max-width:none; margin-left:12px; margin-right:12px; }
  .rp{ grid-template-rows:subgrid; grid-row:span 5; padding:6px 10px; }
  .rp + .rp{ border-top:0; border-left:1px solid rgba(71,30,31,.12); }
  .rp-brand{ font-size:.92rem; gap:6px; }
  .rp-brand img{ width:18px; height:18px; }
  .rp-score{ font-size:2.5rem; margin:14px 0 8px; }
  .rp-score small{ font-size:.85rem; margin-left:4px; }
  .rp-title{ font-size:.8rem; }
  .rp-meta{ font-size:.72rem; }
  .rp-link{ font-size:.7rem; margin-top:12px; }
}

/* Móvil: valoraciones más compactas (logos pequeños, sin separador, sin escala ni título) */
@media (max-width:640px){
  .rpair{ grid-template-rows:repeat(5, auto); }
  .rp + .rp{ border-left:0; }
  .rp-brand{ height:20px; font-size:.78rem; gap:5px; }
  .rp-brand img{ width:14px; height:14px; }
  .rp-score{ font-size:2.4rem; margin:10px 0 6px; }
  .rp-score small{ display:none; }
  .rp-title{ display:none; }
  .rp-meta{ margin-top:0; }
}

/* Móvil: vuelve la escala /5 y /10 */
@media (max-width:640px){ .rp-score small{ display:inline; position:absolute; left:100%; bottom:.2em; margin-left:4px; font-size:.8rem; } }

/* Hero de la Home en carrusel (fundido) */
.hero3 .hero-slide{ opacity:0; transition:opacity 1.6s ease; }
.hero3 .hero-slide.is-on{ opacity:1; }
.hero3 .hero-slide:not(:first-of-type){ object-position:50% 55%; }
@media (max-width:640px){ .hero3 .hero-slide:not(:first-of-type){ object-position:50% 50%; } }

/* Hero de la Home: puntos del carrusel abajo, centrados */
.hero-dots{ position:absolute; left:50%; bottom:32px; transform:translateX(-50%); z-index:3; display:flex; gap:10px; }
@media (max-width:640px){ .hero-dots{ bottom:24px; } }

/* Hero: la foto 4 (aljibe junto a la fachada) encuadrada abajo para que se vea el agua */
.hero3 .hero-slide[src="aljibe-fachada-casa-hd.jpg"]{ object-position:50% 88%; }
.hero3 .hero-slide[src="vida-aljibe-amigos.jpg"]{ object-position:50% 70%; }

/* Consultar disponibilidad: calendario y «Tu estancia» hacen caja (misma altura) */
@media (min-width:981px){ .sscal{ align-items:stretch; } .sscal-panel{ position:static; display:flex; flex-direction:column; } .sscal-panel .sscal-small{ margin-top:auto; } }

/* Home: menos espacio entre «Consultar disponibilidad» y la tira de fotos */
#disponibilidad + .cx-end{ margin-top:0; }
#disponibilidad{ padding-bottom:64px; }
@media (max-width:640px){ #disponibilidad{ padding-bottom:44px; } }

/* Cocina (Home): título en dos líneas encima de la foto pequeña */
.kitchen .kitchen-cap{ text-transform:none; letter-spacing:0; margin-bottom:20px; }
.kitchen-cap h3{ margin:0 0 6px; font-family:var(--display); font-weight:400; font-size:1.9rem; line-height:1.15; color:var(--ink); }
.kitchen-cap p{ margin:0; font-family:var(--serif); font-style:italic; font-size:1.02rem; line-height:1.5; color:#6f6a64; }
@media (max-width:640px){ .kitchen-cap h3{ font-size:1.55rem; } .kitchen-cap p{ font-size:.95rem; } }
.kitchen .kitchen-cap{ text-align:center; }

/* Título de la cocina con la misma letra que la firma «Anna · Airbnb» */
.kitchen-cap h3{ font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:#1a1a1a; line-height:1.5; margin-bottom:8px; }
@media (max-width:640px){ .kitchen-cap h3{ font-size:.74rem; } }

/* Tramuntana: sección más baja en desktop */
@media (min-width:981px){ .loc3 .loc-visual{ min-height:0; height:560px; aspect-ratio:auto; } .loc3 .loc-text{ padding-top:50px; padding-bottom:50px; } }
@media (min-width:981px){ .loc.loc3{ min-height:0; } }

/* Contacto: email, teléfono y WhatsApp más pequeños y discretos */
.cx-links{ gap:10px; }
.cx-links a{ font-family:var(--serif); font-size:1.05rem; line-height:1.4; text-decoration:none; border-bottom:1px solid rgba(71,30,31,.25); padding-bottom:2px; width:max-content; transition:color .2s ease, border-color .2s ease; }
.cx-links a:hover{ border-color:var(--maroon); }
@media (max-width:980px){ .cx-links a{ margin:0 auto; } }
@media (max-width:640px){ .cx-links a{ font-size:1rem; } }

/* Reservar reestructurada: el calendario es lo primero tras el hero */
.rv-avail8{ padding-top:90px; }
.rv-avail8 .avail-head{ text-align:center; max-width:720px; margin:0 auto; }
.rv-orn8{ width:64px; height:auto; display:block; margin:0 auto 22px; }
.rv-avail8 .avail-head h2{ margin-bottom:14px; }
.rv-avail8 .avail-sub{ margin:0 auto 44px; max-width:620px; }
.rv-cond8{ max-width:760px; margin:28px auto 0; text-align:center; font-size:.82rem; line-height:1.6; color:#6f6a64; }
.rv-intro8{ padding-top:70px; }
@media (max-width:640px){ .rv-avail8{ padding-top:60px; } .rv-avail8 .avail-sub{ margin-bottom:32px; } }

/* Reservar: hero centrado y con tamaños ordenados */
.rv-hero8 .page-hero-content{ top:90px; bottom:150px; display:flex; align-items:center; justify-content:center; text-align:center; }
.rv-hero8 .page-hero-content .wrap{ max-width:820px; padding:0 24px; }
.rv-hero8 .ph-title{ font-family:var(--display); font-weight:400; font-size:clamp(2.4rem, 4.4vw, 3.8rem); line-height:1.05; color:#fff; margin:0 0 12px; text-shadow:0 2px 18px rgba(0,0,0,.3); }
.rv-hero8 .ph-intro{ font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin:0 0 34px; text-shadow:0 1px 12px rgba(0,0,0,.3); }
.rv-hero8 .ph-quote{ margin:0 auto; padding:0; border:0; max-width:620px; }
.rv-hero8 .ph-quote p{ font-family:var(--display); font-style:italic; font-weight:400; font-size:clamp(1.15rem, 1.7vw, 1.5rem); line-height:1.4; color:#fff; margin:0 0 12px; text-shadow:0 1px 16px rgba(0,0,0,.3); }
.rv-hero8 .ph-quote cite{ font-style:normal; font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:#fff; }
@media (max-width:640px){
  .rv-hero8 .page-hero-content{ top:80px; bottom:110px; }
  .rv-hero8 .ph-title{ font-size:2.3rem; }
  .rv-hero8 .ph-intro{ font-size:.62rem; margin-bottom:24px; }
  .rv-hero8 .ph-quote p{ font-size:1.1rem; }
}

@media (max-width:640px){ .rv-hero8 .booking-bar{ display:none; } .rv-hero8 .page-hero-content{ bottom:40px; } }

.rv-hero8 > img{ object-position:50% 80%; }
@media (max-width:640px){ .rv-hero8 .ph-quote p br{ display:none; } }

/* Reservar: sin barra de fechas en el hero (la recoge el menú al hacer scroll) */
.rv-hero8 .page-hero-content{ bottom:60px; }
@media (max-width:640px){ .rv-hero8 .page-hero-content{ bottom:40px; } }

/* Galería: más fotos por línea (4 en desktop, 3 en tablet, 2 en móvil) */
.g3-grid{ grid-template-columns:repeat(4,1fr); grid-auto-rows:clamp(200px, 20vw, 420px); gap:8px; }
@media (max-width:1100px){ .g3-grid{ grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(200px, 27vw, 380px); } }
@media (max-width:860px){ .g3-grid{ grid-template-columns:1fr 1fr; grid-auto-rows:46vw; } }
/* Galería: filas más altas */
.g3-grid{ grid-auto-rows:clamp(260px, 25vw, 520px); }
@media (max-width:1100px){ .g3-grid{ grid-auto-rows:clamp(240px, 33vw, 440px); } }
@media (max-width:860px){ .g3-grid{ grid-auto-rows:56vw; } }

/* Footer: alturas igualadas — las cuatro columnas arrancan a la misma línea y el texto tiene un solo tamaño */
footer.ft .ft-grid{ align-items:start !important; }
footer.ft .ft-grid > *{ margin-top:0 !important; padding-top:0 !important; }
footer.ft .ft-grid .logo, footer.ft .ft-grid h2, footer.ft .ft-grid .ft-news-title{ display:flex !important; align-items:center; height:30px; margin:0 0 12px !important; line-height:1.1 !important; }
footer.ft .ft-grid .logo, footer.ft .ft-grid .ft-news-title{ font-size:1.25rem !important; }
footer.ft .ft-grid .tagline, footer.ft .ft-grid .ft-trust, footer.ft .ft-grid .ft-trust a, footer.ft .ft-grid .ft-place, footer.ft .ft-grid .ft-place a,
footer.ft .ft-grid .ft-agency, footer.ft .ft-grid li, footer.ft .ft-grid li a, footer.ft .ft-grid .ft-news > p{ font-family:var(--serif) !important; font-size:.84rem !important; line-height:1.65 !important; }
footer.ft .ft-grid .tagline, footer.ft .ft-grid .ft-agency, footer.ft .ft-grid .ft-news > p{ margin:0 0 8px !important; }
footer.ft .ft-grid .ft-trust, footer.ft .ft-grid .ft-place{ margin:0 !important; }
footer.ft .ft-grid .ft-agency{ opacity:1; }
footer.ft .ft-grid ul{ margin:0 !important; padding:0; }
footer.ft .ft-grid li{ margin:0 !important; }
footer.ft .ft-grid ul{ display:block !important; gap:0 !important; }
footer.ft .ft-grid li{ padding:0 !important; }
footer.ft .ft-grid li a{ display:inline !important; padding:0 !important; }

/* La Casa: mismo hero que Reservar, con la foto del patio */
.lc-hero8 > img{ object-position:50% 25%; }

/* La Casa: datos sin cajas ni fondo, solo una raya fina entre ellos; números alineados */
.facts3.facts3-sm{ background:transparent !important; border:0 !important; }
.facts3.facts3-sm li{ border:0 !important; position:relative; justify-content:flex-start; padding:6px 10px; }
.facts3.facts3-sm li + li::before{ content:""; position:absolute; left:0; top:12px; bottom:12px; width:1px; background:rgba(71,30,31,.14); }
.facts3.facts3-sm small{ display:block; margin-top:2px; }
@media (max-width:640px){ .facts3.facts3-sm li + li::before{ display:none; } }

/* Croquis de La Casa: fondo blanco y silueta parecida a la casa real
   (casa principal con teja a dos aguas poco inclinada, fachada color arena; estudio bajo con pérgola de cañizo; aljibe a ras de suelo) */
.plano7{ background:#fff !important; border:0 !important; box-shadow:none !important; }
.p7-site{ border-bottom:1.5px solid #8b6a55; padding-bottom:0; }
.p7-bldg{ background:#efe5d6; border:1.4px solid #8b6a55; border-bottom:0; }
.p7-bldg::before{ left:-14px; right:-14px; height:22px; background:#b4683f; clip-path:polygon(0 100%, 50% 0, 100% 100%); }
.p7-bldg::after{ content:""; position:absolute; left:-14px; right:-14px; bottom:100%; height:3px; background:#8e4f30; }
.p7-lvl{ border-top:1px solid rgba(139,106,85,.35); }
.p7-room{ background:#fff; border-color:rgba(139,106,85,.5); }
.p7-room:hover, .p7-room:focus-visible{ background:#f7efe4; }
.p7-ic{ border-color:rgba(139,106,85,.35); background:rgba(255,255,255,.55); }
.p7-fl{ color:#7d6a5c; }
/* Estudio: cubierta plana + pérgola de cañizo hacia el jardín */
.p7-studio{ margin-top:auto; }
.p7-studio::before{ clip-path:none; height:7px; left:-10px; right:-10px; background:#b4683f; }
.p7-studio::after{ left:auto; right:100%; width:58%; height:9px; bottom:auto; top:-1px; background:repeating-linear-gradient(90deg, #c9a46e 0 3px, #e3cc9f 3px 6px); border-bottom:1px solid #8b6a55; }
/* Aljibe: agua a ras de suelo */
.p7-water{ height:22px; background:#a9cfcd; border:1.4px solid #8b6a55; border-bottom:0; box-shadow:inset 0 0 0 4px #efe5d6; }
@media (max-width:980px){
  .p7-studio::after{ display:none; }
  .p7-water{ height:22px; border-bottom:1.4px solid #8b6a55; }
}
.p7-studio > .p7-cap{ bottom:calc(100% + 16px); }
@media (max-width:980px){ .p7-studio{ margin-top:46px; } .p7-studio > .p7-cap{ bottom:calc(100% + 14px); } }

/* Croquis como dibujo de la fachada real: las habitaciones son las ventanas del bloque alto */
.p8-scene{ position:relative; margin:6px 0 14px; }
.p8-draw{ display:block; width:100%; height:auto; }
.p8-t{ font-family:var(--sans); font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; fill:#471e1f; }
.p8-f, .p8-fl{ display:none; }
.p8-hot{ position:absolute; display:flex; align-items:center; justify-content:center; padding:0; background:#f6f1e8; border:1px solid #8b6a55; border-left:7px solid #4f6b45; border-right:7px solid #4f6b45; font-family:'Giane',Georgia,serif; font-size:clamp(11px, 1.1vw, 16px); line-height:1.1; color:#471e1f; cursor:pointer; transition:background-color .2s, transform .2s; }
.p8-hot:hover, .p8-hot:focus-visible{ background:#fff; outline:none; transform:translateY(-1px); box-shadow:0 4px 12px rgba(71,30,31,.18); }
.p8-hot[data-room="cocina"]{ border-left-width:1px; border-right-width:1px; font-size:clamp(10px, .95vw, 14px); }
.p8-hot[data-room="aljibe"]{ background:transparent; border:0; box-shadow:none; }
/* En desktop el dibujo sustituye al esquema por plantas; en móvil se ve el dibujo y debajo la lista pulsable */
.plano7 .p7-site, .plano7 .p7-legend{ display:none; }
@media (max-width:640px){
  .p8-hot:not([data-room="aljibe"]){ display:none; }
  .plano7 .p7-site{ display:grid; }
  .p8-scene{ margin-bottom:24px; }
}
.p7-studio::after{ display:none !important; }

/* Móvil: croquis en vertical (casa principal, aljibe, estudio), sin el dibujo horizontal */
@media (max-width:640px){ .p8-scene{ display:none; } }
/* Croquis desktop solo de contorno: las habitaciones son etiquetas sencillas, no ventanas */
.p8-hot{ background:#fff; border:1px solid rgba(139,106,85,.55) !important; border-left-width:1px !important; border-right-width:1px !important; }
.p8-hot:hover, .p8-hot:focus-visible{ background:#f7efe4; }
.p8-hot[data-room="aljibe"]{ border:0 !important; background:transparent; }
/* Croquis desktop en color, versión refinada: habitaciones como ventanas con contraventanas verdes */
.p8-hot{ background:#f6f1e8 !important; border:1px solid #8b6a55 !important; border-left:6px solid #4f6b45 !important; border-right:6px solid #4f6b45 !important; font-size:clamp(11px, 1.05vw, 15px); box-shadow:inset 0 0 0 2px #f6f1e8; }
.p8-hot:hover, .p8-hot:focus-visible{ background:#fff !important; }
.p8-hot[data-room="cocina"]{ border-left-width:1px !important; border-right-width:1px !important; }
.p8-hot[data-room="aljibe"]{ border:0 !important; background:transparent !important; box-shadow:none; }

/* ===== Croquis definitivo: silueta en contorno + interior monocromo por plantas ===== */
.p8-band{ position:absolute; display:flex; flex-direction:column; justify-content:center; gap:6px; padding:0 6px; }
.p8-bl{ font-family:var(--sans); font-size:9.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#471e1f; opacity:.75; }
.p8-band .p7-cells{ display:grid; grid-template-columns:repeat(2, minmax(0,1.5fr)) repeat(3, minmax(0,1fr)); gap:5px; margin:0; }
.p8-st .p7-cells{ grid-template-columns:minmax(0,3fr) minmax(0,1fr); }
.p8-band .p7-room{ min-height:38px; background:#fff; border:1px solid #471e1f; color:#471e1f; font-size:clamp(11px, 1vw, 15px); padding:4px; }
.p8-band .p7-room:hover, .p8-band .p7-room:focus-visible{ background:#471e1f; color:#fff; }
.p8-band .p7-ic{ min-height:38px; background:#fff; border:1px dashed rgba(71,30,31,.45); color:#471e1f; }
.p8-band .p7-ic svg{ width:17px; height:17px; }
.p8-alj{ background:transparent !important; border:0 !important; box-shadow:none !important; }
/* Móvil: el esquema vertical también monocromo y en contorno */
.p7-bldg{ background:#fff !important; border-color:#471e1f !important; }
.p7-bldg::before{ left:-8px !important; right:-8px !important; height:30px !important; background:#471e1f !important; clip-path:polygon(0 100%, 50% 0, 100% 100%, calc(100% - 2px) 100%, 50% 3px, 2px 100%) !important; }
.p7-bldg::after{ display:none !important; }
.p7-studio::before{ clip-path:none !important; height:2px !important; left:-8px !important; right:-8px !important; }
.p7-lvl{ border-top-color:rgba(71,30,31,.25) !important; }
.p7-room{ background:#fff !important; border-color:#471e1f !important; color:#471e1f; }
.p7-ic{ background:#fff !important; border-color:rgba(71,30,31,.45) !important; }
.p7-water{ background:#fff !important; border-color:#471e1f !important; box-shadow:none !important; }
.p7-fl{ color:#471e1f !important; opacity:.75; }
.plano7 .p7-legend{ display:flex; }
@media (min-width:641px){ .plano7 .p7-legend{ margin-top:6px; } }
.p8-st .p8-bl{ display:none; }
.p8-st .p7-room{ font-size:clamp(10px, .9vw, 14px); }
/* Croquis: cada zona con su color (construcciones beige, tejados teja, aljibe azul); interior monocromo */
.p8-band .p7-room, .p8-band .p7-ic{ background:rgba(255,255,255,.85); }
.p7-bldg{ background:#efe2cb !important; border-color:#8b6a55 !important; }
.p7-bldg::before{ background:#b4683f !important; height:22px !important; left:-12px !important; right:-12px !important; clip-path:polygon(0 100%, 50% 0, 100% 100%) !important; }
.p7-studio::before{ clip-path:none !important; height:8px !important; }
.p7-water{ background:#a9cfcd !important; border-color:#8b6a55 !important; }

/* Móvil: la casa principal con la misma forma que en desktop (tejado plano, cuerpos de piedra a la izquierda y dos terrazas a la derecha) */
.p7m-l, .p7m-r{ display:none; }
@media (max-width:640px){
  .plano7 .p7-site{ padding:0 12% 0 15%; }
  .p7-main{ position:relative; }
  .p7-main::before{ clip-path:none !important; height:9px !important; left:-6px !important; right:-6px !important; }
  .p7-main > .p7-cap{ bottom:calc(100% + 16px) !important; }
  .p7m-l, .p7m-r{ display:block; position:absolute; bottom:0; height:100%; }
  .p7m-l{ right:100%; width:20%; }
  .p7m-r{ left:100%; width:16%; }
  .plano7 .p7-cells{ grid-template-columns:repeat(2, minmax(0,1.4fr)) repeat(3, minmax(0,1fr)); gap:4px; }
  .plano7 .p7-room{ font-size:.86rem; min-height:40px; padding:4px 2px; }
  .plano7 .p7-ic{ min-height:40px; }
  .plano7 .p7-ic svg{ width:15px; height:15px; }
  .plano7 .p7-ic i{ font-size:.55rem; }
  .p7-aljibe, .p7-studio{ margin-left:-17%; margin-right:-14%; }
}
@media (max-width:640px){ .plano7 .p7-studio .p7-cells{ grid-template-columns:minmax(0,3fr) minmax(0,1fr); } }

/* Móvil: solo el bloque central de la casa, sin los cuerpos laterales */
@media (max-width:640px){ .p7m-l, .p7m-r{ display:none !important; } .plano7 .p7-site{ padding:0; } .p7-aljibe, .p7-studio{ margin-left:0; margin-right:0; } }

/* Pop-up de habitaciones con galería, datos y equipamiento */
.p9-dlg{ width:min(920px, calc(100vw - 32px)); max-height:calc(100vh - 32px); overflow:auto; padding:0; }
.p9-gal{ position:relative; background:#f3ede6; }
.p9-gal img{ display:block; width:100%; aspect-ratio:3/2; object-fit:cover; }
.p9-nav{ position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:0; background:rgba(255,255,255,.92); color:#471e1f; font-size:26px; line-height:1; cursor:pointer; box-shadow:0 2px 10px rgba(0,0,0,.15); }
.p9-prev{ left:14px; } .p9-next{ right:14px; }
.p9-count{ position:absolute; right:14px; bottom:12px; padding:3px 9px; border-radius:20px; background:rgba(0,0,0,.45); color:#fff; font-family:var(--sans); font-size:.72rem; letter-spacing:.06em; }
.p9-count:empty{ display:none; }
.p9-single .p9-nav, .p9-single .p9-thumbs{ display:none; }
.p9-thumbs{ display:flex; gap:6px; padding:8px 26px 0; overflow-x:auto; }
.p9-thumbs button{ flex:0 0 72px; height:50px; padding:0; border:2px solid transparent; background:none; cursor:pointer; opacity:.6; }
.p9-thumbs button.is-on{ border-color:#471e1f; opacity:1; }
.p9-thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }
.p9-amen{ list-style:none; margin:16px 0 0; padding:14px 0 0; border-top:1px solid #ece4da; display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; }
.p9-amen:empty{ display:none; }
.p9-amen li{ position:relative; padding-left:20px; font-family:var(--sans); font-size:.84rem; line-height:1.45; color:#4a3b33; }
.p9-amen li::before{ content:""; position:absolute; left:0; top:.42em; width:9px; height:5px; border-left:1.6px solid #471e1f; border-bottom:1.6px solid #471e1f; transform:rotate(-45deg); }
.p7-ic-btn{ cursor:pointer; transition:background-color .2s, color .2s; }
.p7-ic-btn:hover, .p7-ic-btn:focus-visible{ background:#471e1f !important; color:#fff; outline:none; }
@media (max-width:640px){
  .p9-nav{ width:36px; height:36px; font-size:22px; }
  .p9-thumbs{ padding:8px 18px 0; }
  .p9-thumbs button{ flex-basis:58px; height:42px; }
  .p9-amen{ grid-template-columns:1fr; }
}
.p9-thumbs img{ aspect-ratio:auto !important; }
.p9-dlg .p7-x{ position:absolute; z-index:6; top:12px; right:12px; }

.p9-open{ cursor:zoom-in; }
.p9-open img{ transition:transform .5s ease; }
.p9-open:hover img{ transform:scale(1.02); }
.p7-water{ border-style:dashed !important; border-width:1.4px !important; }
.p8-ter{ cursor:pointer; }
.p8-ter:hover{ background:rgba(71,30,31,.06) !important; }

/* Pop-up en desktop sin scroll: foto a la izquierda, texto a la derecha, todo dentro de la pantalla */
@media (min-width:900px){
  .p9-dlg{ width:min(1180px, calc(100vw - 64px)); height:min(720px, calc(100vh - 64px)); max-height:none; overflow:hidden; }
  .p9-dlg[open]{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); grid-template-rows:minmax(0,1fr) auto; }
  .p9-dlg .p9-gal{ grid-column:1; grid-row:1; min-height:0; }
  .p9-dlg .p9-gal img{ width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
  .p9-dlg .p9-thumbs{ grid-column:1; grid-row:2; padding:10px 14px 14px; }
  .p9-dlg.p9-single .p9-gal{ grid-row:1 / 3; }
  .p9-dlg .p7-dlg-txt{ grid-column:2; grid-row:1 / 3; overflow-y:auto; padding:56px 36px 32px; display:flex; flex-direction:column; justify-content:center; }
  .p9-dlg .p9-amen{ grid-template-columns:1fr; }
}
/* Pop-up desktop: foto a toda la altura en la izquierda; miniaturas abajo en la columna derecha */
@media (min-width:900px){
  .p9-dlg .p9-gal{ grid-column:1; grid-row:1 / 3; }
  .p9-dlg .p7-dlg-txt{ grid-column:2; grid-row:1; justify-content:flex-end; padding-bottom:18px; }
  .p9-dlg .p9-thumbs{ grid-column:2; grid-row:2; flex-wrap:wrap; overflow:visible; padding:0 36px 32px; gap:6px; }
  .p9-dlg .p9-thumbs button{ flex:0 0 60px; height:44px; }
}

/* Selector de idioma EN · ES */
.lang-sw{ display:flex; align-items:center; gap:6px; margin-left:auto; margin-right:18px; font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.12em; }
.lang-sw a{ color:inherit; text-decoration:none; opacity:.6; padding:4px 2px; }
.lang-sw a[aria-current="true"]{ opacity:1; text-decoration:underline; text-underline-offset:4px; }
.lang-sw a:hover{ opacity:1; }
.lang-sw span{ opacity:.5; }
.site-header.hero-dark:not(.is-stuck) .lang-sw{ color:#fff; }
.site-header .lang-sw{ color:var(--ink); }
.site-header.hero-dark:not(.is-stuck) .lang-sw{ color:#fff; text-shadow:0 1px 10px rgba(0,0,0,.25); }
@media (max-width:640px){ .lang-sw{ margin-right:14px; font-size:.66rem; } }
.site-header.is-stuck .lang-sw{ margin-left:12px; margin-right:12px; flex-shrink:0; }
.lang-sw{ margin-left:0; }
@media (max-width:980px){ .lang-sw{ margin-left:auto; } }
@media (min-width:981px){ .site-header .wrap{ position:relative; } .site-header:not(.is-stuck) nav.main-nav{ position:absolute; left:50%; transform:translateX(-50%); } .lang-sw{ margin-left:auto; } }

/* Selector de idioma desplegable */
.lang-dd{ position:relative; margin-left:auto; margin-right:18px; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.12em; color:inherit; }
.site-header.hero-dark:not(.is-stuck) .lang-dd{ color:#fff; text-shadow:0 1px 10px rgba(0,0,0,.25); }
.site-header .lang-dd{ color:var(--ink); }
.site-header.hero-dark:not(.is-stuck) .lang-dd{ color:#fff; }
.lang-dd summary{ list-style:none; display:flex; align-items:center; gap:6px; padding:6px 4px; cursor:pointer; user-select:none; }
.lang-dd summary::-webkit-details-marker{ display:none; }
.lang-dd summary svg{ width:9px; height:6px; fill:none; stroke:currentColor; stroke-width:1.5; transition:transform .2s; }
.lang-dd[open] summary svg{ transform:rotate(180deg); }
.lang-dd ul{ position:absolute; right:0; top:calc(100% + 6px); z-index:80; min-width:130px; margin:0; padding:6px 0; list-style:none; background:#fff; box-shadow:0 10px 30px rgba(30,15,10,.18); border:1px solid #ece4da; text-shadow:none; }
.lang-dd li a{ display:block; padding:9px 16px; font-size:.74rem; letter-spacing:.06em; font-weight:500; color:var(--ink); text-decoration:none; }
.lang-dd li a:hover{ background:#f6f1ea; }
.lang-dd li a[aria-current="true"]{ font-weight:700; }
.site-header.is-stuck .lang-dd{ margin-left:12px; margin-right:12px; flex-shrink:0; }
@media (max-width:980px){ .lang-dd{ margin-left:auto; } }
@media (max-width:640px){ .lang-dd{ margin-right:12px; } }

/* Menú del header en palo seco */
@media (min-width:981px){ .site-header:not(.is-stuck) nav.main-nav a:not(.btn-solid){ font-family:var(--sans) !important; font-size:.78rem; font-weight:500; letter-spacing:.04em; } }

/* Idioma: fuera de la barra fija; dentro del menú hamburguesa y junto al copyright */
.site-header.is-stuck .lang-dd{ display:none !important; }
.nav-lang{ display:none; }
.nav-toggle-input:checked ~ nav.main-nav .nav-lang, .site-header.is-stuck .nav-toggle-input:checked ~ nav.main-nav .nav-lang{ display:flex; }
@media (max-width:980px){ .nav-lang{ display:flex; } }
.nav-lang{ align-items:center; gap:10px; margin-top:18px; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.nav-lang a, nav.main-nav .nav-lang a{ padding:6px 0 !important; border:0 !important; font-family:var(--sans) !important; font-size:.74rem !important; opacity:.6; text-decoration:none; }
.nav-lang a[aria-current="true"]{ opacity:1; text-decoration:underline; text-underline-offset:4px; }
.nav-lang span{ opacity:.5; }
.ft-lang{ display:flex; gap:8px; align-items:center; margin:0; font-family:var(--sans); font-size:.72rem; }
.ft-lang a{ color:inherit; text-decoration:none; opacity:.7; }
.ft-lang a[aria-current="true"]{ opacity:1; text-decoration:underline; text-underline-offset:3px; }
.ft-lang span{ opacity:.5; }
/* Idioma dentro del menú: tamaño pequeño y color de tinta (el menú del hero pone los enlaces en blanco) */
.site-header nav.main-nav .nav-lang{ font-size:.74rem !important; }
.site-header nav.main-nav .nav-lang a, .site-header.hero-dark:not(.is-stuck) nav.main-nav .nav-lang a{ font-family:var(--sans) !important; font-size:.74rem !important; font-weight:700 !important; letter-spacing:.12em !important; line-height:1.4 !important; color:var(--ink) !important; text-shadow:none !important; padding:6px 0 !important; border:0 !important; }
.site-header nav.main-nav .nav-lang span{ color:var(--ink); font-size:.74rem; }
.site-header nav.main-nav .nav-lang{ flex-basis:100%; width:100%; grid-column:1 / -1; }
:is(.site-header.is-stuck, .site-header) .nav-toggle-input:checked ~ nav.main-nav .nav-lang a,
:is(.site-header.is-stuck, .site-header) .nav-toggle-input:checked ~ nav.main-nav .nav-lang span{ font-family:var(--sans) !important; font-size:.74rem !important; font-weight:700 !important; letter-spacing:.12em !important; line-height:1.4 !important; color:var(--ink) !important; padding:6px 0 !important; border:0 !important; }
/* «Based on …» solo en desktop */
.rp-based{ display:none; }
@media (min-width:641px){ .rp-based{ display:inline; } }
.hero3 .hero-slide[src$="hero-aljibe-montana.jpg"]{ object-position:50% 60%; }
.hero3 .hero-slide[src$="hero-casa-terraza.jpg"]{ object-position:50% 55%; }
.pq-carousel img.pq-slide[src$="casa-terraza-porche.jpg"]{ object-position:50% 70%; }

/* ===== PRUEBA «solidez» — solo Home (body.solid8). Quitar la clase para volver atrás ===== */
/* A · Titular grande y recto en el hero; la reseña pasa a acompañar */
.solid8 .hero3 .solid-title{ font-family:var(--display); font-weight:400; font-style:normal; font-size:clamp(2.6rem, 5vw, 4.6rem); line-height:1.04; letter-spacing:-.01em; color:#fff; max-width:15ch; margin:0 0 26px; text-shadow:0 2px 24px rgba(0,0,0,.3); }
.solid8 .hero3 .hero-kicker{ margin-bottom:18px; }
.solid8 .hero3 .hero-testimonial.hero-review{ max-width:520px; margin:0 0 32px; padding-left:16px; border-left:1px solid rgba(255,255,255,.6); }
.solid8 .hero3 .hero-review p{ font-family:var(--serif); font-style:italic; font-weight:400; -webkit-text-stroke:0; font-size:1.12rem; line-height:1.5; margin-bottom:10px; }
@media (max-width:640px){
  .solid8 .hero3 .solid-title{ font-size:2.35rem; max-width:none; margin-bottom:20px; }
  .solid8 .hero3 .hero-review p{ font-size:1rem; }
  .solid8 .hero3 .hero-testimonial.hero-review{ padding-left:12px; }
}
/* B · Más contraste y peso: títulos más grandes, textos y etiquetas en tinta, menos gris */
.solid8 .intro3 h2, .solid8 .espacios-intro h2, .solid8 .usos-intro h2, .solid8 .avail-head h2{ font-size:clamp(2.2rem, 3.6vw, 3.3rem); line-height:1.08; }
.solid8 .hist-text h2{ font-size:clamp(2.4rem, 4vw, 3.6rem); }
.solid8 .intro3 p, .solid8 .espacios-intro p, .solid8 .usos-intro p, .solid8 .hist-text p, .solid8 .loc-text > p, .solid8 .avail-sub{ color:var(--ink); }
.solid8 .rp-meta, .solid8 .facts7 li, .solid8 .usos-grid p, .solid8 .kitchen-cap p{ color:#3d3431; }
.solid8 .int3-quote p, .solid8 .kitchen-cap p{ font-style:normal; }
.solid8 .rp-score{ font-size:3.8rem; }
/* C · Banda de datos con fondo beige suave y filetes finos */
.solid8 .facts7{ max-width:none; margin:64px calc(50% - 50vw) 0; padding:30px max(24px, calc(50vw - 560px)); background:#f3ede4; border-top:1px solid rgba(71,30,31,.18); border-bottom:1px solid rgba(71,30,31,.18); }
.solid8 .facts7 li{ font-weight:600; }
@media (max-width:640px){ .solid8 .facts7{ margin:40px calc(50% - 50vw) 0; padding:10px 24px; } }
.solid8 .hero3 .solid-title{ max-width:22ch; }
@media (max-width:640px){ .solid8 .hero3 .solid-title{ max-width:none; } }
.solid8 .hero3 .solid-title{ max-width:none; }
.br-d{ display:inline; }
@media (max-width:640px){ .br-d{ display:none; } }
.solid8 .facts7{ background:#fff; }
.solid8 .facts7{ border-top:0; border-bottom:0; }
/* Home: 20% menos de espacio bajo la banda de datos */
.solid8 .intro3{ padding-bottom:63px; }
@media (max-width:640px){ .solid8 .intro3{ padding-bottom:42px; } }
.pq-carousel img.pq-slide[src$="casa-terraza-exterior.jpg"]{ object-position:50% 62%; }
.hero3 .hero-slide[src$="hero-aljibe-jardin.jpg"], .hero3 .hero-slide[src$="hero-aljibe-montana.jpg"]{ object-position:50% 55%; }

/* Carrusel de Jonas más alto */
.pq-carousel .pq-slides{ height:94vh; min-height:620px; max-height:1060px; }
@media (max-width:640px){ .pq-carousel .pq-slides{ height:auto; min-height:0; max-height:none; aspect-ratio:4/5.6; } }
.pq-carousel img.pq-slide[src$="casa-terraza-exterior.jpg"]{ object-position:50% 75%; }
.pq-carousel img.pq-slide[src$="casa-terraza-exterior.jpg"]{ object-position:50% 50%; transform:scale(1.22); transform-origin:50% 78%; }

/* Valoraciones (desktop): más aire y jerarquía más fina */
@media (min-width:641px){
  .rpair{ grid-template-columns:repeat(2, minmax(0, 340px)); margin-top:76px; }
  .rp{ padding:4px 72px; }
  .rp + .rp{ border-left:1px solid rgba(71,30,31,.1); }
  .rp-brand{ height:22px; font-size:.86rem; gap:7px; letter-spacing:0; }
  .rp-brand img{ width:17px; height:17px; }
  .rp-score, .solid8 .rp-score{ margin:26px 0 22px; font-size:3.4rem; font-weight:400; letter-spacing:-.02em; }
  .rp-score small{ font-size:.95rem; margin-left:5px; color:#a49c94; }
  .rp-title{ font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
  .rp-meta, .solid8 .rp-meta{ margin-top:8px; font-family:var(--serif); font-size:.92rem; color:#6f6a64; }
  .rp-link{ margin-top:24px; font-size:.66rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; padding-bottom:4px; border-bottom:1px solid rgba(71,30,31,.3); }
  .rp:hover .rp-link{ border-color:var(--maroon); }
}
@media (min-width:641px){ .rpair{ grid-template-columns:repeat(2, minmax(0, 380px)); } .rp{ padding:4px 56px; } .rp-title{ white-space:nowrap; } }

/* Rincones con carácter: enlace subrayado a La Casa */
.esp-all{ display:inline-block; margin-top:22px; font-family:var(--sans); font-size:.7rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); text-decoration:none; padding-bottom:4px; border-bottom:1px solid rgba(71,30,31,.35); transition:color .2s, border-color .2s; }
.esp-all:hover{ color:var(--maroon); border-color:var(--maroon); }

/* Home en móvil: el hero solo con la reseña */
@media (max-width:640px){
  .solid8 .hero3 .hero-kicker, .solid8 .hero3 .solid-title, .hero3 .hero-ctas{ display:none; }
  .solid8 .hero3 .hero-testimonial.hero-review{ max-width:none; margin:0; padding:0; border:0; }
  .solid8 .hero3 .hero-review p{ font-family:var(--display); font-style:italic; font-size:1.85rem; line-height:1.28; margin-bottom:18px; }
}
@media (max-width:640px){ .solid8 .hero3 .hero-kicker{ display:block; margin-bottom:22px; } }
@media (max-width:640px){ .solid8 .hero3 .hero-content{ justify-content:center; text-align:center; } .solid8 .hero3 .hero-content .wrap{ margin:0 auto; } .solid8 .hero3 .hero-testimonial.hero-review{ margin:0 auto; } }

/* Móvil: valoraciones más pequeñas y finas */
@media (max-width:640px){
  .rpair{ margin-top:34px; margin-left:32px; margin-right:32px; }
  .rp{ padding:2px 8px; }
  .rp + .rp{ border-left:1px solid rgba(71,30,31,.1); }
  .rp-brand{ height:16px; font-size:.7rem; gap:4px; }
  .rp-brand img{ width:12px; height:12px; }
  .rp-score, .solid8 .rp-score{ font-size:1.9rem; margin:10px 0 6px; font-weight:400; }
  .rp-score small{ font-size:.65rem; margin-left:3px; }
  .rp-meta, .solid8 .rp-meta{ font-size:.66rem; margin-top:0; }
  .rp-link{ font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; margin-top:10px; text-decoration:none; padding-bottom:3px; border-bottom:1px solid rgba(71,30,31,.3); }
}

/* Footer en móvil: más compacto y ordenado */
@media (max-width:640px){
  footer.ft .ft-grid{ row-gap:30px !important; padding-bottom:30px !important; }
  footer.ft .ft-grid .ft-contact-col, footer.ft .ft-grid .ft-contact-col + .footer-col{ display:block; }
  footer.ft .ft-grid .ft-news{ padding-top:26px !important; }
  footer.ft .ft-form input{ height:42px !important; border:1px solid #d9d0c6 !important; }
  .ft-ride{ display:none !important; }
  footer.ft .footer-bottom{ display:grid !important; grid-template-columns:1fr auto; align-items:center; gap:14px 12px; padding:18px 0 22px !important; }
  footer.ft .footer-bottom > p:first-child{ grid-column:1 / -1; order:3; margin:0; font-size:.62rem !important; line-height:1.5; color:var(--gray) !important; }
  footer.ft .footer-bottom .ft-lang{ grid-column:1; order:1; font-size:.68rem; }
  footer.ft .footer-bottom .ft-senefa{ display:none; }
  footer.ft .footer-bottom .ft-bottom-right{ display:contents; }
  footer.ft .footer-bottom .footer-legal{ grid-column:1 / -1; order:2; display:flex; flex-wrap:wrap; gap:6px 16px; margin:0; padding:0; }
  footer.ft .footer-bottom .footer-legal a{ font-size:.66rem !important; }
  footer.ft .footer-bottom .footer-social{ grid-column:2; grid-row:1; order:1; }
  footer.ft .footer-bottom .footer-social a{ width:32px; height:32px; }
}

/* La Casa en móvil: los cuatro datos en una fila */
@media (max-width:640px){
  .facts3.facts3-sm{ display:grid !important; grid-template-columns:repeat(4, minmax(0,1fr)); gap:0; max-width:none; }
  .facts3.facts3-sm li{ flex:none !important; min-width:0; padding:4px 2px !important; font-size:.7rem; border:0 !important; }
  .facts3.facts3-sm b{ font-size:1.5rem !important; }
  .facts3.facts3-sm small{ font-size:.6rem; }
  .facts3.facts3-sm li + li::before{ display:block !important; top:10px; bottom:10px; }
}

/* Móvil: leyenda y nota del esquema arriba */
@media (max-width:640px){
  .plano7{ display:flex; flex-direction:column; }
  .plano7 .p7-legend{ order:-2; margin:0 0 6px; }
  .plano7 > figcaption{ order:-1; margin:0 0 22px; }
}
@media (max-width:640px){ .plano7 .p7-legend{ display:none !important; } }
@media (max-width:640px){ .plano7 > figcaption{ display:none !important; } }

/* Móvil: «Check availability» bajo la cabecera fija (no abajo) y solo cuando la cabecera está fija */
@media (max-width:640px){
  body{ padding-bottom:0 !important; }
  .m-bookbar{ top:48px; bottom:auto; height:42px; padding-bottom:0; font-size:.72rem; z-index:58; transform:translateY(-110%); opacity:0; pointer-events:none; transition:transform .25s ease, opacity .25s ease; border-top:1px solid rgba(255,255,255,.08); }
  .site-header.is-stuck ~ .m-bookbar{ transform:none; opacity:1; pointer-events:auto; }
  .wa-float{ bottom:20px; }
}

/* Visor en móvil: foto a todo el ancho y flechas visibles abajo */
@media (max-width:640px){ .lightbox img{ max-width:100vw; max-height:78vh; } .lb-nav{ top:auto; bottom:28px; transform:none; width:52px; height:52px; padding:0; border-radius:50%; background:rgba(255,255,255,.12); opacity:1; } .lb-prev{ left:calc(50% - 64px); } .lb-next{ right:calc(50% - 64px); } }

/* Newsletter oculta hasta tener consentimiento, gestión de datos y bajas (feedback 22/10) */
footer.ft .ft-news{ display:none !important; }
@media (min-width:1101px){ footer.ft .ft-grid{ grid-template-columns:1.15fr .9fr .95fr !important; } }
.lg-note{ margin-top:36px; font-size:.82rem; color:var(--gray); font-style:italic; }
.hero3 .hero-slide[src$="gal-casa-completa.jpg"]{ object-position:50% 55%; }
.hero3 .hero-slide[src$="hero-interior-estudio.jpg"]{ object-position:50% 60%; }
.lc-hero8 > img[src$="casa-terraza-exterior.jpg"]{ object-position:50% 70%; }

/* Hero de La Casa: dos fotos con fundido (la original primero) */
.lc-hero8 > img.hero-slide{ opacity:0; transition:opacity 1.6s ease; }
.lc-hero8 > img.hero-slide.is-on{ opacity:1; }
.lc-hero8 > img.hero-slide[src$="carrusel-2.jpg"]{ object-position:50% 25%; }
.hero3 .hero-slide[src$="gal-casa-completa.jpg"]{ object-position:68% 50%; }
@media (max-width:640px){ .hero3 .hero-slide[src$="gal-casa-completa.jpg"]{ object-position:62% 50%; } }
.hero3 .hero-slide[src$="gal-casa-completa.jpg"]{ object-position:68% 88%; }
@media (max-width:640px){ .hero3 .hero-slide[src$="gal-casa-completa.jpg"]{ object-position:62% 88%; } }
.pq-carousel img.pq-slide[src$="salon-principal.jpg"]{ object-position:50% 62%; }
.pq-carousel img.pq-slide[src$="salon-principal.jpg"]{ object-position:50% 70%; }
.pq-carousel img.pq-slide[src$="salon-principal.jpg"]{ object-position:50% 85%; }
.hero3 .hero-slide[src$="comedor-vigas.jpg"]{ object-position:50% 72%; }

/* Feedback Lluís 23/10 */
/* Home en móvil: vuelve el titular de entrada; la reseña de Austin queda debajo, pequeña */
@media (max-width:640px){
  .solid8 .hero3 .hero-content{ justify-content:flex-end; text-align:left; }
  .solid8 .hero3 .hero-content .wrap{ margin:0; }
  .solid8 .hero3 .hero-kicker{ display:block; margin-bottom:14px; }
  .solid8 .hero3 .solid-title{ display:block; font-size:2.2rem; line-height:1.08; margin:0 0 18px; }
  .solid8 .hero3 .hero-testimonial.hero-review{ margin:0 0 24px; padding-left:12px; border-left:1px solid rgba(255,255,255,.6); }
  .solid8 .hero3 .hero-review p{ font-family:var(--serif); font-size:.95rem; line-height:1.45; margin-bottom:8px; }
  .solid8 .hero3 .hero-review cite{ font-size:.62rem; }
  .hero3 .hero-ctas{ display:flex; }
  .solid8 .hero3 .hero-content{ padding-bottom:64px; }
}
/* Todas las citas de huéspedes en cursiva */
.nf-slide blockquote p, .photo-quote-text p, .kitchen-review p, .loc-quote p, .uso-quote, .closer blockquote p, .aljibe7-q p, .ph-quote p{ font-style:italic; }
/* Dormitorios: sin línea entre la cama y el nombre, para que el nombre vaya con su foto */
.lc-room-meta{ border-bottom:0; padding-bottom:0; margin-bottom:2px; }
@media (max-width:760px){ .lc-floor-rooms{ gap:44px; } }
/* Espacios entre secciones de La Casa: sin línea y huecos iguales */
.lc-warm3{ border-top:0; }
@media (max-width:640px){
  #incluye{ padding-top:44px; }
  .lc-warm3 .copy{ padding-bottom:0; }
}
/* Jardín: centrar en el banco */
.lc-space-img img[src="casa-jardin-palmeras.jpg"]{ object-position:50% 88%; }
/* Móvil: letra más contenida (más cerca de Airbnb) */
@media (max-width:640px){
  section p:not(blockquote p):not(.uso-quote):not(.hero-kicker), .copy p, .lc-intro3 p, .section-intro p{ font-size:.95rem; line-height:1.6; }
  section h2{ font-size:1.85rem !important; }
}
/* Sin anillo azul al tocar fotos y botones del esquema */
.p9-open:focus:not(:focus-visible), .p7-room:focus:not(:focus-visible), .p7-ic-btn:focus:not(:focus-visible){ outline:0; }
/* Aviso de cookies */
.ck-bar{ position:fixed; left:16px; right:16px; bottom:16px; z-index:9999; max-width:640px; margin:0 auto; background:#fff; color:var(--ink); border:1px solid #e4dfda; box-shadow:0 10px 40px rgba(0,0,0,.14); padding:18px 20px; display:flex; gap:18px; align-items:center; font-family:var(--sans); }
.ck-bar p{ margin:0; font-size:.8rem; line-height:1.5; color:var(--ink-soft); }
.ck-bar a{ color:var(--maroon); }
.ck-btns{ display:flex; gap:8px; flex-shrink:0; }
.ck-btns button{ font-family:var(--sans); font-size:.66rem; font-weight:700; letter-spacing:.14em; padding:11px 16px; cursor:pointer; border:1px solid var(--ink); background:transparent; color:var(--ink); }
.ck-btns .ck-ok{ background:var(--ink); color:#fff; }
@media (max-width:640px){ .ck-bar{ flex-direction:column; align-items:stretch; left:12px; right:12px; bottom:12px; gap:12px; } .ck-btns button{ flex:1; } }
/* Home móvil: bloque abajo a la izquierda, con aire entre título, reseña y botón */
@media (max-width:640px){
  .solid8 .hero3 .hero-content{ align-items:flex-end; padding:0 0 76px; }
  .solid8 .hero3 .hero-content .wrap{ width:100%; box-sizing:border-box; }
  .solid8 .hero3 .solid-title{ font-size:2.75rem; line-height:1.04; letter-spacing:-.01em; margin-bottom:22px; }
  .solid8 .hero3 .hero-kicker{ margin-bottom:16px; }
  .solid8 .hero3 .hero-testimonial.hero-review{ margin-bottom:30px; }
}
