/* ============================================================
   PMCK — homepage
   Built from Home___Desktop.pdf. Everything is scoped under
   .pmck-home so nothing here can reach another template.
   ============================================================ */

/* TYPE SCALE
   Nothing on this page sits below 18px. theme.css already sets the site
   body to 18px; this file was undercutting it at 13-16px, which is what
   made the homepage read smaller than every other page. Headings were
   raised with the body text rather than left alone, or a 19px card title
   next to 18px body would have flattened the hierarchy. */
.pmck-home{--h-gap:24px;}

.pmck-hsec{padding:64px 0;}
.pmck-hsec.is-tint{background:var(--brand-soft);}
.pmck-hsec.is-panel{background:var(--brand-pale);}

.pmck-hsec__head{margin-bottom:34px;}
.pmck-hsec__head.is-centred{text-align:center;max-width:70ch;margin-inline:auto;}
.pmck-hsec__title{font-size:38px;line-height:1.2;margin:0 0 12px;}
.pmck-hsec__lede{margin:0;font-size:19px;line-height:1.6;color:var(--body);}
.pmck-hsec__more{margin-top:30px;text-align:center;}
.pmck-hsec__more .pmck-btn{margin-inline:auto;}

/* ---------- hero ----------
   The photo carries the type, so the dark wash is on the left only — a flat
   overlay across the whole image killed the picture the design is built on. */

.pmck-hhero{position:relative;background:var(--brand-dark);color:#fff;overflow:hidden;}
.pmck-hhero.has-image::before{
  content:"";position:absolute;inset:0;
  background-image:var(--hero-img);background-size:cover;background-position:center right;
}
.pmck-hhero.has-image::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,36,0,.92) 0%,rgba(0,36,0,.78) 34%,rgba(0,36,0,0) 68%);
}
.pmck-hhero .pmck-wrap{position:relative;z-index:1;}
/* Wide enough that both hero buttons sit on one line, as the design has them;
   the paragraph is held narrower by its own measure. */
.pmck-hhero__inner{max-width:620px;padding:96px 0 104px;}
.pmck-hhero__title{font-size:52px;line-height:1.14;margin:0 0 18px;color:#fff;}
.pmck-hhero__body{margin:0 0 30px;max-width:46ch;font-size:19px;line-height:1.7;color:rgba(255,255,255,.9);}
.pmck-hhero__btns{display:flex;flex-wrap:wrap;gap:14px;}

/* The second hero button is an outline on the photo, not a second solid. */
.pmck-hhero .pmck-btn{background:#fff;color:var(--brand-ink);}
.pmck-hhero .pmck-btn--ghost{background:rgba(0,36,0,.55);color:#fff;border:1px solid rgba(255,255,255,.35);}

/* ---------- specialties ---------- */

.pmck-hspecs{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--h-gap);}
.pmck-hspec{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--brand);
  border-radius:12px;overflow:hidden;display:flex;flex-direction:column;
}
.pmck-hspec__media{display:block;padding:14px 14px 0;}
.pmck-hspec__media img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;border-radius:8px;}
.pmck-hspec__body{padding:18px 22px 22px;display:flex;flex-direction:column;flex:1;}
.pmck-hspec__title{font-size:24px;margin:0 0 10px;}
.pmck-hspec__title a{text-decoration:none;}
.pmck-hspec__title a:hover{color:var(--brand);}
.pmck-hspec__excerpt{
  margin:0 0 20px;font-size:18px;line-height:1.6;color:var(--body);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.pmck-hspec__go{margin-top:auto;width:100%;justify-content:center;}

/* ---------- why us ---------- */

.pmck-hwhy{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:44px;align-items:start;}
.pmck-hwhy__media img{width:100%;height:auto;display:block;border-radius:12px;}
.pmck-hwhy__list{display:grid;gap:16px;justify-items:start;}
.pmck-hpoint{background:#fff;border-radius:10px;padding:18px 22px;width:100%;}
.pmck-hpoint__head{display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.pmck-hpoint__ic img{width:28px;height:28px;object-fit:contain;display:block;}
.pmck-hpoint h3{font-size:22px;margin:0;}
.pmck-hpoint p{margin:0;font-size:18px;line-height:1.6;color:var(--body);}

/* ---------- health packages ---------- */

.pmck-hrail__head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  flex-wrap:wrap;margin-bottom:28px;
}
.pmck-hrail__head .pmck-hsec__lede{max-width:52ch;}
.pmck-hrail__head .pmck-btn--ghost{background:transparent;color:var(--brand-ink);border:1px solid var(--line);}

.pmck-hrail{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);
  gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:8px;scrollbar-width:thin;
}
@media (min-width:1100px){
  /* Four across, matching the design's card width.
     A fixed track, NOT minmax(0,...) — a zero minimum lets the columns shrink
     to fit the container instead of overflowing, and then the rail never
     scrolls and the dots never appear. */
  .pmck-hrail{grid-auto-columns:calc((100% - 54px) / 4);}
}

.pmck-pkg{
  background:#fff;border:1px solid var(--line);border-top:4px solid var(--accent);
  border-radius:12px;overflow:hidden;display:flex;flex-direction:column;
  scroll-snap-align:start;
}
/* The artwork is a scanned portrait poster with its own heading in it, so it
   is shown whole. Cropping to a banner cut the client's own title off. */
.pmck-pkg__media{display:block;background:var(--brand-pale);}
.pmck-pkg__media img{width:100%;height:auto;display:block;}
.pmck-pkg__body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;}
.pmck-pkg__title{font-size:22px;margin:0 0 6px;line-height:1.25;}
.pmck-pkg__title a{text-decoration:none;}
.pmck-pkg__title a:hover{color:var(--brand);}
.pmck-pkg__type{display:block;font-size:18px;color:var(--muted);margin-bottom:16px;}
.pmck-pkg__go{margin-top:auto;width:100%;justify-content:center;}

.pmck-hrail__nav{
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;
}
.pmck-hrail__dots{display:flex;gap:7px;}
.pmck-hrail__dot{
  width:7px;height:7px;border-radius:50%;background:var(--line);
  border:0;padding:0;cursor:pointer;
}
.pmck-hrail__dot.is-on{background:var(--brand);width:18px;border-radius:4px;}
.pmck-hrail__arrows{display:flex;gap:10px;}

/* ---------- the numbers ----------
   The design is NOT a uniform grid — it is a mosaic of five cards in two
   columns of different rhythm: a large card carrying the headline figure and
   the patient-rating block, a dark card, a tall card, and two small ones.
   Each card is placed explicitly from its style field, so the client changes
   emphasis by changing a dropdown rather than by us rebuilding the layout.
   The design expects one of each style; extra rows flow into the next free
   cell rather than breaking the mosaic. */

.pmck-hstats{position:relative;overflow:hidden;--stat-card:var(--brand-soft);--stat-badge:#12666a;}

/* Botanical artwork from the design, uploaded by the client — the theme never
   ships it. Behind everything, and simply absent when no image is set. */
.pmck-hstats.has-art::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:var(--stats-art);background-size:cover;background-position:center;
}
.pmck-hstats > .pmck-wrap{position:relative;z-index:1;}

.pmck-hstats__head{
  display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);
  gap:60px;align-items:start;margin-bottom:34px;
}
.pmck-hstats__head .pmck-hsec__title{font-size:44px;line-height:1.14;}

.pmck-hstats__grid{
  display:grid;
  grid-template-columns:1.1fr 1.1fr 0.9fr 0.9fr;
  grid-template-rows:auto auto auto;
  gap:18px;
}

.pmck-hstat{
  position:relative;overflow:hidden;
  background:var(--stat-card);border-radius:18px;padding:30px 26px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  min-height:150px;
}
.pmck-hstat b{font-size:50px;line-height:1;color:var(--brand-ink);font-weight:700;}
.pmck-hstat span{font-size:21px;line-height:1.35;font-weight:600;color:var(--brand-ink);}

/* --- the five slots --- */
.pmck-hstat.is-feature{grid-column:1 / 3;grid-row:1 / 3;min-height:340px;}
.pmck-hstat.is-dark   {grid-column:3 / 5;grid-row:1 / 2;min-height:250px;}
.pmck-hstat.is-tall   {grid-column:3 / 5;grid-row:2 / 4;min-height:230px;}
.pmck-hstat.is-plain  {grid-column:1 / 2;grid-row:3 / 4;}
.pmck-hstat.is-lime   {grid-column:2 / 3;grid-row:3 / 4;}

.pmck-hstat.is-feature b{font-size:64px;}
.pmck-hstat.is-feature span{font-size:23px;}

/* A single soft band across the large card, as in the design. */
.pmck-hstat.is-feature::before{
  content:"";position:absolute;left:-10%;right:-10%;top:46%;height:120px;
  background:radial-gradient(60% 100% at 50% 50%, rgba(139,202,2,.14), transparent 70%);
  pointer-events:none;
}

.pmck-hstat.is-dark{background:var(--brand);}
.pmck-hstat.is-dark b,
.pmck-hstat.is-dark span{color:#fff;}
.pmck-hstat.is-dark b{font-size:56px;}

/* Concentric rings, drawn rather than shipped as an image. */
.pmck-hstat.is-dark::before{
  content:"";position:absolute;inset:-40%;pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 88px, rgba(255,255,255,.07) 88px 90px, transparent 90px),
    radial-gradient(circle at 50% 50%, transparent 0 152px, rgba(255,255,255,.055) 152px 154px, transparent 154px),
    radial-gradient(circle at 50% 50%, transparent 0 216px, rgba(255,255,255,.04) 216px 218px, transparent 218px),
    radial-gradient(circle at 50% 50%, transparent 0 280px, rgba(255,255,255,.03) 280px 282px, transparent 282px);
}

.pmck-hstat.is-lime{background:linear-gradient(160deg,#8BCA02,#5FA404);}
.pmck-hstat.is-lime b,
.pmck-hstat.is-lime span{color:#fff;}

.pmck-hstat > b,
.pmck-hstat > span,
.pmck-hstat__extra{position:relative;z-index:1;}

/* --- the patient-rating block inside the large card --- */

.pmck-hstat__extra{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:26px;}

.pmck-hstat__faces{display:flex;align-items:center;}
.pmck-hstat__face{
  width:62px;height:62px;border-radius:50%;object-fit:cover;display:block;
  border:3px solid var(--stat-card);margin-right:-16px;
}
.pmck-hstat__badge{
  width:62px;height:62px;border-radius:50%;
  background:var(--stat-badge);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:700;border:3px solid var(--stat-card);
  position:relative;
}
.pmck-hstat__note{font-size:20px;font-weight:600;color:var(--stat-badge);}

/* ---------- accreditations ---------- */

.pmck-hmarks{display:grid;grid-template-columns:1fr 1fr;gap:var(--h-gap);}
.pmck-hmark{
  background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:28px 24px;text-align:center;
  display:flex;flex-direction:column;
}
/* Fixed height so all four logos sit on the same line however tall each mark
   is — they are supplied at wildly different aspect ratios. */
.pmck-hmark__logo{
  margin-bottom:14px;height:76px;
  display:flex;align-items:center;justify-content:center;
}
.pmck-hmark__logo img{max-width:190px;max-height:76px;width:auto;height:auto;object-fit:contain;display:block;}
.pmck-hmark__note{
  display:inline-block;align-self:center;
  background:var(--brand-soft);color:var(--brand-ink);
  border-radius:8px;padding:6px 14px;font-size:18px;font-weight:600;margin-bottom:12px;
}
.pmck-hmark h3{font-size:23px;margin:0;line-height:1.35;}
.pmck-hmark h3 a{text-decoration:none;}
.pmck-hmark h3 a:hover{color:var(--brand);}

/* The logo and the title carry the recognition; this line is what a visitor
   actually needs — who issues it and what it takes to keep. Left-aligned
   against the centred title above it would read as a mistake, so it stays
   centred and holds its own measure. */
.pmck-hmark__body{
  margin:12px auto 0;max-width:44ch;
  font-size:18px;line-height:1.6;color:var(--body);
}

/* ---------- locations ---------- */

.pmck-hmap{
  height:420px;border-radius:12px;overflow:hidden;margin-bottom:26px;
  background:var(--brand-pale);
}
.pmck-hmap .leaflet-container{height:100%;width:100%;font:inherit;}

.pmck-hcentres{display:grid;grid-template-columns:1fr 1fr;gap:var(--h-gap);}
.pmck-hcentre{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;}
.pmck-hcentre h3{font-size:23px;margin:0 0 14px;}
.pmck-hcentre__addr{display:flex;gap:12px;margin:0 0 20px;font-size:18px;line-height:1.55;}
.pmck-hcentre__ic{
  flex:0 0 24px;width:24px;height:24px;border-radius:50%;
  background:var(--accent);color:#fff;display:grid;place-items:center;
}
.pmck-hcentre__ic .pmck-i{width:15px;height:15px;}
.pmck-hcentre .pmck-btn{width:100%;justify-content:center;}

/* ---------- responsive ---------- */

@media (max-width:1100px){
  .pmck-hspecs{grid-template-columns:1fr 1fr;}
  .pmck-hstats__head{grid-template-columns:1fr;gap:16px;}
  .pmck-hstats__head .pmck-hsec__title{font-size:36px;}
}
@media (max-width:980px){
  .pmck-hsec{padding:52px 0;}
  .pmck-hhero__inner{max-width:none;padding:64px 0 72px;}
  .pmck-hhero__title{font-size:40px;}
  .pmck-hhero.has-image::after{background:linear-gradient(90deg,rgba(0,36,0,.94) 0%,rgba(0,36,0,.72) 100%);}
  .pmck-hwhy{grid-template-columns:1fr;gap:26px;}
  .pmck-hstats__grid{grid-template-columns:1fr 1fr;grid-template-rows:none;}
  .pmck-hstat.is-feature,
  .pmck-hstat.is-dark,
  .pmck-hstat.is-tall,
  .pmck-hstat.is-plain,
  .pmck-hstat.is-lime{grid-column:auto;grid-row:auto;min-height:170px;}
  .pmck-hstat.is-feature{grid-column:1 / -1;min-height:280px;}
  .pmck-hmap{height:340px;}
}
@media (max-width:620px){
  .pmck-hspecs,.pmck-hmarks,.pmck-hcentres{grid-template-columns:1fr;}
  .pmck-hstats__grid{grid-template-columns:1fr;}
  .pmck-hstat.is-feature{grid-column:auto;}
  .pmck-hstat.is-feature b{font-size:52px;}
  .pmck-hsec__title{font-size:30px;}
}