﻿/* Additions for the rebuild (not in the live theme). */

/* Facts still to be supplied by the clinic. Easy to spot, easy to search for. */
.fms-placeholder {
  background: #fde047;
  color: #422006;
  padding: 0 .3em;
  border-radius: .25em;
  font-weight: 600;
  white-space: nowrap;
}

.fms-note {
  margin-top: .75rem;
  font-size: .95rem;
  opacity: .95;
}

/* Top menu shown from 1024px: keep each item on one line, and on laptop
   widths show the phone as its round button only so everything fits. */
/* Top-level items only; the Services dropdown links must still wrap. */
.fms-main-nav > a, .fms-main-nav > .group > a { white-space: nowrap; }
@media (min-width: 1024px) and (max-width: 1279px) {
  /* Same text size as the full-width menu, spacing a little tighter (2rem there).
     The logo never shrinks; the thin divider and the phone text make room. */
  #main-header .fms-main-nav { column-gap: 1.25rem; margin: 0 1rem; }
  #main-header div:has(> a > img) img { width: 150px; height: auto; }
  #main-header .fms-main-nav ~ div .h-14.w-px { display: none; }
  #main-header a[href^="tel:"] > div:last-child { display: none; }
  /* Services dropdown: narrower side padding and gaps so five columns fit. */
  #main-header .mega-menu-grid { column-gap: 1.25rem; }
  #main-header .mega-menu-grid a { font-size: .9rem; overflow-wrap: anywhere; }
  #main-header .fms-main-nav ~ div,
  #main-header div:has(> a > img) { flex-shrink: 0; }
}

/* Home page: five category boxes in one row on wide screens; on narrower
   screens the last row is centred (3 + 2 on laptops, 2 + 2 + 1 on tablets). */
@media (min-width: 640px) and (max-width: 1279px) {
  .services-cards-wrapper .fms-home-boxes { display: flex; flex-wrap: wrap; justify-content: center; }
  .services-cards-wrapper .fms-home-boxes > a { width: calc((100% - 1.5rem) / 2); }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .services-cards-wrapper .fms-home-boxes > a { width: calc((100% - 3rem) / 3); }
}
@media (min-width: 1280px) {
  .fms-home-boxes > a { padding: 1.75rem 1.5rem; }
  .fms-home-boxes > a h3 { font-size: 1.35rem; line-height: 1.3; }
}

/* Opening hours bar above the header, on every page. The header sits just
   below it until it switches to its fixed "scrolled" style. */
.fms-hours-bar {
  position: relative; z-index: 10000; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .35rem .4rem;
  min-height: 34px; padding: 6px 12px; background: #071c3c; color: #e0f2fe;
  font: 500 13px/1.3 "Inter", sans-serif; text-align: center;
}
.fms-hours-bar .material-icons { font-size: 16px; color: #38bdf8; }
.fms-bar-clinics { display: inline-flex; align-items: center; gap: .4rem; }
.fms-bar-sep { margin: 0 .5rem; color: #38bdf8; opacity: .6; }
.fms-bar-find { margin-left: .75rem; color: #7dd3fc; text-decoration: underline; font-weight: 600; }
.fms-bar-find:hover { color: #fff; }
.fms-bar-place { color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.fms-bar-place:hover { color: #7dd3fc; }
#main-header:not(.header-scrolled) { top: 34px !important; }
@media (max-width: 860px) {
  #main-header:not(.header-scrolled) { top: 78px !important; }
}
@media (max-width: 420px) {
  .fms-hours-bar { font-size: 12px; }
  .fms-hours-label { display: none; }
}
.fms-hours-phone { font-size: 12px; line-height: 1.3; color: #bae6fd; margin-top: 2px; white-space: nowrap; }

/* Footer ISO certification badges. */
.fms-iso-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 16px; padding: 8px 0 28px; }
.fms-iso-badge {
  display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, .22); border-radius: 12px; background: rgba(255, 255, 255, .06); color: #fff;
}
.fms-iso-badge .material-icons { font-size: 26px; color: #38bdf8; }
.fms-iso-badge strong { display: block; font-size: 15px; line-height: 1.2; }
.fms-iso-badge small { display: block; font-size: 11px; color: #bae6fd; letter-spacing: .02em; }
.fms-iso-note { width: 100%; text-align: center; font-size: 12px; color: #93c5fd; margin: 0; }

/* Doctify rating band near the top of the home page. */
.fms-doctify-band { background: #fff; padding: 8px 0 32px; }
.fms-doctify-band .fms-doctify-inner { max-width: 1100px; margin: 0 auto; padding: 0 16px; }
.fms-doctify-band iframe { display: block; border-radius: 14px; }
.fms-ratings { display: flex; gap: 16px; align-items: stretch; }
.fms-doctify-frame { flex: 1 1 auto; min-width: 0; }
.fms-google-card {
  flex: 0 0 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid #e5e7eb;
  box-shadow: 0 6px 18px rgba(12, 35, 64, .08); color: #1f2937; text-decoration: none; text-align: center;
}
.fms-g-logo { font: 700 22px/1 "Roboto", sans-serif; letter-spacing: -.5px; }
.fms-g-score { font: 700 30px/1.1 "Inter", sans-serif; color: #071c3c; }
.fms-g-stars { color: #FBBC05; font-size: 20px; letter-spacing: 2px; }
.fms-g-count { font-size: 13px; color: #4b5563; }
@media (max-width: 767px) {
  .fms-ratings { flex-direction: column; }
  .fms-google-card { flex-basis: auto; }
}
.fms-g-feed { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.fms-g-review { margin: 0; padding: 14px 16px; border: 1px solid #e5e7eb; border-radius: 14px; background: #fff; text-align: left; }
.fms-g-review-top { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 6px; font-weight: 600; color: #071c3c; }
.fms-doctify-band .fms-g-review p { margin: 0 0 8px; text-align: left; color: #1f2937; font-size: 14px; }
.fms-doctify-band .fms-g-text {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;
}
@media (max-width: 800px) { .fms-g-feed { grid-template-columns: 1fr; } }
.fms-doctify-band .fms-g-when { color: #6b7280; font-size: 12px; }
.fms-doctify-band p { text-align: center; color: #4b5563; font-size: 14px; margin: 10px 0 0; }
.fms-doctify-band a { color: #027cbb; text-decoration: underline; }

/* Home page slider: content starts just under the menu instead of in the middle
   of a tall banner, so Book GP Appointment is visible without scrolling (Zaheer, 5 Oct 2026). */
@media (min-width: 1024px) {
  .hero-slider-section .hero-slide { justify-content: flex-start; padding-top: 130px; }
  /* First (video) slide: halfway between the original centred position and the tight one (Zaheer, 5 Oct 2026). */
  .hero-slider-section .hero-slide-video { padding-top: 200px; }
  .hero-slider-section .hero-slide-image > .container { padding-top: 0; }
  .hero-slider-section .hero-slide-image .grid.items-center { align-items: start; }
}
/* Small line above the slogan in the home page H1: what the clinic is and where (3 Nov 2026). */
.hero-slider-section .fms-h1-lead {
  display: block; margin-bottom: 0.75rem;
  font-family: "Inter", sans-serif; font-size: 0.95rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; color: #7dd3fc;
}
@media (max-width: 640px) { .hero-slider-section .fms-h1-lead { font-size: 0.75rem; } }
.hero-still {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center center;
}
/* The still is a bright photo of the clinic sign, so the scrim stays darker than it was over the film. */
.hero-video-overlay {
  background: linear-gradient(to bottom, rgba(7, 28, 60, 0.82) 0%, rgba(7, 28, 60, 0.74) 50%, rgba(7, 28, 60, 0.82) 100%);
}

/* "New" corner ribbon on a home page box. */
.fms-new-badge {
  position: absolute; top: 14px; right: -34px; z-index: 2;
  width: 120px; padding: 4px 0; transform: rotate(45deg);
  background: #cd4a29; /* darker orange so the white text passes contrast (12 Oct 2026) */ color: #fff; text-align: center;
  font: 700 12px/1.2 "Roboto", sans-serif; letter-spacing: .08em; text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(241, 87, 48, .35);
}

/* Services dropdown: left padding clears the "Request a Call Back" tab on the left edge. */
@media (min-width: 1024px) {
  #main-header .mega-menu > .container { padding-left: 4.5rem; padding-right: 2rem; }
}

/* "New" pill beside a Services dropdown heading. */
.fms-new-pill {
  display: inline-block; margin-left: .4rem; padding: 2px 7px; vertical-align: 2px;
  border-radius: 999px; background: #cd4a29; color: #fff;
  font: 700 10px/1.3 "Roboto", sans-serif; letter-spacing: .08em; text-transform: uppercase;
}

/* GMC number: a small, separate credential line. */
.fms-gmc { margin-top: .6rem; font-size: .95rem; color: #e0f2fe; }
.fms-gmc a { color: #fff; text-decoration: underline; }
.fms-gmc-card { margin-top: 4px; font-size: .74rem; line-height: 1.35; color: #6b7280; }
.fms-gmc-card a { color: #027cbb; text-decoration: underline; }
.fms-gmc-panel { font-size: .85rem; margin: -8px 0 20px; }
.fms-linkedin { margin: 0 0 20px; font-size: .85rem; }
.fms-gmc-panel + .fms-linkedin { margin-top: -14px; }
.fms-linkedin a { display: inline-flex; align-items: center; gap: 6px; color: #0a66c2; font-weight: 600; text-decoration: none; }
.fms-linkedin a:hover { text-decoration: underline; }

/* Consultants page: compact cards so six fit across on wide screens. */
.fms-consultant-grid > article { border-radius: 14px; display: flex; flex-direction: column; }
.fms-consultant-grid > article > div:last-child { flex: 1; display: flex; flex-direction: column; }
.fms-consultant-grid > article > div:last-child > div:last-child { margin-top: auto; } /* buttons line up */
.fms-consultant-grid .fms-photo-wrap { padding: 10px 10px 0; }
.fms-consultant-grid .fms-photo { border-radius: 10px; }
.fms-consultant-grid .fms-photo-initials { font-size: 2.2rem; }
.fms-consultant-grid article > div:last-child { padding: 12px 14px 14px; }
.fms-consultant-grid article .mb-6 { margin-bottom: 10px; }
.fms-consultant-grid article h2 { font-size: 1.02rem; line-height: 1.3; margin-bottom: 2px; }
.fms-consultant-grid article h2 + p { font-size: .85rem; line-height: 1.3; }
.fms-consultant-grid article h2 + p + p { font-size: .78rem; line-height: 1.3; margin-top: 4px; }
.fms-consultant-grid article .space-y-3 { display: none; } /* "Telemedicine" / "Same-day" lines: on each profile page */
.fms-consultant-grid article a.block.w-full { padding: 8px 10px; font-size: .85rem; border-radius: 8px; }

/* Consultant photos: one portrait frame, faces lined up, light brand tint. */
.fms-photo-wrap { padding: 14px 14px 0; background: #fff; }
.fms-photo {
  display: block; position: relative; overflow: hidden;
  aspect-ratio: 4 / 5; border-radius: 12px;
  background: radial-gradient(circle at 50% 30%, #f4f7fb 0%, #e3eaf3 100%);
  box-shadow: inset 0 0 0 1px rgba(12, 35, 64, .08);
}
.fms-photo img { filter: saturate(.85) contrast(1.04) brightness(1.02); transition: transform .3s ease; }
.fms-photo::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(2, 132, 199, .10) 0%, rgba(2, 132, 199, 0) 45%, rgba(7, 28, 60, .18) 100%);
}
.fms-photo--missing {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  background: linear-gradient(160deg, #0c4a6e, #071c3c); color: #fff;
}
.fms-photo--missing::after { display: none; }
.fms-photo-initials { font-size: 3rem; font-weight: 700; letter-spacing: .04em; }
.fms-photo--missing small { font-size: .8rem; opacity: .7; }

/* Banner shown when a form is submitted on the local copy. */
.fms-local-notice {
  position: fixed;
  left: 50%;
  bottom: 1.5rem;
  transform: translateX(-50%);
  z-index: 100000;
  max-width: min(92vw, 32rem);
  background: #071c3c;
  color: #fff;
  padding: .9rem 1.2rem;
  border-radius: .75rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .3);
  font-size: .95rem;
}

/* Phones (Zaheer, 8 Oct 2026: 70% of visitors are on mobile). */
/* The closed search panel sits just off the right edge; its shadow showed as a grey band down every page. */
#search-drawer-content.translate-x-full { box-shadow: none; }
@media (max-width: 1023px) {
  /* Search, menu and close icons: at least 44 x 44 px to tap (they were 24 x 30). */
  #main-header button:not(.mobile-accordion-trigger),
  #mobile-drawer .justify-between > button,
  #search-drawer .justify-between > button { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
}
@media (max-width: 767px) {
  .fms-gmc-card { font-size: .8rem; } /* registration line and Verify link: 12.8 px, was 11.8 */
  input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; } /* consent boxes easier to tap */
}
@media (max-width: 1023px) {
  #mobile-drawer .mobile-accordion-trigger.py-1 { padding-top: .5rem; padding-bottom: .5rem; } /* service groups in the phone menu: taller tap rows */
}

/* Logos sized by height only: their width/height attributes give the shape, not a fixed width. */
img.h-10[width], img.h-12[width] { width: auto; }

/* Icons drawn from /icons/sprite.svg at the size and colour the icon font used (12 Oct 2026). */
.material-icons > svg { display: inline-block; width: 1em; height: 1em; fill: currentColor; vertical-align: top; }
.material-icons > .mi-name { display: none; }

/* Health insurance band on the home page, under the patient ratings (preview, 13 Oct 2026). */
.fms-insurance-band { background: #fff; padding: 0 0 32px; }
.fms-insurance-inner { max-width: 1100px; margin: 0 auto; padding: 20px 20px 18px; display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center;
  border: 1px solid #e5e7eb; border-radius: 14px; background: #f0f7fc; }
@media (min-width: 1140px) { .fms-insurance-inner { margin: 0 auto; } }
@media (max-width: 1139px) { .fms-insurance-band { padding-left: 16px; padding-right: 16px; } }
.fms-insurance-inner > .material-icons { font-size: 28px; color: #027cbb; flex-shrink: 0; }
.fms-insurance-inner > div { width: 100%; }
.fms-insurance-title { margin: 0; font-weight: 600; color: #071c3c; font-size: 1rem; line-height: 1.6; text-align: center; }
.fms-insurer { display: inline-block; margin: 0 4px; padding: 2px 12px; border-radius: 999px; background: #fff; border: 1px solid #bae6fd; color: #071c3c; font-weight: 700; }
.fms-insurance-note { margin: 8px auto 0; max-width: 42rem; color: #475569; font-size: .9rem; text-align: center; }
.fms-insurer-logos { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 12px 0 4px; }
/* Photo cards (Related Services, Similar Posts, service grids): two columns through a
   1280px window, three only once there is room for wider cards. */
@media (min-width: 1024px) and (max-width: 1439px) {
  section .fms-related-grid,
  .fms-card-grid.grid,
  .fms-subservices .grid,
  .fms-svc-cards .grid,
  .fms-home-services .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
img.fms-insurer-logo { display: block; width: 170px; height: 64px; object-fit: contain;
  background: #fff; border: 1px solid #bae6fd; border-radius: 10px; padding: 6px 10px; }
.fms-insurer-logo--todo { display: inline-flex; align-items: center; justify-content: center; width: 170px; height: 64px; border: 1px dashed #bae6fd; border-radius: 10px; color: #64748b; font-size: .85rem; font-weight: 600; }


/* Home page service cards: compact version (approved by Zaheer, 13 Oct 2026). */
section.fms-home-services.py-20 { padding-top: 3rem; padding-bottom: 3rem; }
.fms-home-services .text-center.mb-16 { margin-bottom: 1.5rem; padding-top: 0; padding-bottom: 0; }
.fms-home-services .grid { gap: 1.25rem; margin-bottom: 2rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1440px) { .fms-home-services .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.fms-home-services .grid a > div.h-64 { height: 9rem; margin-bottom: .75rem; border-radius: 1rem; }
@media (min-width: 1024px) { .fms-home-services .grid a > div.h-64 { height: 10rem; } }
.fms-home-services .grid h3 { font-size: 1rem; line-height: 1.4; margin-bottom: .25rem; }
.fms-home-services .grid a > div.h-64 .font-semibold { font-size: .75rem; }
@media (max-width: 640px) { .fms-home-services .grid a > div.h-64 { height: 7rem; } .fms-home-services .grid h3 { font-size: .9rem; } }

/* Services page cards in the style of the smaller home page service cards (Zaheer, 13 Oct 2026). */
.fms-svc-cards .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
@media (min-width: 1440px) { .fms-svc-cards .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; } }
.fms-svc-cards article { background: transparent; box-shadow: none; border-radius: 0; overflow: visible; display: flex; flex-direction: column; transition: transform .3s; }
.fms-svc-cards article:hover { box-shadow: none; transform: translateY(-.5rem); }
.fms-svc-cards article > div.relative { height: 9rem; border-radius: 1rem; overflow: hidden; transition: box-shadow .3s; }
.fms-svc-cards article:hover > div.relative { box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1); }
@media (min-width: 1024px) { .fms-svc-cards article > div.relative { height: 10rem; } }
.fms-svc-cards article > div.relative::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgb(0 0 0 / .5), transparent); pointer-events: none; }
.fms-svc-cards article > div.relative > div.absolute { z-index: 1; }
.fms-svc-cards article > div.relative > div.top-4.left-4 { top: auto; bottom: .75rem; left: .75rem; }
.fms-svc-cards article > div.relative > div.top-4.left-4 span { background: none; padding: 0; color: #fff; font-size: .75rem; }
.fms-svc-cards article > div.relative > div.top-4.right-4 { top: .5rem; right: .5rem; }
.fms-svc-cards article > div.relative > div.top-4.right-4 span { padding: .2rem .55rem; font-size: .7rem; }
.fms-svc-cards article > div.p-6 { padding: .75rem 0 0; display: flex; flex-direction: column; flex: 1; }
.fms-svc-cards article > div.p-6 > div.mb-6 { margin-bottom: .25rem; }
.fms-svc-cards article h3 { font-size: 1rem; line-height: 1.4; font-weight: 600; margin-bottom: .25rem; }
.fms-svc-cards article h3 a { color: #111827; }
.fms-svc-cards article h3 + p { font-size: .8rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fms-svc-cards article .space-y-2 { display: none; }
.fms-svc-cards article a.block.bg-sky-600 { display: inline-flex; width: auto; background: none; color: #1e40af; padding: 0; font-weight: 600; font-size: .875rem; text-align: left; }
.fms-svc-cards article a.block.bg-sky-600:hover { background: none; color: #1e3a8a; }
.fms-svc-cards article a.block.bg-sky-600::after { content: "\2192"; margin-left: .25rem; }
@media (max-width: 640px) {
  .fms-svc-cards article > div.relative { height: 7rem; }
  .fms-svc-cards article h3 { font-size: .9rem; }
  .fms-svc-cards article h3 + p { display: none; }
}
.fms-svc-group { scroll-margin-top: 110px; }
.fms-svc-group + .fms-svc-group { margin-top: 2.5rem; }
.fms-svc-group-title { font: 700 1.375rem/1.3 "Inter", sans-serif; color: #0c4a6e; margin-bottom: 1rem; padding-bottom: .5rem; border-bottom: 2px solid #e0f2fe; }
.fms-svc-group-title span { font-weight: 500; font-size: 1rem; color: #64748b; }

/* Registration number as the verify link, with a tick (Zaheer, 13 Oct 2026). */
.fms-reg-link { white-space: nowrap; text-underline-offset: 2px; }
.fms-reg-tick { display: inline-block; margin-left: .3em; font-weight: 700; color: #16a34a; text-decoration: none; }
.fms-gmc .fms-reg-tick { color: #4ade80; }

/* Which clinic offers what (Zaheer, 13 Oct 2026): Lurgan has every service; Limavady and Derry are vasectomy only. */
.fms-clinic-note { display: inline-block; margin: -6px 0 14px; padding: 3px 10px; border-radius: 999px; background: #e0f2fe; color: #075985; font: 600 .8rem/1.4 "Inter", sans-serif; }
.fms-clinic-note--vas { background: #fff7ed; color: #9a3412; }
.fms-footer-note { font-size: .75em; opacity: .75; }

/* Tick bullets on service pages: the page styles drew them with the Material Icons font, which the
   site no longer loads (icons are an SVG sprite now), so the word "check_circle" showed instead.
   Same green tick, drawn as an SVG (fixed 13 Oct 2026). */
.fms-svc-sections ul.fms-ticks li::before {
  content: "" !important; font-family: inherit !important;
  width: 19px; height: 19px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2315803d' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Service pages: clinicians who provide the service (Zaheer, 13 Oct 2026). */
.fms-clin-photo { flex-shrink: 0; width: 56px; height: 56px; border-radius: 9999px; object-fit: cover; object-position: center 20%; background: #e0f2fe; }
.fms-clin-initials { display: inline-flex; align-items: center; justify-content: center; color: #0369a1; font: 700 1.1rem/1 "Inter", sans-serif; }
.fms-clinicians-list { margin-bottom: 1.5rem; }
.fms-clin-photo--sm { width: 44px; height: 44px; }
/* Blog sidebar: the writer, and the consultant the article already names. */
.fms-byline-kicker { margin: 0 0 .2rem; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #0369a1; }
.fms-byline-name { margin: 0; font-family: "Poppins", sans-serif; font-weight: 700; font-size: 1.05rem; color: #0c4a6e; }
.fms-byline-note { margin: .15rem 0 0; font-size: .85rem; line-height: 1.45; color: #64748b; }
.fms-byline-note a { color: #0369a1; text-decoration: underline; }
.fms-byline-clinician { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e2e8f0; }
.fms-byline-one + .fms-byline-one { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid #e2e8f0; }
.fms-byline-person { display: flex; align-items: center; gap: .75rem; margin-top: .45rem; text-decoration: none; }
.fms-byline-person .name { display: block; font-weight: 700; color: #0c4a6e; }
.fms-byline-person .role { display: block; margin-top: .1rem; font-size: .8rem; line-height: 1.35; color: #64748b; }
.fms-byline-person:hover .name { color: #0284c7; text-decoration: underline; }
.fms-byline .fms-clin-photo { width: 72px; height: 72px; }
.fms-byline .fms-gmc-card { margin-top: .65rem; }
.fms-byline .fms-reg-tick { color: #15803d; }
.fms-byline-profile { display: inline-block; margin-top: .55rem; font-size: .85rem; font-weight: 600; color: #0369a1; text-decoration: underline; }
/* Blog archive: topics as a disclosure and a list, instead of a wrap of chips. */
.fms-topics-details { border: 1px solid #cbd5e1; border-radius: 16px; background: #fff; }
.fms-topics-details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 64px; padding: .85rem 1.1rem; cursor: pointer; list-style: none; }
.fms-topics-details summary::-webkit-details-marker { display: none; }
.fms-topics-details summary:focus-visible,
.fms-topics-list a:focus-visible { outline: 3px solid #0369a1; outline-offset: 2px; }
.fms-topics-kicker { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #0369a1; }
.fms-topics-now { display: block; margin-top: .15rem; font-family: "Poppins", sans-serif; font-weight: 700; font-size: 1.05rem; color: #0c4a6e; }
.fms-topics-side { display: inline-flex; align-items: center; gap: .7rem; flex-shrink: 0; }
.fms-topics-meta { font-size: .85rem; color: #334155; }
.fms-topics-chevron { width: .55rem; height: .55rem; border-right: 2px solid #0369a1; border-bottom: 2px solid #0369a1; transform: translateY(-2px) rotate(45deg); }
.fms-topics-details[open] .fms-topics-chevron { transform: translateY(2px) rotate(-135deg); }
.fms-topics-details:not([open]) > .fms-topics-list { display: none; }
.fms-topics-list { list-style: none; margin: 0; padding: .35rem 0; border-top: 1px solid #e2e8f0; max-height: 24rem; overflow: auto; }
.fms-topics-list a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding: .55rem 1.1rem; color: #0f172a; text-decoration: none; }
.fms-topics-list a:hover { background: #f0f9ff; }
.fms-topics-list a[aria-current="page"] { background: #e0f2fe; font-weight: 700; }
.fms-topics-aside { display: inline-flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.fms-topics-badge { font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #0c4a6e; }
.fms-topics-count { font-size: .85rem; font-variant-numeric: tabular-nums; color: #334155; }
.fms-topics-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.fms-clinicians-side .fms-clin-initials { font-size: .9rem; }
/* Phones: the clinicians box sits after the page text, in a compact form so it doesn't take over the screen. */
@media (max-width: 1023px) {
  .fms-clinicians-list { padding: 1rem 1.1rem; }
  .fms-clinicians-list > div:first-child { margin-bottom: .5rem; padding-bottom: .75rem; }
  .fms-clinicians-list h2 { font-size: 1.15rem !important; line-height: 1.3; }
  .fms-clinicians-list > div:first-child .w-12 { width: 2.5rem; height: 2.5rem; }
  .fms-clinicians-list li a { padding-top: .6rem; padding-bottom: .6rem; min-height: 56px; }
  .fms-clinicians-list .fms-clin-photo { width: 44px; height: 44px; }
  .fms-clinicians-list li a .font-semibold { font-size: .95rem; }
  .fms-clinicians-list li a .text-sm { font-size: .8rem; }
}

/* GP pages: "Book your GP appointment" banner, option B (Zaheer, 13 Oct 2026). */
.fms-gpb-row { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.fms-gpb-text { flex: 1 1 280px; }
.fms-gpb-ticks { display: grid; gap: 6px; list-style: none; padding: 0; margin: 0; }
.fms-gpb-tick { display: flex; gap: 8px; align-items: center; color: #e0f2fe; }
.fms-gpb-tick .material-icons { font-size: 20px; flex-shrink: 0; }
.fms-gpb-buttons { display: flex; flex-direction: column; gap: 12px; flex: 0 1 260px; }
.fms-gpb-btn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 12px 24px; border-radius: 8px; font-weight: 700; font-size: 1.05rem; transition: background-color .2s, color .2s; }
.fms-gpb-btn .material-icons { font-size: 20px; }
.fms-gpb-btn--book { background: #fff; color: #0369a1; }
.fms-gpb-btn--book:hover { background: #f0f9ff; }
.fms-gpb-btn--call { border: 2px solid #fff; color: #fff; }
.fms-gpb-btn--call:hover { background: #fff; color: #0369a1; }
@media (max-width: 640px) { .fms-gpb-buttons { flex: 1 1 100%; } }

.fms-trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.fms-rcb-privacy { display: flex; gap: .5rem; align-items: flex-start; font-size: .75rem; line-height: 1.4; color: #334155; }
.fms-rcb-privacy input { margin-top: .15rem; }
.fms-rcb-privacy a { color: #0369a1; }

.fms-consent { position: fixed; z-index: 120; left: 0; right: 0; bottom: 0; padding: 1rem; }
.fms-consent-card { max-width: 40rem; margin: 0 auto; background: #fff; color: #0f172a; border-radius: 1rem; box-shadow: 0 12px 40px rgba(7, 28, 60, .2); padding: 1.25rem 1.25rem 1rem; }
.fms-consent-card h2 { margin: 0 0 .35rem; font-size: 1.15rem; color: #071c3c; }
.fms-consent-card p { margin: 0 0 .85rem; font-size: .9rem; color: #334155; }
.fms-consent-card a { color: #0369a1; }
.fms-consent-row { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: .65rem 0; border-top: 1px solid #e2e8f0; }
.fms-consent-name { display: block; font-weight: 700; }
.fms-consent-help { display: block; font-size: .8rem; color: #475569; }
.fms-consent-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .85rem; }
.fms-consent-actions button { min-height: 44px; border-radius: 999px; padding: .55rem 1rem; font-weight: 700; cursor: pointer; }
.fms-consent-actions button[data-consent="all"] { background: #071c3c; color: #fff; border: 0; }
.fms-consent-actions button[data-consent="save"] { background: #fff; color: #071c3c; border: 2px solid #071c3c; }
.fms-consent-actions button[data-consent="reject"] { background: #fff; color: #334155; border: 0; text-decoration: underline; }
.fms-cookie-settings { background: none; border: 0; padding: 0; margin-left: .75rem; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; }

#map { position: relative; }
.fms-map-gate { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1.5rem; text-align: center; background: #f0f9ff; color: #0f172a; }
.fms-map-gate[hidden] { display: none; }
.fms-map-gate p { margin: 0; max-width: 28rem; }
.fms-map-gate button { min-height: 44px; border: 0; border-radius: 999px; padding: .6rem 1.1rem; background: #071c3c; color: #fff; font-weight: 700; cursor: pointer; }
