@font-face { font-family:"Playfair Display"; font-style:normal; font-weight:700; font-display:swap; src:url("fonts/playfair-display-700.b5febda5baa5.ttf") format("truetype"); }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:400; font-display:swap; src:url("fonts/source-sans-3-400.61aa597170ed.ttf") format("truetype"); }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:600; font-display:swap; src:url("fonts/source-sans-3-600.ea6e93d3bd6b.ttf") format("truetype"); }
@font-face { font-family:"Source Sans 3"; font-style:normal; font-weight:700; font-display:swap; src:url("fonts/source-sans-3-700.7b50df116e2e.ttf") format("truetype"); }

:root {
  --brand-navy: #001937;
  --brand-blue: #005bff;
  --brand-blue-deep: #002864;
  --brand-sand: #e6b187;
  --brand-accent: #e6b187;
  --neutral-0: #fff;
  --neutral-50: #f7f8fa;
  --neutral-100: #edf0f5;
  --neutral-200: #dde1e8;
  --neutral-400: #9aa3b2;
  --neutral-600: #5b6270;
  --neutral-800: #22262e;
  --neutral-900: #0e1726;
  --success: #1e7a5a;
  --warning: #8a6410;
  --error: #a32020;
  --shadow-light: 0 1px 2px rgba(0,25,55,.06), 0 2px 8px rgba(0,25,55,.06);
  --shadow-medium: 0 4px 12px rgba(0,25,55,.10);
  --elev-1: 0 1px 2px rgba(0,25,55,.06), 0 2px 8px rgba(0,25,55,.06);
  --elev-2: 0 4px 12px rgba(0,25,55,.10), 0 1px 3px rgba(0,25,55,.08);
  --elev-3: 0 10px 24px rgba(0,25,55,.14), 0 2px 6px rgba(0,25,55,.10);
  --curva: 180ms cubic-bezier(.2,.6,.2,1);
  --focus: 0 0 0 3px rgba(0,91,255,.35);
  --max-width: 1240px;
}
html[data-brand="blanca"] { --brand-accent: #5179d4; }
html[data-brand="calida"] { --brand-accent: #c98a6b; }
* { box-sizing: border-box; }
body { margin: 0; color: var(--brand-navy); font-family: Inter, ui-sans-serif, system-ui, sans-serif; background: var(--neutral-50); }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 0; box-shadow: var(--focus); }
.utility-bar { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding: 6px max(16px, calc((100vw - var(--max-width))/2)); color:#ced8e6; background:var(--brand-navy); font-size:13px; }
.utility-left, .utility-right { display:flex; align-items:center; gap:18px; }.whatsapp-link { display:inline-flex; align-items:center; gap:7px; }.utility-bar .whatsapp-icon-svg { width:15px; height:15px; }
.topbar { min-height: 78px; display: flex; align-items: center; gap: 18px; padding: 0 max(16px, calc((100vw - var(--max-width))/2)); border-bottom: 1px solid var(--neutral-200); background: var(--neutral-0); position: sticky; top: 0; z-index: 10; }
.brand { display: flex; align-items: center; gap: 10px; font-family: Georgia, serif; font-size: 22px; white-space: nowrap; }
.brand img { width: 44px; height: 44px; object-fit: contain; }
.topbar nav { margin-inline-start: 24px; display:flex; align-items:center; gap:18px; font-size:14px; }.topbar nav a { white-space:nowrap; }.nav-divider { width:1px; height:22px; margin-inline:8px; background:var(--neutral-200); }
.private-space-actions { margin-inline-start:auto; display:flex; align-items:center; gap:10px; }.access-link { border:1px solid var(--brand-navy); border-radius:8px; padding:10px 14px; font-weight:700; font-size:14px; white-space:nowrap; }.private-space-link { display:block; width:168px; height:48px; flex:0 0 auto; overflow:hidden; padding:0; border:1px solid rgba(230,177,135,.55); border-radius:8px; }.private-space-link img { display:block; width:100%; height:100%; object-fit:cover; }.private-space-link:focus-visible { outline:0; box-shadow:var(--focus); }
.mobile-nav { display:none; }
.hero { height:700px; position:relative; display:flex; align-items:flex-start; padding:128px 64px 0; color:#fff; background-image:linear-gradient(to right,rgba(0,25,55,.30) 0%,rgba(0,25,55,0) 44%),image-set(url("images/hero-desktop.49a5f0116a03.webp") type("image/webp"),url("images/hero-desktop.a3d06cbf7570.jpg") type("image/jpeg")); background-size:cover; background-position:center; }
.hero-copy { position:relative; z-index:1; max-width:900px; }
.hero-rule { display:block; width:96px; height:6px; margin-bottom:34px; background:#ff9e1b; }
.hero h1, .catalog-hero h1, .detail-summary h1, .confirmation h1 { font: 500 clamp(2.4rem, 4vw, 3.4rem)/1.15 Georgia, serif; margin: 18px 0; letter-spacing: -.01em; }
.language-suggestion{display:flex;gap:12px;justify-content:center;align-items:center;padding:10px 16px;background:#eff6ff;color:#102e54;font-weight:600}.language-suggestion a{text-decoration:underline}.language-suggestion button{border:0;background:transparent;color:inherit;font-size:1.3rem;cursor:pointer}.municipality-content{max-width:820px;margin:0 auto;padding:16px 20px 48px;font-size:1.1rem;line-height:1.7}.municipality-content p{margin:0 0 1.1rem}.catalog-section{padding-bottom:56px}
.hero h1 { margin:0; color:#fff; font-family:"Playfair Display", Georgia, serif; font-size:76px; font-weight:700; line-height:1.02; letter-spacing:-.015em; text-shadow:0 0 40px rgba(0,25,55,.80),0 1px 2px rgba(0,25,55,.60); }
.hero p { max-width:760px; margin:26px 0 0; color:#fff; font-family:"Source Sans 3", Inter, sans-serif; font-size:24px; font-weight:400; line-height:1.35; text-shadow:0 0 24px rgba(0,25,55,.80),0 1px 2px rgba(0,25,55,.60); }
.eyebrow { font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--brand-accent); font-weight: 700; }
.button { display: inline-block; border: 0; border-radius: 8px; background: var(--brand-blue); color: #fff; padding: 15px 22px; margin-top: 22px; font-weight: 700; cursor: pointer; }
.button:disabled { opacity:.55; cursor:default; transform:none; box-shadow:none; transition:none; }
.hero-search-shell { position:relative; z-index:2; width:min(1040px,calc(100vw - 128px)); margin:-64px 0 0 64px; }
.hero-search { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; padding:32px; border-radius:14px; background:#fff; color:var(--brand-navy); box-shadow:var(--shadow-medium); }
.hero-search-tabs { grid-column:1/-1; display:flex; gap:32px; padding-bottom:14px; border-bottom:1px solid var(--neutral-200); font-size:15px; }
.hero-search-tabs a { color:var(--neutral-600); font-weight:600; }.hero-search-tabs .is-active { color:var(--brand-navy); border-bottom:2px solid var(--brand-blue); margin-bottom:-16px; padding-bottom:14px; }
.hero-search select { height:56px; }.hero-search .button { grid-column:1/-1; margin:0; }.hero-search .reference-search { grid-column:1/-1; grid-template-columns:max-content minmax(0,1fr); align-items:center; color:var(--neutral-600); font-weight:400; }
.hero-whatsapp { width:372px; min-height:62px; display:flex; align-items:center; gap:12px; margin-top:26px; padding:10px 16px; color:var(--brand-navy); background:#fff; border-radius:10px; box-shadow:var(--shadow-light); }
.hero-whatsapp strong,.hero-whatsapp small { display:block; font-family:"Source Sans 3", Inter, sans-serif; }.hero-whatsapp strong { font-size:15px; font-weight:600; }.hero-whatsapp small { margin-top:2px; color:var(--neutral-600); font-size:13px; font-weight:400; }.whatsapp-icon { width:30px; height:30px; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; color:#fff; background:#25d366; }.whatsapp-icon-svg { width:70%; height:70%; display:block; }
.whatsapp-float { position:fixed; inset-inline-end:24px; bottom:24px; z-index:30; width:56px; height:56px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#25d366; opacity:1; pointer-events:auto; }
.live-figure { display:flex; align-items:center; justify-content:center; gap:22px; padding:34px 16px; color:#fff; background:var(--brand-blue); text-align:start; }.live-figure b { font:500 clamp(3rem,7vw,5.5rem)/1 Georgia,serif; }.live-figure div { display:grid; gap:5px; }.live-figure span { opacity:.84; }
.content-section { max-width:var(--max-width); margin:auto; padding:72px 16px; }.content-section h2 { margin:0 0 12px; font:500 clamp(2rem,3vw,2.7rem)/1.15 Georgia,serif; }.content-section > p { max-width:760px; font-size:17px; line-height:1.6; color:var(--neutral-600); }.section-soft { max-width:none; padding-inline:max(16px,calc((100vw - var(--max-width))/2)); background:var(--neutral-100); }
.explore-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:26px; }.explore-grid a { display:grid; gap:7px; min-height:104px; align-content:center; padding:20px; border:1px solid var(--neutral-200); border-radius:12px; background:#fff; box-shadow:var(--shadow-light); }.explore-grid a:hover { border-color:var(--brand-blue); }.explore-grid span { color:var(--neutral-600); font-size:14px; }.three-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:30px; }.three-columns article { padding:24px; border:1px solid var(--neutral-200); border-radius:12px; background:#fff; }.three-columns h3 { margin:0 0 10px; font:600 1.2rem Georgia,serif; }.three-columns p { margin:0; color:var(--neutral-600); line-height:1.55; }.service-list { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; }.service-list span { padding:18px; border-radius:9px; background:#fff; border:1px solid var(--neutral-200); }.faq { display:grid; gap:10px; max-width:800px; margin-top:28px; }.faq details { padding:18px 20px; border:1px solid var(--neutral-200); border-radius:10px; background:#fff; }.faq summary { cursor:pointer; font-weight:700; }.faq p { margin:14px 0 0; color:var(--neutral-600); line-height:1.55; }.capture { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.section-head, .catalog-hero { max-width: var(--max-width); margin: auto; padding: 64px 16px 20px; }
.section-head h2, .catalog-hero h1 { font: 500 clamp(1.9rem, 3vw, 2.6rem) Georgia, serif; margin: 10px 0; }
.grid { max-width: var(--max-width); margin: auto; padding: 24px 16px 80px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.pagination { max-width: var(--max-width); margin: -42px auto 80px; padding: 0 16px; display: flex; align-items: center; justify-content: center; gap: 18px; }
.pagination a, .pagination span { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--neutral-200); border-radius: 50%; background: var(--neutral-0); font-size: 20px; }
.pagination span { color: var(--neutral-400); }
.card { background: white; border: 1px solid var(--neutral-200); border-radius: 14px; overflow: hidden; cursor:pointer; }
.image-shell, .detail-visual { display: block; position: relative; overflow: hidden; background: linear-gradient(145deg,var(--neutral-200),var(--brand-blue-deep)); aspect-ratio: 3/2; }
.image-shell img, .detail-visual img { width: 100%; height: 100%; object-fit: cover; }
.card-body { padding: 24px; }
.card h2 { font: 500 1.55rem Georgia, serif; margin: 8px 0 20px; }
.facts { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.text-link { display: block; margin-top: 28px; color: var(--brand-blue-deep); font-weight: 700; }
.filters { max-width: var(--max-width); margin: 20px auto; display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; padding: 20px; background: white; border: 1px solid var(--neutral-200); border-radius: 14px; box-shadow: var(--shadow-light); }
label { display: grid; gap: 7px; font-size: 12px; font-weight: 700; }
input, select { min-width: 0; padding: 12px; border: 1px solid var(--neutral-200); border-radius: 8px; background: white; }
optgroup { color: var(--brand-navy); font-style: normal; font-weight: 700; }
.filters .button { margin: 18px 0 0; }
.detail-hero { display: grid; grid-template-columns: 1.6fr 1fr; align-items: start; background: var(--neutral-100); }
.detail-media { min-width: 0; background: transparent; align-self: start; }
.detail-visual { aspect-ratio: 16/9; min-height: 0; }
.detail-visual img { display: block; position: absolute; inset: 0; }
.gallery-strip { display: flex; gap: 8px; overflow-x: auto; padding: 10px; background: var(--neutral-900); scrollbar-width: thin; }
.gallery-thumb { width: 104px; height: 70px; flex: 0 0 auto; padding: 0; border: 2px solid transparent; border-radius: 7px; overflow: hidden; background: none; cursor: pointer; opacity: .72; }
.gallery-thumb:hover, .gallery-thumb.is-active { opacity: 1; border-color: var(--brand-accent); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.detail-summary { padding: clamp(48px, 5vw, 78px) 5vw; background: var(--neutral-100); align-self: stretch; }
.price { font: 32px Georgia, serif; }
.detail-grid { display: grid; grid-template-columns: 1.5fr .8fr; gap: 8vw; padding: 90px max(24px, calc((100vw - var(--max-width))/2)); background: white; }
.description-sections { display: grid; gap: 30px; margin: 18px 0 48px; }
.description-section { padding-bottom: 28px; border-bottom: 1px solid var(--neutral-200); }
.description-section:last-child { border-bottom: 0; }
.description-section h2 { margin: 0 0 12px; font: 600 1.35rem/1.3 Inter, ui-sans-serif, system-ui, sans-serif; }
.description-section p { margin: 0; max-width: 72ch; color: var(--neutral-800); font-size: 17px; line-height: 1.72; }
.location-connections { margin: 36px 0 50px; }
.location-connections ul { list-style: none; margin: 18px 0 0; padding: 0; border-top: 1px solid var(--neutral-200); }
.location-connections li { padding: 14px 0; border-bottom: 1px solid var(--neutral-200); color: var(--navy); }
.types div { display: flex; justify-content: space-between; padding: 18px 0; border-bottom: 1px solid var(--neutral-200); }
.feature-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 42px; }
.feature-list span { padding: 8px 12px; border-radius: 999px; background: var(--neutral-100); border: 1px solid var(--neutral-200); font-size: 14px; }
aside { background: var(--neutral-100); padding: 30px; height: max-content; position: sticky; top: 100px; border-radius: 14px; }
aside form { display: grid; gap: 15px; }
.check { display: block; font-weight: 400; line-height: 1.4; }
.confirmation { max-width: var(--max-width); margin: auto; padding: 80px 16px; }
.confirmation-reference { font-size: 18px; }
.confirmation-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; margin-top: 48px; }
.confirmation-grid form { display: grid; gap: 16px; background: white; padding: 30px; border-radius: 14px; box-shadow: var(--shadow-light); }
.confirmation fieldset { border: 1px solid var(--neutral-200); border-radius: 8px; display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.confirmation legend { font-weight: 700; padding: 0 8px; }
footer { margin-top:0; color:var(--brand-navy); background:#fff; } .footer-contact-band { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:28px max(16px,calc((100vw - var(--max-width))/2)); color:#fff; background:var(--brand-navy); }.footer-contact-band .eyebrow { display:block; margin-bottom:6px; color:var(--brand-sand); }.footer-contact-band strong { font:600 1.35rem Georgia,serif; }.footer-contact-actions { display:flex; flex-wrap:wrap; gap:18px; }.footer-contact-actions a { text-decoration:underline; text-underline-offset:4px; }.footer-columns { display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px; max-width:var(--max-width); margin:auto; padding:52px 16px; }.footer-columns section p { margin:12px 0 0; color:var(--neutral-600); }.footer-map,.footer-links { display:grid; align-content:start; gap:10px; }.footer-map strong,.footer-links strong { margin-bottom:4px; }.footer-map a,.footer-links a { color:var(--neutral-600); font-size:14px; }.footer-map a:hover,.footer-links a:hover { color:var(--brand-navy); text-decoration:underline; text-underline-offset:3px; }.footer-legal { display:flex; justify-content:space-between; gap:20px; max-width:var(--max-width); margin:auto; padding:18px 16px 26px; color:var(--neutral-600); border-top:1px solid var(--neutral-200); font-size:13px; }.footer-legal a { color:var(--brand-navy); font-weight:700; }
.private-hero { padding: 72px max(24px, calc((100vw - var(--max-width))/2)); display: flex; align-items: end; justify-content: space-between; gap: 32px; color: white; background: linear-gradient(120deg,var(--brand-navy),var(--brand-blue-deep)); }
.private-hero h1 { font: 500 clamp(2.4rem,4vw,3.4rem)/1.15 Georgia,serif; margin: 14px 0; }
.private-expiry { color: var(--neutral-200); font-size: .9rem; }
.private-reference { display: grid; gap: 6px; padding: 18px 22px; border: 1px solid #ffffff44; border-radius: 14px; }
.private-layout { max-width: var(--max-width); margin: auto; padding: 64px 16px 96px; display: grid; grid-template-columns: 1.5fr .7fr; gap: 56px; }
.private-layout article > h2 { font: 500 2.6rem Georgia,serif; }
.private-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; margin: 28px 0 48px; }
.private-gallery img { width: 100%; height: 220px; object-fit: cover; border-radius: 8px; }
.private-gallery img:first-child { height: 448px; grid-row: span 2; }
.private-layout aside hr { margin: 32px 0; border: 0; border-top: 1px solid var(--neutral-200); }
/* The navigation changes only when its rendered labels no longer fit. */
.topbar.use-mobile-nav .desktop-nav { display:none; }
.topbar.use-mobile-nav > .private-space-actions { display:flex; }
.topbar.use-mobile-nav .mobile-nav { display:block; margin-inline-start:0; }
.mobile-nav summary { display:grid; place-content:center; gap:4px; width:46px; height:42px; list-style:none; border:1px solid var(--brand-navy); border-radius:8px; cursor:pointer; }
.mobile-nav summary::-webkit-details-marker { display:none; }
.mobile-nav summary span { width:20px; height:2px; display:block; background:var(--brand-navy); transition:transform 160ms ease; }
.mobile-nav[open] summary span:first-child { transform:translateY(6px) rotate(45deg); }
.mobile-nav[open] summary span:nth-child(2) { opacity:0; }
.mobile-nav[open] summary span:last-child { transform:translateY(-6px) rotate(-45deg); }
.mobile-nav-panel { position:fixed; inset:0; top:122px; z-index:20; display:flex; flex-direction:column; padding:30px 24px; background:var(--neutral-0); box-shadow:var(--shadow-medium); overflow-y:auto; }
.mobile-nav-panel nav { display:grid; margin:0; gap:0; font-size:20px; }
.mobile-nav-panel nav a { padding:18px 0; border-bottom:1px solid var(--neutral-200); }
.mobile-private-space-actions { display:none; gap:12px; margin-top:auto; padding-top:32px; }
.mobile-private-space-actions a { text-align:center; }
@media (max-width: 1024px) {
  .utility-bar { justify-content:center; flex-wrap:wrap; gap:8px 16px; text-align:center; }.topbar { flex-wrap: wrap; padding: 10px 16px; gap: 8px; }
  .brand { font-size: 18px; }
  .languages { order: 3; width: 100%; }
  .languages a { min-width: 44px; padding-inline: 7px; }
  .topbar .desktop-nav, .topbar > .private-space-actions { display:none; }
  .mobile-nav { display:block; margin-inline-start:auto; }
  .mobile-private-space-actions { display:grid; }
  .detail-hero, .detail-grid, .confirmation-grid, .private-layout { grid-template-columns: 1fr; }
  .private-hero { align-items: start; flex-direction: column; }
  .private-gallery { grid-template-columns: 1fr; }
  .private-gallery img, .private-gallery img:first-child { height: 260px; grid-row: auto; }
  .grid { grid-template-columns: repeat(2, 1fr); }
  .filters { grid-template-columns: repeat(2,1fr); }
  .hero-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero-search .button { grid-column:1/-1; }
  .explore-grid { grid-template-columns:repeat(2,1fr); }
  .three-columns,.service-list { grid-template-columns:repeat(2,1fr); }
  aside { position: static; }
  .types div { align-items: start; gap: 12px; flex-direction: column; }
  footer { gap: 16px; flex-direction: column; }
}
@media (max-width: 600px) {
  .footer-contact-band { align-items:flex-start; flex-direction:column; gap:18px; }
  .footer-columns { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 22px; padding-block:36px; }
  .footer-columns > section:first-child { grid-column:1 / -1; }
  .footer-legal { align-items:flex-start; flex-direction:column; gap:8px; }
  .hero { height:470px; padding:72px 22px 0; background-image:linear-gradient(to bottom,rgba(0,25,55,.55) 0%,rgba(0,25,55,0) 55%),image-set(url("images/hero-mobile.6e351e7224ec.webp") type("image/webp"),url("images/hero-mobile.51391f48fa86.jpg") type("image/jpeg")); background-position:center; }
  .hero-rule { width:96px; height:6px; margin-bottom:24px; }
  .hero h1 { font-size:34px; }.hero h1 span { display:block; }
  .hero p { margin-top:20px; font-size:16px; }
  .hero-search-shell { width:calc(100vw - 24px); margin:-28px 0 0 12px; }.hero-search { grid-template-columns:1fr; padding:22px; }
  .hero-search-tabs { gap:20px; font-size:14px; }.hero-search .reference-search { display:grid; grid-template-columns:1fr; }
  .hero-whatsapp { width:100%; }.whatsapp-float { right:16px; bottom:16px; }
  .filters, .confirmation fieldset, .explore-grid,.three-columns,.service-list { grid-template-columns: 1fr; }
}

.whatsapp-float .whatsapp-icon-svg { width:34px; height:34px; }
/* Custom grouped filters: native optgroups are unreadable in macOS/iOS controls. */
.filter-select { position:relative; display:grid; gap:6px; font-size:13px; font-weight:600; }
.filter-select-native { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.filter-select-trigger { min-height:56px; width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; text-align:start; color:var(--brand-navy); background:#fff; border:1px solid var(--neutral-200); border-radius:8px; font:inherit; cursor:pointer; }
.filter-select-trigger:hover { border-color:var(--brand-blue); }
.filter-select-menu { position:absolute; z-index:20; top:calc(100% + 6px); left:0; width:max(100%, 270px); max-height:330px; overflow:auto; padding:8px; background:#fff; border:1px solid var(--neutral-200); border-radius:10px; box-shadow:var(--shadow-medium); }
.filter-select-menu button { display:block; width:100%; padding:9px 10px; border:0; background:transparent; color:var(--brand-navy); text-align:start; font:inherit; font-weight:500; border-radius:6px; cursor:pointer; }
.filter-select-menu button:hover,.filter-select-menu button:focus-visible { background:var(--neutral-100); outline:none; }
.filter-select-menu .filter-select-child { padding-left:26px; color:var(--neutral-700); }
.filter-select-group { margin:12px 10px 4px; padding-top:8px; border-top:1px solid var(--neutral-200); color:var(--brand-navy); font-size:12px; font-weight:700; font-style:normal; }
.filter-select-group:first-of-type { margin-top:4px; padding-top:0; border-top:0; }
/* Strategic projects: the portal is an index; every project keeps its own landing. */
.projects-hero { padding:96px max(24px,calc((100vw - var(--max-width))/2)); color:#fff; background:linear-gradient(120deg,var(--brand-navy),var(--brand-blue-deep)); }
.projects-hero h1 { max-width:760px; margin:12px 0 18px; font:700 clamp(2.8rem,5vw,4.8rem)/1.02 "Playfair Display",Georgia,serif; }
.projects-hero p:not(.eyebrow) { max-width:660px; margin:0; font:400 1.3rem/1.55 "Source Sans 3",sans-serif; }
.projects-index { padding-top:64px; padding-bottom:64px; }
.strategic-project-card { display:grid; grid-template-columns:minmax(280px,1.1fr) 1fr; overflow:hidden; border:1px solid var(--neutral-200); border-radius:16px; background:#fff; cursor:pointer; }
.strategic-project-visual { min-height:330px; display:flex; flex-direction:column; justify-content:flex-end; padding:34px; color:#fff; background:linear-gradient(145deg,rgba(0,25,55,.12),rgba(0,25,55,.7)),linear-gradient(135deg,#8e9caf,#243b59); }
.strategic-project-visual span { font:700 clamp(2.5rem,5vw,4.5rem)/1 "Playfair Display",Georgia,serif; }.strategic-project-visual small { margin-top:10px; font-size:15px; letter-spacing:.14em; text-transform:uppercase; }
.strategic-project-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:48px; }.strategic-project-copy h2,.project-conversation h2 { margin:0 0 14px; font:700 clamp(2rem,3vw,3.1rem)/1.12 "Playfair Display",Georgia,serif; }.strategic-project-copy p:not(.eyebrow),.project-conversation p { max-width:640px; margin:0; color:var(--neutral-600); font-size:17px; line-height:1.6; }
.project-conversation { padding:88px max(24px,calc((100vw - var(--max-width))/2)); }.project-conversation > div { max-width:760px; }
@media (max-width:700px) { .projects-hero { padding:64px 22px; }.strategic-project-card { grid-template-columns:1fr; }.strategic-project-visual { min-height:240px; }.strategic-project-copy { padding:30px 24px; }.project-conversation { padding:64px 22px; } }

.asset-form { display:grid; gap:16px; max-width:680px; margin-top:30px; padding:28px; border:1px solid var(--neutral-200); border-radius:14px; background:#fff; }.asset-form textarea { resize:vertical; min-height:110px; padding:12px; border:1px solid var(--neutral-200); border-radius:8px; font:inherit; }.asset-form .button { width:max-content; }.detail-navigation { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px max(16px,calc((100vw - var(--max-width))/2)); color:var(--neutral-600); background:#fff; border-bottom:1px solid var(--neutral-200); font-size:14px; }.detail-navigation > a { color:var(--brand-navy); font-weight:700; }.detail-navigation span a { text-decoration:underline; text-underline-offset:3px; }
@media (max-width:700px) { .detail-navigation { display:grid; gap:9px; }.detail-navigation span { font-size:12px; }.asset-form { padding:22px; } }

.back-to-top { position:fixed; inset-inline-end:24px; bottom:92px; z-index:29; width:44px; height:44px; display:grid; place-items:center; border-radius:50%; color:var(--brand-navy); background:#fff; border:1px solid var(--neutral-200); font-size:22px; opacity:0; pointer-events:none; transform:translateY(8px); }.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }.strategic-project-visual { position:relative; overflow:hidden; isolation:isolate; }.strategic-project-visual::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(0,25,55,.78),rgba(0,25,55,.04) 65%); }.strategic-project-visual img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }.strategic-project-visual span,.strategic-project-visual small { position:relative; }
@media (max-width:600px) { .mobile-private-space-actions .private-space-link { width:140px; height:40px; } .back-to-top { right:16px; bottom:84px; } }

.form-result { min-height:1.4em; margin:0; color:var(--neutral-600); font-size:14px; }.whatsapp-float.near-footer,.back-to-top.near-footer { transform:translateY(-72px); }

/* One motion language for every surface that opens an action. */
.private-space-link,
.access-link,
.button,
.card,
.hero-whatsapp,
.whatsapp-float,
.back-to-top,
.strategic-project-card {
  box-shadow:var(--elev-1);
  transition:box-shadow var(--curva),transform var(--curva),opacity var(--curva);
  will-change:transform;
}
@media (hover:hover) {
  .private-space-link:hover,
  .access-link:hover,
  .button:hover,
  .card:hover,
  .hero-whatsapp:hover,
  .strategic-project-card:hover { box-shadow:var(--elev-2); transform:translateY(-2px); }
  .whatsapp-float:hover,
  .back-to-top.is-visible:hover { box-shadow:var(--elev-3); transform:translateY(-2px); }
  .whatsapp-float.near-footer:hover,
  .back-to-top.is-visible.near-footer:hover { transform:translateY(-74px); }
}
.private-space-link:active,
.access-link:active,
.button:active,
.card:active,
.hero-whatsapp:active,
.strategic-project-card:active { box-shadow:var(--elev-1); transform:translateY(0); transition-duration:60ms; }
.whatsapp-float:active,
.back-to-top.is-visible:active { box-shadow:var(--elev-1); transform:translateY(0); transition-duration:60ms; }
.whatsapp-float.near-footer:active,
.back-to-top.is-visible.near-footer:active { transform:translateY(-72px); }
@media (prefers-reduced-motion:reduce) {
  .private-space-link,.access-link,.button,.card,.hero-whatsapp,.whatsapp-float,.back-to-top,.strategic-project-card { transition:box-shadow 120ms linear,opacity 120ms linear; }
  .private-space-link:hover,.access-link:hover,.button:hover,.card:hover,.hero-whatsapp:hover,.whatsapp-float:hover,.back-to-top.is-visible:hover,.strategic-project-card:hover { transform:none; }
}

/* Arabic is a complete right-to-left interface, not merely translated text. */
html[dir="rtl"] body { direction:rtl; text-align:start; }
html[dir="rtl"] .detail-navigation { text-align:start; }
html[dir="rtl"] input, html[dir="rtl"] textarea { text-align:start; }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Language selector: column order, button anchor on desktop/tablet, full width on phones. */
.language-picker { position:relative; }.language-picker summary { list-style:none; cursor:pointer; border:1px solid #72839a; border-radius:8px; padding:5px 8px; color:#fff; }.language-picker summary::-webkit-details-marker { display:none; }.language-menu { position:absolute; top:calc(100% + 8px); inset-inline-end:0; z-index:20; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(5,auto); grid-auto-flow:column; width:360px; padding:6px 0; color:var(--brand-navy); background:#fff; border:1px solid var(--neutral-200); border-radius:10px; box-shadow:var(--shadow-medium); }.language-menu a, .language-unavailable { display:grid; grid-template-columns:32px 1fr; gap:8px; align-items:center; padding:10px 14px; font-size:13px; }.language-menu a:hover, .language-menu a[aria-current="page"] { background:var(--neutral-100); }.language-unavailable { color:var(--neutral-400); }
html[dir="rtl"] .language-menu { text-align:start; }
@media (max-width:1024px) {
  .language-menu { width:360px; max-width:100vw; text-align:start; }
}
@media (max-width:560px) {
  .utility-bar { position:relative; }
  .language-picker { position:static; }
  .language-menu { top:100%; inset-inline:0; width:100%; max-width:560px; margin-inline:0; text-align:start; }
}

/* Keep utility groups at opposite edges on tablets; phones retain their wrapping layout. */
@media (min-width:561px) and (max-width:1024px) {
  .utility-bar { justify-content:space-between; }
}

/* Live sister brands share the visitor’s language. */
@media (min-width: 1025px) { .footer-columns-with-brands { grid-template-columns:1.4fr repeat(4,minmax(0,1fr)); } }
.footer-brands p { font-size:14px; }

/* Complete territorial navigation, shared by every page and language. */
.footer-map { grid-column: 1 / -1; align-content: start; scroll-margin-top: 110px; }
.footer-territories { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .65rem 1.5rem; }
.footer-territories a { overflow-wrap: break-word; }
@media (max-width: 600px) { .footer-territories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; } }

/* Shared footer: one hierarchy for all brands, languages and inventory sizes. */
.site-footer { background:var(--brand-navy); color:#fff; border-top:3px solid var(--brand-sand); }
.site-footer .footer-contact-band { max-width:var(--max-width); margin:auto; padding:36px 24px; background:none; gap:28px; }
.footer-identity { flex-shrink:0; }
.site-footer .footer-identity .eyebrow { font-size:11px; letter-spacing:.18em; margin:0 0 12px; }
.site-footer .brand { color:#fff; font-size:clamp(21px,2vw,28px); }
.site-footer .brand img { width:38px; height:38px; filter:brightness(0) invert(1); }
.site-footer .footer-contact-actions { justify-content:flex-end; align-items:center; gap:12px 24px; }
.site-footer .footer-contact-actions a { color:#e3eaf3; font-size:14px; text-decoration:none; padding-block:10px; overflow-wrap:anywhere; }
.site-footer .footer-contact-actions .footer-whatsapp { display:flex; align-items:center; gap:24px; padding:11px 18px; border:1px solid #d7b58c; border-radius:6px; color:#f1d8b9; }
.site-footer .footer-columns { display:grid; grid-template-columns:minmax(0,3fr) minmax(180px,1fr); gap:36px 48px; padding:36px 24px 28px; border-top:1px solid #ffffff24; }
.site-footer .footer-map { grid-column:auto; gap:20px; }
.site-footer .footer-map > strong,.site-footer .footer-links > strong { color:#fff; font-size:15px; font-weight:600; margin:0; }
.site-footer .footer-territories { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px 24px; }
.site-footer .footer-territories a,.site-footer .footer-links a { color:#c3cfdf; font-size:14px; line-height:1.5; text-decoration:none; padding-block:5px; }
.site-footer a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.site-footer a:focus-visible { outline:2px solid #f1d8b9; outline-offset:5px; border-radius:2px; }
.footer-utilities { border-inline-start:1px solid #ffffff24; padding-inline-start:32px; display:grid; align-content:start; gap:28px; }
.site-footer .footer-links { gap:8px; }
.site-footer .footer-sell a { color:#f1d8b9; }
.site-footer .footer-brands { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px; padding-top:24px; border-top:1px solid #ffffff24; }
.site-footer .footer-brand-card { display:flex; align-items:center; justify-content:space-between; gap:36px; padding:14px 18px; border:1px solid #ffffff30; border-radius:6px; min-width:240px; }
.site-footer .footer-brand-card strong { margin:0; color:#e3eaf3; font-weight:500; }
.site-footer .footer-brand-card:hover { background:#ffffff09; border-color:#d7b58c; text-decoration:none; }
.site-footer .footer-legal { border-top:1px solid #ffffff24; padding:20px 24px 28px; color:#aebed1; font-size:12px; }
.site-footer .footer-legal a { color:#d9e3ef; font-weight:500; }
.whatsapp-float.near-footer,.back-to-top.near-footer { visibility:hidden; opacity:0; pointer-events:none; }
@media(min-width:1280px) { .site-footer .footer-territories { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1024px) {
 .site-footer .footer-contact-band { align-items:flex-start; flex-direction:column; gap:20px; }
 .site-footer .footer-contact-actions { justify-content:flex-start; }
 .site-footer .footer-columns { grid-template-columns:minmax(0,2fr) minmax(170px,1fr); gap:28px; }
 .site-footer .footer-territories { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 .site-footer .footer-contact-band { padding:28px 20px; }
 .site-footer .footer-contact-actions { column-gap:20px; row-gap:4px; }
 .site-footer .footer-contact-actions a:last-child { flex-basis:100%; }
 .site-footer .footer-columns { grid-template-columns:minmax(0,1fr); padding:28px 20px 24px; gap:28px; }
 .site-footer .footer-territories { gap:4px 18px; }
 .footer-utilities { border-inline-start:0; padding-inline-start:0; border-top:1px solid #ffffff24; padding-top:24px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
 .site-footer .footer-brand-card { min-width:0; width:100%; }
 .site-footer .footer-brands { gap:10px; }
 .site-footer .footer-legal { padding:18px 20px 24px; flex-direction:row; align-items:center; gap:18px; }
}
