/*
Theme Name: GrBritain
Theme URI: https://grbritain.com
Author: Ugo Onwutalu
Description: Destination guide and affiliate travel hub for Great Britain — Salcombe, Falmouth, Kielder Water, Brimham Rocks, Sandbanks and Cannock Chase. Built to be fully editable from the WordPress block editor.
Version: 1.0
Requires PHP: 7.4
Text Domain: grbritain
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
  --ink:        #012169;   /* Union Jack navy — text, nav */
  --ink-soft:   #33477F;
  --lagoon:     #1E4FA0;   /* mid blue — primary accent */
  --lagoon-deep:#012169;
  --sand:       #F4F4F7;   /* pale grey-white — section backgrounds */
  --sand-deep:  #E3E6EE;
  --coral:      #C8102E;   /* Union Jack red — CTAs / trim */
  --coral-deep: #A50C24;
  --foam:       #FFFFFF;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Work Sans', -apple-system, Helvetica, Arial, sans-serif;

  --radius: 6px;
  --max-width: 1180px;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
body{
  margin: 0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--foam);
  line-height: 1.6;
  font-size: 17px;
}
img{ max-width: 100%; height: auto; display: block; }
a{ color: var(--lagoon-deep); text-decoration: none; }
a:hover{ color: var(--coral); }
a:focus-visible, button:focus-visible{ outline: 3px solid var(--coral); outline-offset: 2px; }
.wrap{ max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }

h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  margin: 0 0 .5em;
  color: var(--ink);
}
h1{ font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 500; }
h2{ font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3{ font-size: 1.3rem; }
p{ margin: 0 0 1.1em; }

.eyebrow{
  font-family: var(--font-body);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--lagoon-deep);
  font-weight: 600;
}

/* ============================================================
   FLAG TRIM — a slim red/white/blue bar at the very top of the
   page, a subtle nod to the Union Jack without being kitschy.
   ============================================================ */
.flag-trim{
  height: 6px;
  background: repeating-linear-gradient(
    -45deg,
    var(--coral) 0px, var(--coral) 14px,
    var(--foam) 14px, var(--foam) 20px,
    var(--ink) 20px, var(--ink) 34px,
    var(--foam) 34px, var(--foam) 40px
  );
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  background: var(--ink);
  color: var(--foam);
}
.site-header .wrap{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 18px;
  padding-bottom: 18px;
  gap: 24px;
  flex-wrap: wrap;
}
.site-title{
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--foam);
  margin: 0;
  letter-spacing: .01em;
}
.site-title a{ color: var(--foam); }
.site-title a:hover{ color: var(--sand); }
.site-title .tld{ color: var(--lagoon); }

.main-nav ul{
  list-style: none;
  display: flex;
  gap: 26px;
  margin: 0;
  padding: 0;
  flex-wrap: wrap;
}
.main-nav a{
  color: var(--foam);
  font-size: .95rem;
  font-weight: 500;
  padding: 6px 2px;
  border-bottom: 2px solid transparent;
}
.main-nav a:hover{ color: var(--sand); border-bottom-color: var(--coral); }

/* tide ticker: scrolling strip of the five islands beneath the nav */
.tide-ticker{
  background: var(--coral);
  color: var(--foam);
  overflow: hidden;
  white-space: nowrap;
  border-top: 1px solid rgba(255,255,255,.15);
}
.tide-ticker__track{
  display: inline-flex;
  gap: 48px;
  padding: 7px 0;
  animation: tide-scroll 32s linear infinite;
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
}
.tide-ticker__track span{ opacity: .85; }
@keyframes tide-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

/* ============================================================
   WAVE DIVIDER — signature element
   ============================================================ */
.wave-divider{
  display: block;
  width: 100%;
  height: 48px;
  line-height: 0;
}
.wave-divider svg{ width: 100%; height: 100%; display: block; }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position: relative;
  background: linear-gradient(160deg, #3E6FC4 0%, var(--lagoon) 40%, var(--lagoon-deep) 75%, var(--ink) 100%);
  color: var(--foam);
  padding: 110px 0 90px;
  min-height: 420px;
  display: flex;
  align-items: center;
}
.hero.has-image{
  background-size: cover;
  background-position: center;
}
.hero.has-image::before{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(1,33,105,.35) 0%, rgba(1,33,105,.55) 55%, rgba(1,33,105,.9) 100%);
}
.hero .wrap{ position: relative; z-index: 1; max-width: 760px; }
.hero h1{ color: var(--foam); }
.hero .lede{ font-size: 1.15rem; color: var(--foam); opacity: .92; max-width: 620px; }

/* ============================================================
   PHOTO STRIP — tight, edge-to-edge row of island photos, like
   aegeansea.com's gallery. Each links down to that island's section
   further down the same page.
   ============================================================ */
.photo-strip{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 3px;
  background: var(--ink);
}
.photo-strip__item{
  position: relative;
  display: block;
  aspect-ratio: 3/4;
  overflow: hidden;
}
.photo-strip__item img{
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .35s ease;
}
.photo-strip__item:hover img{ transform: scale(1.06); }
.photo-strip__item::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(14,59,67,0) 40%, rgba(14,59,67,.85) 100%);
}
.photo-strip__caption{
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 1;
  padding: 10px 12px 12px;
  color: var(--foam);
  display: flex; flex-direction: column; gap: 2px;
}
.photo-strip__caption strong{
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 500;
}
.photo-strip__caption em{
  font-style: normal;
  font-size: .74rem;
  opacity: .85;
}
@media (max-width: 900px){
  .photo-strip{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px){
  .photo-strip{ grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   ISLAND BLOCKS — one full section per island, image and text
   side by side, alternating, all stacked on the same page.
   ============================================================ */
.island-block{ padding: 64px 0; scroll-margin-top: 90px; }
.island-block__wrap{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.island-block__media{
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 4/3;
}
.island-block__media img{ width: 100%; height: 100%; object-fit: cover; }
.island-block__body .btn-cta{ margin-top: 6px; }
.island-block--reverse .island-block__wrap{ direction: rtl; }
.island-block--reverse .island-block__wrap > *{ direction: ltr; }

@media (max-width: 860px){
  .island-block__wrap{ grid-template-columns: 1fr; gap: 26px; }
  .island-block--reverse .island-block__wrap{ direction: ltr; }
}

/* ============================================================
   CONTENT AREA (destination + info pages)
   ============================================================ */
.content-section{ padding: 60px 0; }
.content-section .wrap{ max-width: 760px; }
.entry-content > *:first-child{ margin-top: 0; }
.entry-content h2{ margin-top: 1.6em; }
.entry-content blockquote{
  border-left: 3px solid var(--coral);
  margin: 1.6em 0;
  padding: .2em 0 .2em 1.2em;
  color: var(--ink-soft);
  font-style: italic;
}
.entry-content figure{ margin: 1.6em 0; }
.entry-content figcaption{ font-size: .85rem; color: var(--ink-soft); margin-top: .4em; }

/* Custom HTML / affiliate widget blocks get a light frame so they read
   as "book this" moments rather than raw embedded code */
.entry-content .wp-block-html{
  background: var(--sand);
  border-radius: var(--radius);
  padding: 20px;
  margin: 1.8em 0;
}

.affiliate-note{
  font-size: .82rem;
  color: var(--ink-soft);
  background: var(--sand);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin: 1.6em 0;
}

.btn-cta{
  display: inline-block;
  background: var(--coral);
  color: var(--foam);
  font-weight: 600;
  font-size: .95rem;
  padding: 12px 26px;
  border-radius: 999px;
  transition: background .15s ease;
}
.btn-cta:hover{ background: var(--coral-deep); color: var(--foam); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background: var(--ink);
  color: var(--sand);
  padding: 52px 0 30px;
  margin-top: 40px;
}
.footer-grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 32px;
  margin-bottom: 34px;
}
.footer-grid h4{
  color: var(--foam);
  font-family: var(--font-body);
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.footer-grid ul{ list-style: none; margin: 0; padding: 0; }
.footer-grid li{ margin-bottom: 8px; }
.footer-grid a{ color: var(--sand); opacity: .85; }
.footer-grid a:hover{ opacity: 1; color: var(--coral); }
.footer-bottom{
  border-top: 1px solid rgba(255,255,255,.15);
  padding-top: 22px;
  font-size: .82rem;
  color: rgba(243,233,210,.7);
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
@media (max-width: 700px){
  .footer-grid{ grid-template-columns: 1fr; }
}
