:root{
  --paper:#f7f4ee;
  --paper-2:#fffdfa;
  --ink:#2f302d;
  --muted:#6f706b;
  --charcoal:#44443f;
  --terracotta:#a76245;
  --terracotta-dark:#81503c;
  --ocean:#426f80;
  --line:rgba(47,48,45,.16);
  --shadow:0 18px 60px rgba(35,37,34,.12);
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;line-height:1.6}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}
.eyebrow{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--terracotta)}
.serif{font-family:Georgia,"Times New Roman",serif}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;padding:18px 0;color:white;transition:.25s ease;background:linear-gradient(180deg,rgba(16,24,23,.68) 0%,rgba(16,24,23,.32) 62%,rgba(16,24,23,0) 100%);text-shadow:0 1px 4px rgba(0,0,0,.55)}
.site-header.scrolled,.site-header.light{background:rgba(247,244,238,.96);color:var(--ink);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line);text-shadow:none}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;flex-direction:column;line-height:1.05}
.brand strong{font-family:Georgia,"Times New Roman",serif;font-size:1.08rem;letter-spacing:.02em}
.brand span{font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;opacity:.78;margin-top:5px}
.nav-links{display:flex;align-items:center;gap:30px;font-size:.88rem;letter-spacing:.05em}
.nav-links a{opacity:.92}
.nav-links a:hover{opacity:1;color:var(--terracotta)}
.nav-cta{border:1px solid currentColor;padding:10px 15px;border-radius:999px}
.menu-btn{display:none;border:0;background:transparent;color:inherit;font-size:1.5rem;padding:6px}
.hero{min-height:94vh;position:relative;display:flex;align-items:flex-end;color:white;background:#334;overflow:hidden}
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;background-position:center 47%;background-size:cover;background-repeat:no-repeat;opacity:0;transform:scale(1.015);transition:opacity 1.8s ease-in-out,transform 8s ease-out;will-change:opacity,transform}
.hero-slide.active{opacity:1;transform:scale(1)}
.hero:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,26,25,.30) 0%,rgba(18,26,25,.10) 35%,rgba(18,26,25,.22) 52%,rgba(18,26,25,.78) 100%)}
.hero-inner{position:relative;z-index:2;padding:180px 0 76px;max-width:900px;text-shadow:0 2px 12px rgba(0,0,0,.48)}
.hero .eyebrow{color:#fff!important;text-shadow:0 1px 8px rgba(0,0,0,.75)}
.hero .btn{text-shadow:none}
.hero h1{font:400 clamp(3rem,7.4vw,7.3rem)/.95 Georgia,"Times New Roman",serif;margin:12px 0 22px;letter-spacing:-.035em}
.hero-sub{font-size:clamp(1.05rem,2vw,1.42rem);max-width:780px;margin:0 0 28px;color:rgba(255,255,255,.94)}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin:0 0 34px;font-size:.95rem;color:rgba(255,255,255,.9)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-weight:650;font-size:.9rem;letter-spacing:.025em;cursor:pointer;transition:.18s}
.btn-primary{background:var(--terracotta);color:white}.btn-primary:hover{background:var(--terracotta-dark)}
.btn-ghost{border-color:rgba(255,255,255,.65);color:white;background:rgba(255,255,255,.04)}.btn-ghost:hover{background:rgba(255,255,255,.13)}
.btn-outline{border-color:var(--ink);background:transparent}.btn-outline:hover{background:var(--ink);color:var(--paper)}
.section{padding:100px 0}.section-tight{padding:72px 0}.paper2{background:var(--paper-2)}
.intro-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:start}
.intro-grid h2,.section-heading h2{font:400 clamp(2.3rem,4.8vw,4.8rem)/1.02 Georgia,"Times New Roman",serif;letter-spacing:-.025em;margin:10px 0 0}
.lead{font:400 clamp(1.2rem,2vw,1.6rem)/1.5 Georgia,"Times New Roman",serif;color:#484843;margin-top:0}
.prose p{color:#575852;max-width:760px}
.stats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:68px}
.stat{padding:26px 18px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{display:block;font:400 1.8rem Georgia,"Times New Roman",serif}.stat span{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.feature-grid img{width:100%;height:100%;object-fit:cover}.feature-main{min-height:650px}.feature-side{display:grid;gap:18px;grid-template-rows:1fr 1fr}.feature-side img{min-height:316px}
.caption{font-size:.78rem;color:var(--muted);margin-top:9px}
.residence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px 80px;margin-top:54px}
.residence{border-top:1px solid var(--line);padding-top:24px}.residence h3{font:400 2rem Georgia,"Times New Roman",serif;margin:0 0 10px}.residence p{color:#5e5f5a;margin:0}
.quote-section{position:relative;min-height:690px;color:white;background:url('images/full/vistadeangeles-07322.webp') center/cover no-repeat;display:flex;align-items:center}
.quote-section:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,33,31,.78),rgba(24,33,31,.26) 65%,rgba(24,33,31,.06))}
.quote-inner{position:relative;z-index:2;max-width:700px;padding:90px 0}
.quote-inner blockquote{font:400 clamp(2rem,4.4vw,4rem)/1.15 Georgia,"Times New Roman",serif;margin:12px 0 28px}.quote-inner p{max-width:640px;color:rgba(255,255,255,.88)}
.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.location-card{background:var(--paper-2);padding:40px;border:1px solid var(--line);border-radius:3px}.travel{display:grid;gap:18px;margin-top:30px}.travel-row{display:flex;justify-content:space-between;gap:20px;padding-top:16px;border-top:1px solid var(--line)}.travel-row span:last-child{font-weight:650}
.gallery-preview{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:44px}.gallery-preview a{overflow:hidden}.gallery-preview img{height:390px;width:100%;object-fit:cover;transition:transform .35s}.gallery-preview a:hover img{transform:scale(1.025)}
.contact-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}.agent-card{background:#3f413e;color:white;padding:34px}.agent-card .eyebrow{color:#e9b39a}.agent-name{font:400 2rem Georgia,"Times New Roman",serif;margin:8px 0 3px}.agent-role{color:rgba(255,255,255,.72);margin-bottom:22px}.agent-lines{font-size:.92rem;color:rgba(255,255,255,.88);line-height:1.8}.prototype-note{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);font-size:.72rem;color:rgba(255,255,255,.56)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.form input,.form textarea{width:100%;border:0;border-bottom:1px solid #aaa99f;background:transparent;padding:10px 0 12px;outline:none}.form input:focus,.form textarea:focus{border-color:var(--terracotta)}.form .full{grid-column:1/-1}.form textarea{min-height:120px;resize:vertical}.form button{justify-self:start;margin-top:8px}
.footer{padding:38px 0 44px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.page-hero{padding:160px 0 70px;background:var(--paper-2);border-bottom:1px solid var(--line)}.page-hero h1{font:400 clamp(3rem,7vw,6.5rem)/1 Georgia,"Times New Roman",serif;letter-spacing:-.035em;margin:10px 0 16px}.page-hero p{max-width:700px;color:var(--muted);font-size:1.05rem}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 34px}.filter-btn{border:1px solid var(--line);background:transparent;border-radius:999px;padding:9px 14px;cursor:pointer;color:var(--ink)}.filter-btn.active,.filter-btn:hover{background:var(--ink);color:white}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery-item{position:relative;overflow:hidden;background:#eee}.gallery-link{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;cursor:zoom-in;background:#eee}.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}.gallery-link:hover img{transform:scale(1.025)}.zoom-hint{position:absolute;right:12px;bottom:12px;background:rgba(20,24,22,.72);color:#fff;padding:6px 10px;border-radius:999px;font-size:.72rem;letter-spacing:.04em;opacity:0;transition:opacity .2s}.gallery-link:hover .zoom-hint,.gallery-link:focus-visible .zoom-hint{opacity:1}.gallery-item[hidden]{display:none}
.lightbox{position:fixed;z-index:100;inset:0;background:rgba(12,14,13,.94);display:none;align-items:center;justify-content:center;padding:48px}.lightbox.open{display:flex}.lightbox img{display:block;max-height:88vh;max-width:92vw;width:auto;height:auto;object-fit:contain;box-shadow:var(--shadow)}.lb-close,.lb-prev,.lb-next{position:absolute;border:0;background:rgba(255,255,255,.08);color:white;width:46px;height:46px;border-radius:50%;font-size:1.4rem;cursor:pointer}.lb-close{top:22px;right:22px}.lb-prev{left:24px}.lb-next{right:24px}.lb-caption{position:absolute;bottom:17px;color:rgba(255,255,255,.75);font-size:.85rem}
.legal-note{font-size:.82rem;color:var(--muted);border-left:3px solid var(--terracotta);padding-left:16px;margin-top:34px;max-width:780px}
@media(max-width:900px){
  .container{width:min(calc(100% - 28px),var(--max))}.nav-links{display:none;position:absolute;top:68px;left:14px;right:14px;background:var(--paper-2);color:var(--ink);padding:20px;flex-direction:column;align-items:flex-start;gap:18px;box-shadow:var(--shadow)}.nav-links.open{display:flex}.menu-btn{display:block}.site-header:not(.scrolled):not(.light) .nav-links.open{background:rgba(247,244,238,.98)}
  .intro-grid,.location-grid,.contact-wrap{grid-template-columns:1fr;gap:38px}.stats{grid-template-columns:repeat(2,1fr)}.stat{border-bottom:1px solid var(--line)}.feature-grid{grid-template-columns:1fr}.feature-main{min-height:480px}.feature-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.feature-side img{min-height:280px}.residence-grid{grid-template-columns:1fr;gap:34px}.gallery-preview{grid-template-columns:1fr 1fr}.gallery-preview a:first-child{grid-column:1/-1}.gallery-preview img{height:310px}.gallery-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .section{padding:72px 0}.section-tight{padding:56px 0}.hero{min-height:92vh}.hero-slide{background-position:58% 50%}.hero-inner{padding:150px 0 52px}.hero h1{font-size:clamp(3.1rem,15vw,5.2rem)}.hero-meta{font-size:.86rem;gap:7px 15px}.btn{width:100%}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:1.45rem}.feature-main{min-height:360px}.feature-side{grid-template-columns:1fr}.feature-side img{min-height:270px}.quote-section{min-height:620px;background-position:57% center}.gallery-preview{grid-template-columns:1fr}.gallery-preview a:first-child{grid-column:auto}.gallery-preview img{height:270px}.form{grid-template-columns:1fr}.form .full{grid-column:auto}.gallery-grid{grid-template-columns:1fr}.lightbox{padding:18px}.lb-prev{left:10px}.lb-next{right:10px}.page-hero{padding-top:130px}.agent-card{padding:26px}
}


/* Mobile image-flow fix: keep copy in normal document flow and never over photographs. */
@media(max-width:600px){
  .feature-grid{display:block}
  .feature-main{min-height:0;margin:0 0 18px!important}
  .feature-grid .feature-main img,
  .feature-grid .feature-side img{height:auto!important;min-height:0!important;aspect-ratio:auto;object-fit:contain}
  .feature-side{display:block}
  .feature-side img{margin:0 0 18px}
  .feature-grid + .prose{position:static!important;clear:both;margin-top:30px!important}
  .feature-grid + .prose p{position:static!important}
}

/* Gallery viewer v6: robust full-screen viewing across desktop and mobile */
.lightbox{display:none!important;z-index:99999}.lightbox.open{display:flex!important}.lb-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:94vw;max-height:94vh}.lb-stage img{max-width:92vw;max-height:82vh;width:auto!important;height:auto!important;object-fit:contain}.lb-open-original{margin-top:10px;color:#fff;text-decoration:underline;text-underline-offset:3px;font-size:.82rem}.lb-caption{position:static!important;margin-top:10px;text-align:center;max-width:760px}.lightbox-open{overflow:hidden}@media(max-width:640px){.lightbox{padding:56px 12px 42px}.lb-stage img{max-width:96vw;max-height:76vh}.lb-close{top:10px;right:10px}.lb-prev,.lb-next{width:40px;height:40px;background:rgba(0,0,0,.45)}.lb-prev{left:6px}.lb-next{right:6px}}

/* v7: keep outdoor-living text below the image grid at desktop widths */
@media (min-width: 901px){
  .feature-grid{align-items:stretch}
  .feature-main{height:650px;min-height:650px;overflow:hidden}
  .feature-main img{display:block;width:100%;height:650px!important;object-fit:cover}
  .feature-side{height:650px;min-height:650px;grid-template-rows:316px 316px;overflow:hidden}
  .feature-side img{display:block;width:100%;height:316px!important;min-height:0!important;object-fit:cover}
  .feature-grid + .prose{clear:both;position:relative;z-index:1;margin-top:44px!important}
}

/* v9 spreadsheet-driven photo captions */
.gallery-card-caption{padding:11px 4px 17px;background:var(--paper);line-height:1.35}.gallery-card-caption strong{display:block;font:400 1rem/1.25 Georgia,"Times New Roman",serif;color:var(--ink)}.gallery-card-caption span{display:block;margin-top:5px;color:var(--muted);font-size:.79rem;max-width:95%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gallery-item{background:var(--paper)}.gallery-link{aspect-ratio:4/3}.lb-text{color:white;text-align:center;max-width:760px;margin-top:12px}.lb-teaser{font:400 1.25rem/1.2 Georgia,"Times New Roman",serif}.lb-caption{margin-top:5px!important;color:rgba(255,255,255,.78);line-height:1.45}.lb-open-original{opacity:.7}.filters{position:sticky;top:72px;z-index:8;background:rgba(250,248,244,.94);backdrop-filter:blur(8px);padding:10px 0;margin-bottom:22px}
@media(max-width:640px){.gallery-card-caption{padding:10px 2px 18px}.gallery-card-caption span{-webkit-line-clamp:3}.filters{top:61px}}

/* v11 La Manzanilla editorial page */
.story-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:90px;align-items:start}.story-copy{max-width:780px}.story-block{padding:0 0 66px;margin:0 0 66px;border-bottom:1px solid var(--line)}.story-block:last-child{border-bottom:0;margin-bottom:0}.story-block h2{font:400 clamp(2rem,4vw,3.7rem)/1.06 Georgia,"Times New Roman",serif;letter-spacing:-.02em;margin:9px 0 28px}.story-block .prose p:first-child{font-size:1.08rem;color:var(--ink)}.story-aside{position:sticky;top:120px;background:var(--paper-2);border:1px solid var(--line);padding:30px}.story-aside p{color:#5e5f5a}.town-page-hero p{max-width:630px}@media(max-width:900px){.story-layout{grid-template-columns:1fr;gap:30px}.story-aside{position:static;order:-1}.story-block{padding-bottom:48px;margin-bottom:48px}}

/* v12: subtle gallery links and image-copy deterrence */
.residence-link{display:block;color:inherit;text-decoration:none;transform:scale(1);transform-origin:left top;transition:transform .22s ease,opacity .22s ease}.residence-link:hover,.residence-link:focus-visible{transform:scale(1.018)}.residence-link:focus-visible{outline:1px solid var(--line);outline-offset:8px}.residence-link p{color:#5e5f5a}.gallery-item img,.lightbox img,.hero,.quote-section,.town-photo-strip img{-webkit-user-drag:none;user-select:none;-webkit-user-select:none}.town-photo-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:20px 0}.town-photo-strip a{overflow:hidden}.town-photo-strip img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}.town-photo-strip a:hover img{transform:scale(1.025)}.text-link{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px}.text-link:hover{border-color:currentColor}.lb-open-original{display:none!important}@media(max-width:820px){.residence-link:hover{transform:none}.town-photo-strip{grid-template-columns:1fr 1fr}}

/* La Manzanilla editorial photography */
.town-photo-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;background-image:linear-gradient(90deg,rgba(20,25,22,.62),rgba(20,25,22,.16)),var(--town-hero);background-size:cover;background-position:center;color:#fff;border-bottom:0}
.town-photo-hero .container{position:relative;z-index:1;padding-bottom:22px}.town-photo-hero .eyebrow,.town-photo-hero p{color:rgba(255,255,255,.9)}
.story-photo{margin:34px 0 28px}.story-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover}.story-photo figcaption{margin-top:9px;font-size:.78rem;letter-spacing:.03em;color:var(--muted)}
.story-photo-wide{width:calc(100% + 80px);margin-left:-40px}.story-photo-panoramic img{aspect-ratio:16/8.5}.story-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:36px 0 30px}.story-photo-pair .story-photo{margin:0}.story-photo-pair .story-photo img{height:360px;object-fit:cover}.story-photo-pair-asym{grid-template-columns:1.3fr .7fr}.story-photo-closing{width:calc(100% + 160px);margin:52px 0 0 -80px}.story-photo-closing img{aspect-ratio:16/9;max-height:none}.story-continuation:empty{display:none}
@media(max-width:900px){.town-photo-hero{min-height:62vh}.story-photo-wide,.story-photo-closing{width:100%;margin-left:0}.story-photo-pair,.story-photo-pair-asym{grid-template-columns:1fr}.story-photo-pair .story-photo img{height:auto;max-height:520px}}

/* v15 La Manzanilla refinements */
.story-layout{display:block;max-width:980px;margin:0 auto}
.story-copy{max-width:780px;margin:0 auto}
.story-aside{display:none!important}
.town-photo-hero{position:relative;overflow:hidden;background:#29322f;isolation:isolate}
.town-photo-hero .town-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:-2}
.town-photo-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,25,22,.60),rgba(20,25,22,.12));z-index:-1;pointer-events:none}
.story-photo,.story-photo-wide,.story-photo-closing{width:100%;margin-left:0;margin-right:0}
.story-photo-pair{width:100%;margin-left:0;margin-right:0}
@media(max-width:900px){.story-layout,.story-copy{max-width:none}}

/* v19: sunny La Manzanilla hero */
.sunny-town-hero{min-height:78vh;align-items:center;text-align:center}
.sunny-town-hero .town-hero-image{object-position:center 55%}
.sunny-town-hero:after{background:linear-gradient(180deg,rgba(12,30,34,.10),rgba(12,30,34,.20) 45%,rgba(12,30,34,.28))}
.sunny-town-hero .town-hero-copy{padding-top:96px;padding-bottom:42px;display:flex;flex-direction:column;align-items:center}
.sunny-town-hero .eyebrow{font-size:.9rem;letter-spacing:.34em;text-transform:uppercase;margin-bottom:18px;color:#fff}
.sunny-town-hero h1{font-size:clamp(3.5rem,7.5vw,7rem);line-height:.88;max-width:900px;margin:0;text-shadow:0 2px 18px rgba(0,0,0,.18)}
.sunny-town-hero .town-hero-rule{width:72px;height:3px;background:#d69a54;margin:34px 0 26px}
.sunny-town-hero p{font-family:Georgia,serif;font-size:clamp(1.2rem,2vw,1.7rem);max-width:720px;margin:0 auto;text-shadow:0 1px 12px rgba(0,0,0,.24)}
.town-scroll-cue{margin-top:46px;display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;text-transform:uppercase;letter-spacing:.25em}
.town-scroll-cue span{width:38px;height:38px;border:1px solid rgba(255,255,255,.8);border-radius:50%;display:grid;place-items:center;font-size:1.1rem;line-height:1}
.town-scroll-cue small{font-size:.65rem}
@media(max-width:700px){.sunny-town-hero{min-height:72vh}.sunny-town-hero .town-hero-image{object-position:center center}.sunny-town-hero .town-hero-copy{padding-top:80px}.sunny-town-hero h1{font-size:clamp(3rem,15vw,4.7rem)}.town-scroll-cue{margin-top:34px}}
/* v20: show substantially more of the vertical La Manzanilla aerial hero without zooming into town. */
.sunny-town-hero{min-height:82vh;background:#163e4a}
.sunny-town-hero:before{content:"";position:absolute;inset:-24px;background-image:url('images/full/la-manzanilla-hero-sunny.webp');background-size:cover;background-position:center center;filter:blur(18px) saturate(.9) brightness(.72);transform:scale(1.04);z-index:-3}
.sunny-town-hero .town-hero-image{object-fit:contain;object-position:center center;z-index:-2}
.sunny-town-hero:after{background:linear-gradient(180deg,rgba(8,28,34,.08),rgba(8,28,34,.16) 48%,rgba(8,28,34,.24))}
@media(max-width:700px){.sunny-town-hero{min-height:78vh}.sunny-town-hero .town-hero-image{object-fit:cover;object-position:center 42%}.sunny-town-hero:before{display:none}}

/* v21: full-width landscape crop for the La Manzanilla hero.
   Fill the browser width with the actual aerial, preserve the ocean at the top,
   and crop excess height from the lower portion rather than pillarboxing. */
.sunny-town-hero{
  min-height:0;
  height:clamp(620px,72vh,820px);
  width:100%;
  background:#174c60;
}
.sunny-town-hero:before{display:none!important}
.sunny-town-hero .town-hero-image{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.sunny-town-hero:after{
  background:linear-gradient(180deg,rgba(8,28,34,.05),rgba(8,28,34,.12) 48%,rgba(8,28,34,.22));
}
@media(max-width:900px){
  .sunny-town-hero{height:clamp(560px,72vh,740px)}
  .sunny-town-hero .town-hero-image{object-fit:cover;object-position:center 20%}
}
@media(max-width:700px){
  .sunny-town-hero{height:70vh;min-height:560px}
  .sunny-town-hero .town-hero-image{object-fit:cover;object-position:center 22%}
}

/* v22: fixed 4:3 La Manzanilla hero composition.
   The container now keeps the same aspect ratio at every desktop width, so
   browser resizing no longer changes the crop. The portrait aerial is cropped
   consistently to a landscape frame, retaining Pacific water above the coast
   and the long sandy beach toward the bottom. */
.sunny-town-hero{
  width:100%;
  height:auto;
  min-height:0;
  aspect-ratio:4 / 3;
  overflow:hidden;
}
.sunny-town-hero .town-hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 43%;
}
/* Keep the copy vertically balanced inside the fixed frame. */
.sunny-town-hero .town-hero-copy{
  padding-top:7%;
  padding-bottom:5%;
}
/* Phones need their own portrait-friendly frame; desktop/tablet remains 4:3. */
@media(max-width:700px){
  .sunny-town-hero{
    height:auto;
    min-height:0;
    aspect-ratio:4 / 5;
  }
  .sunny-town-hero .town-hero-image{
    object-position:center 42%;
  }
}

/* v23: larger geographic overview in the Costalegre section.
   Reuse the sunny hero aerial in a near-square frame so more ocean above
   the headland and more sandy beach below remain visible. */
.story-photo-coast-overview img{
  width:100%;
  aspect-ratio:1 / 1;
  height:auto;
  object-fit:cover;
  object-position:center 43%;
}
@media(max-width:700px){
  .story-photo-coast-overview img{aspect-ratio:4 / 5;object-position:center 43%;}
}

/* v24: compact mobile gallery filter and Netlify form feedback */
.mobile-filter{display:none;margin:0 0 22px}.mobile-filter label{display:block;margin-bottom:7px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.mobile-filter select{width:100%;appearance:auto;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:12px 14px;font:inherit}.form-status{grid-column:1/-1;min-height:1.5em;margin-top:2px;font-size:.94rem}.form-status.sending{color:var(--muted)}.form-status.success{color:#2f6848}.form-status.error{color:#8b342e}.form button:disabled{opacity:.65;cursor:wait}
@media(max-width:640px){.filters{display:none}.mobile-filter{display:block;position:sticky;top:61px;z-index:8;background:rgba(250,248,244,.96);backdrop-filter:blur(8px);padding:10px 0 12px}.gallery-grid{scroll-margin-top:140px}}
