/* =========================================================
   GOLDEN SANDS — PROFESSIONAL UI FIXES v3
   Final cascade layer. Fixes contrast, spacing, section balance,
   navigation clarity, card proportions and responsive behaviour.
   ========================================================= */

:root{
  --gs-navy:#073642;
  --gs-navy-2:#0a4b56;
  --gs-teal:#0c8790;
  --gs-teal-bright:#17a6a8;
  --gs-aqua:#82ded8;
  --gs-aqua-soft:#e6f8f5;
  --gs-cream:#fbf8f1;
  --gs-paper:#ffffff;
  --gs-sand:#f4eadc;
  --gs-gold:#dca448;
  --gs-ink:#102f35;
  --gs-copy:#5b7072;
  --gs-line:rgba(7,54,66,.13);
  --gs-shadow-sm:0 14px 38px rgba(7,54,66,.09);
  --gs-shadow:0 24px 64px rgba(7,54,66,.14);
}

/* ---------- Global rhythm and typography ---------- */
body.gs-tideglass{
  background:#f8fbfa!important;
  color:var(--gs-ink)!important;
  overflow-x:hidden;
}
body.gs-tideglass p{color:var(--gs-copy)!important}
body.gs-tideglass h1,
body.gs-tideglass h2,
body.gs-tideglass h3,
body.gs-tideglass h4{color:var(--gs-ink);text-wrap:balance}
body.gs-tideglass .container{width:min(1240px,calc(100% - 48px))!important}
body.gs-tideglass .section{padding-block:96px!important}
body.gs-tideglass .lead{font-size:17px!important;line-height:1.75!important}
body.gs-tideglass .eyebrow{color:var(--gs-teal)!important}
body.gs-tideglass .eyebrow.light{color:#bdeeea!important}
body.gs-tideglass .section-head.center{max-width:920px!important;margin-bottom:44px!important}
body.gs-tideglass .section-head.center h2{max-width:850px;margin-inline:auto}
body.gs-tideglass .btn{font-size:11px!important;letter-spacing:.075em!important;min-height:50px!important}

/* ---------- Header: clear active state, better spacing ---------- */
body.gs-tideglass .luxury-topbar{
  background:var(--gs-navy)!important;
  border-top:3px solid rgba(220,164,72,.65)!important;
}
body.gs-tideglass .luxury-topbar .topbar-inner{min-height:43px!important}
body.gs-tideglass .luxury-header{
  background:rgba(255,255,255,.97)!important;
  border-bottom:1px solid var(--gs-line)!important;
  box-shadow:0 8px 28px rgba(7,54,66,.07)!important;
}
body.gs-tideglass .luxury-header .nav-wrap{min-height:92px!important;gap:28px!important}
body.gs-tideglass .luxury-header .brand img{width:252px!important;height:68px!important}
body.gs-tideglass .luxury-header .main-nav{
  gap:3px!important;
  padding:6px!important;
  background:#f7fbfa!important;
  border:1px solid rgba(7,54,66,.10)!important;
  box-shadow:none!important;
}
body.gs-tideglass .luxury-header .main-nav>a:not(.btn){
  min-height:42px!important;
  padding-inline:13px!important;
  color:#24464b!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  transform:none!important;
  font-size:10px!important;
}
body.gs-tideglass .luxury-header .main-nav>a:not(.btn):hover{
  color:var(--gs-teal)!important;
  background:var(--gs-aqua-soft)!important;
}
body.gs-tideglass .luxury-header .main-nav>a:not(.btn).active{
  color:#fff!important;
  background:linear-gradient(135deg,var(--gs-teal),var(--gs-navy-2))!important;
  box-shadow:0 7px 18px rgba(12,135,144,.18)!important;
}
body.gs-tideglass .luxury-header .nav-cta{
  color:#fff!important;
  background:linear-gradient(135deg,var(--gs-teal-bright),var(--gs-navy-2))!important;
  border-color:rgba(12,135,144,.25)!important;
  box-shadow:0 9px 22px rgba(7,54,66,.14)!important;
}

/* ---------- Hero booking card contrast ---------- */
body.gs-tideglass .lux-booking{
  color:var(--gs-ink)!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(255,255,255,.82)!important;
  box-shadow:0 30px 75px rgba(2,31,38,.28)!important;
  backdrop-filter:blur(20px)!important;
}
body.gs-tideglass .lux-booking:before{
  background:radial-gradient(circle,rgba(130,222,216,.26),transparent 67%)!important;
}
body.gs-tideglass .booking-symbol{
  color:var(--gs-navy)!important;
  background:linear-gradient(145deg,#baf4ef,#70d9d4)!important;
}
body.gs-tideglass .lux-booking-head small{color:var(--gs-teal)!important}
body.gs-tideglass .lux-booking h2{color:var(--gs-ink)!important;font-size:34px!important}
body.gs-tideglass .lux-booking>p{color:#657a7c!important;font-size:13px!important}
body.gs-tideglass .lux-booking label{color:#31565b!important}
body.gs-tideglass .lux-booking input,
body.gs-tideglass .lux-booking select{
  color:var(--gs-ink)!important;
  background:#fff!important;
  border:1px solid rgba(12,135,144,.22)!important;
  color-scheme:light!important;
}
body.gs-tideglass .lux-booking input:focus,
body.gs-tideglass .lux-booking select:focus{
  border-color:var(--gs-teal)!important;
  box-shadow:0 0 0 4px rgba(12,135,144,.10)!important;
}
body.gs-tideglass .lux-booking-note{color:#6a7e80!important}
body.gs-tideglass .lux-booking-note svg{stroke:var(--gs-gold)!important}
body.gs-tideglass .lux-booking .btn{color:#fff!important}

/* ---------- Highlights ribbon: remove broken dark overlap ---------- */
body.gs-tideglass .coastal-ribbon{
  margin-top:-42px!important;
  padding-bottom:18px;
  background:transparent!important;
  border:0!important;
}
body.gs-tideglass .coastal-ribbon-grid{
  border-radius:24px!important;
  overflow:hidden!important;
  background:#fff!important;
  border:1px solid var(--gs-line)!important;
  box-shadow:0 24px 60px rgba(7,54,66,.14)!important;
}
body.gs-tideglass .coastal-ribbon-grid>article{
  min-height:118px!important;
  padding:25px 27px!important;
  border-right:1px solid var(--gs-line)!important;
  background:linear-gradient(145deg,#fff,#f2fbf9)!important;
}
body.gs-tideglass .coastal-ribbon-grid>article:last-child{border-right:0!important}
body.gs-tideglass .coastal-ribbon-grid>article>span{
  width:48px!important;height:48px!important;
  border-radius:16px!important;
  color:var(--gs-teal)!important;
  background:var(--gs-aqua-soft)!important;
  border:1px solid rgba(12,135,144,.15)!important;
}
body.gs-tideglass .coastal-ribbon-grid strong{color:var(--gs-ink)!important;font-size:22px!important}
body.gs-tideglass .coastal-ribbon-grid small{color:#6c8081!important;font-size:12px!important}

/* ---------- Welcome and experience sections ---------- */
body.gs-tideglass .luxury-story{background:#f8fbfa!important;padding-top:112px!important}
body.gs-tideglass .luxury-story-copy h2{font-size:clamp(px,4.4vw,60px)!important;line-height:1.04!important}
body.gs-tideglass .luxury-story-list>div{
  background:#fff!important;
  border:1px solid var(--gs-line)!important;
  box-shadow:0 8px 22px rgba(7,54,66,.035)!important;
}
body.gs-tideglass .experience-strip{
  padding:92px 0!important;
  background:linear-gradient(180deg,#edf8f5,#f8fbfa)!important;
}
body.gs-tideglass .experience-strip-heading h2{font-size:clamp(px,4vw,57px)!important;line-height:1.05!important}
body.gs-tideglass .experience-strip-grid{
  grid-template-columns:repeat(3,1fr)!important;
  gap:18px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.gs-tideglass .experience-strip-grid article{
  min-height:210px!important;
  padding:28px!important;
  border:1px solid var(--gs-line)!important;
  border-radius:22px!important;
  box-shadow:var(--gs-shadow-sm)!important;
}
body.gs-tideglass .experience-strip-grid article:nth-child(2n){background:#fff!important}
body.gs-tideglass .experience-strip-grid h3{margin-top:22px!important;font-size:24px!important}

/* ---------- Signature + dark sections contrast ---------- */
body.gs-tideglass .coastal-signature{
  border-radius:34px!important;
  width:min(1440px,calc(100% - 32px))!important;
}
body.gs-tideglass .coastal-signature-copy h2{font-size:clamp(px,4.5vw,64px)!important}
body.gs-tideglass .resort-quote{background:rgba(255,255,255,.94)!important}

/* ---------- Rooms: balanced professional 4-card grid ---------- */
body.gs-tideglass .rooms-showcase-v2,
body.gs-tideglass .luxury-rooms{
  background:
    radial-gradient(circle at 8% 8%,rgba(130,222,216,.18),transparent 30%),
    linear-gradient(180deg,#f7fbfa,#eef7f4)!important;
}
body.gs-tideglass .rooms-v2-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.7fr)!important;
  gap:64px!important;
  align-items:end!important;
  max-width:none!important;
  text-align:left!important;
  margin-bottom:46px!important;
}
body.gs-tideglass .rooms-v2-head .eyebrow,
body.gs-tideglass .rooms-v2-head h2{grid-column:1}
body.gs-tideglass .rooms-v2-head h2{
  margin-bottom:0!important;
  max-width:720px!important;
  font-size:clamp(43px,4.5vw,62px)!important;
  line-height:1.02!important;
}
body.gs-tideglass .rooms-v2-head .lead{
  grid-column:2;
  grid-row:1 / span 2;
  margin:0!important;
  max-width:470px!important;
  align-self:end;
}
body.gs-tideglass .rooms-v2-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
}
body.gs-tideglass .room-v2-card,
body.gs-tideglass .room-v2-card:nth-child(1),
body.gs-tideglass .room-v2-card:nth-child(2){
  grid-column:auto!important;
  border-radius:24px!important;
  background:#fff!important;
  border:1px solid rgba(12,135,144,.14)!important;
  box-shadow:0 16px 42px rgba(7,54,66,.10)!important;
}
body.gs-tideglass .room-v2-card:hover{transform:translateY(-7px)!important;box-shadow:0 25px 56px rgba(7,54,66,.16)!important}
body.gs-tideglass .room-v2-card .premium-room-image{height:225px!important}
body.gs-tideglass .room-v2-card .premium-room-content{padding:24px!important}
body.gs-tideglass .room-v2-card .premium-room-content h3{font-size:27px!important;line-height:1.1!important;text-align:left!important}
body.gs-tideglass .room-v2-card .premium-room-content>p{font-size:13px!important;line-height:1.65!important;text-align:left!important}
body.gs-tideglass .room-comfort-list{display:none!important}
body.gs-tideglass .room-v2-card .premium-room-facts{
  gap:7px!important;
  padding-top:14px!important;
  justify-content:flex-start!important;
}
body.gs-tideglass .room-v2-card .premium-room-facts span{
  padding:5px 8px!important;
  background:var(--gs-aqua-soft)!important;
  color:var(--gs-navy-2)!important;
  font-size:9px!important;
}
body.gs-tideglass .room-v2-card .premium-room-link{
  min-height:44px!important;
  margin-top:16px!important;
  border-radius:12px!important;
  padding-inline:16px!important;
}
body.gs-tideglass .rooms-v2-note{
  max-width:980px!important;
  margin:26px auto 0!important;
  padding:12px 16px!important;
  background:#fff!important;
  color:#657a7c!important;
  border:1px solid var(--gs-line)!important;
  box-shadow:none!important;
}
body.gs-tideglass .rooms-v2-actions{margin-top:26px!important}

/* ---------- Why choose: fix invisible black text on dark card ---------- */
body.gs-tideglass .why-luxury{background:#fff!important}
body.gs-tideglass .why-luxury-grid{gap:70px!important;align-items:start!important}
body.gs-tideglass .why-luxury-heading{
  position:sticky!important;
  top:125px!important;
  padding:42px!important;
  border-radius:30px!important;
  background:linear-gradient(145deg,var(--gs-navy),var(--gs-navy-2))!important;
  box-shadow:var(--gs-shadow)!important;
}
body.gs-tideglass .why-luxury-heading .eyebrow{color:#aee8e3!important}
body.gs-tideglass .why-luxury-heading h2{
  color:#fff!important;
  font-size:clamp(px,4vw,56px)!important;
  line-height:1.04!important;
}
body.gs-tideglass .why-luxury-heading p{color:#c9dfdd!important}
body.gs-tideglass .why-luxury-heading img{opacity:.22!important}
body.gs-tideglass .why-luxury-list article{
  grid-template-columns:58px 1fr!important;
  padding:27px!important;
  border:1px solid var(--gs-line)!important;
  border-radius:22px!important;
  background:#fff!important;
}
body.gs-tideglass .why-luxury-list h3{font-size:25px!important;color:var(--gs-ink)!important}

/* ---------- Amenities ---------- */
body.gs-tideglass .amenities-luxury{
  width:min(1440px,calc(100% - 32px))!important;
  border-radius:34px!important;
  padding:92px 0!important;
  background:
    radial-gradient(circle at 10% 20%,rgba(130,222,216,.14),transparent 28%),
    linear-gradient(145deg,#073642,#0a5660)!important;
}
body.gs-tideglass .amenities-luxury-grid{gap:16px!important}
body.gs-tideglass .amenities-luxury-grid article{min-height:185px!important;padding:25px!important}
body.gs-tideglass .amenities-luxury-grid strong{font-size:21px!important}
body.gs-tideglass .amenities-luxury-grid small{font-size:12px!important;line-height:1.6!important}

/* ---------- Gallery: fix washed-out / invisible copy ---------- */
body.gs-tideglass .gallery-v6{background:var(--gs-cream)!important;padding-top:104px!important}
body.gs-tideglass .gallery-v6-shell{grid-template-columns:.40fr .60fr!important;gap:44px!important}
body.gs-tideglass .gallery-v6-intro{
  padding:40px!important;
  border-radius:28px!important;
  background:#fff!important;
  border:1px solid var(--gs-line)!important;
  box-shadow:var(--gs-shadow-sm)!important;
}
body.gs-tideglass .gallery-v6-intro .eyebrow,
body.gs-tideglass .gallery-v6-intro .eyebrow.light{color:var(--gs-teal)!important}
body.gs-tideglass .gallery-v6-intro h2{
  color:var(--gs-ink)!important;
  font-size:clamp(34px,4vw,56px)!important;
  line-height:1.05!important;
}
body.gs-tideglass .gallery-v6-intro p{color:var(--gs-copy)!important}
body.gs-tideglass .gallery-v6-count{border-color:var(--gs-line)!important}
body.gs-tideglass .gallery-v6-count strong{color:var(--gs-teal)!important}
body.gs-tideglass .gallery-v6-count span{color:#657a7c!important}
body.gs-tideglass .gallery-v6-grid{gap:14px!important}
body.gs-tideglass .gallery-v6-grid a{border-radius:22px!important;box-shadow:0 13px 34px rgba(7,54,66,.13)!important}

/* ---------- Enquiry process ---------- */
body.gs-tideglass .luxury-enquiry{background:#f7efe4!important}
body.gs-tideglass .luxury-enquiry-grid{gap:58px!important}
body.gs-tideglass .luxury-enquiry-copy>h2{font-size:clamp(34px,4.4vw,60px)!important;line-height:1.03!important}
body.gs-tideglass .enquiry-steps{gap:12px!important}
body.gs-tideglass .enquiry-steps>div{padding:22px 20px!important;border-radius:20px!important}
body.gs-tideglass .luxury-enquiry-card{min-height:470px!important;border-radius:34px!important}
body.gs-tideglass .luxury-enquiry-card>div{padding:32px!important;left:0!important;right:0!important;bottom:0!important}
body.gs-tideglass .luxury-enquiry-card h3{font-size:35px!important;line-height:1.08!important}

/* ---------- Footer ---------- */
body.gs-tideglass .footer{
  background:linear-gradient(135deg,#06333d,#0a525c)!important;
  border-top:1px solid rgba(130,222,216,.18)!important;
}
body.gs-tideglass .footer-grid{gap:56px!important}
body.gs-tideglass .footer h3{color:#fff!important}
body.gs-tideglass .footer-brand p{max-width:390px!important}
body.gs-tideglass .footer-resort-logo{border:1px solid rgba(220,164,72,.55)!important;background:rgba(2,31,38,.22)!important;padding:10px!important}
body.gs-tideglass .footer-enquire{min-height:38px!important;padding:6px 14px!important}

/* ---------- Generic page cards and forms ---------- */
body.gs-tideglass .contact-form-shell,
body.gs-tideglass .booking-card,
body.gs-tideglass .contact-action-card,
body.gs-tideglass .faq,
body.gs-tideglass .blog-v2-card,
body.gs-tideglass .trending-blog-card,
body.gs-tideglass .room-card{
  border-color:var(--gs-line)!important;
  box-shadow:var(--gs-shadow-sm)!important;
}

/* ---------- Tablet ---------- */
@media (max-width:1180px){
  body.gs-tideglass .luxury-header .brand img{width:215px!important}
  body.gs-tideglass .luxury-header .main-nav>a:not(.btn){padding-inline:9px!important;font-size:9px!important}
  body.gs-tideglass .rooms-v2-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.gs-tideglass .room-v2-card .premium-room-image{height:250px!important}
}

/* ---------- Mobile and small tablet ---------- */
@media (max-width:900px){
  body.gs-tideglass .container{width:min(100% - 28px,1240px)!important}
  body.gs-tideglass .section{padding-block:76px!important}
  body.gs-tideglass .luxury-header .nav-wrap{min-height:76px!important}
  body.gs-tideglass .luxury-header .brand img{width:185px!important;height:52px!important}
  body.gs-tideglass .main-nav>a:not(.btn).active{color:#fff!important}
  body.gs-tideglass .lux-booking{max-width:610px!important;padding:27px!important}
  body.gs-tideglass .coastal-ribbon{margin-top:-22px!important}
  body.gs-tideglass .coastal-ribbon-grid{grid-template-columns:1fr 1fr!important}
  body.gs-tideglass .coastal-ribbon-grid>article{border-bottom:1px solid var(--gs-line)!important}
  body.gs-tideglass .coastal-ribbon-grid>article:nth-child(2){border-right:0!important}
  body.gs-tideglass .coastal-ribbon-grid>article:nth-last-child(-n+2){border-bottom:0!important}
  body.gs-tideglass .experience-strip-grid{grid-template-columns:repeat(2,1fr)!important}
  body.gs-tideglass .rooms-v2-head{
    grid-template-columns:1fr!important;
    gap:14px!important;
    text-align:center!important;
  }
  body.gs-tideglass .rooms-v2-head .eyebrow,
  body.gs-tideglass .rooms-v2-head h2,
  body.gs-tideglass .rooms-v2-head .lead{grid-column:1!important;grid-row:auto!important;margin-inline:auto!important}
  body.gs-tideglass .why-luxury-heading{position:relative!important;top:auto!important}
  body.gs-tideglass .gallery-v6-shell{grid-template-columns:1fr!important}
  body.gs-tideglass .gallery-v6-intro{max-width:720px;margin-inline:auto}
}

@media (max-width:680px){
  body.gs-tideglass .container{width:min(100% - 22px,1240px)!important}
  body.gs-tideglass .section{padding-block:66px!important}
  body.gs-tideglass h2{font-size:clamp(31px,9vw,42px)!important;line-height:1.08!important}
  body.gs-tideglass .lux-booking{padding:22px!important;border-radius:22px!important}
  body.gs-tideglass .lux-booking h2{font-size:29px!important}
  body.gs-tideglass .lux-booking .field-row{grid-template-columns:1fr!important}
  body.gs-tideglass .coastal-ribbon-grid{grid-template-columns:1fr!important;border-radius:20px!important}
  body.gs-tideglass .coastal-ribbon-grid>article{
    min-height:auto!important;
    padding:20px!important;
    border-right:0!important;
    border-bottom:1px solid var(--gs-line)!important;
  }
  body.gs-tideglass .coastal-ribbon-grid>article:last-child{border-bottom:0!important}
  body.gs-tideglass .experience-strip-grid{grid-template-columns:1fr!important}
  body.gs-tideglass .experience-strip-grid article{min-height:auto!important}
  body.gs-tideglass .rooms-v2-grid{grid-template-columns:1fr!important}
  body.gs-tideglass .room-v2-card .premium-room-image{height:235px!important}
  body.gs-tideglass .room-v2-card .premium-room-content{padding:21px!important}
  body.gs-tideglass .why-luxury-heading{padding:30px!important;border-radius:24px!important}
  body.gs-tideglass .why-luxury-list article{grid-template-columns:50px 1fr!important;padding:22px!important}
  body.gs-tideglass .amenities-luxury{width:calc(100% - 18px)!important;border-radius:28px!important;padding:70px 0!important}
  body.gs-tideglass .gallery-v6{padding-top:72px!important}
  body.gs-tideglass .gallery-v6-intro{padding:25px!important;border-radius:23px!important}
  body.gs-tideglass .gallery-v6-grid{grid-template-columns:1fr!important}
  body.gs-tideglass .gallery-v6-grid a,
  body.gs-tideglass .gallery-v6-grid .gallery-tall{min-height:245px!important;grid-column:auto!important}
  body.gs-tideglass .luxury-enquiry-card{min-height:420px!important;border-radius:26px!important}
  body.gs-tideglass .luxury-enquiry-card>div{padding:24px!important}
  body.gs-tideglass .luxury-enquiry-card h3{font-size:29px!important}
  body.gs-tideglass .enquiry-steps{grid-template-columns:1fr!important}
  body.gs-tideglass .enquiry-steps>div{border-right:1px solid var(--gs-line)!important}
  body.gs-tideglass .footer-grid{gap:36px!important}
}

@media (prefers-reduced-motion:reduce){
  body.gs-tideglass *,body.gs-tideglass *:before,body.gs-tideglass *:after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
