
/* Consolidated styles: deduplicated and tokenized for consistency */

:root{
  /* colors */
  --brand:#00bcd3; --text:#222; --muted:#667085; --bg:#f5f7fb; --card:#ffffff;
  --footer-bg:#121824;
  /* radii */
  --radius-s:10px; --radius-m:12px; --radius-l:16px; --radius-pill:24px;
  /* spacing */
  --space-1:8px; --space-2:12px; --space-3:16px; --space-4:20px; --space-5:24px; --space-6:28px; --space-8:32px;
  /* shadows */
  --shadow-s:0 4px 12px rgba(2,32,60,.08);
  --shadow-m:0 6px 18px rgba(2,32,60,.12);
  --shadow-l:0 10px 24px rgba(2,32,60,.12);
  /* layout offsets */
  --header-height: 120px; /* no extra space above logo */
  --header-offset: 90px;  /* keep sticky anchors aligned */
}

*{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
body{
  font-family:'Arial Black', Arial, 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', sans-serif;
  background:linear-gradient(180deg, #fff7ea 0%, #f2f6fb 100%);
  color:var(--text);
  padding-top: 0; /* no extra gap above header */
  padding-bottom: 20px; /* small reserve for fixed footer */
}
/* Ensure bold Arial Black across common elements */
html, body, p, h1, h2, h3, h4, h5, h6, a, li, button, input, select, textarea, label, small, strong, em, span{
  font-family:'Arial Black', Arial, 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', sans-serif;
  font-weight:400;
}
/* Make semantic bold tags render unbold */
strong, b{ font-weight:400 !important; }
/* Keep form controls inheriting the font */
input, select, textarea, button{ font-family: inherit; font-weight:400; }
/* Headings and labels should be bold */
h1, h2, h3, h4, h5, h6{ font-weight:700; }
label{ font-weight:700; }

/* Homepage full-width search widget (removed) */

/* Header + Nav */
header{
  position:sticky; top:0; z-index:2000;
  background:rgba(255,255,255,0.85);
  backdrop-filter:saturate(180%) blur(8px);
  border-bottom:1px solid #e7e9ee;
}
nav{ max-width:1200px; margin:0 auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.logo img{ height:120px; width:auto; display:block; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.15)); }
nav ul{ list-style:none; display:flex; gap:20px; margin:0; padding:0; }
nav ul a{ text-decoration:none; color:var(--text); font-weight:400; font-size:1.4rem; }
@media (max-width: 500px){
  nav ul a{ font-size:1.2rem; }
}
nav ul a:hover{ color:var(--brand); }

/* Ensure emoji-capable fallback on property description area */
#prop-desc, #prop-desc *, .desc-toggle{
  font-family:'Arial Black', Arial, 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', sans-serif;
}

.property-card .card-body, .property-card .card-body *, .section-note, .meta, .meta *{
  font-family:'Arial Black', Arial, 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', 'Segoe UI Symbol', sans-serif;
}

/* Mobile nav (hamburger) */
.nav-toggle{ display:none; position:relative; width:44px; height:44px; border:0; background:transparent; cursor:pointer; border-radius:8px; }
.nav-toggle:hover{ background:rgba(0,0,0,0.04); }
.nav-toggle:focus{ outline:2px solid #b3e7ef; outline-offset:2px; }
.nav-toggle .bar{ display:block; width:24px; height:2px; background:var(--text); margin:6px auto; border-radius:2px; transition:transform .22s ease, opacity .18s ease, background .18s ease; transform-origin:center; }
/* Animate into an "X" when menu is open */
nav.open .nav-toggle .bar:nth-child(1){ transform: translateY(8px) rotate(45deg); background:var(--brand); }
nav.open .nav-toggle .bar:nth-child(2){ opacity:0; }
nav.open .nav-toggle .bar:nth-child(3){ transform: translateY(-8px) rotate(-45deg); background:var(--brand); }
header nav{ position:relative; }
/* Desktop preferences row above the pages menu */
.desktop-menu-wrap{ position:relative; display:flex; flex-direction:column; align-items:flex-end; gap:6px; flex:1 1 auto; }
.desktop-preferences{ display:flex; gap:10px; align-items:center; justify-content:flex-end; }
.desktop-preferences .pref-btn{
  appearance:none; -webkit-appearance:none;
  border:1px solid #e3e7ee; background:#fff; color:#333;
  border-radius:999px; padding:4px 10px; line-height:1.1;
  font-size:0.9rem; font-weight:400; cursor:pointer;
}
.desktop-preferences .pref-btn i{ font-size:0.95rem; color:inherit; }
.desktop-preferences .pref-btn:hover{ background:#f7f9fc; border-color:#d6dbe5; }
.desktop-preferences .desktop-socials{ display:flex; gap:12px; align-items:center; margin-left:6px; }
.desktop-preferences .desktop-socials a{ color:#667085; text-decoration:none; font-size:18px; }
.desktop-preferences .desktop-socials a:hover{ color: var(--brand); }
.desktop-menu-wrap #primary-menu{ margin-top:2px; }
.fav-dropdown{ position:absolute; right:20px; top:calc(100% + 6px); background:#fff; border:1px solid #e7e9ee; border-radius:10px; box-shadow:0 10px 24px rgba(2,32,60,0.12); padding:8px; width:min(340px, 90vw); display:none; max-height:60vh; overflow:auto; z-index:7500; }
.fav-dropdown.open{ display:block; }
.fav-dropdown .fav-empty{ padding:10px; color:#667085; font-size:0.95rem; }
.fav-dropdown .fav-item{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:8px; color:inherit; text-decoration:none; }
.fav-dropdown .fav-item:hover{ background:#f7f9fc; }
.fav-dropdown .fav-item img{ width:44px; height:44px; object-fit:cover; border-radius:8px; }

/* Language/Currency dropdown */
.menu-dropdown{ position:absolute; min-width:220px; background:#fff; border:1px solid #e7e9ee; border-radius:10px; box-shadow:0 10px 24px rgba(2,32,60,0.12); padding:6px; display:block; z-index:7500; }
.menu-dropdown .menu-item{ display:block; width:100%; text-align:left; background:#fff; border:none; padding:8px 10px; border-radius:8px; font-size:0.95rem; cursor:pointer; color:#222; }
.menu-dropdown .menu-item:hover{ background:#f0f4fa; }
/* Hide injected mobile socials by default (desktop) */
.mobile-menu-socials{ display:none; }
/* Hide injected mobile preferences by default (desktop) */
.mobile-menu-preferences{ display:none; }
@media (max-width: 768px){
  .desktop-preferences{ display:none; }
  .desktop-menu-wrap{ align-items:stretch; }
  /* Base mobile menu: hidden by default */
  nav ul{
    display:none;
    position:absolute;
    top:100%; right:20px; left:20px;
    flex-direction:column; gap:6px;
    background:#fff; border:1px solid #e7e9ee; border-radius:12px;
    padding:10px; box-shadow:0 12px 28px rgba(0,0,0,0.22);
    z-index:6000;
  }
  /* Open state: full-screen overlay matching footer color */
  nav.open ul{
    display:flex;
    position:fixed; inset:0; width:100vw; height:100vh;
    margin:0; border:0; border-radius:0;
    background: var(--footer-bg);
    box-shadow:none;
    padding: calc(var(--header-height) + 12px) 20px 20px 20px;
    gap:12px;
    overflow:auto;
  }
  .nav-toggle{ display:block; z-index: 7000; pointer-events:auto; touch-action: manipulation; }
  nav ul a{ font-size:1.2rem; padding:12px 12px; border-radius:8px; display:block; }
  nav ul a:hover{ background:rgba(0,188,211,0.10); color:var(--brand); }
  /* White links on dark full-screen menu */
  nav.open ul a{ color:#fff; }
  nav.open ul a:hover{ background: rgba(255,255,255,0.14); color:#fff; }
  /* Mobile menu socials under Contact with a small gap */
  nav.open ul .mobile-menu-socials{ display:flex; padding:6px 4px 0; margin-top:6px; }
  nav.open ul .mobile-menu-socials .mobile-menu-socials-inner{ display:flex; gap:14px; }
  nav.open ul .mobile-menu-socials a{ color:#e8edf5; text-decoration:none; font-size:24px; }
  nav.open ul .mobile-menu-socials a:hover{ color:#00bcd3; }
  /* Mobile menu preferences block */
  nav.open ul .mobile-menu-preferences{ display:block; margin-top:12px; padding:6px 4px 0; }
  nav.open ul .mobile-menu-preferences .mobile-menu-preferences-inner{ display:flex; flex-direction:column; gap:12px; }
  nav.open ul .mobile-menu-preferences .pref-row{ margin:0; }
  nav.open ul .mobile-menu-preferences label{ color:#cfd6e3; font-size:0.9rem; display:block; margin:0 0 6px 2px; }
  /* Match menu button font + color */
  nav.open ul .mobile-menu-preferences select,
  nav.open ul .mobile-menu-preferences .fav-btn{
    width:100%;
    font-family: inherit; font-weight:400; font-size:1.2rem;
    color:#fff;
    background: transparent;
    border:1px solid rgba(255,255,255,0.28);
    border-radius:8px;
    padding:12px;
    outline:none;
  }
  nav.open ul .mobile-menu-preferences select{ appearance:none; font-family: Arial, sans-serif; font-weight:400; font-size:0.95rem; }
  /* Slight indent for language and currency controls */
  nav.open ul .mobile-menu-preferences .pref-row select{ margin-left:10px; width:calc(100% - 10px); }
  nav.open ul .mobile-menu-preferences select:hover,
  nav.open ul .mobile-menu-preferences .fav-btn:hover{
    background: rgba(255,255,255,0.14);
    border-color: rgba(255,255,255,0.4);
  }
  nav.open ul .mobile-menu-preferences select:focus{ border-color:#00bcd3; box-shadow:0 0 0 3px rgba(0,188,211,0.25); }
  nav.open ul .mobile-menu-preferences .fav-btn{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
  nav.open ul .mobile-menu-preferences .fav-btn i{ font-size:18px; color:inherit; }
  /* Mobile favourites list inside hamburger */
  nav.open ul .mobile-menu-preferences .mob-fav-row{ margin-top:6px; }
  nav.open ul .mobile-menu-preferences .mob-fav-list{
    display:none; flex-direction:column; gap:8px;
    background: rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.22);
    border-radius:8px;
    padding:8px;
  }
  nav.open ul .mobile-menu-preferences .mob-fav-list.open{ display:flex; }
  nav.open ul .mobile-menu-preferences .mob-fav-list .fav-empty{
    color:#cfd6e3; font-size:0.95rem; padding:4px 2px;
  }
  nav.open ul .mobile-menu-preferences .mob-fav-list .fav-item{
    display:flex; align-items:center; gap:10px;
    padding:8px; border-radius:8px;
    color:#fff; text-decoration:none;
  }
  nav.open ul .mobile-menu-preferences .mob-fav-list .fav-item:hover{
    background: rgba(255,255,255,0.12);
  }
  nav.open ul .mobile-menu-preferences .mob-fav-list .fav-item img{
    width:40px; height:40px; object-fit:cover; border-radius:8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  }
  /* Favourites count badge */
  .desktop-preferences .fav-btn .fav-count-badge{
    display:inline-block; min-width:18px; padding:2px 6px; margin-left:6px;
    font-size:12px; line-height:1; text-align:center; color:#fff;
    background:#00bcd3; border-radius:999px;
  }
  nav.open ul .mobile-menu-preferences .fav-btn .fav-count-badge{
    display:inline-block; min-width:18px; padding:2px 6px; margin-left:8px;
    font-size:12px; line-height:1; text-align:center; color:#121824;
    background:#fff; border-radius:999px;
  }
  /* Make the toggle button stand out when open */
  nav.open .nav-toggle{ background: rgba(18,24,40,0.10); }
  header nav{ position:relative; z-index: 6500; }
  body.mobile-menu-open{ overflow:hidden; }
}

/* Utility: screen-reader-only */
.sr-only{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

/* Quick search (removed) */
/* Mobile search widget on search page */
.mobile-search{ max-width:1100px; margin:12px auto 8px auto; padding:0 12px; }
@media (max-width: 640px){
  .mobile-search{ display:block !important; }
}

/* Full-bleed Hero */
.hero{
  position:relative;
  background:url('../images/hero-london.jpg') center/cover no-repeat;
  height:64vh; min-height:520px;
  /* escape container for full-bleed */
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw;
  border:none; box-shadow:none; border-radius:0;
  display:flex; align-items:center; justify-content:center;
  padding-bottom: 0; /* align widget bottom exactly with hero bottom */
}
.hero::before{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,188,211,0.35) 0%, rgba(0,0,0,0.35) 100%); }
.hero-inner{ position:relative; width:100%; max-width:1100px; margin:0 auto; padding:0 24px; text-align:center; color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero h1{ font-size:clamp(32px, 6vw, 56px); margin:0 0 12px; text-shadow:0 2px 8px rgba(0,0,0,.35); }
.hero p{ margin:0; text-shadow:0 2px 6px rgba(0,0,0,.30); }
/* removed .hero-search styles (no longer used) */

/* Sections */
main{ padding:0; scroll-margin-top: var(--header-height); }
main section:not(.hero){
  max-width:1200px; width:min(1200px, calc(100% - 48px)); margin:24px auto; text-align:left;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
  border-radius:var(--radius-l); padding:28px; box-shadow:0 8px 24px rgba(2,32,60,0.06); border:1px solid #f0f2f7;
}
@media (max-width:768px){ main section:not(.hero){ width:calc(100% - 32px); margin:16px auto; } }

/* About & Contact as cards */
section.contact{
  max-width:360px; margin:40px auto; padding:16px; background:#fff;
  border:1px solid #eef1f6;
  border-radius:var(--radius-l); box-shadow:0 8px 24px rgba(2,32,60,0.08); text-align:center;
}
section.contact h2{ font-size:1.8rem; margin-bottom:20px; color:#222; text-align:center; }

/* About: Why Choose (fresh layout) */
section.why-choose{
  /* full-bleed section to let cards cover the page */
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:28px 24px 48px;
  background:transparent;
  border:0;
  box-shadow:none;
  text-align:center;
}
section.why-choose .why-inner{ width:100%; margin:0 auto; }
section.why-choose .why-intro{ max-width:900px; margin:0 auto 24px; color:var(--muted); font-size:1.05rem; line-height:1.7; }
section.why-choose h2{ font-size:2.2rem; line-height:1.2; margin:8px 0 24px; color:#222; }
section.why-choose .why-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(420px, 1fr));
  gap:32px;
  max-width:1200px;
  margin:0 auto;
}
section.why-choose .why-card{
  background:#fff;
  border:1px solid #e7e9ee;
  border-radius:16px;
  box-shadow:0 10px 24px rgba(2,32,60,0.08);
  padding:32px;
  min-height:360px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
}
section.why-choose .why-card h3{ font-size:1.4rem; margin:8px 0 10px; color:#222; }
section.why-choose .why-card p{ margin:0; color:var(--muted); font-size:1.05rem; line-height:1.65; max-width:60ch; }
/* Icon circle for cards */
section.why-choose .why-card .icon-circle{
  width:72px; height:72px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background: linear-gradient(180deg, var(--brand) 0%, #009bb0 100%);
  color:#fff; box-shadow:0 10px 24px rgba(0,0,0,0.14);
  font-size:28px; margin:0 auto 10px;
}
@media (max-width: 980px){
  section.why-choose .why-grid{ grid-template-columns: 1fr; max-width:760px; }
}

/* Two-card row: Our Team + Our Mission */
section.why-choose .about-grid-2{
  display:grid;
  grid-template-columns: repeat(2, minmax(420px, 1fr));
  gap:32px; max-width:1200px; margin:32px auto 0;
}
@media (max-width: 980px){
  section.why-choose .about-grid-2{ grid-template-columns: 1fr; max-width:760px; }
}

/* Homepage: About inline block under interstitial */
section.home-about{
  width: min(1200px, calc(100% - 48px));
  margin: 24px auto;
  background:#fff;
  border:1px solid #eef1f6;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(2,32,60,0.08);
  padding:24px;
  text-align:left;
}
section.home-about .home-about-inline{ display:grid; grid-template-columns: 0.95fr 1.05fr; align-items:stretch; justify-items:stretch; gap:64px; }
section.home-about .home-about-inline > p{ width:100%; height:100%; display:flex; align-items:center; }
section.home-about .home-about-inline > p{ width:100%; }
section.home-about p{ margin:0; font-size:1.2rem; line-height:1.6; color:#222; width:100%; }
section.home-about .home-about-img{ width:100%; max-width:100%; height:auto; display:block; border-radius:12px; box-shadow:0 10px 28px rgba(2,32,60,0.14); aspect-ratio: 16 / 9; object-fit: cover; }
@media (max-width: 900px){
  section.home-about .home-about-inline{ grid-template-columns: 1fr; justify-items:stretch; align-items:stretch; gap:48px; }
  section.home-about .home-about-img{ width:100%; max-width:100%; height:auto; }
}

/* Make homepage about image full-bleed on small screens to match featured card width */
@media (max-width: 640px){
  section.home-about .home-about-img{
    width: calc(100% + 48px);
    max-width: none;
    margin-left: -24px;
    margin-right: -24px;
    display: block;
  }
}

/* Interstitial: improve visibility on mobile with background and faint border */
@media (max-width: 640px){
  section.interstitial .interstitial-wrap{
    background: rgba(0,188,211,0.06);
    border:1px solid #dbeff3;
    border-radius:12px;
    padding:12px;
  }
  section.interstitial #widget{
    background: rgba(0,188,211,0.05);
    border:1px solid #dbeff3;
    border-radius:10px;
    padding:8px;
  }
}

/* Remove gap between interstitial widget and about block on homepage */
section.interstitial{ margin-bottom: 0 !important; }
section.home-about{ margin-top: 0 !important; }

/* Property page: header action buttons (favourite/share) */
.prop-header{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.prop-actions{ display:flex; align-items:center; gap:10px; }
.prop-actions .action-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius:999px; border:1px solid #e3e7ee; background:#fff; color:#333;
  cursor:pointer; font-size:0.95rem; font-weight:400;
}
.prop-actions .action-btn i{ font-size:1rem; color:inherit; }
.prop-actions .action-btn:hover{ background:#f7f9fc; border-color:#d6dbe5; }
.prop-actions .action-btn.active{ background:#ffe9ed; border-color:#f0a3af; }

/* Cards */
.property-card{
  background:#fff; border-radius:var(--radius-m); overflow:hidden; box-shadow:var(--shadow-s);
  transition:transform .2s ease, box-shadow .2s ease;
}
.featured-carousel .property-card{ display:flex; flex-direction:column; }
/* Make the entire card (now an anchor) clickable without underline and inherit text color */
.featured-carousel .property-card{ text-decoration:none; color:inherit; cursor:pointer; }
.featured-carousel .property-card .card-body{ display:flex; flex-direction:column; flex:1 1 auto; min-height:200px; gap:16px; }
.featured-carousel .property-card .card-body .btn{
  /* Match search page .book-btn exactly */
  margin-top:auto;
  display:inline-block;
  padding:10px 16px;
  border-radius:24px;
  background:var(--brand);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  min-width:160px;
  text-align:center;
  white-space:nowrap;
}
.featured-carousel .property-card .card-body .btn:hover{ background:#009bb0 }
/* Make homepage featured buttons match search page */
.featured-carousel .property-card .book-btn{ }
.featured-carousel .property-card .book-btn:hover{ }
.property-card:hover{ transform:translateY(-4px); box-shadow:0 8px 22px rgba(0,0,0,.12); }
.property-card img{ width:100%; height:200px; object-fit:cover; display:block; border-top-left-radius:var(--radius-m); border-top-right-radius:var(--radius-m); }
.property-card .card-body{ padding:16px; text-align:left; }
.property-card .card-body h3{ font-size:1.2rem; margin:0 0 8px; color:#222; }
.property-card .card-body p{ font-size:0.95rem; margin:4px 0; color:#555; }
/* Enlarge text on homepage featured cards */
.featured-carousel .property-card .card-body h3{ font-size:clamp(1.2rem, 2.2vw, 1.5rem); }
.featured-carousel .property-card .card-body p{ font-size:clamp(1.05rem, 1.9vw, 1.25rem); line-height:1.6; }
.btn{ display:inline-block; padding:10px 16px; border-radius:var(--radius-pill); background:var(--brand); color:#fff; text-decoration:none; font-weight:400; }
.btn{ min-width: 160px; text-align:center; white-space:nowrap; }
.btn:hover{ background:#009bb0 }

/* Detail */
.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px; margin-top:12px; }
.gallery-grid img{ width:100%; height:200px; object-fit:cover; border-radius:10px; }
/* Property gallery scroller */
.gallery-scroller-wrap{ position:relative; }
.gallery-scroller{ display:flex; overflow-x:auto; scroll-behavior:smooth; gap:12px; padding:4px 0; scroll-snap-type:x mandatory; }
/* All slides fill the viewport width with a consistent hero height */
:root{ --gallery-hero-h: clamp(240px, 40vh, 520px); }
.gallery-scroller img{ flex:0 0 100%; width:100%; height:var(--gallery-hero-h); object-fit:cover; border-radius:12px; scroll-snap-align:center; cursor:zoom-in; }
.gal-btn{ position:absolute; top:50%; transform:translateY(-50%); border:none; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.12); width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:20px; line-height:38px; }
.gal-btn.prev{ left:-12px; }
.gal-btn.next{ right:-12px; }

/* Lightbox */
.lightbox{ position:fixed; inset:0; background:rgba(0,0,0,0.85); display:none; align-items:center; justify-content:center; z-index:9999; }
.lightbox.open{ display:flex; }
.lightbox-inner{ position:relative; max-width:92vw; max-height:92vh; }
.lightbox-img{ max-width:92vw; max-height:92vh; object-fit:contain; border-radius:10px; box-shadow:0 10px 30px rgba(0,0,0,0.4); }
.lightbox-close{ position:absolute; top:-10px; right:-10px; width:36px; height:36px; border:none; border-radius:50%; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,0.25); cursor:pointer; font-size:18px; line-height:36px; }
.lightbox-nav{ position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border:none; border-radius:50%; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,0.25); cursor:pointer; font-size:20px; line-height:40px; }
.lightbox-prev{ left:-56px; }
.lightbox-next{ right:-56px; }
/* removed legacy .tokeet-calendar-widget styling (no longer used) */
.map iframe{ border-radius:12px; box-shadow:0 6px 18px rgba(2,32,60,0.08); }

/* intro two-col removed */

/* Featured carousel */
.featured-carousel{ max-width:1200px; margin:24px auto 100px auto; padding:28px; background:#fff; border-radius:var(--radius-l); box-shadow:0 6px 20px rgba(2,32,60,0.08); text-align:center; }
.featured-carousel h2{ margin:0 0 14px; }
.carousel-wrap{ position:relative; }
.carousel{ display:flex; overflow-x:auto; scroll-behavior:smooth; gap:16px; padding:8px; scroll-snap-type:x mandatory; }
.carousel::-webkit-scrollbar{ height:10px; }
.carousel::-webkit-scrollbar-thumb{ background:#e1e7ef; border-radius:10px; }
.car-btn{ position:absolute; top:50%; transform:translateY(-50%); border:none; background:#fff; box-shadow:0 4px 16px rgba(0,0,0,.12); width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:20px; line-height:38px; }
.car-btn.prev{ left:-12px; } .car-btn.next{ right:-12px; }
.featured-carousel .property-card{ flex:0 0 calc((100% - 32px)/3); min-width:calc((100% - 32px)/3); scroll-snap-align:start; }
.featured-carousel .carousel{ padding:10px 0; }

@media (max-width: 900px){
  .featured-carousel .property-card{ flex:0 0 calc((100% - 16px)/2); min-width:calc((100% - 16px)/2); }
}
@media (max-width: 600px){
  .featured-carousel .property-card{ flex:0 0 100%; min-width:100%; }
}

/* Containers & headings */
.section-container, .container{ max-width:1200px; margin-left:auto; margin-right:auto; padding-left:20px; padding-right:20px; }
.section-title, section h2{ font-size:30px; line-height:1.25; text-align:center; font-weight:700; color:#222; margin:10px 0 18px; }

/* Weather */
section.weather{ display:flex; flex-direction:column; align-items:center; justify-content:center; }
section.weather h2{ text-align:center; }
/* Make weather widget stretch the container width; let script control height */
/* Weather external widget removed: keep container alignment only */
/* Custom weekly weather (Open-Meteo) */
/* removed duplicate .weekly-weather sizing */
.ww-row{ display:flex; align-items:baseline; justify-content:flex-start; gap:10px; }
.ww-temp{ font-size:28px; font-weight:400; color:#222; line-height:1; }
.ww-meta{ font-size:16px; color:#667085; }
.ww-week{ display:grid; grid-template-columns:repeat(7, minmax(100px, 1fr)); gap:12px; margin:12px 0; max-width:100%; }
.ww-day{ background:#fafbfe; border:1px solid #eef1f6; border-radius:10px; padding:12px; min-height:120px; text-align:center; display:flex; flex-direction:column; gap:6px; justify-content:center; }
.ww-day-name{ font-weight:400; color:#333; font-size:14px; }
.ww-day-icon{ font-size:20px; line-height:1; }
.ww-day-temps{ font-size:14px; color:#444; }
.ww-day-pop{ font-size:12px; color:#667085; }
@media (max-width: 900px){ .ww-week{ grid-template-columns:repeat(3, minmax(120px, 1fr)); } }
@media (max-width: 600px){ .ww-week{ grid-template-columns:repeat(2, minmax(120px, 1fr)); } }
/* Widen weather container (and keep featured as-is) */
.weather.section-container{ max-width:1800px; margin:0 auto 220px auto; padding:20px 20px 60px 20px; }
.featured-carousel.section-container{ max-width:1200px; margin:0 auto 100px auto; padding:20px; }

/* Ensure weather widget fully renders regardless of injected DOM structure */
section.weather{ overflow: visible; }
/* Some versions inject the iframe as a sibling of the anchor; do not force height */
/* removed weatherwidget-io overrides (unused) */

/* Ensure homepage buttons use same sizing/color as search page */
.featured-carousel .property-card .card-body a.btn{
  display:inline-block;
  padding:10px 16px;
  border-radius:24px;
  background:var(--brand);
  color:#fff;
  text-decoration:none;
  font-weight:700;
  min-width:160px;
  text-align:center;
  white-space:nowrap;
}
.featured-carousel .property-card .card-body a.btn:hover{ background:#009bb0 }

/* Featured image overlay icons (amenities and counts) */
.featured-carousel .property-card .img-wrap{ position:relative; display:block; }
.featured-carousel .property-card .img-wrap img{ display:block; width:100%; height:auto; border-radius:12px; }
.featured-carousel .property-card .img-icons{
  position:absolute; top:8px; right:8px; display:flex; gap:8px; z-index:2;
}
.featured-carousel .property-card .img-icons i{
  font-size:1rem; color:#fff; background:rgba(0,0,0,0.45); padding:6px; border-radius:999px; backdrop-filter: blur(2px);
}
.featured-carousel .property-card .img-icons .mini-badge{
  display:inline-flex; align-items:center; gap:6px; font-weight:400; color:#fff; background:rgba(0,0,0,0.45); padding:6px 10px; border-radius:999px; font-size:0.85rem;
}
.featured-carousel .property-card .img-icons .mini-badge i{ font-size:0.95rem; color:#fff; }

/* (About page section styles removed for fresh start) */

/* Favourites toggle on cards */
.property-card{ position:relative; }
.property-card .fav-mark{
  position:absolute; top:10px; left:10px;
  width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid rgba(0,0,0,0.15);
  background:rgba(255,255,255,0.9);
  cursor:pointer; z-index:3;
}
.property-card .fav-mark i{ color:#b33; font-size:18px; }
.property-card .fav-mark.active{ background:#ffe9ed; border-color:#f0a3af; }

/* Messages */
.error-msg{ text-align:center; color:#b33; font-weight:400; margin:20px auto; }
.loading-msg{ text-align:center; color:#666; font-style:italic; margin:20px auto; display:flex; justify-content:center; align-items:center; gap:8px; }
.loading-spinner{ border:3px solid #ddd; border-top:3px solid #666; border-radius:50%; width:16px; height:16px; animation:spin 1s linear infinite; }
@keyframes spin{ 0%{ transform:rotate(0deg) } 100%{ transform:rotate(360deg) } }

/* Footer */
/* footer{ background:#f5f5f5; box-shadow:0 -4px 12px rgba(0,0,0,0.06); padding:20px 0; text-align:center; margin-top:32px; } */
/* footer p{ margin:6px 0; color:#555; font-size:0.9rem; } */

/* Utility */
/* removed .sticky-search (unused) */

/* Search Results (Search page) */
.results-list{ max-width:1100px; margin:28px auto; display:grid; grid-template-columns:1fr; gap:18px; }
.results-list .property-card{ display:flex; gap:18px; align-items:stretch; background:#fff; border:1px solid #e7e9ee; border-radius:12px; box-shadow:0 6px 16px rgba(2,32,60,0.08); padding:16px; transition:box-shadow .2s ease, transform .2s ease; text-decoration:none; color:inherit; cursor:pointer; }
.results-list .property-card:hover{ box-shadow:0 10px 24px rgba(2,32,60,0.12); transform:translateY(-2px); }
.results-list .property-card .property-image{ flex:0 0 360px; width:360px; height:240px; background:#f2f2f2; border-radius:12px; object-fit:cover; display:block; }
.results-list .property-card .property-info{ flex:1 1 auto; display:flex; flex-direction:column; justify-content:space-between; }
.results-list .property-card h3{ margin:0 0 8px; font-size:1.25rem; color:#222; }
.results-list .property-card .property-desc{ margin:0 0 10px; color:#555; }
.results-list .property-card .meta{ list-style:none; padding:0; margin:0 0 12px; display:flex; flex-wrap:wrap; gap:12px; color:#667085; font-size:.95rem; }
.results-list .property-card .meta li{ display:flex; align-items:center; gap:6px; }
.results-list .property-card .meta i{ font-size:1.1rem; color:#00bcd3; }
/* removed: .property-actions and .book-btn (unused) */

/* Shared button style to match properties page 'Book Now' */
.btn{ display:inline-block; padding:10px 16px; border-radius:24px; background:var(--brand); color:#fff; text-decoration:none; font-weight:400; }
.btn:hover{ background:#009bb0 }

/* Property detail meta icons under gallery */
.property-detail .prop-meta{
  list-style:none; padding:0; margin:24px 0 16px 0;
  display:flex; flex-wrap:wrap; gap:18px; color:#333;
}
.property-detail .prop-meta li{ display:flex; align-items:center; gap:12px; font-size:1.25rem; }
.property-detail .prop-meta i{ font-size:1.9rem; color:#00bcd3; line-height:1; }
@media (max-width: 640px){
  .property-detail .prop-meta{ gap:14px; }
  .property-detail .prop-meta li{ font-size:1.15rem; }
  .property-detail .prop-meta i{ font-size:1.6rem; }
}

/* Left-align DESCRIPTION heading on property page */
.property-detail h2{ text-align:left !important; }
/* House rules list styling */
#houseRules .rules-list{ margin: 12px 0 0 0; padding-left: 20px; }
#houseRules .rules-list li{ margin: 10px 0; color:#333; }
/* Ensure consistent spacing around section labels on property page */
.property-detail .section-label{ margin: 24px 0 12px; }
/* Extra space above Cancellation Policy section */
.property-detail #cancellationPolicy{ margin-top: 40px; }
.property-detail #cancellationPolicy .separate-sections{ margin-top: 40px !important; }

/* Schedule (check-in/out) block on property page */
.property-detail #schedules{ clear: both; }
.schedule-info{
  margin-top: 10px;
  background:#fff;
  border:1px solid #eef1f6;
  border-radius:12px;
  box-shadow:0 6px 16px rgba(2,32,60,0.06);
  padding:16px;
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:16px;
}
/* Narrow overall spacing between schedule text blocks on property page */
.property-detail .schedule-info{ gap:8px; font-size:0.95rem; }
.property-detail .schedule-info .horario-entrada > div,
.property-detail .schedule-info .horario-salida  > div{
  display:flex; flex-direction:column; align-items:flex-start; gap:2px; flex-wrap:nowrap;
}
/* Normalize spacing between the two schedule blocks and remove stray margins */
.property-detail .schedule-info .horario-entrada,
.property-detail .schedule-info .horario-salida{ margin:0; }
.property-detail .schedule-info .separador-horarios{
  margin:0 4px !important; /* consistent inter-block gap (narrower) */
  border:0; width:1px; background:#eef1f6; align-self:stretch;
}
.property-detail .schedule-info span{ margin:0; }

/* Equal widths so spacing is consistent across properties */
/* Force equal layout using CSS Grid so spacing matches across properties */
.property-detail .schedule-info{ display:grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap:16px !important; align-items:start; }
.property-detail .schedule-info .horario-entrada{ grid-column:1; }
.property-detail .schedule-info .separador-horarios{ display:none !important; }
.property-detail .schedule-info .horario-salida{ grid-column:2; border-left:1px solid #eef1f6; padding-left:12px; }

@media (max-width: 640px){
  .property-detail .schedule-info{ display:block !important; }
  /* Add clear spacing between the two labels on mobile */
  .property-detail .schedule-info .horario-entrada{ margin-bottom:12px !important; }
  .property-detail .schedule-info .horario-salida{ border-left:0; padding-left:0; }
  .property-detail .schedule-info .separador-horarios{ display:block !important; margin:6px 0 !important; height:0; width:auto; }
}

/* Broader mobile/tablet breakpoint to ensure spacing applies */
@media (max-width: 900px){
  .property-detail .schedule-info{ display:block !important; }
  .property-detail .schedule-info .horario-entrada{ margin-bottom:16px !important; }
  .property-detail .schedule-info .separador-horarios{ margin:8px 0 !important; height:0; width:auto; }
}
/* Bold the label line and place it above the details */
.property-detail .schedule-info .horario-entrada > div span:first-child,
.property-detail .schedule-info .horario-salida  > div span:first-child{
  font-weight:700;
  display:block;
}
/* Ensure icons and text sit on the same level */
.schedule-info .sched-icon{ display:inline-flex; align-items:center; justify-content:center; height:36px; }
.property-detail .schedule-info span{ line-height:1.2; }
.schedule-info .horario-entrada,
.schedule-info .horario-salida{
  display:flex;
  align-items:flex-start; /* icon top-aligns with stacked text */
  gap:12px;
  flex:1 1 0;
  min-width:0;
}
.schedule-info img{ width:36px; height:36px; display:block; }
.schedule-info .sched-icon{ font-size:32px; color:var(--brand); line-height:1; flex:0 0 auto; width:36px; text-align:center; }
.schedule-info .separador-horarios{
  border:0;
  width:1px;
  background:#eef1f6;
  align-self:stretch;
  margin:0 8px;
}
@media (max-width: 640px){
  .schedule-info{ flex-direction:column; align-items:flex-start; gap:12px; }
  .schedule-info .separador-horarios{ width:auto; height:0; background:transparent; border-top:1px solid #eef1f6; margin:4px 0; align-self:auto; }
}

@media (max-width: 900px){
  .results-list{ max-width:95%; }
  .results-list .property-card{ padding:12px; gap:12px; }
  .results-list .property-card .property-image{ flex:0 0 45%; width:45%; height:200px; }
}
@media (max-width: 640px){
  .results-list .property-card{ flex-direction:column; }
  .results-list .property-card .property-image{ width:100%; height:220px; }
}

/* Mobile-friendly adjustments */
@media (max-width: 640px){
  /* removed legacy quick-search mobile overrides */

  /* Hero: reduce height on small screens */
  .hero{ height:48vh; min-height:360px; }

/* Property detail map smaller on mobile */
.map iframe#prop-map{ height:240px; }

/* Inline widget widening removed */

  /* (Removed: search-page interstitial + legacy quick search overrides) */
}

/* (modal styles removed – no longer used) */

/* Shared footer (matches homepage) */
/* (Removed: search-page quick search hide, interstitial no longer used) */

/* (About page typography removed) */

/* Weather widget sizing overrides: center and smaller */
.weather.section-container{ max-width:1200px !important; margin:0 auto 40px auto !important; padding:0 20px !important; }
/* Force section content left-aligned (override earlier center rules) */
section.weather{ align-items:flex-start !important; justify-content:flex-start !important; }

/* Weather (Open‑Meteo card) */
.weather.section-container{ max-width:2100px; margin:0 auto 12px auto; padding:24px 28px; }
section.weather h2{ text-align:center; margin:0 0 10px; }
/* removed unused .weather-card */

/* Responsive weekly weather grid */
/* removed duplicate weekly-weather block */

/* Weather widget removed */
/* (Legacy About section styles removed) */

/* Mobile compatibility tweaks */
@media (max-width: 640px){
  :root{ --header-height: 96px; --header-offset: 72px; }
  .logo img{ height: 96px; }
  
  /* Avoid fixed footer covering content on small screens */
  /* removed override for static footer */
  body{ padding-bottom: env(safe-area-inset-bottom); }
  /* Weather tighter on small screens */
  .weather.section-container{ padding: 12px 16px; margin-bottom: 8px; }
  
}
@media (max-width: 420px){
  
}
@media (max-width: 480px){
  .car-btn{ width:32px; height:32px; font-size:18px; }
}
/* Increase gap before weather section */
/* Increased gap is controlled by .featured-carousel.section-container margin-bottom */

/* Explicitly add top margin to weather to ensure visible gap regardless of collapses/overrides */
.weather.section-container{ margin-top: 80px !important; }
@media (max-width: 640px){ .weather.section-container{ margin-top: 40px !important; } }

/* Tighten space between weather widget and footer on homepage */
.weather.section-container{ margin-bottom: 0 !important; padding-bottom: 0 !important; }
/* removed override for static footer */
/* Policy modal card */
.policy-modal{ position:fixed; inset:0; background:rgba(0,0,0,0.6); display:none; align-items:center; justify-content:center; z-index:9999; padding:20px; }
.policy-modal.open{ display:flex !important; }
.policy-card{
  position:relative;
  width: min(560px, 92vw, 85vh);
  height: min(560px, 92vw, 85vh); /* rounded square */
  min-width: 300px;
  min-height: 300px;
  overflow:auto;
  background:#fff;
  border-radius:24px; /* rounded square corners */
  box-shadow:0 18px 40px rgba(0,0,0,0.25);
  padding:24px;
  border:1px solid #e7e9ee;
}
.policy-title{ margin:0 0 10px; font-size:1.5rem; color:#222; text-align:left; }
.policy-content{ color:#333; line-height:1.65; font-size:1rem; text-align:left; margin-top:48px; }
.policy-content h4{ margin:16px 0 6px; font-size:1.1rem; color:#222; text-align:left; }
.policy-close{ position:absolute; top:10px; right:10px; width:32px; height:32px; border:none; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,0.2); cursor:pointer; font-size:18px; line-height:32px; }

/* Booking aside layout under gallery (right aligned, text wraps) */
.booking-aside{
  float:right;
  width:min(380px, 45%);
  margin: 8px 0 16px 20px;
}
.property-detail .booking-aside{ position: sticky; top: var(--header-offset); z-index: 50; }
.property-detail .booking-aside{
  background: rgba(0,188,211,0.06);
  border: 1px solid #dbeff3;
  border-radius: 12px;
  padding: 12px;
}
/* removed legacy #prop-booking rules (widget replaced with direct embeds) */
/* removed legacy .tokeet-calendar-widget max-width (no longer used) */
/* Inner widget surfaces for clarity */
.property-detail .booking-aside .booking-widget{
  background: #ffffff;
  border: 1px solid #e7e9ee;
  border-radius: 10px;
  padding: 8px;
}
@media (max-width: 900px){
  .booking-aside{ float:none; width:100%; margin: 8px 0 16px 0; position: static; }
  /* Ensure non-sticky behavior on mobile for property pages */
  .property-detail .booking-aside{ position: static !important; top: auto !important; }
}
/* removed old .tokeet-search padding rule */

/* Booking widget container and skeleton */
#booking-widget-container { max-width: 350px; }
.booking-widget-host { min-height: 280px; }
.booking-widget-skeleton { border:1px solid #e9eef5; border-radius: var(--radius-l); padding:12px; background:#fff; box-shadow: var(--shadow-l); max-width:350px; }
.booking-widget-skeleton .skeleton-line { height: 14px; background: linear-gradient(90deg, #f0f3f8 0%, #e9eef5 50%, #f0f3f8 100%); background-size: 200% 100%; animation: shimmer 1.2s infinite; border-radius:8px; margin:8px 0; }
.booking-widget-skeleton .skeleton-line.header { height: 18px; width: 70%; }
.booking-widget-skeleton .skeleton-block.cal { height: 160px; border-radius:8px; margin:10px 0; background: linear-gradient(90deg, #f0f3f8 0%, #e9eef5 50%, #f0f3f8 100%); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
.booking-widget-skeleton .skeleton-btn { height: 40px; border-radius: 10px; margin-top: 12px; background: linear-gradient(90deg, #d7f1f4 0%, #c9e9ee 50%, #d7f1f4 100%); background-size: 200% 100%; animation: shimmer 1.2s infinite; }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

 
/* Upper footer (logo + contact + links, no newsletter) */
#upper_footer.upper-footer{ background:var(--footer-bg); border-top:1px solid #0f141e; padding:28px 0; color:#e8edf5; }
.upper-footer-inner{ max-width:1200px; margin:0 auto; padding:0 20px; color:inherit; }
.upper-footer-grid{ display:grid; grid-template-columns: 1.2fr 0.8fr 0.8fr; gap:28px; align-items:start; }
@media (max-width: 900px){ .upper-footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px){ .upper-footer-grid{ grid-template-columns: 1fr; } }
.upper-footer .title{ font-weight:700; margin:0 0 10px; color:#fff; font-size:1.05rem; }
.upper-footer ul{ list-style:none; margin:0; padding:0; }
.upper-footer li{ margin:6px 0; }
.upper-footer a{ color:#e8edf5; text-decoration:none; }
.upper-footer a:hover{ color:#00bcd3; }
.upper-footer-brand img{ height:50px; width:auto; display:block; margin:0 0 12px; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.25)); }
.upper-footer-brand .company-name{ margin:0 0 10px; font-weight:600; color:#fff; }
.upper-footer .contact-line{ margin:6px 0; color:#cfd6e3; }
.upper-footer .contact-line i{ margin-right:8px; color:#00bcd3; }
.upper-footer .copyright{ margin:16px 0 0; color:#a9b3c7; font-size:0.9rem; }
/* Hide brand-local copyright; use bottom bar instead */
/* Separate Quick Links and Help with a subtle divider */
.upper-footer-help{ border-left:1px solid rgba(255,255,255,0.12); padding-left:20px; }
@media (max-width: 900px){ .upper-footer-help{ border-left:0; padding-left:0; border-top:1px solid rgba(255,255,255,0.12); padding-top:12px; margin-top:8px; } }

/* WhatsApp button (like wildroses) */
.upper-footer .widget_inner{ margin:8px 0; }
.upper-footer hr{ border:0; border-top:1px solid rgba(255,255,255,0.12); margin:10px 0; }
.upper-footer hr.whatsapp{ border-color: rgba(0,0,0,0); margin:6px 0 10px; }
.upper-footer a.whatsapp-button{ display:inline-flex; align-items:center; gap:8px; background:#25D366; color:#fff; text-decoration:none; padding:8px 10px; border-radius:10px; box-shadow:0 4px 10px rgba(0,0,0,0.15); transition: transform .12s ease, box-shadow .12s ease; white-space:nowrap; }
.upper-footer a.whatsapp-button:hover{ transform: translateY(-1px); box-shadow:0 6px 14px rgba(0,0,0,0.22); color:#fff; }
.upper-footer .whatsapp-button__image img{ width:20px; height:20px; display:block; }
.upper-footer .whatsapp-button__text{ display:flex; flex-direction:column; line-height:1.2; }
.upper-footer .whatsapp-button__text--text{ font-weight:700; color:#fff; font-size:0.95rem; }
.upper-footer .whatsapp-button__text--number{ color:#eafff3; font-size:0.85rem; }
/* Extra spacing between email and business hours */
.upper-footer .contact-line.hours{ margin-top:12px; }

/* Footer socials aligned bottom-right */
.upper-footer-bottom{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; }
.upper-footer-bottom .copyright{ margin:0; color:#a9b3c7; font-size:0.9rem; }
.upper-footer-socials{ display:flex; gap:14px; justify-content:flex-end; }
.upper-footer-socials a{ color:#e8edf5; text-decoration:none; font-size:24px; }
.upper-footer-socials a:hover{ color:#00bcd3; }

/* (About page typography removed for fresh About page) */

/* Weather widget sizing overrides: center and smaller */
.weather.section-container{ max-width:1200px !important; margin:0 auto 40px auto !important; padding:0 20px !important; }
/* Force section content left-aligned (override earlier center rules) */
section.weather{ align-items:flex-start !important; justify-content:flex-start !important; }

/* Weather (Open‑Meteo card) */
.weather.section-container{ max-width:2100px; margin:0 auto 12px auto; padding:24px 28px; }
section.weather h2{ text-align:center; margin:0 0 10px; }
/* removed unused .weather-card */

/* Responsive weekly weather grid */
.weekly-weather{ width:100%; }
.weekly-weather .ww-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:400; margin:6px 0 10px; }
.weekly-weather .ww-temp{ font-size:1.6rem; }
.weekly-weather .ww-meta{ font-size:0.95rem; color:#667085; }
.weekly-weather .ww-week{ display:grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap:10px; }
.weekly-weather .ww-day{ background:#fff; border:1px solid #e7e9ee; border-radius:10px; padding:10px 8px; text-align:center; box-shadow:0 6px 14px rgba(2,32,60,0.06); }
.weekly-weather .ww-day-name{ font-weight:400; font-size:0.95rem; margin-bottom:4px; }
.weekly-weather .ww-day-icon{ font-size:1.2rem; margin:2px 0; }
.weekly-weather .ww-day-temps{ font-size:0.95rem; font-weight:400; }
.weekly-weather .ww-day-pop{ font-size:0.85rem; color:#667085; margin-top:2px; }
@media (max-width: 640px){
  .weekly-weather .ww-row{ gap:10px; }
  .weekly-weather .ww-temp{ font-size:1.4rem; }
  .weekly-weather .ww-meta{ font-size:0.9rem; }
  .weekly-weather .ww-week{ grid-template-columns: repeat(2, 1fr); gap:8px; }
  .weekly-weather .ww-day{ padding:10px 6px; }
}

/* Weather widget removed */

/* Mobile compatibility tweaks */
@media (max-width: 640px){
  :root{ --header-height: 96px; --header-offset: 72px; }
  .logo img{ height: 96px; }
  
  /* Avoid fixed footer covering content on small screens */
  
  body{ padding-bottom: env(safe-area-inset-bottom); }
  /* Weather tighter on small screens */
  .weather.section-container{ padding: 12px 16px; margin-bottom: 8px; }
 
}
@media (max-width: 420px){
  
}
@media (max-width: 480px){
  .car-btn{ width:32px; height:32px; font-size:18px; }
}
/* Increase gap before weather section */
/* Increased gap is controlled by .featured-carousel.section-container margin-bottom */

/* Explicitly add top margin to weather to ensure visible gap regardless of collapses/overrides */
.weather.section-container{ margin-top: 80px !important; }
@media (max-width: 640px){ .weather.section-container{ margin-top: 40px !important; } }

/* Tighten space between weather widget and footer on homepage */
.weather.section-container{ margin-bottom: 0 !important; padding-bottom: 0 !important; }
/* removed old .tokeet-search padding rule */

 
  body{ padding-bottom: env(safe-area-inset-bottom); }
  /* Weather tighter on small screens */
  .weather.section-container{ padding: 12px 16px; margin-bottom: 8px; }
  
}
@media (max-width: 420px){
  
}
@media (max-width: 480px){
  .car-btn{ width:32px; height:32px; font-size:18px; }
}
/* Increase gap before weather section */
/* Increased gap is controlled by .featured-carousel.section-container margin-bottom */

/* Explicitly add top margin to weather to ensure visible gap regardless of collapses/overrides */
.weather.section-container{ margin-top: 80px !important; }
@media (max-width: 640px){ .weather.section-container{ margin-top: 40px !important; } }

/* Tighten space between weather widget and footer on homepage */
.weather.section-container{ margin-bottom: 0 !important; padding-bottom: 0 !important; }
 










/* removed old .tokeet-search padding rule */

 










/* removed old .tokeet-search padding rule */






/* Contact page: two-column layout and form styling (modeled after wildroses.uk) */


  /* Contact page: two-column layout and form styling (modeled after wildroses.uk) */
.contact-section{ margin: 20px auto 80px auto; }
.contact-section h1{ text-align:left; margin: 10px 0 24px; }
.contact-section .av-contact-wrapper{
  display:grid; grid-template-columns: 1fr 2fr; gap: 24px;
}
@media (max-width: 900px){
  .contact-section .av-contact-wrapper{ grid-template-columns: 1fr; }
}

/* Left column: details + social */
.contact-section .av-contact-social-wrapper{
  background:#fff; border:1px solid #e9eef5; border-radius:12px; box-shadow: var(--shadow-s);
  padding:18px; position:sticky; top: calc(var(--header-offset) + 12px);
}
.contact-section .contact-details{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.contact-section .contact-details li{ display:flex; gap:10px; align-items:flex-start; color:#333; }
.contact-section .contact-details i{ color:var(--brand); margin-top:5px; min-width:18px; }
.contact-section .contact-details a{ color:var(--text); text-decoration:none; }
.contact-section .contact-details a:hover{ color:var(--brand); text-decoration:underline; }
.contact-section .social-links{ list-style:none; padding:0; margin:16px 0 0 0; display:flex; gap:12px; }
.contact-section .social-links a{ width:38px; height:38px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:var(--brand); text-decoration:none; box-shadow: var(--shadow-s); }
.contact-section .social-links a:hover{ background:#009bb0; }

/* Right column: form */
.contact-section .av-contact-form-wrapper{ background:#fff; border:2px solid var(--brand); border-radius:12px; box-shadow: var(--shadow-s); padding:18px; }
.contact-section label > span{ display:block; margin-bottom:8px; color:#222; }
.contact-section .form-control{
  width:100%; height:48px; padding:0 12px; border:1px solid #e3e6ef; border-radius:10px; font-size:1rem; background:#fff;
}
.contact-section textarea.form-control{ height:auto; padding:12px; resize:vertical; min-height:140px; }
.contact-section .its--row{ display:flex; flex-wrap:wrap; gap:16px; }
.contact-section .its--col-md-6{ flex:1 1 calc(50% - 8px); min-width:260px; }
.contact-section .its--col-md-12{ flex:1 1 100%; }
.contact-section .phone_container{ display:flex; gap:8px; align-items:center; }
.contact-section .flecha_select select.form-control{ min-width:110px; }
.contact-section .container-gdpr{ display:flex; flex-direction:column; gap:10px; margin:10px 0; }
.contact-section .acepto{ display:flex; align-items:center; gap:10px; }

/* Buttons (scoped) */
.contact-section .btn{ display:inline-block; padding:12px 18px; border-radius:12px; border:0; cursor:pointer; font-size:1rem; }
.contact-section .btn-primary{ background:var(--brand); color:#fff; box-shadow: var(--shadow-s); }
.contact-section .btn-primary:hover{ background:#009bb0; }
.contact-section .btn-lg{ min-width:160px; }

/* Small help states */
.contact-section input:invalid:focus,
.contact-section select:invalid:focus,
.contact-section textarea:invalid:focus{ outline:2px solid #ffb3b3; }

/* Property details: sections like wildroses */
.property-detail #propertyInfo{ margin-top:24px; }
.property-detail #propertyInfo h3.subtitle-ficha{ font-size:1.15rem; margin:8px 0 8px; color:#222; text-align:left; font-weight:700; }
.property-detail #propertyInfo .separate-sections{ border:none; border-top:1px solid #e9eef5; margin:18px 0; }
.property-detail .section-label{ text-align:left; font-size:1.05rem; font-weight:700; margin:8px 0 6px; text-transform:uppercase; color:#222; }
.property-detail .section-note{ min-height:28px; margin:6px 0 14px; }
/* Bedrooms */
.bedrooms-wrap{ display:flex; flex-direction:column; gap:10px; }
.bedroom-item{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #e9eef5; border-radius:10px; padding:10px 12px; box-shadow: var(--shadow-s); }
.bedroom-item .bed-icons i{ font-size:1.2rem; color:var(--brand); }
.bedroom-item .room-type{ font-weight:400; }
.bedroom-item .bed .bed-type{ color:#333; }
/* Features */
.features{ display:flex; flex-wrap:wrap; gap:10px; }
.feature{ flex:0 0 auto; }
.feature > div{ display:flex; gap:8px; align-items:center; background:#fff; border:1px solid #e9eef5; border-radius:999px; padding:8px 12px; box-shadow: var(--shadow-s); }
.feature i{ color:var(--brand); }
/* Kitchen/Bath/General items */
.kitchen-wrap, .bathrooms-wrap, .general-wrap{ display:flex; flex-wrap:wrap; gap:10px; }
.kitchen-item, .bathroom-item, .general-item{ background:#fff; border:1px solid #e9eef5; border-radius:10px; padding:8px 12px; box-shadow: var(--shadow-s); }
.general-item.more-items{ display:none; }
.show-toggle{ margin-top:10px; }
.show-toggle a{ color:var(--brand); text-decoration:none; margin-right:12px; }
.show-toggle a:hover{ text-decoration:underline; }
/* Show features toggle */
.show-features-toggle{ margin:14px 0; }
.show-features-toggle a{ color:var(--brand); text-decoration:none; margin-right:12px; }
.show-features-toggle a:hover{ text-decoration:underline; }








/* Interstitial: centered under hero */
section.interstitial{ width:100%; display:flex; justify-content:center; margin:0 auto 24px; }
section.interstitial .interstitial-wrap{ width:100%; max-width:700px; margin:0 auto; padding:0 12px; display:flex; justify-content:center; }
section.interstitial #widget{ width:100%; max-width:700px; margin:0 auto; }
/* Ensure injected widget root is centered */
section.interstitial #widget{ display:flex !important; justify-content:center !important; }
section.interstitial #widget > *{ max-width:700px; width:100%; margin:0 auto; }
/* Interstitial widget layout: inputs side-by-side with labels on top */
@media (min-width: 1024px){
  section.interstitial #widget .iw-search-inline-form{
    display:flex !important; flex-wrap:nowrap !important; align-items:flex-end !important; justify-content:center !important; gap:12px !important; width:100%;
  }
  section.interstitial #widget .iw-search-inline-form .iw-row{
    display:flex !important; flex-wrap:nowrap !important; gap:12px !important;
  }
  section.interstitial #widget .iw-col-1{ display:flex !important; align-items:flex-end !important; }
  section.interstitial #widget .iw-form-group{
    display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:6px !important;
  }
  section.interstitial #widget .iw-form-group label{ display:block !important; margin:0 0 4px 0 !important; font-weight:700; }
  section.interstitial #widget .iw-form-control,
  section.interstitial #widget .iw-dropdown-toggle{
    width:auto !important; min-width:150px !important; height:48px !important; border-radius:10px;
  }
  section.interstitial #widget .iw-submit{ display:flex !important; align-items:flex-end !important; }
}

@media (max-width: 1023px){
  section.interstitial #widget .iw-search-inline-form{ flex-wrap:wrap !important; }
  section.interstitial #widget .iw-search-inline-form .iw-row{ flex-wrap:wrap !important; }
  section.interstitial #widget .iw-col-1{ flex:1 1 220px !important; }
  section.interstitial #widget .iw-form-control,
  section.interstitial #widget .iw-dropdown-toggle{ width:100% !important; min-width:0 !important; }
  section.interstitial #widget .iw-submit{ width:100%; }
  section.interstitial #widget .iw-btn-success{ width:100%; }
}


/* Interstitial: sticky only on homepage (desktop) */
body.home section.interstitial{ position: sticky; top: var(--header-offset); z-index: 900; }
@media (max-width: 768px){
  body.home section.interstitial{ position: static; top: auto; }
}





/* Sticky shadow when interstitial is stuck (homepage only) */
body.home section.interstitial.is-stuck{
  box-shadow:
    0 14px 36px rgba(2, 32, 60, 0.22),
    0 4px 12px rgba(2, 32, 60, 0.10);
  background: rgba(255,255,255,0.98);
  border-color: #e9eef5;
  backdrop-filter: saturate(160%) blur(6px);
}

/* Widget labels bold and compact input height */
section.interstitial #widget .iw-form-group label{ font-weight:700 !important; }
section.interstitial #widget .iw-form-control,
section.interstitial #widget .iw-dropdown-toggle{
  height:42px !important; padding:0 10px !important;
}

