/*
 * SEO landing pages + bottom SEO blocks.
 * Loaded after the main site stylesheet so these pages use the same design system
 * (colors, radii, shadows, buttons and cottage cards) without touching /4-chasa/.
 */

/* ---------- Lower SEO blocks on regular pages ---------- */
.seo-bottom-section{
  padding:64px 0 72px;
  background:var(--sand);
}
.seo-bottom-card{
  width:100%;
  max-width:1120px;
  margin:0 auto;
  padding:42px 46px;
  border:1px solid rgba(24,59,45,.10);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 14px 42px rgba(24,59,45,.08);
}
.seo-rich-text{
  max-width:980px;
  color:var(--ink);
}
.seo-rich-text h2{
  margin:34px 0 14px;
  font-size:clamp(30px,3.4vw,44px);
  line-height:1.08;
  letter-spacing:-.035em;
  color:var(--green);
}
.seo-rich-text h2:first-child{margin-top:0}
.seo-rich-text h3{
  margin:26px 0 10px;
  font-size:23px;
  line-height:1.2;
  color:var(--green2);
}
.seo-rich-text p{
  margin:0 0 16px;
  max-width:960px;
  color:var(--muted);
  font-size:17px;
  line-height:1.72;
}
.seo-bottom-links{
  margin-top:32px;
  padding-top:26px;
  border-top:1px solid rgba(24,59,45,.10);
}
.seo-bottom-links h3{
  margin:0 0 15px;
  font-size:21px;
  color:var(--green);
}
.seo-bottom-links__grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.seo-bottom-links__grid a{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 15px;
  border:1px solid rgba(24,59,45,.08);
  border-radius:999px;
  background:#f5ecd9;
  color:var(--green);
  font-size:14px;
  font-weight:900;
  line-height:1.25;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.seo-bottom-links__grid a:hover{
  transform:translateY(-1px);
  background:#fff;
  box-shadow:0 8px 22px rgba(24,59,45,.10);
}
.seo-bottom-links__grid span{font-size:17px;line-height:1}

/* The beach already has its own page styling; only make the new SEO ending seamless. */
.beach-page > .seo-bottom-section{
  margin-top:0;
  background:#fff7e8;
}
.beach-page > .seo-bottom-section .seo-bottom-card{
  background:#fff;
}

/* ---------- SEO landing hero ---------- */
.seo-landing-hero{
  position:relative;
  min-height:620px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
  background:var(--green);
}
.seo-landing-hero__image,
.seo-landing-hero__shade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.seo-landing-hero__image{
  object-fit:cover;
  object-position:center;
}
.seo-landing-hero__shade{
  background:
    radial-gradient(circle at 78% 22%,rgba(87,191,214,.16),transparent 31%),
    linear-gradient(105deg,rgba(18,52,38,.90) 0%,rgba(18,52,38,.64) 50%,rgba(18,52,38,.28) 100%);
}
.seo-landing-hero__inner{
  position:relative;
  z-index:2;
  width:100%;
  padding-top:180px;
  padding-bottom:76px;
}
.seo-landing-hero__copy{
  max-width:850px;
}
.seo-landing-hero__copy .eyebrow{
  display:inline-flex;
  color:var(--sun);
}
.seo-landing-hero__copy h1{
  max-width:900px;
  margin:0 0 22px;
  font-size:clamp(44px,6vw,76px);
  line-height:.99;
  letter-spacing:-.05em;
  color:#fff;
}
.seo-landing-hero__copy p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:20px;
  line-height:1.55;
}
.seo-landing-hero__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin-top:30px;
}
.seo-landing-hero__actions .btn{
  min-height:50px;
}
.seo-landing-phone{
  display:inline-flex;
  align-items:center;
  min-height:50px;
  padding:0 8px;
  color:#fff;
  font-size:18px;
  font-weight:900;
  white-space:nowrap;
}
.seo-landing-phone:hover{color:var(--sun)}

/* ---------- Benefits ---------- */
.seo-landing-benefits{
  background:var(--sand);
}
.seo-landing-benefits__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.seo-landing-benefits article{
  min-height:190px;
  padding:28px;
  border:1px solid rgba(24,59,45,.08);
  border-radius:var(--radius);
  background:#fff;
  box-shadow:0 12px 35px rgba(24,59,45,.07);
}
.seo-landing-benefits h2{
  margin:0 0 12px;
  color:var(--green);
  font-size:23px;
  line-height:1.12;
  letter-spacing:-.02em;
}
.seo-landing-benefits p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

/* ---------- Cottage selection ---------- */
.seo-landing-options .section-head{
  margin-bottom:30px;
}
.seo-landing-options .section-head p{
  max-width:780px;
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
}
.seo-landing-options .text-link{
  flex:0 0 auto;
  color:var(--green);
}
.seo-landing-cottages{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:stretch;
}
.seo-landing-cottages .cottage-card{
  min-width:0;
}
.seo-landing-cottages .cottage-image-photo{
  background-position:center;
  background-size:cover;
}
.seo-landing-cottages .cottage-body h3 a:hover{
  color:var(--green2);
}

/* ---------- Booking CTA ---------- */
.seo-landing-booking{
  background:var(--sand);
}
.seo-landing-booking__card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:42px 46px;
  border-radius:calc(var(--radius) + 6px);
  background:linear-gradient(135deg,var(--green),var(--green2));
  color:#fff;
  box-shadow:var(--shadow);
}
.seo-landing-booking__card .eyebrow{
  display:inline-flex;
  color:var(--sun);
}
.seo-landing-booking__card h2{
  max-width:760px;
  margin:0 0 12px;
  color:#fff;
  font-size:clamp(32px,4vw,48px);
  line-height:1.06;
  letter-spacing:-.035em;
}
.seo-landing-booking__card p{
  max-width:760px;
  margin:0;
  color:rgba(255,255,255,.80);
  font-size:17px;
  line-height:1.6;
}
.seo-landing-booking__actions{
  display:flex;
  flex:0 0 220px;
  flex-direction:column;
  gap:10px;
}
.seo-landing-booking__actions .btn:first-child{
  background:var(--sun);
  color:#3b2800;
}

/* ---------- FAQ ---------- */
.seo-landing-faq .section-head{
  margin-bottom:28px;
}
.seo-landing-faq__list{
  display:grid;
  max-width:1000px;
  gap:10px;
}
.seo-landing-faq details{
  overflow:hidden;
  padding:0 22px;
  border:1px solid rgba(24,59,45,.09);
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 25px rgba(24,59,45,.04);
}
.seo-landing-faq summary{
  position:relative;
  cursor:pointer;
  padding:19px 42px 19px 0;
  color:var(--green);
  font-size:17px;
  font-weight:900;
  list-style:none;
}
.seo-landing-faq summary::-webkit-details-marker{display:none}
.seo-landing-faq summary::after{
  content:'+';
  position:absolute;
  top:50%;
  right:2px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f5ecd9;
  color:var(--green);
  transform:translateY(-50%);
  font-size:20px;
  line-height:1;
}
.seo-landing-faq details[open] summary::after{content:'−'}
.seo-landing-faq details p{
  margin:0;
  padding:0 0 20px;
  color:var(--muted);
  line-height:1.65;
}

/* Keep the long text visually separate from the commercial landing blocks. */
.seo-landing-bottom{
  background:#fff;
}
.seo-landing-bottom .seo-bottom-card{
  background:#fffaf0;
  box-shadow:none;
}

/* ---------- Tablet ---------- */
@media (max-width:980px){
  .seo-landing-hero{min-height:560px}
  .seo-landing-hero__inner{padding-top:150px;padding-bottom:58px}
  .seo-landing-benefits__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seo-landing-cottages{grid-template-columns:repeat(2,minmax(0,1fr))}
  .seo-landing-booking__card{align-items:flex-start;flex-direction:column}
  .seo-landing-booking__actions{width:100%;flex:0 0 auto;flex-direction:row}
  .seo-landing-booking__actions .btn{flex:1}
}

/* ---------- Mobile ---------- */
@media (max-width:640px){
  .seo-bottom-section{padding:42px 0 48px}
  .seo-bottom-card{padding:25px 19px;border-radius:22px}
  .seo-rich-text h2{margin-top:28px;font-size:27px}
  .seo-rich-text h3{font-size:20px}
  .seo-rich-text p{font-size:15px;line-height:1.68}
  .seo-bottom-links{margin-top:26px;padding-top:22px}
  .seo-bottom-links__grid{display:grid;grid-template-columns:1fr}
  .seo-bottom-links__grid a{border-radius:14px}

  .seo-landing-hero{min-height:530px}
  .seo-landing-hero__shade{
    background:linear-gradient(0deg,rgba(18,52,38,.94) 0%,rgba(18,52,38,.68) 62%,rgba(18,52,38,.34) 100%);
  }
  .seo-landing-hero__inner{padding-top:126px;padding-bottom:40px}
  .seo-landing-hero__copy h1{font-size:40px;line-height:1.02}
  .seo-landing-hero__copy p{font-size:17px;line-height:1.5}
  .seo-landing-hero__actions{align-items:stretch;flex-direction:column;margin-top:24px}
  .seo-landing-hero__actions .btn,
  .seo-landing-phone{width:100%;justify-content:center;text-align:center}

  .seo-landing-benefits__grid{grid-template-columns:1fr}
  .seo-landing-benefits article{min-height:0;padding:22px}
  .seo-landing-benefits h2{font-size:21px}

  .seo-landing-options .section-head.row-head{display:block}
  .seo-landing-options .text-link{display:inline-block;margin-top:14px}
  .seo-landing-cottages{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}

  .seo-landing-booking__card{padding:28px 21px;border-radius:24px}
  .seo-landing-booking__card h2{font-size:31px}
  .seo-landing-booking__card p{font-size:15px}
  .seo-landing-booking__actions{flex-direction:column}

  .seo-landing-faq details{padding:0 16px;border-radius:16px}
  .seo-landing-faq summary{padding:17px 38px 17px 0;font-size:16px}
}

@media (max-width:390px){
  .seo-landing-hero__copy h1{font-size:36px}
  .seo-landing-cottages{grid-template-columns:1fr}
}

/* v2 — SEO landing hero uses the same service-hero system as the main site. */
.seo-landing-hero{
  min-height:860px;
  height:860px;
  display:block;
  align-items:initial;
  background:#173d30;
}
.seo-landing-hero .hero-media,
.seo-landing-hero .hero-slider,
.seo-landing-hero .hero-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.seo-landing-hero .hero-slide{
  object-fit:cover;
  object-position:center;
  opacity:1!important;
}
/* Soft hero darkening in the same direction as the home-page hero. */
.service-hero__overlay,
.seo-landing-hero .service-hero__overlay,
.service-hero--beach .service-hero__overlay{
  display:block!important;
  background:linear-gradient(90deg,
    rgba(3,12,9,.56) 0%,
    rgba(5,16,12,.44) 24%,
    rgba(5,16,12,.26) 42%,
    rgba(5,16,12,.11) 58%,
    rgba(5,16,12,.03) 72%,
    rgba(5,16,12,0) 100%)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none;
}
.seo-landing-hero__inner{
  width:min(1180px,calc(100% - 40px));
  height:860px;
  min-height:860px;
  padding-top:82px;
  padding-bottom:58px;
}
.seo-landing-hero__copy{
  width:min(760px,100%);
  max-width:760px;
  color:#fff;
  filter:drop-shadow(0 3px 15px rgba(0,0,0,.58));
}
.seo-landing-hero__copy h1{
  max-width:760px;
  margin:0 0 20px;
  font-size:clamp(50px,6vw,76px);
  line-height:.98;
  letter-spacing:-.05em;
  color:#fff;
}
.seo-landing-hero__copy p{
  max-width:700px;
  margin:0 0 30px;
  color:#fff;
  font-size:20px;
  line-height:1.55;
  text-shadow:0 2px 12px rgba(0,0,0,.72);
}
.seo-landing-hero__actions{
  margin-top:0;
}
.seo-landing-phone{
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,.65);
}

/* Compact footer after adding SEO landing pages. */
.site-footer .footer-grid{
  grid-template-columns:minmax(220px,.95fr) minmax(170px,.72fr) minmax(430px,1.7fr) minmax(170px,.72fr);
  column-gap:38px;
  row-gap:28px;
  align-items:start;
}
.site-footer .footer-about{
  min-width:0;
  padding-right:10px;
}
.site-footer .footer-brand{
  gap:13px;
  margin-bottom:12px;
}
.site-footer .footer-brand-logo{
  flex-basis:88px;
  width:88px;
  height:88px;
}
.site-footer .footer-brand-copy b{
  font-size:24px;
  line-height:1.04;
}
.site-footer .footer-brand-copy small{
  max-width:178px;
  margin-top:6px;
  font-size:11px;
  line-height:1.3;
}
.site-footer .footer-about > p{
  max-width:245px;
  margin:0;
  font-size:13px;
  line-height:1.5;
}
.site-footer .footer-contacts{
  min-width:0;
}
.site-footer .footer-contacts h3,
.site-footer .footer-sections > h3{
  margin:0 0 12px;
  font-size:18px;
  line-height:1.2;
}
.site-footer .footer-contacts p{
  margin:0 0 9px;
  font-size:13px;
  line-height:1.5;
}
.site-footer .footer-contacts a{
  font-size:13px;
  line-height:1.5;
}
.site-footer .footer-sections{
  min-width:0;
}
.site-footer .footer-links{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 18px;
  margin:0;
}
.site-footer .footer-links__column{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:5px;
}
.site-footer .footer-links a{
  display:block;
  min-width:0;
  padding:1px 0;
  color:rgba(255,255,255,.72);
  font-size:12.5px;
  line-height:1.28;
}
.site-footer .footer-links a:hover{
  color:#fff;
}

@media(max-width:1180px){
  .site-footer .footer-grid{
    grid-template-columns:minmax(220px,1fr) minmax(170px,.75fr) minmax(390px,1.55fr);
    column-gap:34px;
  }
  .site-footer .footer-community{
    grid-column:1/-1;
    padding-top:2px;
  }
}
@media(max-width:980px){
  .seo-landing-hero,
  .seo-landing-hero__inner{height:760px;min-height:760px}
  .seo-landing-hero__inner{padding-top:118px;padding-bottom:42px}
  .seo-landing-hero__copy h1{font-size:clamp(46px,8vw,66px)}
  .service-hero__overlay,
  .seo-landing-hero .service-hero__overlay,
  .service-hero--beach .service-hero__overlay{
    background:linear-gradient(90deg,rgba(3,12,9,.60) 0%,rgba(5,16,12,.46) 42%,rgba(5,16,12,.18) 72%,rgba(5,16,12,.05) 100%)!important;
  }
  .site-footer .footer-grid{
    grid-template-columns:1fr 1fr;
    column-gap:30px;
  }
  .site-footer .footer-sections{
    grid-column:1/-1;
  }
  .site-footer .footer-links{
    max-width:720px;
    gap:0 26px;
  }
  .site-footer .footer-community{
    grid-column:1/-1;
  }
}
@media(max-width:640px){
  .seo-landing-hero,
  .seo-landing-hero__inner{height:650px;min-height:650px}
  .seo-landing-hero__inner{
    width:min(100% - 24px,1180px);
    padding-top:106px;
    padding-bottom:28px;
  }
  .seo-landing-hero__copy h1{font-size:clamp(40px,12vw,54px)}
  .seo-landing-hero__copy p{font-size:17px}
  .service-hero__overlay,
  .seo-landing-hero .service-hero__overlay,
  .service-hero--beach .service-hero__overlay{
    background:linear-gradient(90deg,rgba(3,12,9,.64) 0%,rgba(5,16,12,.48) 56%,rgba(5,16,12,.22) 100%)!important;
  }
  .site-footer .footer-grid{
    grid-template-columns:1fr;
    row-gap:24px;
  }
  .site-footer .footer-about{
    padding-right:0;
  }
  .site-footer .footer-brand-logo{
    flex-basis:76px;
    width:76px;
    height:76px;
  }
  .site-footer .footer-brand-copy b{font-size:22px}
  .site-footer .footer-contacts h3,
  .site-footer .footer-sections > h3{font-size:17px}
  .site-footer .footer-sections,
  .site-footer .footer-community{
    grid-column:auto;
  }
  .site-footer .footer-links{
    grid-template-columns:1fr;
    max-width:none;
    gap:18px;
  }
  .site-footer .footer-links__column{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px 18px;
  }
  .site-footer .footer-links a{font-size:12px}
}
@media(max-width:420px){
  .site-footer .footer-links__column{
    grid-template-columns:1fr;
  }
}

/* v8: commercial blocks on SEO pages */
.seo-landing-event-menu .section-head p,
.sitewide-offers .section-head p{
  max-width:760px;
  margin:8px 0 0;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
}
.seo-landing-event-menu__list{
  margin-top:28px;
}
.sitewide-offers{
  border-top:1px solid rgba(24,59,45,.06);
}
.sitewide-offers .promo-media-grid{
  margin-top:30px;
}
@media(max-width:640px){
  .seo-landing-event-menu .section-head p,
  .sitewide-offers .section-head p{
    font-size:15px;
  }
  .seo-landing-event-menu .text-link,
  .sitewide-offers .text-link{
    display:inline-block;
    margin-top:14px;
  }
}
