/* Folkstone Consulting static site */

:root{
  --navy:#071a33;
  --navy-2:#0b2447;
  --beige:#f4efe6;
  --gray:#6b6b6b;
  --text:#1b1b1b;
  --white:#ffffff;
  --card:#ffffff;
  --shadow:0 10px 24px rgba(0,0,0,.12);
  --shadow-soft:0 6px 16px rgba(0,0,0,.10);
  --radius:6px;
  --max:1100px;
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  color:var(--text);
  font-family:"Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.55;
}
img{max-width:100%;display:block;}

.skip-link{
  position:absolute;
  left:-999px;
  top:12px;
  background:var(--white);
  color:var(--text);
  padding:10px 12px;
  border-radius:6px;
  z-index:1000;
}
.skip-link:focus{left:12px;}

.container{
  width:min(var(--max), calc(100% - 48px));
  margin:0 auto;
}




/* HERO */



.hero__measure{
  width: min(42rem, 100%);
  margin: 0 auto;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
gap: 10px;
}




.hero{
  min-height: 65vh;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 24px;          /* NEW: nudges content off the absolute top */
  padding-bottom: 24px;       /* NEW: gives breathing room */
  background:
    linear-gradient(rgba(7,26,51,.78), rgba(7,26,51,.78)),
    url("../img/hero-bg.png") center/cover no-repeat;
}




.hero__inner{
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  padding: 72px 0;

  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;

  gap: 16px;

  container-type: inline-size; /* ✅ REQUIRED FOR cqi */
}


/* --- Logo (mobile-first, then lock) --- */



.hero__logo{
  width: clamp(180px, 42vw, 520px);
  height: auto;
}




/* --- Brand text --- */
.hero__brand{
  color: var(--white);
  font-family: "Playfair Display", Georgia, serif;
}

.hero__brand-top{
  letter-spacing: .36em;
  font-weight: 600;
  font-size: clamp(28px, 6vw, 40px);
}

.hero__brand-sub{
  letter-spacing: .18em;
  font-size: clamp(12px, 2.8vw, 16px);
  opacity: .9;
  margin-top: 6px;
}

/* --- Subtitle: mobile scale, then LOCK --- */



.hero__headline{
  margin-top: 18px;
  color: var(--white);
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 600;
  line-height: 1.2;
  font-size: clamp(20px, 2.6vw, 34px);
  text-wrap: balance;
}





/* Sticky logo banner */
.sticky-banner{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2000;

  height: 64px;
  display: flex;
  align-items: center;

  padding: 0 18px;
  background: rgba(7, 26, 51, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.08);

  transform: translateY(-110%);
  transition: transform 200ms ease;
}

.sticky-banner.is-visible{
  transform: translateY(0);
}

.sticky-banner__inner{
  width: min(var(--max), calc(100% - 48px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sticky-banner__brand{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.sticky-banner__logo{
  height: 38px;
  width: auto;
  display: block;
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.25));
}

/* Give the page a little room so the banner never covers anchor jumps */
html{
  scroll-padding-top: 72px;
}


/* Sticky banner: mobile only */
@media (min-width: 768px){
  .sticky-banner{
    display: none !important;
  }
}


/* SECTIONS */



.section{padding:64px 0;}
.section__title{
  margin:0;
  text-align:center;
  font-family:"Playfair Display", Georgia, serif;
  font-weight:600;
  font-size:clamp(26px, 2.7vw, 40px);
}
.section__divider{
  width:56px;
  height:0;
  border:none;
  border-top:2px solid rgba(0,0,0,.20);
  margin:18px auto 0;
}

.section--services{background:var(--white);}

/* GRID + CARDS */
.grid{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
}

.card{
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.card__media{
  aspect-ratio:2 / 1;
  background:#e8e8e8;
}
.card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.card__body{padding:18px 18px 20px;}

.card__title{
  margin:0 0 10px;
  font-family:"Playfair Display", Georgia, serif;
  font-weight:600;
  font-size:22px;
}


.card__title .amp {
  font-family: "Libre Baskerville", Georgia, serif;
  font-weight: 400;
  position: relative;
  top: -0.01em;
}


.card__text{margin:0;color:rgba(0,0,0,.78);}

/* CONTACT */
.section--contact{background:var(--navy);color:var(--white);}
.section__title--light{color:var(--white);}
.section__divider--light{border-top-color:rgba(255,255,255,.45);}

.contact__lede{
  text-align:center;
  margin:18px 0 28px;
  font-size:18px;
  color:rgba(255,255,255,.88);
}

.form{
  width:min(680px, 100%);
  margin:0 auto;
}

.form__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.field label{
  display:block;
  font-weight:600;
  margin:0 0 6px;
}

.field input,
.field textarea{
  width:100%;
  padding:12px 12px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.03);
  color:var(--white);
  outline:none;
}
.field input:focus,
.field textarea:focus{
  border-color:rgba(255,255,255,.9);
  box-shadow:0 0 0 3px rgba(255,255,255,.14);
}
.field textarea{resize:vertical;min-height:160px;}

.field__hint{
  margin:6px 0 0;
  font-size:12px;
  color:rgba(255,255,255,.70);
}


.hp {
  position: absolute;
  left: -9999px;
  height: 0;
  width: 0;
  overflow: hidden;
  opacity: 0;
}


.field--full{grid-column:1 / -1;}
.req{color:rgba(255,255,255,.9);}

.button{
  margin-top:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 28px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.9);
  background:var(--white);
  color:#2f2f2f;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.button:hover{cursor:pointer;filter:brightness(.98);}

.form__disclaimer{
  margin:10px 0 0;
  font-size:12px;
  color:rgba(255,255,255,.70);
}
.form__status{margin:10px 0 0;min-height:22px;color:rgba(255,255,255,.85);}

/* FOOTER */
.footer{background:#8d8d8d;color:#111;padding:22px 0;}
.footer p{margin:0;text-align:center;font-size:14px;}

/* RESPONSIVE */
@media (max-width: 1023px){
  .grid{grid-template-columns:repeat(2, 1fr);}
  .hero{min-height:56vh;}
}
@media (max-width: 640px){

.hero{
    background-position: center 25%;
  }


.hero__measure{
  width: min(42rem, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 10px; /* tighter than 16px */
}
 
 .grid{grid-template-columns:1fr;}
  .section{padding:54px 0;}
  .form__grid{grid-template-columns:1fr;}

.hero__logo{
  width: clamp(210px, 58vw, 420px);
  height: auto;
}
  
.hero__inner{padding:56px 0;}
  
.hero__headline{
    max-width: 28ch;                 /* was 22ch; allows fewer wraps */
    font-size: clamp(20px, 6vw, 28px);
    line-height: 1.18;
    margin-top: 18px;                /* reduce vertical gap */
  }


@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto;}
}
