/* Sky Speech & Hearing Care: an independent, accessible Bootstrap 5 design. */
@font-face {
  font-family: "Bitter";
  src: url("/assets/fonts/980b4eac2088-Bitter_wght_.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --sky-navy: #19376d;
  --sky-navy-deep: #102a51;
  --sky-cyan: #007a9f;
  --sky-sky: #eaf5f7;
  --sky-cream: #f6f6f0;
  --sky-ink: #213448;
  --sky-muted: #5d6c78;
  --sky-line: #dbe3e5;
  --sky-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --sky-serif: "Bitter", Georgia, serif;
  --bs-primary: #19376d;
  --bs-primary-rgb: 25, 55, 109;
  --bs-body-font-family: var(--sky-sans);
  --bs-body-color: var(--sky-ink);
  --bs-body-bg: #fff;
  --bs-link-color: #19376d;
  --bs-link-hover-color: #006b8c;
  --bs-border-color: var(--sky-line);
}
html { scroll-behavior: smooth; scroll-padding-top: 140px; }
body { margin: 0; color: var(--sky-ink); background: #fff; font-family: var(--sky-sans); font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-family: var(--sky-serif); color: var(--sky-navy-deep); letter-spacing: -.035em; line-height: 1.2; font-weight: 550; }
h1, h2, h3, p, figure { margin-top: 0; }
p { margin-bottom: 1.25rem; }
a { color: var(--sky-navy); text-underline-offset: .2em; }
a:hover { color: var(--sky-cyan); }
button, input, textarea, select { font: inherit; }
button, [role="button"] { touch-action: manipulation; }
button { cursor: pointer; }
img { max-width: 100%; height: auto; }
figure { margin-bottom: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #1680a0; outline-offset: 5px; }
::selection { background: #c8e9ef; color: var(--sky-navy-deep); }
.sky-icon { display: inline-block; width: 22px; height: 22px; vertical-align: middle; flex: 0 0 auto; }
.sky-small-note, .sky-imagery-note { color: var(--sky-muted); font-size: .78rem; line-height: 1.6; }
.sky-imagery-note { margin: 1.3rem 0 0; }
.sky-icon-circle { display: inline-flex; justify-content: center; align-items: center; width: 52px; height: 52px; border-radius: 50%; background: #e1f0f1; color: var(--sky-cyan); flex: 0 0 auto; }
.sky-eyebrow { display: block; margin-bottom: 1.15rem; color: var(--sky-cyan); font-family: var(--sky-sans); font-size: .71rem; font-weight: 750; letter-spacing: .14em; line-height: 1.6; text-transform: uppercase; }
.sky-lead { color: var(--sky-muted); font-size: clamp(1.05rem, 1.3vw, 1.2rem); line-height: 1.8; }
.sky-section { padding: 96px 0; }
.sky-section--first { padding-top: 58px; }
.sky-section--cream { background: var(--sky-cream); }
.sky-section--sky { background: var(--sky-sky); }
.sky-section-heading { display: flex; justify-content: space-between; gap: 32px; align-items: flex-end; margin-bottom: 44px; }
.sky-section-heading > div { max-width: 720px; }
.sky-section-heading h2 { max-width: 690px; margin: 0; font-size: clamp(1.85rem, 3.2vw, 3rem); }
.sky-section-heading p:not(.sky-eyebrow) { color: var(--sky-muted); max-width: 590px; margin: 1.15rem 0 0; }
.sky-section-heading > .sky-text-link { white-space: nowrap; padding-bottom: .3rem; }
.sky-text-link { display: inline-flex; gap: .65rem; align-items: center; width: fit-content; padding: .25rem 0; color: var(--sky-navy); font-size: .88rem; font-weight: 650; line-height: 1.6; text-decoration: none; background: none; border: 0; }
.sky-text-link .sky-icon { width: 19px; height: 19px; transition: transform .2s ease; }
.sky-text-link:hover .sky-icon { transform: translate(2px, -2px); }
.sky-text-link:hover { color: var(--sky-cyan); }
.sky-button { display: inline-flex; justify-content: center; align-items: center; gap: 1.3rem; width: fit-content; min-height: 54px; padding: .85rem 1.35rem; border-radius: 5px; font-family: var(--sky-sans); font-size: .86rem; font-weight: 650; line-height: 1.5; box-shadow: none; text-decoration: none; transition: background .2s ease, transform .2s ease; }
.sky-button .sky-icon { width: 19px; height: 19px; }
.btn-primary { --bs-btn-bg: var(--sky-navy); --bs-btn-border-color: var(--sky-navy); --bs-btn-hover-bg: var(--sky-navy-deep); --bs-btn-hover-border-color: var(--sky-navy-deep); --bs-btn-active-bg: var(--sky-navy-deep); --bs-btn-active-border-color: var(--sky-navy-deep); --bs-btn-color: #fff; --bs-btn-hover-color: #fff; --bs-btn-active-color: #fff; }
.btn-outline-primary { --bs-btn-color: var(--sky-navy); --bs-btn-border-color: var(--sky-navy); --bs-btn-hover-bg: var(--sky-navy); --bs-btn-hover-border-color: var(--sky-navy); }
.sky-phone-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--sky-navy); font-size: 1rem; font-weight: 700; text-decoration: none; }
.sky-skip-link { position: fixed; z-index: 3000; top: 12px; left: 12px; padding: 12px 20px; border-radius: 4px; color: #fff; background: var(--sky-navy); transform: translateY(-200%); }
.sky-skip-link:focus { transform: translateY(0); color: #fff; }
/* Quiet announcement strip and restrained, always usable navigation. */
.sky-announcement { background: var(--sky-cream); color: var(--sky-navy); border-bottom: 1px solid #e9ede8; font-size: .7rem; line-height: 1.5; }
.sky-announcement .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 37px; }
.sky-announcement span { display: inline-flex; gap: .45rem; align-items: center; }
.sky-announcement .sky-icon { width: 14px; height: 14px; }
.sky-announcement a { color: inherit; text-decoration: none; }
.sky-announcement strong { font-weight: 700; letter-spacing: .02em; }
.sky-header { position: sticky; z-index: 1030; top: 0; background: #fff; border-bottom: 1px solid #e8eeef; }
.sky-navbar { padding: 12px 0; min-height: 120px; }
.sky-navbar > .container { gap: 24px; }
.sky-brand { margin: 0; display: flex; flex: 0 0 auto; align-items: center; gap: 18px; padding: 0; text-decoration: none; }
.sky-brand img { display: block; width: 146px; height: auto; flex: 0 0 auto; object-fit: contain; }
.sky-brand-wordmark { display: flex; flex-direction: column; gap: 9px; padding-left: 18px; border-left: 1px solid #c9dce3; }
.sky-brand-name { color: var(--sky-navy-deep); font-family: var(--sky-serif); font-size: 1.25rem; font-weight: 650; letter-spacing: -.035em; line-height: 1.22; }
.sky-brand-location { color: var(--sky-cyan); font-family: var(--sky-sans); font-size: .56rem; font-weight: 750; letter-spacing: .19em; line-height: 1.5; text-transform: uppercase; }
.sky-navbar .navbar-nav { gap: 7px; }
.sky-navbar .nav-link { display: inline-flex; align-items: center; justify-content: space-between; gap: .35rem; padding: .7rem .65rem !important; color: var(--sky-ink); background: transparent; border: 0; border-radius: 0; font-size: .78rem; font-weight: 650; line-height: 1.5; text-decoration: none; white-space: nowrap; }
.sky-navbar .nav-link.active, .sky-navbar .nav-link:hover, .sky-navbar .nav-link:focus { color: var(--sky-cyan); }
.sky-navbar .nav-link.active { box-shadow: inset 0 -2px var(--sky-cyan); }
.sky-navbar .dropdown-toggle::after { display: none; }
.sky-navbar .nav-link .sky-icon { width: 14px; height: 14px; }
.sky-navbar .dropdown-menu { padding: 10px; min-width: 220px; border: 1px solid var(--sky-line); border-radius: 8px; box-shadow: 0 16px 40px #12304a12; }
.sky-navbar .dropdown-item { border-radius: 4px; padding: 10px 12px; color: var(--sky-ink); font-size: .8rem; white-space: normal; line-height: 1.6; }
.sky-navbar .dropdown-item:hover, .sky-navbar .dropdown-item:focus { background: var(--sky-sky); color: var(--sky-navy); }
.sky-navbar .dropdown-item.active { background: var(--sky-navy); color: #fff; }
.sky-header-actions { display: flex; flex: 0 0 auto; gap: 13px; align-items: center; }
.sky-header-actions .sky-button { min-height: 46px; padding: .7rem 1rem; font-size: .77rem; gap: .9rem; }
.sky-search-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 42px; height: 42px; border: 0; border-radius: 50%; background: transparent; color: var(--sky-navy); }
.sky-search-toggle:hover { background: var(--sky-sky); }
.sky-search-toggle .sky-icon { width: 21px; height: 21px; }
.sky-header-mobile-actions { display: none; }
.sky-navbar .navbar-toggler { align-items: center; justify-content: center; width: 44px; height: 44px; padding: 8px; border: 1px solid var(--sky-line); border-radius: 5px; color: var(--sky-navy); box-shadow: none; }
.sky-mobile-contact { display: none; }
/* A photographic hero with an editorial rather than template-led composition. */
.sky-hero { position: relative; isolation: isolate; overflow: hidden; padding: 52px 0 64px; background: var(--sky-cream); }
.sky-hero-grid { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(36px, 5vw, 80px); }
.sky-hero-copy { position: relative; z-index: 1; padding: 30px 0 28px; }
.sky-hero-copy h1 { margin-bottom: 27px; font-size: clamp(3.2rem, 5.2vw, 5.15rem); font-weight: 500; letter-spacing: -.055em; line-height: 1.13; }
.sky-hero-copy h1 em, .sky-story-copy h2 em, .sky-appointment-panel h2 em, .sky-contact-details h2 em, .sky-about-aside h2 em { color: var(--sky-cyan); font-style: normal; }
.sky-hero-copy > .sky-lead { max-width: 475px; font-size: 1.04rem; }
.sky-hero-tagline { margin-bottom: 18px; color: var(--sky-navy); font-weight: 650; font-size: .87rem; }
.sky-hero-actions { display: flex; gap: 24px; flex-wrap: wrap; align-items: center; margin-top: 32px; }
.sky-hero-note { display: flex; gap: 15px; align-items: center; margin-top: 42px; }
.sky-hero-note .sky-icon-circle { width: 47px; height: 47px; background: #fff; border: 1px solid #dfeae8; }
.sky-hero-note p { margin: 0; color: var(--sky-muted); font-size: .75rem; line-height: 1.75; }
.sky-hero-note strong { color: var(--sky-ink); font-weight: 500; }
.sky-hero-figure { position: relative; min-width: 0; height: 608px; border-radius: 220px 220px 24px 24px; overflow: hidden; background: #dfe9e7; }
.sky-hero-figure picture, .sky-hero-figure img { display: block; width: 100%; height: 100%; }
.sky-hero-figure img { object-fit: cover; object-position: center; }
.sky-hero-image-tag { position: absolute; right: 22px; bottom: 52px; display: flex; align-items: center; gap: 9px; padding: 13px 18px; border-radius: 30px; background: #fffffff0; color: var(--sky-navy); box-shadow: 0 10px 30px #19376d0d; font-size: .74rem; font-weight: 650; }
.sky-live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #0c8795; }
.sky-hero-figure figcaption { position: absolute; bottom: 14px; left: 18px; right: 18px; width: fit-content; max-width: calc(100% - 36px); padding: 3px 7px; background: #ffffffde; color: #44545c; font-size: .58rem; line-height: 1.5; }
.sky-hero-decoration { position: absolute; z-index: -1; width: 430px; height: 430px; right: -290px; bottom: -170px; border: 60px solid #dcecef; border-radius: 50%; }
.sky-care-strip { border-bottom: 1px solid var(--sky-line); background: #fff; }
.sky-care-strip > .container { display: grid; grid-template-columns: 1.15fr 1fr 1fr 1.1fr; gap: 24px; align-items: center; padding-top: 28px; padding-bottom: 28px; }
.sky-care-strip p { margin: 0; font-family: var(--sky-serif); font-size: .93rem; line-height: 1.6; color: var(--sky-muted); }
.sky-care-strip strong { color: var(--sky-navy); font-weight: 500; }
.sky-care-strip span { display: flex; align-items: center; gap: 12px; padding-left: 22px; min-height: 48px; border-left: 1px solid var(--sky-line); color: var(--sky-navy); font-size: .8rem; font-weight: 600; }
.sky-care-strip .sky-icon { width: 27px; height: 27px; color: var(--sky-cyan); }
/* Flexible photographic cards. */
.sky-service-grid, .sky-insight-grid, .sky-team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.sky-service-card { height: 100%; min-width: 0; overflow: hidden; border-radius: 9px; background: var(--sky-cream); border: 1px solid #edf0eb; }
.sky-service-card__image { display: block; position: relative; aspect-ratio: 1.55; overflow: hidden; background: #e2edef; }
.sky-service-card__image picture, .sky-service-card__image img { display: block; width: 100%; height: 100%; }
.sky-service-card__image img { object-fit: cover; transition: transform .45s ease; }
.sky-service-card:hover .sky-service-card__image img { transform: scale(1.035); }
.sky-service-card--product .sky-service-card__image { background: #fff; border-bottom: 1px solid var(--sky-line); }
.sky-service-card--product .sky-service-card__image img { object-fit: contain; }
.sky-service-card__number { position: absolute; left: 18px; top: 18px; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--sky-navy); background: #ffffffed; font-size: .65rem; font-weight: 600; }
.sky-service-card__body { position: relative; min-height: 210px; padding: 26px 25px 60px; }
.sky-service-card h3 { margin-bottom: 12px; font-size: 1.35rem; font-weight: 550; }
.sky-service-card h3 a { color: inherit; text-decoration: none; }
.sky-service-card p { margin-bottom: 0; color: var(--sky-muted); font-size: .82rem; line-height: 1.8; }
.sky-round-link { position: absolute; right: 24px; bottom: 20px; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #b8c8cd; border-radius: 50%; color: var(--sky-navy); transition: background .2s ease; }
.sky-round-link .sky-icon { width: 17px; height: 17px; }
.sky-round-link:hover { background: var(--sky-navy); color: #fff; border-color: var(--sky-navy); }
.sky-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.sky-story-image { position: relative; overflow: hidden; height: 665px; border-radius: 12px 12px 150px 12px; background: #dfeaed; }
.sky-story-image picture, .sky-story-image img { display: block; width: 100%; height: 100%; }
.sky-story-image img { object-fit: cover; }
.sky-story-image figcaption { position: absolute; left: 17px; bottom: 17px; padding: 3px 7px; background: #ffffffde; color: #44545c; font-size: .6rem; }
.sky-story-copy h2 { margin-bottom: 25px; font-size: clamp(1.8rem, 3.3vw, 2.9rem); }
.sky-story-copy > p:not(.sky-eyebrow) { color: var(--sky-muted); font-size: .93rem; }
.sky-step { display: flex; align-items: flex-start; gap: 19px; padding: 21px 0; border-top: 1px solid #dce4df; }
.sky-step > span { padding-top: 3px; color: var(--sky-cyan); font-size: .68rem; font-weight: 700; letter-spacing: .05em; }
.sky-step h3 { margin: 0 0 6px; font-family: var(--sky-sans); font-size: .88rem; font-weight: 650; letter-spacing: -.015em; }
.sky-step p { margin: 0; color: var(--sky-muted); font-size: .8rem; line-height: 1.7; }
.sky-story-copy > .sky-text-link { margin-top: 15px; }
.sky-home-visit-grid { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: clamp(32px, 6vw, 90px); }
.sky-home-visit h2 { margin-bottom: 22px; font-size: clamp(1.9rem, 3vw, 2.8rem); }
.sky-home-visit > p:not(.sky-eyebrow) { color: var(--sky-muted); font-size: .91rem; }
.sky-home-visit address { margin: 26px 0; padding: 24px 0; border-block: 1px solid var(--sky-line); font-style: normal; font-size: .9rem; }
.sky-home-visit address strong { display: block; margin-bottom: 8px; color: var(--sky-navy); }
.sky-home-visit__links { display: flex; flex-wrap: wrap; gap: 18px 26px; margin-bottom: 22px; }
.sky-home-visit__phones { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 20px 0 14px; }
.sky-home-visit__phones a { font-weight: 650; text-decoration: none; }
.sky-home-questions h2 { margin-bottom: 25px; font-size: clamp(1.8rem, 2.5vw, 2.3rem); }
.sky-inline-link { display: inline; border: 0; padding: 0; background: none; color: var(--sky-navy); text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 991px) { .sky-home-visit-grid { grid-template-columns: 1fr; gap: 45px; } }
.sky-team-card { height: 100%; min-width: 0; }
.sky-team-card__portrait { aspect-ratio: .95; overflow: hidden; border-radius: 100px 100px 5px 5px; background: var(--sky-cream); }
.sky-team-card__portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.sky-team-card__body { padding: 24px 6px 0; }
.sky-team-card h3 { margin-bottom: 7px; font-size: 1.2rem; }
.sky-team-card p { color: var(--sky-muted); font-size: .8rem; line-height: 1.7; margin-bottom: 7px; }
.sky-team-card .sky-small-note { font-size: .71rem; }
.sky-quote-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
.sky-quote { padding: 28px; background: #fff; border: 1px solid #d9e9ec; border-radius: 8px; }
.sky-quote > span { display: block; height: 48px; color: var(--sky-cyan); font-family: var(--sky-serif); font-size: 4rem; line-height: 1.1; }
.sky-quote blockquote { margin: 14px 0 22px; color: var(--sky-ink); font-family: var(--sky-serif); font-size: .94rem; line-height: 1.9; }
.sky-quote figcaption { color: var(--sky-muted); font-size: .76rem; font-weight: 650; }
.sky-insight-card { min-width: 0; }
.sky-insight-card__image { display: block; aspect-ratio: 1.55; background: var(--sky-cream); border-radius: 8px; overflow: hidden; }
.sky-insight-card__image picture, .sky-insight-card__image img { width: 100%; height: 100%; display: block; }
.sky-insight-card__image img { object-fit: cover; transition: transform .45s ease; }
.sky-insight-card__image .sky-archive-image img { object-fit: contain; background: #f7f5ef; }
.sky-insight-card:hover .sky-insight-card__image .sky-archive-image img { transform: none; }
.sky-insight-card:hover .sky-insight-card__image img { transform: scale(1.035); }
.sky-insight-card__body { padding: 23px 0 0; }
.sky-meta { color: var(--sky-muted); font-size: .7rem; line-height: 1.6; letter-spacing: .02em; }
.sky-insight-card h3 { font-size: 1.25rem; line-height: 1.5; }
.sky-insight-card h3 a { color: inherit; text-decoration: none; }
.sky-insight-card__body > p:not(.sky-meta) { color: var(--sky-muted); font-size: .82rem; line-height: 1.8; }
.sky-insight-card__body .sky-text-link { font-size: .77rem; }
/* A clear, truthful appointment journey. */
.sky-appointment-section { padding-bottom: 88px; }
.sky-appointment-panel { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 70px; overflow: hidden; padding: 58px 65px; border-radius: 12px; background: var(--sky-navy-deep); color: #e1ebf3; }
.sky-appointment-panel .sky-eyebrow { color: #9dd7df; }
.sky-appointment-panel h2 { margin: 0 0 18px; color: #fff; font-size: clamp(2rem, 3.8vw, 3.4rem); line-height: 1.25; }
.sky-appointment-panel h2 em { color: #91d6e1; }
.sky-appointment-panel p:not(.sky-eyebrow) { max-width: 520px; margin: 0; font-size: .88rem; line-height: 1.85; }
.sky-appointment-panel__symbol { position: absolute; right: 22%; top: -80px; opacity: .04; transform: rotate(-15deg); }
.sky-appointment-panel__symbol .sky-icon { width: 390px; height: 390px; }
.sky-appointment-panel__actions { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 21px; }
.sky-appointment-panel__actions .sky-button { color: var(--sky-navy-deep); background: #fff; border-color: #fff; }
.sky-appointment-panel__actions .sky-button:hover { background: #dcf0f2; border-color: #dcf0f2; }
.sky-appointment-panel__actions .sky-phone-link { color: #fff; }
.sky-appointment-panel__actions .sky-small-note { color: #c1d3e0; max-width: 240px; font-size: .68rem; }
/* Inner pages: light introductions, generous reading widths, useful next steps. */
.sky-page-intro { padding: 30px 0 53px; background: var(--sky-cream); border-bottom: 1px solid #edf0e9; }
.sky-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 39px; color: var(--sky-muted); font-size: .68rem; line-height: 1.6; }
.sky-breadcrumb a { color: var(--sky-muted); text-decoration: none; }
.sky-breadcrumb > [aria-current="page"] { max-width: min(660px,100%); overflow-wrap: anywhere; }
.sky-breadcrumb > span[aria-hidden="true"] { color: #9badb4; }
.sky-page-intro__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.sky-page-intro__row > div { max-width: 840px; }
.sky-page-intro h1 { max-width: 900px; margin-bottom: 18px; font-size: clamp(2.1rem, 4vw, 3.5rem); line-height: 1.25; }
.sky-page-intro .sky-lead { max-width: 740px; margin-bottom: 0; font-size: .96rem; }
.sky-page-intro__row > .sky-button { flex: 0 0 auto; margin-bottom: 5px; }
.sky-page-intro--compact .sky-page-intro__row > div { max-width: 1050px; }
.sky-page-intro--compact h1 { max-width: 1020px; font-size: clamp(1.9rem, 3.4vw, 3.05rem); }
.sky-prose { color: var(--sky-ink); overflow-wrap: anywhere; font-size: .95rem; line-height: 1.9; }
.sky-prose p { margin-bottom: 1.35rem; }
.sky-prose h2 { margin: 2.1rem 0 1.1rem; font-size: clamp(1.4rem,2.3vw,1.9rem); line-height: 1.4; }
.sky-prose h3 { margin: 1.8rem 0 .8rem; font-size: 1.2rem; line-height: 1.5; }
.sky-prose h4 { margin: 1.4rem 0 .8rem; font-size: 1.05rem; line-height: 1.5; }
.sky-prose ul, .sky-prose ol { margin: 0 0 1.5rem; padding-left: 1.4rem; }
.sky-prose li { padding-left: .3rem; margin-bottom: .5rem; }
.sky-prose a { overflow-wrap: anywhere; }
.sky-prose blockquote { border-left: 3px solid var(--sky-cyan); margin: 24px 0; padding: 0 0 0 22px; color: var(--sky-muted); }
.sky-prose table { width: 100%; display: block; overflow-x: auto; margin: 24px 0; font-size: .83rem; }
.sky-prose th, .sky-prose td { padding: 12px; border: 1px solid var(--sky-line); text-align: left; }
.sky-prose img, .sky-prose picture { max-width: 100%; border-radius: 8px; }
.sky-prose > :first-child { margin-top: 0; }
.sky-intro-copy { max-width: 760px; margin-bottom: 40px; }
.sky-blog-callout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; padding: 28px; margin-bottom: 40px; background: var(--sky-cream); border: 1px solid var(--sky-line); border-radius: 8px; }
.sky-blog-callout > div { flex: 1 1 320px; min-width: 0; }
.sky-blog-callout h2 { margin: 0 0 12px; font-size: clamp(1.5rem, 2.2vw, 2rem); }
.sky-blog-callout p { color: var(--sky-muted); margin: 0; }
.sky-blogger-section { padding-bottom: 56px; margin-bottom: 48px; border-bottom: 1px solid var(--sky-line); }
.sky-blogger-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--sky-line); border-radius: 9px; background: var(--sky-cream); }
.sky-blogger-card__image { display: block; aspect-ratio: 1.6; background: var(--sky-sky); overflow: hidden; }
.sky-blogger-card__image img { width: 100%; height: 100%; object-fit: cover; }
.sky-blogger-card__body { display: flex; flex: 1; flex-direction: column; padding: 25px; }
.sky-blogger-card .sky-meta { display: block; margin-bottom: 12px; }
.sky-blogger-card h3 { font-size: 1.25rem; line-height: 1.4; overflow-wrap: anywhere; }
.sky-blogger-card h3 a { text-decoration: none; color: inherit; }
.sky-blogger-card p { color: var(--sky-muted); font-size: .84rem; }
.sky-blogger-card .sky-text-link { margin-top: auto; padding-top: 12px; align-self: flex-start; }
.sky-generic-body { max-width: 820px; margin-inline: auto; }
.sky-detail-image, .sky-article-hero { margin: 0 0 36px; overflow: hidden; }
.sky-detail-image picture, .sky-detail-image img, .sky-article-hero picture, .sky-article-hero img { display: block; width: 100%; }
.sky-detail-image img, .sky-article-hero img { aspect-ratio: 1.6; object-fit: cover; border-radius: 8px; }
.sky-article-hero .sky-archive-image img { aspect-ratio: auto; max-height: 760px; object-fit: contain; background: #f7f5ef; }
.sky-detail-image--product img { object-fit: contain; background: #fff; }
.sky-detail-image figcaption, .sky-article-hero figcaption, .sky-about-image figcaption { margin-top: 8px; color: var(--sky-muted); font-size: .63rem; line-height: 1.6; }
.sky-service-detail { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 70px; align-items: start; }
.sky-service-sidebar { position: sticky; top: 123px; }
.sky-enquiry-card { padding: 30px; border: 1px solid #d2e5e8; border-radius: 8px; background: var(--sky-sky); }
.sky-enquiry-card > .sky-icon { width: 36px; height: 36px; margin-bottom: 24px; color: var(--sky-cyan); }
.sky-enquiry-card h2 { font-size: 1.65rem; line-height: 1.35; margin-bottom: 18px; }
.sky-enquiry-card > p:not(.sky-small-note) { color: var(--sky-muted); font-size: .82rem; }
.sky-enquiry-card .sky-button { width: 100%; padding-inline: 12px; gap: 12px; font-size: .75rem; }
.sky-enquiry-card .sky-phone-link { margin-top: 23px; font-size: .9rem; }
.sky-enquiry-card .sky-text-link { margin-top: 20px; font-size: .75rem; }
.sky-enquiry-card .sky-small-note { margin: 24px 0 0; font-size: .66rem; }
.sky-sidebar-links { margin-top: 32px; }
.sky-sidebar-links h2 { font-family: var(--sky-sans); font-size: .8rem; font-weight: 700; letter-spacing: 0; }
.sky-sidebar-links > a { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 0; border-bottom: 1px solid var(--sky-line); color: var(--sky-muted); font-size: .76rem; text-decoration: none; line-height: 1.6; }
.sky-sidebar-links > a:hover { color: var(--sky-cyan); }
.sky-sidebar-links .sky-icon { width: 17px; height: 17px; }
.sky-article-layout { display: grid; grid-template-columns: minmax(0,790px) 270px; gap: 75px; justify-content: center; align-items: start; }
.sky-article-sidebar { position: sticky; top: 125px; padding: 28px; border-radius: 8px; background: var(--sky-cream); }
.sky-article-sidebar h2 { font-size: 1.45rem; line-height: 1.45; }
.sky-article-sidebar > p:not(.sky-eyebrow) { color: var(--sky-muted); font-size: .8rem; }
.sky-article-sidebar .sky-button { min-height: 46px; padding: .7rem .8rem; gap: .6rem; font-size: .69rem; }
.sky-article-sidebar .sky-phone-link { margin-top: 22px; font-size: .87rem; }
.sky-article-note { padding: 26px; margin-top: 40px; border-left: 3px solid var(--sky-cyan); background: var(--sky-cream); border-radius: 0 6px 6px 0; }
.sky-article-note p { font-size: .84rem; color: var(--sky-muted); }
.sky-about-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(270px,.62fr); gap: 90px; align-items: start; }
.sky-about-image { position: relative; overflow: hidden; margin-bottom: 28px; }
.sky-about-image picture, .sky-about-image img { display: block; width: 100%; }
.sky-about-image img { aspect-ratio: .9; object-fit: cover; border-radius: 160px 160px 7px 7px; }
.sky-about-aside { padding: 34px; border-radius: 8px; background: var(--sky-cream); }
.sky-about-aside .sky-icon-circle { margin-bottom: 28px; }
.sky-about-aside h2 { font-size: 2rem; line-height: 1.5; }
.sky-about-aside p { color: var(--sky-muted); font-size: .84rem; }
/* Contact, real team portraits, and transparently labelled illustrative galleries. */
.sky-contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: start; }
.sky-contact-details > h2 { font-size: clamp(2rem,3.4vw,3rem); margin-bottom: 26px; line-height: 1.3; }
.sky-contact-details > p { max-width: 440px; color: var(--sky-muted); font-size: .91rem; }
.sky-contact-item { display: flex; gap: 17px; padding: 23px 0; border-top: 1px solid var(--sky-line); }
.sky-contact-item > span { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; color: var(--sky-cyan); background: var(--sky-sky); }
.sky-contact-item h3 { font-family: var(--sky-sans); font-size: .72rem; font-weight: 700; letter-spacing: .01em; margin: 2px 0 7px; color: var(--sky-muted); }
.sky-contact-item a { color: var(--sky-navy); font-size: .92rem; font-weight: 500; text-decoration: none; overflow-wrap: anywhere; }
.sky-contact-item a .sky-icon { width: 17px; height: 17px; margin-left: 8px; }
.sky-contact-item address { max-width: 360px; margin-bottom: 10px; font-style: normal; font-size: .87rem; }
.sky-contact-item .sky-text-link { font-size: .78rem; }
.sky-contact-hours h3 { margin: 25px 0 14px; font-family: var(--sky-sans); font-size: .8rem; font-weight: 650; letter-spacing: 0; }
.sky-contact-form-card { padding: 36px; border: 1px solid var(--sky-line); border-radius: 10px; background: var(--sky-cream); }
.sky-contact-form-card h2 { font-size: 1.8rem; margin-bottom: 20px; }
.sky-contact-form-card > p:not(.sky-eyebrow) { color: var(--sky-muted); font-size: .84rem; }
.sky-contact-form-card .sky-small-note { margin-top: 18px; }
.sky-map-fallback { padding: 32px 24px; margin-top: 32px; background: #e7eff0; border: 1px solid #d3e3e6; border-radius: 6px; }
.sky-map-fallback > .sky-icon { width: 38px; height: 38px; color: var(--sky-cyan); margin-bottom: 18px; }
.sky-map-fallback h3 { font-size: 1.12rem; }
.sky-map-fallback p { margin-bottom: 18px; color: var(--sky-muted); font-size: .76rem; }
.sky-map-embed { overflow: hidden; margin-top: 32px; border-radius: 6px; border: 1px solid var(--sky-line); background: #e7eff0; }
.sky-map-embed iframe { display: block; width: 100%; min-height: 340px; border: 0; }
.sky-google-review { max-width: 100%; gap: .7rem; font-size: .8rem; }
.sky-contact-additional { margin-top: 40px; }
.sky-gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.sky-gallery-item { min-width: 0; }
.sky-gallery-button { display: block; position: relative; width: 100%; border: 0; padding: 0; border-radius: 8px; aspect-ratio: 1.2; overflow: hidden; background: var(--sky-cream); }
.sky-gallery-button picture, .sky-gallery-button img { display: block; width: 100%; height: 100%; }
.sky-gallery-button img { object-fit: cover; transition: transform .35s ease; }
.sky-gallery-button:hover img { transform: scale(1.035); }
.sky-gallery-button > span { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 37px; height: 37px; color: var(--sky-navy); background: #fff; border-radius: 50%; }
.sky-gallery-button > span .sky-icon { width: 18px; height: 18px; }
.sky-gallery-item figcaption { margin-top: 15px; color: var(--sky-muted); font-size: .74rem; line-height: 1.7; }
/* Bootstrap controls keep their native interactions, with a matching visual skin. */
.sky-modal { font-family: var(--sky-sans); }
.sky-modal .modal-content { border: 0; border-radius: 10px; box-shadow: 0 25px 90px #102a5129; }
.sky-modal .modal-header { padding: 24px 28px; border-color: var(--sky-line); }
.sky-modal .modal-title { color: var(--sky-navy-deep); font-family: var(--sky-serif); font-size: 1.25rem; letter-spacing: -.02em; }
.sky-modal .modal-body { padding: 28px; color: var(--sky-ink); }
.sky-modal p { color: var(--sky-muted); font-size: .86rem; line-height: 1.8; }
.sky-modal label { margin-bottom: 8px; color: var(--sky-ink); font-size: .76rem; font-weight: 650; }
.sky-modal .form-control, .sky-modal .form-select { min-height: 48px; padding: .7rem .8rem; color: var(--sky-ink); background-color: #fff; border: 1px solid #cbd8dd; border-radius: 4px; font-size: .9rem; line-height: 1.6; }
.sky-modal .form-control:focus, .sky-modal .form-select:focus { border-color: var(--sky-cyan); box-shadow: 0 0 0 3px #1680a01f; }
.sky-modal .btn { min-height: 44px; padding: .7rem 1rem; border-radius: 4px; font-size: .8rem; font-weight: 600; }
.sky-modal .btn-success { --bs-btn-bg: #157349; --bs-btn-border-color: #157349; --bs-btn-hover-bg: #105a39; --bs-btn-hover-border-color: #105a39; }
.sky-modal .btn-close { min-width: 24px; min-height: 24px; padding: 10px; }
.site-search-result { display: block; padding: 17px 16px; margin-bottom: 10px; border: 1px solid var(--sky-line); border-radius: 5px; color: var(--sky-ink); text-decoration: none; background: #fff; }
.site-search-result:hover { background: var(--sky-sky); }
.site-search-result__title { color: var(--sky-navy); font-size: .88rem; line-height: 1.6; }
.site-search-result__excerpt { color: var(--sky-muted); font-size: .75rem; line-height: 1.7; margin-top: 5px; }
.site-search-status { font-size: .73rem; }
.site-lightbox { width: min(96vw,1200px); max-width: 96vw; max-height: 94vh; border: 0; border-radius: 8px; padding: 18px; background: var(--sky-navy-deep); color: #fff; }
.site-lightbox::backdrop { background: #07182cde; }
.site-lightbox__toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 14px; }
.site-lightbox__counter { font-size: .8rem; }
.site-lightbox__image { display: block; margin: 0 auto; }
.site-lightbox__caption { margin: 13px 0; font-size: .76rem; color: #dbe7ee; }
.site-lightbox .btn { min-height: 44px; font-family: var(--sky-sans); font-size: .78rem; }
.sky-pagination, .pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 48px 0 0; }
.sky-pagination a, .sky-pagination span, .page-link { display: inline-flex; min-width: 43px; min-height: 43px; align-items: center; justify-content: center; padding: .5rem .85rem; border: 1px solid var(--sky-line); border-radius: 4px; color: var(--sky-navy); background: #fff; font-size: .78rem; line-height: 1.5; text-decoration: none; }
.sky-pagination [aria-current="page"], .sky-pagination a:hover, .page-item.active .page-link { background: var(--sky-navy); border-color: var(--sky-navy); color: #fff; }
/* A useful footer, without empty social icons or obsolete vendor promotions. */
.sky-footer { background: var(--sky-cream); border-top: 1px solid #e6ece8; }
.sky-footer-main { display: grid; grid-template-columns: 1.3fr .75fr 1.15fr 1fr; gap: 50px; padding: 65px 0 50px; }
.sky-footer-brand > a { display: inline-block; }
.sky-footer-brand img { display: block; width: 175px; height: auto; object-fit: contain; object-position: left center; margin-bottom: 17px; }
.sky-footer-brand > p { max-width: 260px; color: var(--sky-muted); font-size: .8rem; line-height: 1.9; }
.sky-footer h2 { margin: 20px 0 24px; color: var(--sky-navy); font-family: var(--sky-sans); font-size: .76rem; font-weight: 750; letter-spacing: 0; }
.sky-footer ul { list-style: none; margin: 0; padding: 0; }
.sky-footer li { margin-bottom: 10px; }
.sky-footer li a, .sky-footer address { color: var(--sky-muted); font-size: .77rem; line-height: 1.85; text-decoration: none; }
.sky-footer li a:hover { color: var(--sky-cyan); }
.sky-footer address { font-style: normal; margin: 0 0 13px; }
.sky-footer .sky-text-link { display: flex; margin-top: 16px; font-size: .75rem; }
.sky-footer-contact .sky-hours { margin: 19px 0 0; }
.sky-hours { padding: 0; list-style: none; }
.sky-hours li { margin-bottom: 7px; font-size: .74rem; color: var(--sky-muted); line-height: 1.7; }
.sky-footer-contact > .sky-small-note { margin-top: 20px; font-size: .72rem; }
.sky-footer-phone { display: block; color: var(--sky-navy); font-family: var(--sky-serif); font-size: 1.18rem; font-weight: 550; text-decoration: none; line-height: 1.5; margin-bottom: 12px; white-space: nowrap; }
.sky-footer-email { color: var(--sky-muted); font-size: .73rem; overflow-wrap: anywhere; text-decoration: none; }
.sky-footer-socials { display: flex; flex-wrap: wrap; gap: 12px; }
.sky-footer-socials a { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; font-size: .67rem; text-decoration: none; }
.sky-footer-socials .sky-icon { width: 13px; height: 13px; }
.sky-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; border-top: 1px solid #dce4df; }
.sky-footer-bottom p { margin: 0; font-size: .65rem; color: var(--sky-muted); }
.sky-footer-bottom nav { display: flex; flex-wrap: wrap; gap: 20px; }
.sky-footer-bottom a { color: var(--sky-muted); font-size: .65rem; text-decoration: none; }
.sky-whatsapp { position: fixed; z-index: 1020; right: 22px; bottom: 22px; display: inline-flex; gap: 8px; align-items: center; min-height: 48px; padding: 12px 18px; border: 2px solid #fff; border-radius: 30px; color: #fff; background: #166a49; box-shadow: 0 5px 20px #113d3024; font-size: .75rem; font-weight: 650; text-decoration: none; }
.sky-whatsapp:hover { background: #10573b; color: #fff; }
/* Flexible layouts without horizontal clipping on tablets and phones. */
@media (min-width: 1400px) { .container { max-width: 1240px; } }
@media (max-width: 1399px) {
  .sky-navbar > .container { gap: 18px; }
  .sky-brand { gap: 14px; }
  .sky-brand img { width: 136px; }
  .sky-brand-wordmark { padding-left: 14px; }
  .sky-brand-name { font-size: 1.15rem; }
  .sky-navbar .navbar-nav { gap: 2px; }
  .sky-navbar .nav-link { padding-inline: .5rem !important; font-size: .75rem; }
  .sky-header-actions { gap: 8px; }
  .sky-service-detail { gap: 48px; }
  .sky-article-layout { gap: 45px; }
  .sky-story-grid { gap: 55px; }
  .sky-story-image { height: 625px; }
  .sky-hero-figure { height: 575px; }
  .sky-footer-main { gap: 32px; }
}
@media (max-width: 1199px) {
  .sky-navbar { min-height: 108px; padding: 10px 0; }
  .sky-brand img { width: 134px; height: auto; }
  .sky-header-mobile-actions { display: flex; align-items: center; gap: 9px; margin-left: auto; }
  .sky-navbar .navbar-toggler { display: inline-flex; }
  .sky-navbar .navbar-collapse { flex-basis: 100%; width: 100%; }
  .sky-navbar .navbar-nav { padding: 12px 0 6px; gap: 0; }
  .sky-navbar .nav-link { display: flex; width: 100%; min-height: 46px; padding-inline: 8px !important; font-size: .85rem; }
  .sky-navbar .nav-link.active { box-shadow: none; }
  .sky-navbar .dropdown-menu { box-shadow: none; border: 0; border-radius: 0; padding: 0 8px 8px; border-left: 2px solid #d7e9eb; }
  .sky-navbar .dropdown-item { font-size: .8rem; }
  .sky-header-actions { padding: 10px 6px 18px; }
  .sky-header-actions .sky-search-toggle { display: none; }
  .sky-hero-grid { gap: 38px; }
  .sky-hero-copy h1 { font-size: 3.55rem; }
  .sky-hero-figure { height: 560px; }
  .sky-hero-actions { gap: 20px; }
  .sky-hero-note { margin-top: 30px; }
  .sky-care-strip > .container { gap: 20px; }
  .sky-care-strip span { gap: 10px; padding-left: 16px; font-size: .71rem; }
  .sky-story-grid { gap: 42px; }
  .sky-story-image { height: 620px; }
  .sky-service-grid, .sky-insight-grid, .sky-team-grid { gap: 23px; }
  .sky-service-card__body { padding-inline: 20px; }
  .sky-service-card h3 { font-size: 1.2rem; }
  .sky-service-detail { grid-template-columns: minmax(0,1fr) 275px; gap: 35px; }
  .sky-enquiry-card { padding: 25px; }
  .sky-article-layout { grid-template-columns: minmax(0,1fr) 245px; gap: 35px; }
  .sky-article-sidebar { padding: 23px; }
  .sky-about-grid { gap: 55px; }
  .sky-contact-layout { gap: 50px; }
  .sky-contact-form-card { padding: 28px; }
  .sky-appointment-panel { padding: 48px; gap: 36px; }
  .sky-footer-main { grid-template-columns: 1.2fr .8fr 1.1fr; gap: 32px; }
  .sky-footer-main > div:last-child { grid-column: 1/-1; display: flex; gap: 25px; flex-wrap: wrap; align-items: center; padding-top: 20px; border-top: 1px solid var(--sky-line); }
  .sky-footer-main > div:last-child h2, .sky-footer-main > div:last-child a { margin: 0; }
}
@media (max-width: 991px) {
  .sky-section { padding: 68px 0; }
  .sky-section--first { padding-top: 42px; }
  .sky-hero { padding: 32px 0 44px; }
  .sky-hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .sky-hero-copy { padding: 10px 0 0; max-width: 680px; }
  .sky-hero-copy h1 { font-size: clamp(3rem,7.5vw,4.7rem); }
  .sky-hero-copy > .sky-lead { max-width: 600px; }
  .sky-hero-figure { height: 570px; border-radius: 180px 180px 20px 20px; }
  .sky-hero-note { margin-top: 30px; }
  .sky-care-strip > .container { grid-template-columns: 1fr 1fr; gap: 20px; padding-top: 24px; padding-bottom: 24px; }
  .sky-care-strip > .container > p { padding-left: 18px; }
  .sky-care-strip span { border-left: 1px solid var(--sky-line); font-size: .8rem; }
  .sky-section-heading { gap: 25px; align-items: flex-start; }
  .sky-section-heading > .sky-text-link { padding-top: 30px; }
  .sky-service-grid, .sky-insight-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sky-story-grid { grid-template-columns: 1fr; gap: 40px; }
  .sky-story-image { height: 470px; border-radius: 10px 10px 100px 10px; }
  .sky-story-copy { max-width: 640px; }
  .sky-team-grid { gap: 20px; }
  .sky-team-card h3 { font-size: 1.06rem; }
  .sky-team-card p { font-size: .72rem; }
  .sky-quote-grid { grid-template-columns: 1fr; }
  .sky-quote { padding: 28px 32px; }
  .sky-quote blockquote { font-size: 1rem; }
  .sky-appointment-panel { grid-template-columns: 1fr; gap: 32px; padding: 44px; }
  .sky-appointment-panel__actions { align-items: flex-start; gap: 18px; }
  .sky-appointment-panel__symbol { right: -80px; top: 10px; }
  .sky-appointment-panel__actions .sky-small-note { max-width: none; }
  .sky-page-intro { padding-bottom: 40px; }
  .sky-page-intro__row { align-items: flex-start; flex-direction: column; gap: 25px; }
  .sky-breadcrumb { margin-bottom: 30px; }
  .sky-service-detail, .sky-article-layout { grid-template-columns: 1fr; gap: 40px; }
  .sky-service-sidebar, .sky-article-sidebar { position: static; }
  .sky-enquiry-card { padding: 32px; }
  .sky-enquiry-card .sky-button { width: fit-content; padding-inline: 22px; }
  .sky-enquiry-card .sky-phone-link { display: flex; }
  .sky-article-sidebar { padding: 32px; }
  .sky-article-sidebar .sky-button { font-size: .8rem; padding-inline: 18px; }
  .sky-about-grid { grid-template-columns: 1fr; gap: 40px; }
  .sky-about-grid aside { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; }
  .sky-about-image { margin: 0; }
  .sky-about-aside { padding: 28px; }
  .sky-about-aside h2 { font-size: 1.65rem; }
  .sky-about-image img { border-radius: 120px 120px 8px 8px; }
  .sky-contact-layout { grid-template-columns: 1fr; gap: 40px; }
  .sky-contact-details { max-width: 680px; }
  .sky-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 25px; }
  .sky-footer-main { grid-template-columns: 1fr 1fr; gap: 28px 45px; }
  .sky-footer-main > div:last-child { grid-column: auto; display: block; padding-top: 0; border: 0; }
  .sky-footer-main > div:last-child h2 { margin: 20px 0 24px; }
  .sky-footer-main > div:last-child a { margin-bottom: 12px; }
}
@media (max-width: 767px) {
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
  .container { padding-inline: 22px; }
  .sky-announcement .container { justify-content: center; min-height: 34px; }
  .sky-announcement a { display: none; }
  .sky-announcement span { font-size: .65rem; }
  .sky-navbar { min-height: 98px; padding: 12px 0; }
  .sky-brand { gap: 12px; }
  .sky-brand img { width: 100px; height: auto; }
  .sky-brand-wordmark { gap: 7px; padding-left: 12px; }
  .sky-brand-name { font-size: 1rem; }
  .sky-brand-location { font-size: .5rem; letter-spacing: .14em; }
  .sky-navbar > .container { gap: 10px; }
  .sky-header-mobile-actions { gap: 0; }
  .sky-header-mobile-actions .sky-search-toggle { display: inline-flex; }
  .sky-header-actions .sky-search-toggle { display: none; }
  .sky-section { padding: 54px 0; }
  .sky-section--first { padding-top: 32px; }
  .sky-eyebrow { font-size: .65rem; letter-spacing: .12em; margin-bottom: 15px; }
  .sky-section-heading { display: block; margin-bottom: 30px; }
  .sky-section-heading h2 { font-size: 1.95rem; line-height: 1.3; }
  .sky-section-heading p:not(.sky-eyebrow) { font-size: .86rem; }
  .sky-section-heading > .sky-text-link { padding-top: 18px; font-size: .78rem; }
  .sky-hero { padding: 26px 0 34px; }
  .sky-hero-grid { gap: 32px; }
  .sky-hero-copy { padding-top: 0; }
  .sky-hero-copy h1 { margin-bottom: 24px; font-size: clamp(2.65rem,9vw,4rem); line-height: 1.17; letter-spacing: -.05em; }
  .sky-hero-copy > .sky-lead { font-size: .95rem; line-height: 1.8; }
  .sky-hero-actions { gap: 16px 22px; margin-top: 25px; }
  .sky-hero-actions > .sky-text-link { font-size: .78rem; }
  .sky-button { min-height: 51px; font-size: .79rem; padding: .85rem 1.1rem; gap: 1rem; }
  .sky-hero-note { margin-top: 26px; gap: 12px; }
  .sky-hero-note .sky-icon-circle { width: 42px; height: 42px; }
  .sky-hero-note p { font-size: .7rem; }
  .sky-hero-figure { height: 440px; border-radius: 170px 170px 16px 16px; }
  .sky-hero-image-tag { right: 16px; bottom: 47px; padding: 11px 14px; font-size: .67rem; }
  .sky-hero-figure figcaption { left: 13px; bottom: 12px; font-size: .54rem; max-width: calc(100% - 26px); }
  .sky-care-strip > .container { grid-template-columns: 1fr; gap: 16px; }
  .sky-care-strip > .container > p { padding: 0 0 16px; border-bottom: 1px solid var(--sky-line); }
  .sky-care-strip span { padding: 0; border: 0; min-height: 31px; font-size: .77rem; gap: 13px; }
  .sky-care-strip .sky-icon { width: 24px; height: 24px; }
  .sky-service-grid, .sky-insight-grid, .sky-team-grid { grid-template-columns: 1fr; gap: 27px; }
  .sky-service-card__image { aspect-ratio: 1.65; }
  .sky-service-card__body { min-height: 185px; padding: 23px 23px 56px; }
  .sky-service-card h3 { font-size: 1.32rem; }
  .sky-service-card p { font-size: .83rem; }
  .sky-story-image { height: 400px; border-bottom-right-radius: 95px; }
  .sky-story-grid { gap: 32px; }
  .sky-story-copy h2 { font-size: 1.95rem; line-height: 1.35; }
  .sky-story-copy > p:not(.sky-eyebrow) { font-size: .85rem; }
  .sky-step { padding-block: 18px; gap: 16px; }
  .sky-step h3 { font-size: .84rem; }
  .sky-step p { font-size: .76rem; }
  .sky-team-card { max-width: 440px; margin-inline: auto; width: 100%; }
  .sky-team-card__portrait { aspect-ratio: 1.05; border-radius: 100px 100px 6px 6px; }
  .sky-team-card__body { padding-top: 19px; }
  .sky-team-card h3 { font-size: 1.3rem; }
  .sky-team-card p { font-size: .83rem; }
  .sky-quote { padding: 25px; }
  .sky-quote blockquote { font-size: .89rem; line-height: 1.9; }
  .sky-insight-card h3 { font-size: 1.25rem; }
  .sky-insight-card__body { padding-top: 18px; }
  .sky-insight-card__body > p:not(.sky-meta) { font-size: .82rem; }
  .sky-appointment-section { padding-bottom: 54px; }
  .sky-appointment-panel { padding: 31px 26px; border-radius: 8px; gap: 29px; }
  .sky-appointment-panel h2 { font-size: 2.05rem; }
  .sky-appointment-panel p:not(.sky-eyebrow) { font-size: .82rem; }
  .sky-appointment-panel__symbol { right: -180px; }
  .sky-appointment-panel__actions .sky-button { font-size: .76rem; gap: 15px; }
  .sky-page-intro { padding-top: 23px; padding-bottom: 33px; }
  .sky-breadcrumb { font-size: .6rem; gap: 8px; margin-bottom: 28px; }
  .sky-page-intro h1 { margin-bottom: 18px; font-size: 2.05rem; line-height: 1.3; overflow-wrap: anywhere; }
  .sky-page-intro .sky-lead { font-size: .86rem; line-height: 1.8; }
  .sky-page-intro--compact h1 { font-size: 1.85rem; }
  .sky-prose { font-size: .89rem; line-height: 1.9; }
  .sky-prose h2 { font-size: 1.4rem; }
  .sky-prose h3 { font-size: 1.13rem; }
  .sky-detail-image, .sky-article-hero { margin-bottom: 25px; }
  .sky-detail-image img, .sky-article-hero img { aspect-ratio: 1.35; }
  .sky-enquiry-card, .sky-article-sidebar { padding: 27px; }
  .sky-enquiry-card h2 { font-size: 1.65rem; }
  .sky-article-note { padding: 23px; }
  .sky-article-note .sky-button { font-size: .75rem; }
  .sky-about-grid aside { grid-template-columns: 1fr; gap: 25px; }
  .sky-about-image img { aspect-ratio: 1; }
  .sky-about-aside h2 { font-size: 1.8rem; }
  .sky-contact-details > h2 { font-size: 2.1rem; }
  .sky-contact-item { padding-block: 20px; }
  .sky-contact-item a { font-size: .85rem; }
  .sky-contact-item address { font-size: .83rem; }
  .sky-contact-form-card { padding: 26px; }
  .sky-contact-form-card h2 { font-size: 1.65rem; }
  .sky-contact-form-card .sky-button { font-size: .74rem; }
  .sky-contact-form-card > p:not(.sky-eyebrow) { font-size: .81rem; }
  .sky-map-fallback { padding: 25px 21px; }
  .sky-gallery-grid { grid-template-columns: 1fr; gap: 27px; }
  .sky-gallery-button { aspect-ratio: 1.3; }
  .sky-modal .modal-dialog { margin: 12px; }
  .sky-modal .modal-header, .sky-modal .modal-body { padding: 22px; }
  .sky-modal .modal-title { font-size: 1.07rem; }
  .sky-modal p { font-size: .81rem; }
  .sky-modal .form-control { font-size: 16px; }
  .sky-footer-main { grid-template-columns: 1fr 1fr; gap: 28px 25px; padding: 40px 0 32px; }
  .sky-footer-brand { grid-column: 1/-1; }
  .sky-footer-brand img { width: 160px; height: auto; margin-bottom: 12px; }
  .sky-footer-brand > p { max-width: 340px; font-size: .78rem; }
  .sky-footer-main > div:last-child { grid-column: 1/-1; }
  .sky-footer-main > div:last-child h2 { margin-top: 10px; }
  .sky-footer h2 { margin-top: 10px; margin-bottom: 18px; }
  .sky-footer address, .sky-footer li a { font-size: .73rem; }
  .sky-footer-bottom { flex-direction: column; align-items: flex-start; gap: 15px; padding-block: 21px; }
  .sky-footer-bottom nav { gap: 18px; }
  .sky-whatsapp { display: none; }
  .sky-mobile-contact { position: fixed; z-index: 1025; bottom: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr 1fr 1.2fr; min-height: 64px; padding: 5px 12px calc(5px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--sky-line); box-shadow: 0 -4px 20px #102a5109; }
  .sky-mobile-contact a, .sky-mobile-contact button { display: flex; justify-content: center; align-items: center; gap: 7px; min-height: 53px; padding: 8px; font-size: .67rem; font-weight: 650; text-decoration: none; border: 0; border-radius: 5px; background: #fff; color: var(--sky-navy); }
  .sky-mobile-contact a:nth-child(2) { color: #166a49; }
  .sky-mobile-contact button { background: var(--sky-navy); color: #fff; }
  .sky-mobile-contact .sky-icon { width: 18px; height: 18px; }
}
@media (max-width: 374px) {
  .container { padding-inline: 18px; }
  .sky-navbar { min-height: 90px; padding-block: 12px; }
  .sky-brand { gap: 9px; }
  .sky-brand img { width: 82px; }
  .sky-brand-wordmark { padding-left: 9px; gap: 6px; }
  .sky-brand-name { font-size: .9rem; }
  .sky-brand-location { font-size: .46rem; }
  .sky-hero-copy h1 { font-size: 2.55rem; }
  .sky-hero-figure { height: 390px; }
  .sky-mobile-contact { padding-inline: 6px; }
  .sky-mobile-contact a, .sky-mobile-contact button { font-size: .62rem; gap: 4px; padding-inline: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.sky-secondary-phone { display: block; width: fit-content; margin: 2px 0 12px; color: var(--sky-navy); font-size: .88rem; font-weight: 650; text-decoration: none; }
.sky-contact-item .sky-secondary-phone { display: block; margin-top: 7px; }
.sky-shortlist-toggle { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 42px; padding: 0; border: 0; border-radius: 50%; color: var(--sky-navy); background: transparent; }
.sky-shortlist-toggle .sky-icon { width: 20px; height: 20px; }
.sky-shortlist-toggle [data-cart-count] { position: absolute; top: 0; right: -3px; display: grid; place-items: center; width: 16px; height: 16px; border-radius: 50%; color: #fff; background: var(--sky-cyan); font-size: .52rem; line-height: 1; }
.sky-shortlist-toggle:hover { background: var(--sky-sky); }
@media (max-width: 1199px) { .sky-header-actions .sky-shortlist-toggle { width: 43px; margin-right: 14px; } }
/* Native disclosure controls remain usable without JavaScript. */
.sky-prose details, .sky-faq-list details { margin-bottom: 13px; padding: 0 22px; border: 1px solid var(--sky-line); border-radius: 6px; background: #fff; }
.sky-prose summary, .sky-faq-list summary { min-height: 58px; padding: 18px 4px; color: var(--sky-navy); font-family: var(--sky-sans); font-size: .88rem; font-weight: 650; line-height: 1.7; cursor: pointer; }
.sky-prose details[open] summary, .sky-faq-list details[open] summary { margin-bottom: 16px; border-bottom: 1px solid var(--sky-line); }
.sky-prose details > :not(summary), .sky-faq-list details > :not(summary) { color: var(--sky-muted); font-size: .86rem; line-height: 1.9; }
.sky-prose details > :last-child, .sky-faq-list details > :last-child { margin-bottom: 22px; }
.sky-prose .sky-testimonial-list { display: grid; gap: 24px; }
.sky-prose .sky-testimonial-list blockquote { padding: 28px; margin: 0; border: 1px solid var(--sky-line); border-left: 3px solid var(--sky-cyan); border-radius: 6px; background: var(--sky-cream); }
.sky-video-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.sky-video-card { padding: 34px; border: 1px solid var(--sky-line); border-radius: 8px; background: var(--sky-cream); }
.sky-video-card h2 { font-size: 1.4rem; line-height: 1.5; }
.sky-video-card p { color: var(--sky-muted); font-size: .84rem; }
@media (max-width: 767px) { .sky-video-grid { grid-template-columns: 1fr; } .sky-video-card { padding: 26px; } .sky-prose details, .sky-faq-list details { padding-inline: 17px; } }

/* Keep small section labels readable on the pale blue testimonial surface. */
.sky-section--sky .sky-eyebrow { color: #006b8d; }
@media (max-width: 359px) { .sky-hero-copy h1 { font-size: 2.2rem; } }

/* Clinic-supplied photographs: preserve the full frame and readable signage. */
.sky-hero-figure.sky-hero-figure--clinic,
.sky-story-image.sky-story-image--clinic { height: auto; border-radius: 16px; background: #fff; box-shadow: 0 14px 40px #19376d0c; }
.sky-hero-figure--clinic picture,
.sky-hero-figure--clinic img,
.sky-story-image--clinic picture,
.sky-story-image--clinic img { display: block; width: 100%; height: auto; }
.sky-hero-figure--clinic img,
.sky-story-image--clinic img { object-fit: contain; }
.sky-hero-figure--clinic figcaption,
.sky-story-image--clinic figcaption { position: static; width: auto; max-width: none; margin: 0; padding: 16px 20px; background: #fff; color: var(--sky-ink); font-size: .72rem; line-height: 1.7; }
.sky-hero-figure--clinic figcaption { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.sky-hero-figure--clinic figcaption a { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; color: var(--sky-cyan); font-weight: 650; }
.sky-hero-figure--clinic figcaption .sky-icon { width: 16px; height: 16px; }
.sky-story-image--clinic { align-self: center; }
.sky-about-image--clinic img { aspect-ratio: auto; height: auto; border-radius: 12px; object-fit: contain; }
.sky-clinic-gallery .sky-gallery-button { aspect-ratio: 4 / 3; background: #f2f5f4; border: 1px solid var(--sky-line); }
.sky-clinic-gallery .sky-gallery-button img { object-fit: contain; }
.sky-clinic-gallery .sky-gallery-button:hover img { transform: none; }
.sky-clinic-gallery .sky-gallery-button:hover > span { background: var(--sky-navy); color: #fff; }
.sky-clinic-gallery .sky-gallery-item figcaption { margin-top: 12px; color: var(--sky-ink); font-size: .8rem; }
.sky-gallery-jumps { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0 48px; }
.sky-gallery-jumps a { display: inline-flex; align-items: center; gap: 14px; padding: 12px 18px; border: 1px solid var(--sky-line); border-radius: 30px; color: var(--sky-navy); font-size: .83rem; font-weight: 600; text-decoration: none; }
.sky-gallery-jumps a:hover { border-color: var(--sky-cyan); background: var(--sky-cream); }
.sky-gallery-jumps a span { display: grid; place-items: center; min-width: 26px; height: 26px; border-radius: 50%; background: var(--sky-cream); color: var(--sky-cyan); font-size: .72rem; }
.sky-gallery-content { padding-top: 30px; }
.sky-gallery-content .sky-gallery-jumps { margin-top: 0; margin-bottom: 28px; }
.sky-gallery-content .sky-section-heading { margin-bottom: 28px; }
.sky-gallery-collection { scroll-margin-top: 150px; margin-bottom: 70px; }
.sky-gallery-collection .sky-section-heading h2 { font-size: clamp(1.9rem,3vw,2.7rem); }
.sky-gallery-grid--spaces { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sky-gallery-grid--spaces .sky-gallery-item--panorama .sky-gallery-button { aspect-ratio: 2.35; }
.sky-gallery-grid--portraits { grid-template-columns: repeat(4,minmax(0,1fr)); }
.sky-gallery-grid--portraits .sky-gallery-button { aspect-ratio: 1; background: #f7f8f5; }
.sky-gallery-grid--portraits .sky-gallery-button img { object-fit: contain; }
.sky-gallery-grid--devices { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.sky-gallery-grid--devices .sky-gallery-button { aspect-ratio: 4 / 3; padding: 24px; background: #fff; border: 0; border-radius: 0; }
.sky-gallery-grid--devices .sky-gallery-button img { object-fit: contain; }
.sky-gallery-grid--devices .sky-gallery-item--device { margin: 0; border: 1px solid var(--sky-line); border-radius: 14px; overflow: hidden; background: #fff; box-shadow: 0 5px 22px rgba(25,55,109,.035); transition: box-shadow .2s ease, border-color .2s ease; }
.sky-gallery-grid--devices .sky-gallery-item--device:hover { border-color: #91b9c6; box-shadow: 0 12px 30px rgba(25,55,109,.09); }
.sky-gallery-grid--devices .sky-gallery-item figcaption { display: grid; gap: 8px; margin: 0; padding: 20px 22px 24px; border-top: 1px solid #edf1f3; font-size: .86rem; line-height: 1.5; }
.sky-device-style { color: var(--sky-cyan); font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sky-gallery-item--device figcaption strong { font-family: "Bitter", Georgia, serif; font-size: .98rem; font-weight: 600; }
.sky-device-model { color: var(--sky-muted); font-size: .72rem; }
.sky-gallery-grid--devices .sky-gallery-button:focus-visible { outline: 3px solid var(--sky-cyan); outline-offset: -4px; }
.sky-team-card__portrait picture { display: block; height: 100%; }
@media (max-width: 991px) {
  .sky-gallery-grid--portraits, .sky-gallery-grid--devices { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575px) {
  .sky-gallery-jumps { gap: 9px; margin-bottom: 35px; }
  .sky-gallery-jumps a { padding: 10px 13px; font-size: .78rem; }
  .sky-gallery-grid--spaces, .sky-gallery-grid--portraits, .sky-gallery-grid--devices { grid-template-columns: 1fr; }
  .sky-gallery-collection { margin-bottom: 48px; scroll-margin-top: 110px; }
}
.sky-contact-photo { margin: 28px 0 0; }
.sky-contact-photo picture,
.sky-contact-photo img { display: block; width: 100%; height: auto; border-radius: 9px; }
.sky-contact-photo figcaption { margin-top: 10px; color: var(--sky-muted); font-size: .72rem; line-height: 1.7; }
@media (max-width: 575px) {
  .sky-hero-figure--clinic figcaption { padding: 13px 15px; gap: 6px; }
  .sky-hero-figure--clinic figcaption a { width: 100%; margin-left: 13px; }
}

/* Practo is confined to the appointment page; the clinic options remain usable. */
.sky-booking-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 36px; max-width: 1040px; margin: 0 auto; }
.sky-booking-card { min-width: 0; padding: 36px; border: 1px solid var(--sky-line); border-radius: 10px; background: #fff; }
.sky-booking-card > .sky-icon-circle { margin-bottom: 24px; }
.sky-booking-card h2, .sky-booking-help h2 { margin-bottom: 18px; font-size: 2rem; line-height: 1.3; }
.sky-booking-card > p:not(.sky-eyebrow), .sky-booking-help > p:not(.sky-eyebrow) { color: var(--sky-muted); font-size: .88rem; line-height: 1.85; }
.sky-practo-widget { min-height: 90px; margin-block: 28px 12px; }
.sky-practo-widget[data-unavailable="true"] { min-height: 0; margin-block: 0; }
.sky-practo-widget > *, .sky-practo-widget iframe { max-width: 100%; }
.sky-practo-widget iframe { border: 0; }
.sky-booking-card .sky-small-note { margin: 22px 0 0; font-size: .73rem; }
.sky-booking-status { margin-block: 12px; padding: 12px 15px; border-radius: 5px; background: var(--sky-cream); font-size: .78rem !important; }
.sky-booking-help { min-width: 0; align-self: start; padding: 36px; border-radius: 10px; background: var(--sky-cream); }
.sky-booking-help .sky-phone-link { margin-top: 24px; }
.sky-booking-help .sky-text-link { margin-top: 14px; }
.sky-booking-help address { margin: 28px 0 0; padding-top: 24px; border-top: 1px solid var(--sky-line); color: var(--sky-muted); font-size: .79rem; line-height: 1.85; }
.sky-appointment-panel__actions .sky-text-link { color: #fff; font-size: .8rem; }
@media (max-width: 767px) {
  .sky-booking-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .sky-booking-card, .sky-booking-help { padding: 24px 20px; }
  .sky-booking-card h2, .sky-booking-help h2 { font-size: 1.7rem; }
  .sky-mobile-contact .sky-mobile-booking { background: var(--sky-navy); color: #fff; }
}

/* Verified manufacturer logos: keep original colours and aspect ratios. */
.sky-hearing-brands { margin-bottom: 38px; padding: 12px 0 36px; border-bottom: 1px solid var(--sky-line); }
.sky-hearing-brands .sky-section-heading { display: block; margin-bottom: 26px; }
.sky-hearing-brands .sky-section-heading > div { width: 100%; max-width: 100%; min-width: 0; }
.sky-hearing-brands h2 { font-size: clamp(1.65rem, 2.6vw, 2.35rem); }
.sky-brand-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.sky-brand-card { min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 28px 22px 24px; border: 1px solid var(--sky-line); border-radius: 12px; background: #fff; text-align: center; }
.sky-brand-logo-space { display: flex; align-items: center; justify-content: center; width: 100%; height: 84px; }
.sky-brand-logo-space img { display: block; width: 180px; max-width: 100%; height: 72px; object-fit: contain; }
.sky-brand-company { color: var(--sky-navy); font-size: .95rem; font-weight: 650; line-height: 1.4; }
.sky-brand-name-fallback { color: var(--sky-navy); font-size: 1.3rem; font-weight: 650; }
.sky-brand-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin-top: 26px; }
.sky-brand-overview { padding-top: 0; }
.sky-brand-groups { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; }
.sky-brand-groups > section { min-width: 0; padding: 24px; border: 1px solid var(--sky-line); border-radius: 14px; background: #f8fafb; }
.sky-brand-groups h3 { margin: 0 0 20px; color: var(--sky-navy); font-size: 1.18rem; }
.sky-brand-groups .sky-brand-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.sky-brand-groups > section:last-child .sky-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.sky-brand-groups .sky-brand-card { gap: 12px; padding: 20px 12px; }
.sky-brand-groups .sky-brand-logo-space { height: 60px; }
.sky-brand-groups .sky-brand-logo-space img { width: 140px; height: 56px; }
.sky-brand-groups .sky-brand-company { font-size: .82rem; }
.sky-brand-groups > section > .sky-text-link { margin-top: 20px; }
@media (max-width: 991px) {
  .sky-brand-groups { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .sky-brand-grid { grid-template-columns: 1fr; gap: 14px; }
  .sky-brand-card { padding: 24px 20px; }
  .sky-brand-groups > section { padding: 20px 16px; }
  .sky-brand-groups .sky-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sky-brand-groups > section:first-child .sky-brand-card:last-child { grid-column: 1 / -1; }
  .sky-brand-groups > section:last-child .sky-brand-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .sky-brand-groups .sky-brand-card { padding: 20px 12px; }
  .sky-brand-groups .sky-brand-company { font-size: .95rem; }
  .sky-brand-actions { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 575px) {
  .sky-hearing-brands h2 { max-width: 18rem; line-height: 1.25; }
}
