:root{
  --beach-bg:#f6f8fa;
  --beach-surface:#ffffff;
  --beach-border:#e4eaee;
  --beach-text:#10202e;
  --beach-muted:#5f7283;
  --beach-accent:#0d8db8;
  --beach-accent-soft:#eaf6fb;
  --beach-shadow:0 10px 30px rgba(15,23,42,.08);
}
body{background:var(--beach-bg)!important;}
.beaches-shell{padding:20px 18px 38px!important;}
.beaches-intro{max-width:860px;margin:0 0 16px;}
.beaches-intro h1{margin:0 0 8px;font-size:clamp(30px,3.6vw,44px);line-height:1.06;color:var(--beach-text);}
.beaches-intro .lead{margin:0 0 8px;font-size:clamp(16px,1.8vw,18px);line-height:1.45;color:var(--beach-text);font-weight:600;}
.beaches-intro .copy{margin:0;color:var(--beach-muted);font-size:15px;line-height:1.55;}
.beaches-section{margin-top:22px;}
.beaches-section-title{display:flex;align-items:center;gap:12px;margin:0 0 12px;font-size:25px;line-height:1.18;color:var(--beach-text);}
.beaches-section-title::after{content:"";height:1px;flex:1;background:var(--beach-border);}
.beach-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.beach-link{display:block;color:inherit!important;text-decoration:none!important;height:100%;}
.beach-card{height:100%;background:var(--beach-surface);border:1px solid var(--beach-border);border-radius:20px;overflow:hidden;box-shadow:0 8px 22px rgba(15,23,42,.05);transition:transform .18s ease, box-shadow .18s ease,border-color .18s ease;}
.beach-link:hover .beach-card,.beach-link:focus-visible .beach-card{transform:translateY(-3px);box-shadow:var(--beach-shadow);border-color:rgba(13,141,184,.25);}
.beach-card-media{aspect-ratio:16/8.6;overflow:hidden;background:#dfe8ee;}
.beach-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.beach-link:hover .beach-card-media img,.beach-link:focus-visible .beach-card-media img{transform:scale(1.03);}
.beach-card-body{padding:15px;display:flex;flex-direction:column;gap:7px;}
.beach-card-title{margin:0;font-size:24px;line-height:1.22;color:var(--beach-text);font-weight:800;letter-spacing:-.01em;}
.beach-card-desc{margin:0;color:var(--beach-muted);font-size:14px;line-height:1.48;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.beach-card-note{display:inline-flex;align-items:center;gap:8px;margin-top:2px;font-size:14px;font-weight:700;color:var(--beach-accent);}
.beach-card-note svg{width:16px;height:16px;flex:0 0 16px;}
.beaches-map-wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);gap:20px;align-items:stretch;}
.beaches-map-card,.beaches-info-card{background:var(--beach-surface);border:1px solid var(--beach-border);border-radius:20px;box-shadow:0 8px 22px rgba(15,23,42,.05);overflow:hidden;}
.beaches-map-embed{position:relative;min-height:420px;}
.beaches-map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.beaches-map-copy{padding:22px;}
.beaches-map-copy h3{margin:0 0 12px;font-size:24px;line-height:1.25;color:var(--beach-text);}
.beaches-map-copy p{margin:0 0 12px;color:var(--beach-muted);font-size:15px;line-height:1.7;}
.beaches-map-copy p:last-child{margin-bottom:0;}
.beaches-info-card{padding:22px;}
.beaches-info-card h3{margin:0 0 12px;font-size:24px;line-height:1.25;color:var(--beach-text);}
.beaches-info-card ul{margin:0;padding-left:18px;color:var(--beach-muted);display:grid;gap:10px;line-height:1.65;font-size:15px;}
.beaches-image-note{margin:14px 0 0;color:var(--beach-muted);font-size:13px;line-height:1.5;}
@media (max-width:1140px){.beach-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:920px){
  .beach-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .beaches-map-wrap{grid-template-columns:1fr;}
  .beaches-map-embed{min-height:360px;}
}
@media (max-width:640px){
  .beaches-shell{padding:20px 16px 32px!important;}
  .beaches-section{margin-top:22px;}
  .beaches-section-title{font-size:23px;gap:10px;}
  .beach-grid{grid-template-columns:1fr;gap:14px;}
  .beach-card-body{padding:14px;}
  .beaches-map-embed{min-height:300px;}
}
