/* Golden Sands — Global Typography & Dark Surface System v11 */
:root{
  --gs-heading-font:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --gs-body-font:"Manrope",Arial,sans-serif;
  --gs-heading-color:#062f38;
  --gs-body-color:#5f7376;
  --gs-white:#ffffff;
  --gs-white-soft:rgba(255,255,255,.82);
  --gs-white-muted:rgba(255,255,255,.68);
  --gs-aqua-text:#8be4df;
}

/* One font system across every public page */
html,body,
body.gs-tideglass,
body.gs-tideglass input,
body.gs-tideglass select,
body.gs-tideglass textarea,
body.gs-tideglass button{
  font-family:var(--gs-body-font)!important;
}

body.gs-tideglass h1,
body.gs-tideglass h2,
body.gs-tideglass h3,
body.gs-tideglass h4,
body.gs-tideglass h5,
body.gs-tideglass h6,
body.gs-tideglass .display-title,
body.gs-tideglass .section-title,
body.gs-tideglass .card-title{
  font-family:var(--gs-heading-font)!important;
  color:var(--gs-heading-color);
  font-weight:600!important;
  letter-spacing:-.025em!important;
  text-wrap:balance;
}

/* Consistent hierarchy */
body.gs-tideglass h1,
body.gs-tideglass .page-hero h1,
body.gs-tideglass .lux-hero h1{
  font-size:clamp(54px,5.3vw,72px)!important;
  line-height:.98!important;
}
body.gs-tideglass h2,
body.gs-tideglass .section-head h2,
body.gs-tideglass .story-copy h2,
body.gs-tideglass .contact-info-panel h2,
body.gs-tideglass .trending-feature-copy h2,
body.gs-tideglass .beach-banner-copy h2{
  font-size:clamp(40px,4.1vw,54px)!important;
  line-height:1.04!important;
}
body.gs-tideglass h3,
body.gs-tideglass .facility-card h3,
body.gs-tideglass .room-card h3,
body.gs-tideglass .premium-room-content h3,
body.gs-tideglass .trending-card-body h2{
  font-size:clamp(25px,2.4vw,31px)!important;
  line-height:1.1!important;
}
body.gs-tideglass h4{font-size:23px!important;line-height:1.2!important}

body.gs-tideglass p,
body.gs-tideglass li,
body.gs-tideglass .card-body p,
body.gs-tideglass .article p{
  font-family:var(--gs-body-font)!important;
  font-size:15.5px!important;
  line-height:1.75!important;
}
body.gs-tideglass p:not([class]),
body.gs-tideglass .section p,
body.gs-tideglass .article p{color:var(--gs-body-color)}
body.gs-tideglass .lead{
  font-size:17px!important;
  line-height:1.72!important;
}
body.gs-tideglass small{font-family:var(--gs-body-font)!important;line-height:1.55!important}

body.gs-tideglass .eyebrow,
body.gs-tideglass .page-kicker,
body.gs-tideglass .lux-overline,
body.gs-tideglass .room-label,
body.gs-tideglass .blog-date,
body.gs-tideglass .card-badge,
body.gs-tideglass .trend-label{
  font-family:var(--gs-body-font)!important;
  font-size:11px!important;
  line-height:1.4!important;
  font-weight:800!important;
  letter-spacing:.15em!important;
  text-transform:uppercase!important;
}

body.gs-tideglass .btn,
body.gs-tideglass button,
body.gs-tideglass .text-link,
body.gs-tideglass nav a{
  font-family:var(--gs-body-font)!important;
  font-weight:800!important;
}

/* Dark surfaces: every heading, subheading and paragraph stays readable */
body.gs-tideglass :where(
  .page-hero,
  .lux-hero-copy,
  .coastal-signature-copy,
  .resort-quote,
  .amenities-luxury,
  .gallery-v6-intro,
  .faq-v2-intro,
  .why-luxury-heading,
  .luxury-enquiry-card>div,
  .beach-banner-copy,
  .cta-band,
  .footer,
  .footer-luxury-v4,
  .contact-resort-note,
  .experience-card>div,
  .gallery-v10-slide>span
) :is(h1,h2,h3,h4,h5,h6,strong){
  color:var(--gs-white)!important;
}

body.gs-tideglass :where(
  .page-hero,
  .lux-hero-copy,
  .coastal-signature-copy,
  .resort-quote,
  .amenities-luxury,
  .gallery-v6-intro,
  .faq-v2-intro,
  .why-luxury-heading,
  .luxury-enquiry-card>div,
  .beach-banner-copy,
  .cta-band,
  .footer,
  .footer-luxury-v4,
  .contact-resort-note,
  .experience-card>div,
  .gallery-v10-slide>span
) :is(p,li,small,span:not(.icon):not(.icon-wrap):not(.booking-symbol):not(.contact-icon):not(.footer-booking-icon)){
  color:var(--gs-white-soft)!important;
}

body.gs-tideglass :where(
  .page-hero,
  .lux-hero-copy,
  .coastal-signature-copy,
  .amenities-luxury,
  .gallery-v6-intro,
  .faq-v2-intro,
  .why-luxury-heading,
  .beach-banner-copy,
  .cta-band,
  .footer
) :is(.eyebrow,.page-kicker,.lux-overline,.script,.breadcrumbs,.breadcrumbs a){
  color:var(--gs-aqua-text)!important;
}

body.gs-tideglass .page-hero p,
body.gs-tideglass .beach-banner-copy p,
body.gs-tideglass .cta-band p,
body.gs-tideglass .footer p,
body.gs-tideglass .faq-v2-intro>p,
body.gs-tideglass .gallery-v6-intro>p,
body.gs-tideglass .coastal-signature-copy>p{
  color:var(--gs-white-soft)!important;
}

body.gs-tideglass .footer a,
body.gs-tideglass .footer span,
body.gs-tideglass .footer small{color:var(--gs-white-soft)!important}
body.gs-tideglass .footer a:hover{color:#ffffff!important}

/* Keep light forms and cards dark/readable */
body.gs-tideglass :where(.lux-booking,.form-card,.contact-form-shell,.contact-action-card,.facility-card,.room-card,.premium-room-card,.faq-v2-item,.article,.trending-feature-copy,.trending-card-body) :is(h1,h2,h3,h4,h5,h6,strong){color:var(--gs-heading-color)!important}
body.gs-tideglass :where(.lux-booking,.form-card,.contact-form-shell,.contact-action-card,.facility-card,.room-card,.premium-room-card,.faq-v2-item,.article,.trending-feature-copy,.trending-card-body) p{color:var(--gs-body-color)!important}
body.gs-tideglass :where(.lux-booking,.form-card,.contact-form-shell) :is(label,input,select,textarea,option){color:#173b43!important}

/* Article/legal pages use the same scale */
body.gs-tideglass .article{max-width:900px}
body.gs-tideglass .article h2{margin-top:42px!important;margin-bottom:14px!important}
body.gs-tideglass .article h2:first-child{margin-top:0!important}

@media(max-width:680px){
  body.gs-tideglass h1,
  body.gs-tideglass .page-hero h1,
  body.gs-tideglass .lux-hero h1{font-size:42px!important;line-height:1.02!important}
  body.gs-tideglass h2,
  body.gs-tideglass .section-head h2,
  body.gs-tideglass .story-copy h2,
  body.gs-tideglass .contact-info-panel h2,
  body.gs-tideglass .trending-feature-copy h2,
  body.gs-tideglass .beach-banner-copy h2{font-size:34px!important;line-height:1.07!important}
  body.gs-tideglass h3,
  body.gs-tideglass .facility-card h3,
  body.gs-tideglass .room-card h3,
  body.gs-tideglass .premium-room-content h3,
  body.gs-tideglass .trending-card-body h2{font-size:25px!important}
  body.gs-tideglass p,
  body.gs-tideglass li,
  body.gs-tideglass .card-body p,
  body.gs-tideglass .article p{font-size:14.5px!important;line-height:1.72!important}
  body.gs-tideglass .lead{font-size:16px!important}
  body.gs-tideglass .eyebrow,
  body.gs-tideglass .page-kicker,
  body.gs-tideglass .lux-overline{font-size:10px!important}
}

/* Additional dark cards used on contact/about pages */
body.gs-tideglass :where(.contact-confidence,.faq-side-card,.story-stamp,.story-monogram) :is(h1,h2,h3,h4,h5,h6,strong){color:#ffffff!important}
body.gs-tideglass :where(.contact-confidence,.faq-side-card,.story-stamp,.story-monogram) :is(p,li,small,span:not(.icon):not(.step-icon):not(.step-no)){color:rgba(255,255,255,.82)!important}
body.gs-tideglass .contact-confidence .eyebrow{color:var(--gs-aqua-text)!important}

/* v44 — Exact desktop H2 size requested: 54px */
@media (min-width:769px){
  html body.gs-tideglass.gs-tideglass.gs-tideglass.gs-tideglass h2{
    font-family:var(--gs-heading-font)!important;
    font-size:54px!important;
    line-height:1.08!important;
  }
}

/* v14 — Premium light-border motion for the resort experience cards */
@keyframes gsExperienceBorderSpin{
  to{transform:rotate(360deg)}
}
@keyframes gsExperienceIconFloat{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-6px) rotate(2deg)}
}
@keyframes gsExperienceGlowPulse{
  0%,100%{box-shadow:0 13px 30px rgba(7,130,139,.10),0 0 0 0 rgba(93,212,208,0)}
  50%{box-shadow:0 18px 38px rgba(7,130,139,.16),0 0 0 8px rgba(93,212,208,.06)}
}

body.gs-tideglass .experience-strip{
  background:
    radial-gradient(circle at 12% 18%,rgba(91,211,207,.10),transparent 27%),
    radial-gradient(circle at 88% 82%,rgba(201,154,75,.09),transparent 28%),
    linear-gradient(180deg,#f7fcfa 0%,#eef8f5 100%)!important;
}

body.gs-tideglass .experience-strip-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:22px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}

body.gs-tideglass .experience-strip-grid article{
  position:relative!important;
  isolation:isolate!important;
  min-height:252px!important;
  padding:31px 31px 28px!important;
  text-align:left!important;
  border:1px solid rgba(10,119,128,.14)!important;
  border-radius:28px!important;
  background:transparent!important;
  box-shadow:0 16px 42px rgba(3,47,56,.075)!important;
  overflow:hidden!important;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease!important;
}

body.gs-tideglass .experience-strip-grid article::before{
  content:""!important;
  position:absolute!important;
  z-index:-2!important;
  width:190%!important;
  aspect-ratio:1!important;
  left:-45%!important;
  top:-75%!important;
  background:conic-gradient(
    from 0deg,
    transparent 0 72%,
    rgba(85,217,212,.12) 77%,
    rgba(85,217,212,.88) 82%,
    rgba(231,189,101,.72) 87%,
    transparent 94% 100%
  )!important;
  animation:gsExperienceBorderSpin 9s linear infinite!important;
  pointer-events:none!important;
}

body.gs-tideglass .experience-strip-grid article::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:-1!important;
  inset:1px!important;
  border-radius:27px!important;
  background:
    radial-gradient(circle at 82% 18%,rgba(97,218,214,.11),transparent 24%),
    linear-gradient(145deg,rgba(255,255,255,.99),rgba(248,252,251,.97))!important;
  pointer-events:none!important;
}

body.gs-tideglass .experience-strip-grid article:nth-child(2)::before{animation-delay:-1.5s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(3)::before{animation-delay:-3s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(4)::before{animation-delay:-4.5s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(5)::before{animation-delay:-6s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(6)::before{animation-delay:-7.5s!important}

body.gs-tideglass .experience-strip-grid article>span{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:62px!important;
  height:62px!important;
  margin:0 0 30px!important;
  border:1px solid rgba(15,145,152,.18)!important;
  border-radius:20px!important;
  color:#087d86!important;
  background:linear-gradient(145deg,#eafffb,#d8f7f3)!important;
  animation:gsExperienceIconFloat 4.8s ease-in-out infinite,gsExperienceGlowPulse 4.8s ease-in-out infinite!important;
}
body.gs-tideglass .experience-strip-grid article:nth-child(2)>span{animation-delay:.35s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(3)>span{animation-delay:.7s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(4)>span{animation-delay:1.05s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(5)>span{animation-delay:1.4s!important}
body.gs-tideglass .experience-strip-grid article:nth-child(6)>span{animation-delay:1.75s!important}

body.gs-tideglass .experience-strip-grid article>span::after{
  content:"";
  position:absolute;
  inset:-7px;
  border:1px solid rgba(201,154,75,.16);
  border-radius:25px;
}

body.gs-tideglass .experience-strip-grid h3{
  margin:0 0 10px!important;
  color:#073842!important;
  font-family:"Cormorant Garamond",serif!important;
  font-size:28px!important;
  line-height:1.12!important;
}

body.gs-tideglass .experience-strip-grid p{
  margin:0!important;
  color:#657b7d!important;
  font-size:15px!important;
  line-height:1.75!important;
}

body.gs-tideglass .experience-strip-grid article:hover{
  transform:translateY(-9px)!important;
  box-shadow:0 27px 58px rgba(3,47,56,.14)!important;
}
body.gs-tideglass .experience-strip-grid article:hover>span{
  color:#04535d!important;
  background:linear-gradient(145deg,#f8e7b9,#e8c474)!important;
}

@media(max-width:980px){
  body.gs-tideglass .experience-strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:620px){
  body.gs-tideglass .experience-strip-grid{grid-template-columns:1fr!important;gap:16px!important}
  body.gs-tideglass .experience-strip-grid article{min-height:auto!important;padding:25px 24px!important;border-radius:24px!important}
  body.gs-tideglass .experience-strip-grid article::after{border-radius:23px!important}
  body.gs-tideglass .experience-strip-grid article>span{width:56px!important;height:56px!important;margin-bottom:22px!important}
  body.gs-tideglass .experience-strip-grid h3{font-size:26px!important}
}

@media(prefers-reduced-motion:reduce){
  body.gs-tideglass .experience-strip-grid article::before,
  body.gs-tideglass .experience-strip-grid article>span{animation:none!important}
}
