/* -------------------------------------------------------------
   GHFHEALTH LIMITED — Night Nurse Station in St Albans
   WARD SLATE corridors, STATION BOARD charts, VITALS GREEN pulse.
   ------------------------------------------------------------- */

:root {
  --night:#141A1B;
  --white:#EDF1EC;
  --vitals:#1F7A4D;
  --slate:#3A4A50;
  --board:#1E2628;
  --bench:#232B2D;
}

/* never use rgba, keep pre-blended against each band */

html { scroll-behavior:smooth; }

body {
  margin:0;
  font-family: Georgia, "Times New Roman", serif;
  font-size:16px;
  background:#141A1B;
  color:#EDF1EC;
  line-height:1.65;
  overflow-x:hidden;
}

body {
  -webkit-font-smoothing: antialiased;
}

a { color:#EDF1EC; }
p { margin:0 0 1em; }
h1,h2,h3,h4 { line-height:1.2; margin:0 0 0.5em; font-weight:700; }

/* ============ VITALS GREEN CHIPS / LABELS ============ */
.lino-chip {
  display:inline-block;
  background:#EDF1EC;
  color:#1F7A4D;
  font-size:0.8rem;
  letter-spacing:0.06em;
  padding:5px 12px;
  border-radius:14px;
  font-weight:700;
  text-transform:uppercase;
}
.green-chip {
  display:inline-block;
  background:#1F7A4D;
  color:#EDF1EC;
  font-size:0.78rem;
  letter-spacing:0.08em;
  padding:5px 13px;
  border-radius:14px;
  font-weight:700;
  text-transform:uppercase;
  border:1px solid #2A8A5C;
}

/* ============ BACKDROPS ============ */
.nightback { background:#141A1B; }

/* ============ CALL BELL NAV ============ */
.callbell {
  position:sticky;
  top:0;
  z-index:60;
  background:#141A1B;
  border-bottom:1px solid #3A4A50;
}
.callbell-row {
  max-width:1200px;
  margin:0 auto;
  padding:14px 24px;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.callbell-brand {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:#EDF1EC;
}
.brand-plate {
  background:#1F7A4D;
  color:#EDF1EC;
  font-weight:700;
  font-size:1.15rem;
  letter-spacing:0.04em;
  padding:8px 14px;
  border-radius:6px;
}
.bell-glyph {
  position:relative;
  width:30px;
  height:30px;
  border-radius:16px;
  background:#3A4A50;
}
.bell-glyph::after {
  content:"";
  position:absolute;
  width:16px;
  height:12px;
  background:#EDF1EC;
  border-radius:14px 14px 3px 3px;
  top:8px;
  left:50%;
  transform:translateX(-50%);
}
.bell-glyph::before {
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#1F7A4D;
  bottom:5px;
  left:50%;
  transform:translateX(-50%);
}
.callbell-links { display:flex; gap:6px; list-style:none; margin:0; padding:0; }
.callbell-links a {
  display:inline-block;
  background:#232B2D;
  color:#EDF1EC;
  text-decoration:none;
  padding:9px 18px;
  border-radius:20px;
  font-weight:700;
  border:1px solid #3A4A50;
}
.callbell-links a::before {
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#1F7A4D;
  margin-right:8px;
  vertical-align:middle;
}
.callbell-cta {
  margin-left:auto;
  text-decoration:none;
  background:#1F7A4D;
  color:#EDF1EC;
  padding:10px 20px;
  border-radius:22px;
  font-weight:700;
}
.callbell-navtoggle {
  display:none;
  background:#3A4A50;
  color:#EDF1EC;
  border:none;
  border-radius:6px;
  font-size:1.3rem;
  padding:6px 14px;
  cursor:pointer;
}
@media (max-width:820px){
  .callbell-navtoggle{display:inline-block;}
  .callbell-links{display:none;flex-direction:column;width:100%;}
  .callbell-links.is-open{display:flex;}
  .callbell-cta{margin-left:0;}
  .callbell-links a{width:100%;}
}

/* ============ CORRIDOR NIGHT HERO ============ */
.corridornight { background:#141A1B; }
.corridor-upper { padding:48px 0 10px; }
.corridor-stage {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px;
  text-align:center;
}
.door-run {
  display:flex;
  justify-content:center;
  gap:14px;
  margin-bottom:26px;
}
.door-frame {
  width:110px;
  height:180px;
  background:#3A4A50;
  border-radius:6px;
  position:relative;
  transform:perspective(500px) translateZ(0);
}
.door-frame .glow { display:block; height:10px; background:#1F7A4D; border-radius:3px 3px 0 0; }
.door.frame0{transform:scale(0.9);transform-origin:bottom;}
.door.frame1{transform:scale(0.78);transform-origin:bottom;}
.door.frame2{transform:scale(0.64);transform-origin:bottom;}
.door.frame3{transform:scale(0.5);transform-origin:bottom;}
.door.frame4{transform:scale(0.38);transform-origin:bottom;}
.door .lit-dot{
  width:12px;height:12px;background:#1F7A4D;border-radius:50%;
  margin:10px auto 6px;
  box-shadow:0 0 0 2px #1F7A4D;
}
@media (max-width:760px){
  .door.frame4,.door.frame3{display:none;}
}

/* monitor + trolley */
.machine-row {
  display:flex;
  gap:34px;
  justify-content:center;
  align-items:flex-end;
  flex-wrap:wrap;
}
.vitals-monitor {
  width:320px;
  background:#1E2628;
  border:2px solid #3A4A50;
  border-radius:10px;
  padding:12px;
  text-align:left;
}
.monitor-screen {
  background:#0E1313;
  border-radius:4px;
  height:150px;
  position:relative;
  overflow:hidden;
}
.trace {
  position:absolute;
  left:0;right:0;bottom:14px;
  height:60px;
  background:
    radial-gradient(circle at 6px 44px,#1F7A4D 2px,transparent 2px),
    repeating-linear-gradient(to right,#1F7A4D 0 2px,#1F7A4D 2px 3px,transparent 3px 10px);
  background-size:140px 80px;
  background-repeat:repeat-x;
  animation:trace 6s linear infinite;
}
@keyframes trace { from{background-position:0 0;} to{background-position:-1104px 0;} }
.baseline { position:absolute; left:0; right:0; bottom:10px; height:2px; background:#1F7A4D; }
.vitals-monitor p{ margin:10px 0 0; color:#EDF1EC; font-size:.75rem; letter-spacing:.15em; }
.monitor-small{width:12px;height:12px;border-radius:50%;background:#1F7A4D;display:inline-block;margin-right:6px;vertical-align:middle;}

/* medication trolley */
.trolley {
  width:170px;
  background:#232B2D;
  border-top:6px solid #3A4A50;
  border-radius:4px 4px 8px 8px;
  padding:8px;
  position:relative;
}
.trolley .tray{background:#1E2628;border:1px solid #3A4A50;border-radius:4px;margin:5px 0;padding:6px;color:#1F7A4D;font-size:.6rem;}
.trolley .wheels{display:flex;justify-content:space-between;margin-top:6px;}
.trolley .wheels span{width:14px;height:10px;background:#3A4A50;border-radius:0 0 7px 7px;}

/* station counter slab */
.station-slab {
  background:#232B2D;
  padding:48px 24px 30px;
}
.slab-inner { max-width:1200px; margin:0 auto; text-align:center; }
.eyebrow { color:#EDF1EC; letter-spacing:.28em; text-transform:uppercase; font-size:.8rem; margin-bottom:8px; font-family:Georgia,serif;}
.slab-heading {
  display:inline-block;
  font-size:2.5rem;
  max-width:900px;
  margin:0 auto 11px;
}
.slab-heading .stamp-round{
  display:inline-block;
  width:18px;height:18px;border-radius:50%;
  border:3px solid #1F7A4D;
  vertical-align:middle;
  margin:0 10px;
}
.slab-lead { max-width:760px; margin:0 auto 20px; font-size:1.1rem; color:#EDF1EC; }
.slab-actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn { display:inline-block; padding:13px 28px; border-radius:30px; font-weight:700; text-decoration:none; }
.btn.solid { background:#1F7A4D; color:#EDF1EC; }
.btn.outline { border:2px solid #EDF1EC; color:#EDF1EC; background:transparent; }

/* kick strip stats */
.kick-strip { background:#1E2628; }
.kick-inner {
  max-width:1100px;
  margin:0 auto;
  padding:18px 24px;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
}
.kick-stat { text-align:center; flex:1 1 200px;}
.kick-stat b{ display:block; font-size:2rem; color:#EDF1EC; }
.kick-stat span{ color:#EDF1EC; font-size:.85rem; letter-spacing:.05em;}
.kick-stat + .kick-stat{ border-left:1px solid #1F7A4D; }
@media(max-width:760px){ .kick-stat{flex:1 1 45%;} .kick-stat+.kick-stat{border-left:none;} }

/* ============ ROUND LOG ROWS ============ */
.roundlog { background:#141A1B; }
.roundlog-head { max-width:1200px; margin:0 auto; padding:60px 24px 0; text-align:center;}
.roundlog-head h2{ font-size:2rem; }
.roundlog-head p{ max-width:720px; margin:0 auto; color:#EDF1EC;}
.chart-row {
  max-width:1100px;
  margin:34px auto 0;
  padding:28px 32px;
  background:#1E2628;
  border-left:6px solid #3A4A50;
  border-radius:8px;
  position:relative;
  display:flex;
  gap:24px;
  align-items:flex-start;
}
.chart-row.row-off{ margin-left:calc(50% - 550px + 40px); }
@media(max-width:1020px){ .chart-row.row-off{margin-left:0;} .chart-row{ margin-left:auto; margin-right:auto; }} 
.chart-stamp {
  flex:0 0 96px;
  width:96px;height:96px;
  border-radius:50%;
  border:4px solid #1F7A4D;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  color:#EDF1EC;
  font-size:1.4rem;font-weight:700;
}
.chart-stamp small{font-size:.6rem;letter-spacing:.15em;color:#1F7A4D;}
.chart-body { flex:1 1 auto; }
.chart-body h3{ color:#1F7A4D; font-size:1.05rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:6px;}
.chart-body p{ color:#EDF1EC; font-size:.98rem;}
.chart-meta { display:flex; gap:8px; align-items:center; margin-bottom:8px; flex-wrap:wrap; }
.cloud-link { display:inline-block; margin-top:6px; color:#1F7A4D; font-weight:700; text-decoration:none; }
.bell-mark {
  position:absolute;
  top:24px;right:24px;
  width:18px;height:18px;
  border-radius:50%;
  background:#3A4A50;
}
.bell-mark::before{content:"";position:absolute;top:3px;left:50%;transform:translateX(-50%);width:8px;height:8px;background:#1F7A4D;border-radius:50%;}
.bell-mark.left { right:auto; left:24px; }

@media(max-width:820px){
  .chart-row{flex-direction:column;}
  .chart-row.row-off{margin-left:0;}
  .chart-stamp{width:72px;height:72px;}
  .bell-mark{display:none;}
}

/* ============ VITALS GREEN statement band ============ */
.statement-band { background:#1F7A4D; margin-top:56px; }
.statement-inner { max-width:1100px; margin:0 auto; padding:58px 24px; display:flex; gap:30px; align-items:center; flex-wrap:wrap;}
.statement-fig { font-size:6rem; line-height:1; color:#EDF1EC; font-weight:700; flex:0 0 auto; }
.statement-copy { flex:1 1 340px; }
.statement-copy h2{ color:#EDF1EC; font-size:2rem; }
.statement-copy p{ color:#EDF1EC; font-size:1.05rem; margin:0;}

/* ============ HANDOVER RUN ============ */
.handover-run { background:#3A4A50; }
.handover-inner { max-width:1190px; margin:0 auto; padding:56px 24px; }
.handover-inner h2{ color:#EDF1EC; text-align:center; font-size:2rem; margin-bottom:8px;}
.handover-sub{text-align:center; color:#EDF1EC; max-width:700px;margin:0 auto 40px;}
.handover-track { display:flex; flex-wrap:wrap; justify-content:center; gap:0 22px; padding-top:30px; position:relative;}
.handover-track::before{
  content:""; position:absolute; top:8px; left:0; right:0;
  border-top:3px dashed #1F7A4D;
}
.handover-stop {
  flex:1 1 170px;
  text-align:center;
  max-width:190px;
  position:relative;
  z-index:1;
}
.handover-dot {
  width:20px;height:20px;border-radius:50%;
  background:#1F7A4D;margin:0 auto 12px;
  box-shadow:0 0 0 5px #141A1B;
}
.handover-stop h3{ color:#EDF1EC; font-size:1rem; letter-spacing:.12em; text-transform:uppercase;}
.handover-stop p{ color:#EDF1EC; font-size:.9rem; }
.handover-stop.final h3{ color:#EDF1EC;}
.handover-stop.final .handover-dot{ background:#EDF1EC; box-shadow:0 0 0 5px #1F7A4D; }

/* ============ ACCENT BOOKING BAND ============ */
.booking-band { background:#1F7A4D; }
.booking-inner { max-width:1150px; margin:0 auto; padding:44px 24px; display:flex; align-items:center; gap:28px; flex-wrap:wrap; text-align:left;}
.booking-mark {
  flex:0 0 auto;
  border:3px solid #EDF1EC;
  color:#EDF1EC;
  font-size:1.3rem;
  letter-spacing:.16em;
  padding:16px 10px;
  transform:rotate(-4deg);
  text-align:center;
  line-height:1.2;
}
.booking-copy{ flex:1 1 300px; color:#EDF1EC;}
.booking-copy h2{color:#EDF1EC;}
.booking-copy p{color:#EDF1EC;margin:0 0 8px;}
.booking-cta { flex:0 0 auto; }
.btn.lino { background:#EDF1EC; color:#1F7A4D; }

/* ============ FOOTER STATION COUNTER ============ */
.stationcounter { background:#141A1B; border-top:2px solid #232B2D; margin-top:0;}
.motto-bar { background:#232B2D; border-top:6px solid #3A4A50;}
.motto-inner{
  max-width:1100px;margin:0 auto;padding:14px 24px;
  text-align:center;letter-spacing:.3em;color:#EDF1EC;font-size:.8rem;
}
.motto-inner .pen-pot{color:#1F7A4D;}
.counter-cols { background:#141A1B; }
.cols-inner { max-width:1100px; margin:0 auto; padding:44px 24px; display:flex; gap:32px; flex-wrap:wrap;}
.col-panel { flex:1 1 200px; background:#1E2628; border-top:3px solid #1F7A4D; padding:20px; border-radius:6px;}
.col-panel h4{ color:#EDF1EC; letter-spacing:.1em; text-transform:uppercase; font-size:.9rem; }
.col-panel a{ display:block; color:#EDF1EC; text-decoration:none; font-size:.92rem; padding:4px 0;}
.col-panel a:hover{ color:#1F7A4D; }
.base-plate { background:#EDF1EC; }
.base-inner { max-width:1150px; margin:0 auto; padding:24px 24px; color:#141A1B; }
.base-inner b{ color:#1F7A4D;}
.address-line{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; align-items:center;}
.address-line a{color:#1F7A4D; font-weight:700; text-decoration:none;}
.error-copy { text-align:center; margin-top:8px; color:#1F7A4D; font-size:.82rem; }

/* ============ SCROLL REVEAL ============ */
.reveal { opacity:1; transition:opacity .6s ease, transform .6s ease; }
html.js .reveal { opacity:0; transform:translateY(22px); }
html.js .reveal.visible { opacity:1; transform:none; }
noscript { display:block; }

/* contact + services generic layout classes re-used via style.css */
.page-wrap { max-width:1200px; margin:0 auto; padding:64px 24px; }
.page-title h1{ font-size:2.5rem; display:flex; align-items:center; gap:14px;}
.page-title h1 .stamp-round{width:20px;height:20px;border:4px solid #1F7A4D;border-radius:50%;display:inline-block;}
.lead-para { max-width:780px; font-size:1.1rem; color:#EDF1EC; }

/* contact */
.contact-grid { display:flex; gap:40px; flex-wrap:wrap; margin-top:34px;}
.contact-form-panel, .contact-info-panel { flex:1 1 360px; background:#1E2628; padding:26px; border-radius:8px; }
.contact-field{ margin-bottom:16px; }
.contact-field label{ display:block; margin-bottom:6px; color:#EDF1EC; letter-spacing:.05em; font-size:.85rem;}
.contact-field input, .contact-field select, .contact-field textarea{
  width:100%; box-sizing:border-box;
  background:#141A1B; color:#EDF1EC;
  border:1px solid #3A4A50; border-radius:5px; padding:12px;
  font-family:Georgia, serif; font-size:1rem;
}
.contact-info-panel .cinfo{margin:0 0 22px;}
.contact-info-panel .cinfo h3{ color:#1F7A4D; font-size:.95rem; letter-spacing:.06em; text-transform:uppercase;}
.contact-info-panel .cinfo p{ color:#EDF1EC; }
.contact-note{ font-size:.9em; color:#EDF1EC;}

/* accordion simple */
.accordion{ margin-top:34px;}
.acc-item{ background:#1E2628; border-radius:6px; margin-bottom:10px;}
.acc-item summary{ cursor:pointer; padding:16px 20px; font-weight:700; color:#EDF1EC; list-style:none;}
.acc-item summary::before{ content:"+ "; color:#1F7A4D; font-weight:700;}
.acc-item[open] summary::before{ content:"- "; }
.acc-item p{ padding:0 20px 18px; color:#EDF1EC; margin:0;}

/* services intro bands */
.svc-callout{ background:#232B2D; padding:30px; border-left:6px solid #1F7A4D; border-radius:6px; margin-bottom:30px;}
.svc-callout h2{ color:#EDF1EC; font-size:1.5rem;}
.form-status { color:#1F7A4D; font-weight:700; padding:8px 0;}
.mutednote{font-size:.85rem;color:#EDF1EC;}

@media(max-width:700px){
  .cols-inner{flex-direction:column;}
  .address-line{flex-direction:column;gap:4px;}
  .slab-heading{font-size:1.8rem;}
}
