
:root {
    --green-950: #24513f;
    --green-900: #3f7f65;
    --green-800: #55977a;
    --green-700: #69aa8c;
    --green-600: #82bea3;
    --green-100: #eaf5ef;
    --green-50: #f7fbf9;
    --ink: #202724;
    --muted: #67716c;
    --grey-900: #29312d;
    --grey-700: #56605b;
    --grey-300: #d7ded9;
    --grey-200: #e6ebe8;
    --grey-100: #f2f5f3;
    --grey-50: #fafbfa;
    --white: #ffffff;
    --shadow: 0 22px 62px rgba(24, 66, 47, .10);
    --shadow-soft: 0 13px 34px rgba(24, 66, 47, .07);
    --radius-sm: 12px;
    --radius-md: 22px;
    --radius-lg: 32px;
    --container: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 112px 0; }
.section--soft { background: var(--grey-100); }

.eyebrow {
    margin: 0 0 14px;
    color: var(--green-700);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .16em;
    text-transform: uppercase;
}
.eyebrow--light { color: #d7f4e5; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--grey-900); letter-spacing: -.035em; line-height: 1.08; }
h1 { font-size: clamp(3.1rem, 7vw, 6.6rem); }
h2 { margin-bottom: 24px; font-size: clamp(2.25rem, 4.6vw, 4.25rem); }
h3 { font-size: 1.35rem; }
p { color: var(--muted); }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 25px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--green-800);
    color: var(--white);
    font-weight: 800;
    transition: transform .25s ease, background .25s ease, box-shadow .25s ease;
}
.button:hover, .button:focus-visible {
    background: var(--green-900);
    box-shadow: 0 14px 32px rgba(47, 110, 82, .22);
    transform: translateY(-3px);
}
.button--small { min-height: 46px; padding-inline: 22px; font-size: .9rem; }
.button--header { border-color: rgba(255,255,255,.75); background: var(--white); color: var(--green-900); }
.button--header:hover { background: var(--grey-100); color: var(--green-950); }
.button--ghost { border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.button--ghost:hover { background: rgba(255,255,255,.2); }
.button--dark { background: var(--grey-900); }
.button--light { background: var(--white); color: var(--green-950); }
.button--ghost-light { border-color: rgba(255,255,255,.55); background: transparent; }
.button--full { width: 100%; }
.text-link { display: inline-flex; gap: 10px; align-items: center; color: var(--green-800); font-weight: 800; }
.text-link span, .service-card a span { transition: transform .2s ease; }
.text-link:hover span, .service-card a:hover span { transform: translateX(5px); }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { z-index: 9999; top: 12px; left: 12px; width: auto; height: auto; padding: 12px 18px; clip: auto; background: var(--white); color: var(--green-950); }

.topbar { position: relative; z-index: 110; background: var(--grey-100); color: var(--grey-900); font-size: .82rem; }
.topbar__inner, .topbar__details, .topbar__status { display: flex; align-items: center; }
.topbar__inner { min-height: 43px; justify-content: space-between; gap: 20px; }
.topbar__details { gap: 24px; }
.topbar__details a, .topbar__address, .topbar__status { gap: 7px; }
.topbar__details a { display: inline-flex; align-items: center; }
.topbar__status { font-weight: 750; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green-600); box-shadow: 0 0 0 5px rgba(20,156,99,.12); }
.status-dot.is-closed { background: #89918d; box-shadow: 0 0 0 5px rgba(137,145,141,.12); }

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    background: linear-gradient(105deg, #76b69a 0%, var(--green-800) 52%, #4f9174 100%);
    transition: box-shadow .22s ease, background .22s ease;
}
.site-header.is-scrolled {
    background: rgba(85,151,122,.97);
    box-shadow: 0 10px 28px rgba(30, 79, 57, .16);
    backdrop-filter: blur(14px);
}
.scroll-progress {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    overflow: hidden;
    background: rgba(255,255,255,.14);
}
.scroll-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,.88);
    transform: scaleX(0);
    transform-origin: left;
    will-change: transform;
}
.site-header__inner {
    display: flex;
    min-height: 82px;
    align-items: center;
    justify-content: space-between;
    gap: 26px;
}
.site-brand,
.site-brand .custom-logo-link {
    display: inline-flex;
    align-items: center;
}
.site-brand__panel {
    display: inline-flex;
    min-width: 0;
    min-height: 0;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    background: transparent;
    box-shadow: none;
}
.site-brand img,
.custom-logo {
    width: auto;
    max-width: 270px;
    max-height: 70px;
    object-fit: contain;
    filter: drop-shadow(0 1px 1px rgba(255,255,255,.16));
}
.site-nav,
.site-nav__list {
    display: flex;
    align-items: center;
}
.site-nav { gap: 20px; }
.site-nav__list { gap: 25px; margin: 0; padding: 0; list-style: none; }
.site-nav__list a {
    position: relative;
    color: var(--white);
    font-size: .94rem;
    font-weight: 800;
}
.site-nav__list a::after {
    position: absolute;
    right: 0;
    bottom: -8px;
    left: 0;
    height: 2px;
    background: var(--white);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .22s ease;
}
.site-nav__list a:hover::after,
.site-nav__list a.is-active::after {
    transform: scaleX(1);
    transform-origin: left;
}
.site-nav__list a.is-active {
    text-shadow: 0 1px 8px rgba(20,70,48,.22);
}
.site-nav__hours-link {
    position: relative;
    color: var(--white);
    font-size: .94rem;
    font-weight: 800;
}
.site-nav__hours-link::after {
    position: absolute;
    right: 0;
    bottom: -8px;
    left: 0;
    height: 2px;
    background: var(--white);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .22s ease;
}
.site-nav__hours-link:hover::after,
.site-nav__hours-link:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
}
.tangam-uses-fallback-menu .site-nav__hours-link {
    display: none;
}
.menu-toggle {
    display: none;
    width: 46px;
    height: 46px;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
}
.menu-toggle__line {
    display: block;
    width: 100%;
    height: 2px;
    margin: 5px 0;
    background: var(--white);
    transition: transform .2s ease, opacity .2s ease;
}

.hero { position: relative; min-height: 710px; overflow: hidden; background: var(--grey-900); color: var(--white); }
.hero__media, .hero__overlay { position: absolute; inset: 0; }
.hero__media img { width: 100%; height: 100%; object-fit: cover; }
.hero__overlay { background: linear-gradient(90deg, rgba(24,38,31,.91) 0%, rgba(24,38,31,.72) 45%, rgba(24,38,31,.18) 100%), linear-gradient(0deg, rgba(8,70,46,.42), transparent 60%); }
.hero__content { position: relative; z-index: 2; padding-top: 105px; }
.hero h1 { max-width: 900px; margin-bottom: 25px; color: var(--white); }
.hero h1 span { color: #cdebdc; }
.hero__lead { max-width: 700px; margin-bottom: 35px; color: rgba(255,255,255,.83); font-size: 1.18rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.hero-hours-card {
    position: absolute;
    z-index: 3;
    right: 0;
    bottom: 24px;
    left: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(190px, .65fr) auto;
    width: min(calc(100% - 40px), 980px);
    min-height: 0;
    align-items: center;
    gap: 18px;
    padding: 17px 21px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 22px;
    background: rgba(68,88,76,.80);
    box-shadow: 0 16px 42px rgba(22,42,32,.20);
    backdrop-filter: blur(15px);
}
.hero-hours-card__label, .hero-hours-card__hours small { display: block; margin-bottom: 2px; color: rgba(255,255,255,.7); font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.hero-hours-card strong { display: block; color: var(--white); font-size: 1rem; line-height: 1.35; }
.hero-hours-card__date {
    display: block;
    margin-top: 3px;
    color: rgba(255,255,255,.72);
    font-size: .74rem;
}
.hero-hours-card__countdown {
    display: inline-flex;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: var(--white);
    font-size: .76rem;
    font-weight: 800;
}
.hero-hours-card__hours { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.25); }
.hero-hours-card > a { display: inline-flex; gap: 8px; align-items: center; justify-content: flex-end; color: var(--white); font-size: .9rem; font-weight: 800; white-space: nowrap; }

.trust-strip { position: relative; z-index: 5; border-bottom: 1px solid var(--grey-200); background: var(--white); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-strip__grid > div { padding: 30px 26px; border-right: 1px solid var(--grey-200); }
.trust-strip__grid > div:first-child { border-left: 1px solid var(--grey-200); }
.trust-strip strong, .trust-strip span { display: block; }
.trust-strip strong { color: var(--grey-900); font-size: 1.05rem; }
.trust-strip span { color: var(--muted); font-size: .84rem; }

.split-layout, .hours-layout, .contact-layout, .owner-layout { display: grid; align-items: center; gap: clamp(50px, 8vw, 110px); }
.split-layout { grid-template-columns: minmax(0, 530px) minmax(0, 1fr); }
.about__image { position: relative; width: 100%; max-width: 530px; }
.about__image img { width: 100%; aspect-ratio: 4/3; border-radius: var(--radius-lg); box-shadow: var(--shadow); object-fit: cover; }
.image-badge { position: absolute; right: -26px; bottom: -28px; min-width: 220px; padding: 23px; border-radius: var(--radius-md); background: var(--green-800); box-shadow: var(--shadow); color: var(--white); }
.image-badge strong, .image-badge span { display: block; }
.image-badge span { color: rgba(255,255,255,.76); font-size: .86rem; }
.section-copy > p:not(.eyebrow) { max-width: 660px; font-size: 1.05rem; }
.feature-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 25px; margin: 28px 0; }
.feature-list span { position: relative; padding-left: 26px; color: var(--grey-900); font-weight: 750; }
.feature-list span::before { position: absolute; top: .5em; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--green-600); box-shadow: 0 0 0 5px rgba(20,156,99,.11); content: ""; }

.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr); align-items: end; gap: 45px; margin-bottom: 48px; }
.section-heading h2 { margin-bottom: 0; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.service-card { position: relative; overflow: hidden; min-height: 310px; padding: 32px; border: 1px solid var(--grey-200); border-radius: var(--radius-md); background: var(--white); transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.service-card::after { position: absolute; right: -70px; bottom: -90px; width: 170px; height: 170px; border-radius: 50%; background: var(--green-100); content: ""; transition: transform .35s ease; }
.service-card:hover { border-color: rgba(15,134,85,.32); box-shadow: var(--shadow-soft); transform: translateY(-8px); }
.service-card:hover::after { transform: scale(1.4); }
.service-card__icon { display: inline-flex; width: 58px; height: 58px; margin-bottom: 52px; align-items: center; justify-content: center; border-radius: 18px; background: var(--green-100); color: var(--green-800); font-weight: 900; }
.service-card p { min-height: 74px; }
.service-card a { position: relative; z-index: 2; display: inline-flex; gap: 8px; align-items: center; color: var(--green-800); font-weight: 800; }


.daily-care {
    padding-top: 78px;
    padding-bottom: 78px;
    background: var(--white);
}
.daily-care__card {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    align-items: center;
    gap: 26px;
    padding: 30px 32px;
    border: 1px solid var(--grey-200);
    border-radius: 26px;
    background:
        radial-gradient(circle at top right, rgba(130,190,163,.23), transparent 34%),
        linear-gradient(135deg, var(--green-50), var(--white));
    box-shadow: var(--shadow-soft);
}
.daily-care__icon {
    display: inline-flex;
    width: 72px;
    height: 72px;
    align-items: center;
    justify-content: center;
    border-radius: 22px;
    background: var(--green-800);
    color: var(--white);
    font-size: 2.1rem;
    font-weight: 400;
    box-shadow: 0 13px 28px rgba(85,151,122,.22);
}
.daily-care__content h2 {
    max-width: 760px;
    margin-bottom: 12px;
    font-size: clamp(1.65rem, 3vw, 2.65rem);
}
.daily-care__content > p:not(.eyebrow) {
    max-width: 780px;
    margin-bottom: 14px;
    color: var(--grey-700);
    font-size: 1.02rem;
}
.daily-care__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
}
.daily-care__actions {
    display: grid;
    justify-items: start;
    gap: 14px;
    min-width: 190px;
}
.button--soft {
    border-color: var(--green-100);
    background: var(--green-100);
    color: var(--green-950);
    cursor: pointer;
}
.button--soft:hover,
.button--soft:focus-visible {
    background: var(--green-700);
    color: var(--white);
}

.gallery-section { overflow: hidden; padding: 95px 0 115px; background: var(--grey-100); }
.gallery-section h2 { max-width: 700px; margin-bottom: 0; color: var(--grey-900); }
.gallery-section__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 40px;
}
.gallery-ui {
    display: flex;
    align-items: center;
    gap: 16px;
}
.gallery-counter {
    display: inline-flex;
    gap: 5px;
    min-width: 54px;
    color: var(--grey-700);
    font-size: .82rem;
    font-weight: 850;
}
.slider-controls { display: flex; gap: 10px; }
.slider-button { width: 50px; height: 50px; border: 1px solid var(--grey-300); border-radius: 50%; background: var(--white); color: var(--green-800); cursor: pointer; box-shadow: var(--shadow-soft); transition: background .2s ease, color .2s ease, transform .2s ease; }
.slider-button:hover { background: var(--green-700); color: var(--white); transform: translateY(-2px); }
.gallery-slider { overflow: hidden; cursor: grab; }
.gallery-slider.is-dragging { cursor: grabbing; }
.gallery-track {
    display: flex;
    gap: 22px;
    padding-left: max(20px, calc((100vw - var(--container)) / 2));
    user-select: none;
    will-change: transform;
    touch-action: pan-y;
}
.gallery-slide { position: relative; flex: 0 0 min(54vw, 680px); overflow: hidden; margin: 0; border-radius: 30px; box-shadow: var(--shadow-soft); }
.gallery-slide img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    background: var(--grey-200);
    transition: transform .55s ease, opacity .3s ease;
}
.gallery-slide:hover img { transform: scale(1.04); }
.gallery-slide figcaption {
    position: absolute;
    right: 20px;
    bottom: 20px;
    left: 20px;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 18px;
    background: rgba(34,72,55,.62);
    color: var(--white);
    font-size: 1.05rem;
    font-weight: 800;
    backdrop-filter: blur(10px);
}
.gallery-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 25px;
}
.gallery-dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--grey-300);
    cursor: pointer;
    transition: width .22s ease, background .22s ease;
}
.gallery-dots button.is-active {
    width: 28px;
    background: var(--green-700);
}

.statement-banner { position: relative; min-height: 470px; overflow: hidden; }
.statement-banner__image, .statement-banner__overlay { position: absolute; inset: 0; }
.statement-banner__image img { width: 100%; height: 100%; object-fit: cover; }
.statement-banner__overlay { background: linear-gradient(90deg, rgba(6,59,40,.92), rgba(6,59,40,.26)); }
.statement-banner__content { position: relative; z-index: 2; padding-top: 105px; }
.statement-banner__content p { margin: 0 0 10px; color: var(--white); font-size: clamp(2.5rem, 5.5vw, 5rem); font-weight: 850; letter-spacing: -.05em; line-height: 1; }
.statement-banner__content p:nth-child(2) { color: #ccebdd; }
.statement-banner__content p:nth-child(3) { color: #ffffff; }

.team-card { display: grid; grid-template-columns: .95fr 1.05fr; max-width: 1080px; overflow: hidden; padding: 0; border: 1px solid var(--grey-200); border-radius: var(--radius-lg); background: var(--grey-100); box-shadow: var(--shadow); }
.team-card__image { overflow: hidden; }
.team-card__image img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; transition: transform 1s ease; }
.team-card:hover .team-card__image img { transform: scale(1.025); }
.team-card__content { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(40px, 6vw, 80px); }
.owner-section { overflow: hidden; background: var(--white); }
.owner-layout { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); max-width: 1080px; }
.owner-portrait { overflow: hidden; width: 100%; max-width: 420px; border-radius: 220px 220px 32px 32px; }
.owner-portrait img { width: 100%; height: 540px; object-fit: cover; transition: transform 1s ease; }
.owner-portrait:hover img { transform: scale(1.03); }
.owner-message { position: relative; margin: 0; padding: 20px 0; }
.owner-message .quote-mark { display: block; height: 80px; color: rgba(15,134,85,.18); font-family: Georgia, serif; font-size: 8rem; line-height: .85; }
.owner-message > p:not(.eyebrow) { color: var(--grey-900); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.65rem, 3vw, 2.8rem); line-height: 1.35; }
.owner-message footer { display: flex; flex-direction: column; margin-top: 30px; }
.owner-message footer strong { color: var(--grey-900); }
.owner-message footer span { color: var(--muted); }

.hours-layout { grid-template-columns: .85fr 1.15fr; }
.hours-copy { max-width: 500px; }
.hours-card { overflow: hidden; border: 1px solid var(--grey-200); border-radius: var(--radius-md); background: var(--white); box-shadow: var(--shadow); }
.hours-row { display: flex; min-height: 67px; align-items: center; justify-content: space-between; gap: 20px; padding: 0 28px; border-bottom: 1px solid var(--grey-200); transition: background .25s ease, transform .25s ease; }
.hours-row:last-child { border-bottom: 0; }
.hours-row span { color: var(--muted); }
.hours-row strong { color: var(--grey-900); }
.hours-row.is-today { background: var(--green-800); transform: scale(1.015); }
.hours-row.is-today span, .hours-row.is-today strong { color: var(--white); }

.location-section { display: grid; grid-template-columns: 1.45fr .55fr; min-height: 560px; background: var(--green-900); overflow: hidden; }
.location-map iframe { display: block; min-height: 560px; }
.location-panel { display: flex; align-items: flex-start; justify-content: center; flex-direction: column; padding: clamp(45px, 6vw, 78px); background: radial-gradient(circle at top right, rgba(255,255,255,.12), transparent 38%), var(--green-800); }
.location-panel h2, .location-panel address, .location-panel > a { color: var(--white); }
.location-panel address { max-width: 350px; margin-bottom: 25px; font-size: 1.1rem; font-style: normal; }
.location-panel > a { margin-bottom: 8px; font-weight: 750; }
.location-panel__buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

.contact-layout { grid-template-columns: .8fr 1.2fr; align-items: start; }
.contact-copy { position: sticky; top: 150px; }
.contact-copy > p:not(.eyebrow) { max-width: 520px; }
.contact-methods { display: grid; gap: 15px; margin-top: 38px; }
.contact-methods a { display: grid; grid-template-columns: 54px 1fr; gap: 15px; align-items: center; padding: 16px; border: 1px solid var(--grey-200); border-radius: 18px; background: var(--white); transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.contact-methods a:hover { border-color: rgba(15,134,85,.35); box-shadow: var(--shadow-soft); transform: translateX(7px); }
.contact-methods__icon { display: inline-flex; width: 54px; height: 54px; align-items: center; justify-content: center; border-radius: 16px; background: var(--green-100); color: var(--green-800); font-weight: 900; }
.contact-methods small, .contact-methods strong { display: block; }
.contact-methods small { color: var(--muted); }
.contact-methods strong { overflow-wrap: anywhere; color: var(--grey-900); }
.contact-form-card { padding: clamp(28px, 5vw, 55px); border: 1px solid var(--grey-200); border-radius: var(--radius-lg); background: var(--grey-100); box-shadow: var(--shadow-soft); }
.contact-form, .contact-form label { display: grid; gap: 9px; }
.contact-form { gap: 20px; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.contact-form label > span { color: var(--grey-900); font-size: .9rem; font-weight: 750; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--grey-300); border-radius: 13px; outline: none; background: var(--white); color: var(--ink); transition: border-color .2s ease, box-shadow .2s ease; }
.contact-form input { height: 52px; padding: 0 15px; }
.contact-form textarea { min-height: 145px; padding: 15px; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--green-700); box-shadow: 0 0 0 4px rgba(15,134,85,.11); }
.contact-form .consent { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 10px; }
.consent input { width: 18px; height: 18px; margin-top: 2px; }
.consent span { color: var(--muted) !important; font-size: .82rem !important; font-weight: 500 !important; }
.form-message { margin-bottom: 20px; padding: 14px 16px; border-radius: 12px; }
.form-message--success { background: #e4f6ec; color: var(--green-950); }
.form-message--error { background: #fff0f0; color: #8e2730; }

.site-footer { padding-top: 78px; background: var(--grey-900); color: var(--white); }
.site-footer__grid { display: grid; grid-template-columns: 1.35fr .75fr 1fr 1fr; gap: 55px; padding-bottom: 65px; }
.footer-logo img { width: auto; max-width: 280px; max-height: 78px; padding: 8px 14px; border-radius: 14px; background: var(--white); object-fit: contain; }
.footer-brand p { max-width: 360px; margin-top: 22px; color: rgba(255,255,255,.67); }
.footer-heading { margin-bottom: 21px; color: var(--white); font-size: 1rem; letter-spacing: 0; }
.footer-links, .footer-hours { margin: 0; padding: 0; list-style: none; }
.footer-links li, .footer-hours li { margin-bottom: 12px; }
.footer-links a, .footer-contact a { color: rgba(255,255,255,.72); }
.footer-links a:hover, .footer-contact a:hover { color: var(--white); }
.footer-hours li { display: flex; justify-content: space-between; gap: 12px; color: rgba(255,255,255,.68); font-size: .88rem; }
.footer-hours strong { color: var(--white); font-size: .82rem; }
.footer-contact { display: grid; gap: 12px; font-style: normal; }
.social-links { display: flex; gap: 10px; margin-top: 25px; }
.social-links a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: var(--white); font-size: .85rem; font-weight: 800; transition: background .2s ease; }
.social-links a:hover { background: var(--green-700); }
.site-footer__bottom { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 22px; min-height: 82px; border-top: 1px solid rgba(255,255,255,.11); }
.site-footer__bottom p, .footer-legal a { margin: 0; color: rgba(255,255,255,.58); font-size: .78rem; }
.footer-legal { display: flex; gap: 18px; }
.green-media-credit { text-align: right; }
.green-media-credit strong { color: #bfe8d3; }
.mobile-actions { display: none; }
.back-to-top { position: fixed; z-index: 80; right: 22px; bottom: 22px; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--green-700); box-shadow: 0 12px 25px rgba(15,134,85,.3); color: var(--white); cursor: pointer; opacity: 0; pointer-events: none; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease; }
.back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

/* Stronger scroll animations */
.reveal,
.image-reveal {
    opacity: 0;
    transition:
        opacity .46s ease,
        transform .5s cubic-bezier(.2,.72,.25,1),
        clip-path .52s cubic-bezier(.2,.72,.25,1);
    will-change: opacity, transform;
}
.reveal[data-reveal="up"] { transform: translateY(34px) scale(.992); }
.reveal[data-reveal="left"] { transform: translateX(-42px); }
.reveal[data-reveal="right"] { transform: translateX(42px); }
.reveal[data-reveal="zoom"],
.image-reveal[data-reveal="zoom"] { transform: scale(1.045); }
.image-reveal { clip-path: inset(4% 4% 4% 4% round 24px); }
.reveal.is-visible,
.image-reveal.is-visible {
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0 round 0);
}
.reveal-group > .reveal:nth-child(2) { transition-delay: .055s; }
.reveal-group > .reveal:nth-child(3) { transition-delay: .11s; }
.reveal-group > .reveal:nth-child(4) { transition-delay: .165s; }
.reveal-group > .reveal:nth-child(5) { transition-delay: .22s; }
.reveal-group > .reveal:nth-child(6) { transition-delay: .275s; }

.content-container { max-width: 900px; }
.standard-content { min-height: 50vh; }
.standard-content h1 { font-size: clamp(2.5rem, 6vw, 5rem); }


@media (max-width: 1120px) {
    .site-brand img,
    .custom-logo {
        max-width: 235px;
        max-height: 62px;
    }
    .site-nav__list { gap: 18px; }
    .site-nav { gap: 15px; }
    .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
    .location-section { grid-template-columns: 1fr; }
    .location-panel { min-height: 400px; }
}

@media (max-width: 940px) {
    .topbar__address,
    .site-nav__cta {
        display: none;
    }

    .site-header__inner { min-height: 74px; }

    .site-brand img,
    .custom-logo {
        max-width: 220px;
        max-height: 58px;
    }

    .menu-toggle {
        display: block;
        cursor: pointer;
    }

    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }
    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] .menu-toggle__line:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-nav {
        position: fixed;
        z-index: 99;
        top: 117px;
        right: 0;
        bottom: 0;
        left: 0;
        display: block;
        overflow-y: auto;
        padding: 28px 24px 110px;
        background: rgba(85,151,122,.985);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-12px);
        transition: opacity .2s ease, transform .2s ease;
    }

    .site-nav.is-open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .site-nav__list {
        display: grid;
        gap: 0;
    }

    .site-nav__list li {
        border-bottom: 1px solid rgba(255,255,255,.2);
    }

    .site-nav__list a {
        display: block;
        padding: 17px 0;
        font-size: 1.18rem;
    }
    .site-nav__hours-link {
        display: block;
        padding: 17px 0;
        border-bottom: 1px solid rgba(255,255,255,.2);
        font-size: 1.18rem;
    }
    .tangam-uses-fallback-menu .site-nav__hours-link {
        display: none;
    }

    .hero { min-height: 690px; }
    .hero__content { padding-top: 82px; }
    .hero-hours-card {
        grid-template-columns: minmax(0, 1.25fr) minmax(180px, .75fr);
        width: min(calc(100% - 32px), 820px);
    }
    .hero-hours-card > a {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding-top: 2px;
    }

    .trust-strip__grid { grid-template-columns: repeat(2, 1fr); }
    .trust-strip__grid > div:first-child { border-left: 0; }

    .split-layout,
    .hours-layout,
    .contact-layout,
    .owner-layout {
        grid-template-columns: 1fr;
    }

    .about__image { max-width: 700px; }
    .image-badge { right: 16px; }
    .section-heading { grid-template-columns: 1fr; gap: 15px; }
    .service-grid { grid-template-columns: repeat(2, 1fr); }

    .team-card { grid-template-columns: 1fr; }
    .team-card__image img { min-height: 390px; }

    .owner-portrait { max-width: 490px; }
    .contact-copy { position: static; }

    .site-footer__bottom {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 25px 0;
        text-align: center;
    }
    .footer-legal { justify-content: center; }
    .green-media-credit { text-align: center; }
}

@media (max-width: 650px) {
    :root {
        --radius-lg: 23px;
        --radius-md: 18px;
    }

    html { scroll-padding-top: 106px; }

    body {
        font-size: 15px;
        overflow-x: hidden;
    }

    .container {
        width: min(calc(100% - 28px), var(--container));
    }

    .section { padding: 68px 0; }

    h2 {
        margin-bottom: 18px;
        font-size: clamp(2rem, 10.5vw, 3rem);
    }

    .topbar__inner {
        min-height: 36px;
        justify-content: space-between;
    }

    .topbar__details {
        flex: 0 0 auto;
        gap: 0;
    }

    .topbar__details a:not(:first-child),
    .topbar__address {
        display: none;
    }

    .topbar__status {
        min-width: 0;
        justify-content: flex-end;
        font-size: .68rem;
    }

    .topbar__status span:last-child {
        overflow: hidden;
        max-width: 52vw;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .site-header__inner { min-height: 68px; }

    .site-brand img,
    .custom-logo {
        max-width: 185px;
        max-height: 50px;
    }

    .menu-toggle {
        width: 42px;
        height: 42px;
        padding: 8px;
    }

    .site-nav {
        top: 104px;
        padding-top: 22px;
    }

    .hero {
        min-height: auto;
        padding-bottom: 22px;
    }

    .hero__media img { object-position: 60% center; }

    .hero__overlay {
        background:
            linear-gradient(180deg, rgba(28,49,39,.69), rgba(42,88,67,.92)),
            linear-gradient(90deg, rgba(20,41,31,.6), transparent);
    }

    .hero__content {
        padding-top: 70px;
        padding-bottom: 0;
    }

    .hero h1 {
        margin-bottom: 18px;
        font-size: clamp(2.75rem, 13vw, 4rem);
    }

    .hero__lead {
        margin-bottom: 25px;
        font-size: .98rem;
    }

    .hero__actions {
        display: grid;
        gap: 10px;
    }

    .hero__actions .button {
        width: 100%;
        min-height: 50px;
    }

    .hero-hours-card {
        position: relative;
        right: auto;
        bottom: auto;
        left: auto;
        grid-template-columns: 1fr;
        width: calc(100% - 28px);
        margin: 34px auto 0;
        padding: 15px;
        gap: 11px;
        border-radius: 17px;
    }

    .hero-hours-card__hours {
        padding: 13px 0 0;
        border-top: 1px solid rgba(255,255,255,.25);
        border-left: 0;
    }

    .hero-hours-card > a { grid-column: auto; }

    .trust-strip__grid {
        grid-template-columns: 1fr 1fr;
    }

    .trust-strip__grid > div {
        padding: 18px 13px;
    }

    .trust-strip strong { font-size: .98rem; }
    .trust-strip span { font-size: .75rem; }

    .split-layout,
    .hours-layout,
    .contact-layout,
    .owner-layout {
        gap: 42px;
    }

    .image-badge {
        right: 12px;
        bottom: -20px;
        min-width: 185px;
        padding: 17px;
    }

    .feature-list { grid-template-columns: 1fr; }

    .service-grid { grid-template-columns: 1fr; }
    .service-card {
        min-height: auto;
        padding: 26px;
    }
    .service-card__icon { margin-bottom: 28px; }

    .daily-care {
        padding-top: 58px;
        padding-bottom: 58px;
    }

    .daily-care__card {
        grid-template-columns: 54px 1fr;
        gap: 18px;
        padding: 23px 19px;
        border-radius: 21px;
    }

    .daily-care__icon {
        width: 54px;
        height: 54px;
        border-radius: 17px;
        font-size: 1.7rem;
    }

    .daily-care__content h2 {
        font-size: clamp(1.55rem, 8vw, 2.15rem);
    }

    .daily-care__actions {
        grid-column: 1 / -1;
        width: 100%;
        min-width: 0;
    }

    .daily-care__actions .button {
        width: 100%;
    }

    .gallery-section {
        padding: 70px 0 78px;
    }

    .gallery-section__heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 24px;
        margin-bottom: 28px;
    }

    .gallery-ui {
        width: 100%;
        justify-content: space-between;
    }

    .gallery-slide {
        flex-basis: 82vw;
        border-radius: 21px;
    }

    .gallery-slide figcaption {
        right: 12px;
        bottom: 12px;
        left: 12px;
        padding: 13px;
        border-radius: 14px;
        font-size: .9rem;
    }

    .slider-button {
        width: 44px;
        height: 44px;
    }

    .statement-banner { min-height: 350px; }
    .statement-banner__content { padding-top: 72px; }
    .statement-banner__content p {
        font-size: clamp(2.2rem, 11vw, 3.45rem);
    }

    .team-card__image img { min-height: 250px; }
    .team-card__content { padding: 34px 24px; }

    .owner-portrait { max-width: 290px; }
    .owner-message .quote-mark {
        height: 60px;
        font-size: 5.5rem;
    }

    .hours-row {
        min-height: 58px;
        padding: 0 16px;
        font-size: .86rem;
    }

    .location-map iframe {
        height: 340px;
        min-height: 340px;
    }

    .location-panel {
        min-height: auto;
        padding: 48px 22px;
    }

    .location-panel__buttons {
        display: grid;
        width: 100%;
    }

    .location-panel__buttons .button {
        width: 100%;
    }

    .contact-methods a {
        grid-template-columns: 46px 1fr;
        padding: 13px;
    }

    .contact-methods__icon {
        width: 46px;
        height: 46px;
    }

    .contact-form-card {
        padding: 24px 18px;
    }

    .form-row { grid-template-columns: 1fr; }

    .site-footer {
        padding-top: 55px;
        padding-bottom: 76px;
    }

    .site-footer__grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .mobile-actions {
        position: fixed;
        z-index: 75;
        right: 10px;
        bottom: max(10px, env(safe-area-inset-bottom));
        left: 10px;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        overflow: hidden;
        border: 1px solid rgba(255,255,255,.3);
        border-radius: 999px;
        background: var(--grey-900);
        box-shadow: 0 16px 36px rgba(23,48,36,.24);
    }

    .mobile-actions a {
        padding: 12px 10px;
        color: var(--white);
        font-size: .83rem;
        font-weight: 800;
        text-align: center;
    }

    .mobile-actions a:first-child {
        background: var(--green-800);
    }

    .back-to-top {
        right: 16px;
        bottom: 72px;
        width: 44px;
        height: 44px;
    }

    .reveal[data-reveal="left"],
    .reveal[data-reveal="right"] {
        transform: translateY(28px);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }

    .reveal,
    .image-reveal {
        opacity: 1;
        transform: none;
        clip-path: none;
    }
}


/* ================================================================
   Version 1.5 layout corrections
   ================================================================ */

/* Keep content photography compact and predictable on every screen. */
.about__image {
    width: min(100%, 470px);
    max-width: 470px;
    aspect-ratio: 4 / 3;
    overflow: visible;
}
.about__image img {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    object-fit: cover;
}

.gallery-slide {
    flex-basis: min(46vw, 560px);
}
.gallery-slide img {
    width: 100%;
    height: 330px;
    aspect-ratio: auto;
    object-fit: cover;
}

.team-card {
    width: min(100%, 1020px);
    margin-inline: auto;
}
.team-card__image {
    height: 360px;
}
.team-card__image img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.owner-layout {
    width: min(100%, 1020px);
    margin-inline: auto;
}
.owner-portrait {
    width: min(100%, 350px);
    max-width: 350px;
}
.owner-portrait img {
    width: 100%;
    height: 440px;
    object-fit: cover;
}

/* Transparent and larger footer logo without a white card. */
.footer-logo {
    display: inline-flex;
    align-items: center;
}
.footer-logo img {
    width: auto;
    max-width: 315px;
    max-height: 98px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    object-fit: contain;
    filter:
        drop-shadow(0 1px 0 rgba(255,255,255,.22))
        drop-shadow(0 4px 14px rgba(0,0,0,.18));
}

/* A reliable full-height mobile navigation layer. */
@media (max-width: 940px) {
    .site-header.is-scrolled {
        backdrop-filter: none;
    }

    .site-nav {
        position: fixed;
        z-index: 999;
        top: 117px;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        height: calc(100dvh - 117px);
        min-height: calc(100vh - 117px);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding: 24px 24px 120px;
        background:
            linear-gradient(180deg, rgba(85,151,122,.995), rgba(63,127,101,.995));
        box-shadow: 0 24px 50px rgba(20,50,36,.22);
    }

    body.menu-open .site-header {
        backdrop-filter: none;
    }

    .site-nav__list,
    .site-nav__hours-link,
    .site-nav__cta {
        position: relative;
        z-index: 2;
    }

    .site-nav__list a,
    .site-nav__hours-link {
        padding: 15px 4px;
    }

    .site-nav__cta {
        display: inline-flex;
        width: 100%;
        margin-top: 24px;
    }

    .about__image {
        width: min(100%, 440px);
        max-width: 440px;
        margin-inline: auto;
    }

    .gallery-slide {
        flex-basis: min(62vw, 470px);
    }

    .gallery-slide img {
        height: 300px;
    }

    .team-card__image {
        height: 310px;
    }

    .team-card__image img {
        min-height: 0;
    }

    .owner-portrait {
        width: min(100%, 330px);
        max-width: 330px;
        margin-inline: auto;
    }

    .owner-portrait img {
        height: 410px;
    }
}

@media (max-width: 650px) {
    .site-nav {
        top: 104px;
        height: calc(100dvh - 104px);
        min-height: calc(100vh - 104px);
        padding: 16px 22px 120px;
    }

    .site-nav__list li,
    .site-nav__hours-link {
        border-bottom-color: rgba(255,255,255,.24);
    }

    .site-nav__list a,
    .site-nav__hours-link {
        padding: 14px 2px;
        font-size: 1.08rem;
    }

    .site-nav__cta {
        min-height: 50px;
        margin-top: 20px;
    }

    /* Welcome image: compact landscape card rather than a tall portrait. */
    .about__image {
        width: min(88vw, 340px);
        max-width: 340px;
        height: 255px;
        aspect-ratio: auto;
        margin-inline: auto;
    }

    .about__image img {
        width: 100%;
        height: 100%;
    }

    .image-badge {
        right: -7px;
        bottom: -18px;
        min-width: 165px;
        max-width: 78%;
        padding: 14px 16px;
        border-radius: 16px;
    }

    .image-badge strong {
        font-size: .94rem;
    }

    .image-badge span {
        font-size: .76rem;
    }

    /* Scrolling gallery: smaller cards that do not fill the phone screen. */
    .gallery-track {
        gap: 14px;
        padding-left: 14px;
    }

    .gallery-slide {
        flex-basis: min(72vw, 300px);
        border-radius: 18px;
    }

    .gallery-slide img {
        height: 225px;
    }

    .gallery-slide figcaption {
        right: 9px;
        bottom: 9px;
        left: 9px;
        padding: 10px 11px;
        font-size: .82rem;
    }

    /* Team section: controlled landscape image height. */
    .team-card {
        width: min(100%, 380px);
    }

    .team-card__image {
        height: 235px;
    }

    .team-card__image img {
        height: 100%;
        min-height: 0;
    }

    /* Owner portrait: smaller portrait with balanced spacing. */
    .owner-layout {
        gap: 32px;
    }

    .owner-portrait {
        width: min(74vw, 270px);
        max-width: 270px;
    }

    .owner-portrait img {
        height: 330px;
    }

    /* Keep the dynamic daily card comfortable on narrow screens. */
    .daily-care__card {
        grid-template-columns: 46px minmax(0, 1fr);
        gap: 14px;
        padding: 20px 17px;
    }

    .daily-care__icon {
        width: 46px;
        height: 46px;
        border-radius: 14px;
        font-size: 1.45rem;
    }

    .daily-care__content h2 {
        font-size: clamp(1.42rem, 7vw, 1.9rem);
    }

    .daily-care__content > p:not(.eyebrow) {
        font-size: .92rem;
        line-height: 1.55;
    }

    .daily-care__meta {
        gap: 5px 12px;
        font-size: .7rem;
    }

    /* Footer logo is transparent, larger, and centred on phones. */
    .footer-logo {
        justify-content: flex-start;
    }

    .footer-logo img {
        max-width: 285px;
        max-height: 88px;
    }
}

@media (max-width: 390px) {
    .site-brand img,
    .custom-logo {
        max-width: 165px;
        max-height: 46px;
    }

    .about__image {
        width: min(86vw, 310px);
        height: 230px;
    }

    .gallery-slide {
        flex-basis: min(74vw, 275px);
    }

    .gallery-slide img {
        height: 205px;
    }

    .team-card__image {
        height: 215px;
    }

    .owner-portrait {
        width: min(72vw, 245px);
    }

    .owner-portrait img {
        height: 305px;
    }

    .footer-logo img {
        max-width: 255px;
    }
}


/* ================================================================
   Version 1.6 image balance and footer-logo corrections
   ================================================================ */

/* Welcome: keep the picture visually equal to the copy beside it. */
.split-layout {
    grid-template-columns: minmax(0, 420px) minmax(0, 1fr);
    gap: clamp(44px, 7vw, 86px);
}
.about__image {
    width: 100%;
    max-width: 420px;
    height: 300px;
    aspect-ratio: auto;
}
.about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.section-copy h2 {
    max-width: 650px;
}
.section-copy > p:not(.eyebrow) {
    max-width: 620px;
}

/* Gallery: compact landscape slides rather than near full-screen images. */
.gallery-slide {
    flex-basis: min(43vw, 520px);
}
.gallery-slide img {
    height: 292px;
}

/* Meet Our Team: image and text now occupy balanced, controlled areas. */
.team-card {
    grid-template-columns: minmax(0, 400px) minmax(0, 1fr);
    width: min(100%, 980px);
    max-width: 980px;
    min-height: 0;
    align-items: stretch;
}
.team-card__image {
    width: 100%;
    height: 320px;
    align-self: center;
}
.team-card__image img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center 38%;
}
.team-card__content {
    min-height: 320px;
    padding: 36px 46px;
}
.team-card__content h2 {
    max-width: 500px;
    margin-bottom: 17px;
    font-size: clamp(2rem, 3.5vw, 3.25rem);
}
.team-card__content p:not(.eyebrow) {
    max-width: 520px;
    margin-bottom: 24px;
    font-size: .98rem;
}

/* Owner: slightly smaller portrait and typography for equal visual weight. */
.owner-layout {
    grid-template-columns: minmax(0, 315px) minmax(0, 1fr);
    width: min(100%, 980px);
    max-width: 980px;
    gap: clamp(44px, 7vw, 78px);
}
.owner-portrait {
    width: 100%;
    max-width: 315px;
}
.owner-portrait img {
    height: 390px;
}
.owner-message > p:not(.eyebrow) {
    font-size: clamp(1.48rem, 2.5vw, 2.25rem);
}

/* Footer logo: same visual size as the header logo, restored white rounded panel. */
.footer-logo {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    justify-content: center;
    padding: 8px 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 16px;
    background: var(--white);
    box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.footer-logo img {
    width: auto;
    max-width: 270px;
    max-height: 70px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    filter: none;
}

/* Tablet balance. */
@media (max-width: 940px) {
    .split-layout {
        grid-template-columns: minmax(0, 390px) minmax(0, 1fr);
        gap: 40px;
    }

    .about__image {
        max-width: 390px;
        height: 280px;
    }

    .gallery-slide {
        flex-basis: min(56vw, 440px);
    }

    .gallery-slide img {
        height: 255px;
    }

    .team-card {
        grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
        width: min(100%, 860px);
    }

    .team-card__image {
        height: 285px;
    }

    .team-card__content {
        min-height: 285px;
        padding: 30px 34px;
    }

    .team-card__content h2 {
        font-size: clamp(1.85rem, 4vw, 2.65rem);
    }

    .owner-layout {
        grid-template-columns: minmax(0, 285px) minmax(0, 1fr);
        width: min(100%, 860px);
        gap: 42px;
    }

    .owner-portrait {
        max-width: 285px;
    }

    .owner-portrait img {
        height: 355px;
    }
}

/* Phones: compact stacked cards with short, landscape team image. */
@media (max-width: 700px) {
    .split-layout {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .about__image {
        width: min(86vw, 330px);
        max-width: 330px;
        height: 225px;
        margin-inline: auto;
    }

    .gallery-slide {
        flex-basis: min(70vw, 285px);
    }

    .gallery-slide img {
        height: 190px;
    }

    .team-card {
        grid-template-columns: 1fr;
        width: min(100%, 360px);
        max-width: 360px;
    }

    .team-card__image {
        height: 205px;
    }

    .team-card__image img {
        object-position: center 34%;
    }

    .team-card__content {
        min-height: 0;
        padding: 27px 23px 30px;
    }

    .team-card__content h2 {
        margin-bottom: 14px;
        font-size: clamp(1.75rem, 8vw, 2.35rem);
    }

    .team-card__content p:not(.eyebrow) {
        margin-bottom: 21px;
        font-size: .92rem;
    }

    .owner-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .owner-portrait {
        width: min(68vw, 245px);
        max-width: 245px;
        margin-inline: auto;
    }

    .owner-portrait img {
        height: 300px;
    }

    .owner-message > p:not(.eyebrow) {
        font-size: clamp(1.35rem, 6vw, 1.85rem);
    }

    .footer-logo {
        padding: 7px 12px;
        border-radius: 15px;
    }

    .footer-logo img {
        max-width: 185px;
        max-height: 50px;
    }
}

@media (max-width: 390px) {
    .about__image {
        width: min(84vw, 300px);
        height: 205px;
    }

    .gallery-slide {
        flex-basis: min(72vw, 260px);
    }

    .gallery-slide img {
        height: 174px;
    }

    .team-card {
        width: min(100%, 330px);
    }

    .team-card__image {
        height: 185px;
    }

    .team-card__content {
        padding: 24px 20px 27px;
    }

    .owner-portrait {
        width: min(66vw, 225px);
    }

    .owner-portrait img {
        height: 275px;
    }

    .footer-logo img {
        max-width: 165px;
        max-height: 46px;
    }
}


/* ================================================================
   Version 1.7 full-width team section and welcome-image adjustment
   ================================================================ */

/* Welcome image: slightly larger, while remaining balanced with the copy. */
.split-layout {
    grid-template-columns: minmax(0, 500px) minmax(0, 1fr);
    gap: clamp(48px, 7vw, 92px);
}
.about__image {
    width: 100%;
    max-width: 500px;
    height: 360px;
}
.about__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Meet Our Team: full-width visual section, not a small centred card. */
.team-section {
    overflow: hidden;
    padding: 0;
    background: var(--grey-100);
}
.team-section .team-card {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    width: 100%;
    max-width: none;
    min-height: 590px;
    margin: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: var(--grey-100);
}
.team-card__image {
    width: 100%;
    height: 590px;
    align-self: stretch;
}
.team-card__image img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center 38%;
}
.team-card__content {
    min-height: 590px;
    padding: clamp(58px, 7vw, 105px);
}
.team-card__content h2 {
    max-width: 640px;
    margin-bottom: 22px;
    font-size: clamp(2.7rem, 4.8vw, 5rem);
}
.team-card__content p:not(.eyebrow) {
    max-width: 610px;
    margin-bottom: 30px;
    font-size: 1.08rem;
}

/* Tablet: retain a wide section with balanced columns. */
@media (max-width: 940px) {
    .split-layout {
        grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
        gap: 42px;
    }

    .about__image {
        max-width: 440px;
        height: 320px;
    }

    .team-section .team-card {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        min-height: 470px;
    }

    .team-card__image {
        height: 470px;
    }

    .team-card__content {
        min-height: 470px;
        padding: 46px 40px;
    }

    .team-card__content h2 {
        font-size: clamp(2.25rem, 5vw, 3.6rem);
    }
}

/* Phones: full-width stacked section, without becoming excessively tall. */
@media (max-width: 700px) {
    .split-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .about__image {
        width: min(90vw, 360px);
        max-width: 360px;
        height: 260px;
        margin-inline: auto;
    }

    .team-section {
        padding: 0;
    }

    .team-section .team-card {
        grid-template-columns: 1fr;
        width: 100%;
        max-width: none;
        min-height: 0;
        border-radius: 0;
    }

    .team-card__image {
        height: 300px;
    }

    .team-card__image img {
        object-position: center 35%;
    }

    .team-card__content {
        min-height: 0;
        padding: 42px 24px 52px;
    }

    .team-card__content h2 {
        max-width: 100%;
        margin-bottom: 17px;
        font-size: clamp(2.15rem, 10vw, 3.25rem);
    }

    .team-card__content p:not(.eyebrow) {
        max-width: 100%;
        margin-bottom: 25px;
        font-size: .98rem;
    }
}

@media (max-width: 390px) {
    .about__image {
        width: min(88vw, 325px);
        height: 235px;
    }

    .team-card__image {
        height: 270px;
    }

    .team-card__content {
        padding: 36px 20px 45px;
    }

    .team-card__content h2 {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }
}


/* ================================================================
   Version 1.8 Google Map height correction
   ================================================================ */
.location-section {
    align-items: stretch;
}
.location-map {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 560px;
    overflow: hidden;
    background: var(--grey-200);
}
.location-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 560px;
    flex: 1 1 auto;
    border: 0;
}

/* On stacked tablet/mobile layouts the map returns to a fixed,
   compact height with no extra space beneath it. */
@media (max-width: 1120px) {
    .location-map {
        height: 440px;
        min-height: 440px;
    }

    .location-map iframe {
        height: 440px;
        min-height: 440px;
    }
}

@media (max-width: 650px) {
    .location-map {
        height: 340px;
        min-height: 340px;
    }

    .location-map iframe {
        height: 340px;
        min-height: 340px;
    }
}


/* ================================================================
   Version 1.9 mobile alignment corrections
   ================================================================ */

:root {
    --mobile-menu-top: 104px;
}

@media (max-width: 940px) {
    .site-nav {
        top: var(--mobile-menu-top);
        height: calc(100dvh - var(--mobile-menu-top));
        min-height: calc(100vh - var(--mobile-menu-top));
    }
}

@media (max-width: 700px) {
    /* Remove the visual join between the team photograph and copy. */
    .team-section .team-card {
        gap: 12px;
        background: var(--white);
    }

    .team-card__image {
        background: var(--grey-100);
    }

    .team-card__content {
        background: var(--grey-100);
    }

    /* Centre every part of the owner's message consistently. */
    .owner-layout {
        justify-items: center;
    }

    .owner-message {
        width: min(100%, 560px);
        padding: 0 8px;
        text-align: center;
    }

    .owner-message .eyebrow {
        text-align: center;
    }

    .owner-message .quote-mark {
        display: block;
        width: 100%;
        height: 54px;
        margin: 0 auto 5px;
        text-align: center;
        line-height: .8;
    }

    .owner-message > p:not(.eyebrow) {
        max-width: 100%;
        margin-right: auto;
        margin-left: auto;
        text-align: center;
    }

    .owner-message footer {
        align-items: center;
        margin-top: 24px;
        text-align: center;
    }

    .owner-message footer strong,
    .owner-message footer span {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 390px) {
    .team-section .team-card {
        gap: 10px;
    }

    .owner-message {
        padding-inline: 4px;
    }
}


/* ================================================================
   Version 2.0 navigation alignment and dark theme
   ================================================================ */

html {
    color-scheme: light;
}
html[data-theme="dark"] {
    color-scheme: dark;
}

.theme-toggle {
    display: inline-flex;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: var(--white);
    cursor: pointer;
    transition:
        background .22s ease,
        color .22s ease,
        transform .22s ease,
        border-color .22s ease;
}
.theme-toggle:hover,
.theme-toggle:focus-visible {
    background: var(--white);
    color: var(--green-900);
    transform: translateY(-2px);
}
.theme-toggle__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.18rem;
    line-height: 1;
}
.theme-toggle__text {
    display: none;
}

/* Mobile active link: one clean line aligned with the menu divider. */
@media (max-width: 940px) {
    .site-nav__list a::after {
        display: none;
    }

    .site-nav__list li {
        position: relative;
        border-bottom: 1px solid rgba(255,255,255,.24);
    }

    .site-nav__list li.is-active {
        border-bottom-color: transparent;
        box-shadow: inset 0 -3px 0 var(--white);
    }

    .site-nav__list li.is-active a {
        text-shadow: none;
    }

    .site-nav__hours-link::after {
        display: none;
    }

    .site-nav__hours-link.is-active {
        box-shadow: inset 0 -3px 0 var(--white);
    }

    .theme-toggle {
        width: 100%;
        height: 50px;
        margin-top: 12px;
        border-radius: 999px;
        background: rgba(255,255,255,.12);
    }

    .theme-toggle__text {
        display: inline;
        margin-left: 9px;
        font-weight: 800;
    }
}

/* Smooth colour changes without affecting scrolling or image animation. */
body,
.topbar,
.section,
.section--soft,
.trust-strip,
.service-card,
.daily-care,
.daily-care__card,
.gallery-section,
.team-section,
.team-card,
.team-card__content,
.owner-section,
.hours-card,
.contact-methods a,
.contact-form-card,
.contact-form input,
.contact-form textarea,
.site-footer {
    transition:
        background-color .28s ease,
        border-color .28s ease,
        color .28s ease,
        box-shadow .28s ease;
}

/* Dark-mode foundation. */
html[data-theme="dark"] body {
    background: #0f1612;
    color: #edf4ef;
}
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] .trust-strip strong,
html[data-theme="dark"] .feature-list span,
html[data-theme="dark"] .owner-message > p:not(.eyebrow),
html[data-theme="dark"] .owner-message footer strong,
html[data-theme="dark"] .hours-row strong,
html[data-theme="dark"] .contact-methods strong,
html[data-theme="dark"] .contact-form label > span,
html[data-theme="dark"] .daily-care__content h2 {
    color: #f3f8f5;
}
html[data-theme="dark"] p,
html[data-theme="dark"] .trust-strip span,
html[data-theme="dark"] .owner-message footer span,
html[data-theme="dark"] .hours-row span,
html[data-theme="dark"] .contact-methods small,
html[data-theme="dark"] .daily-care__content > p:not(.eyebrow),
html[data-theme="dark"] .daily-care__meta {
    color: #acbab2;
}
html[data-theme="dark"] .eyebrow {
    color: #93d0b4;
}
html[data-theme="dark"] .text-link,
html[data-theme="dark"] .service-card a {
    color: #8fd0b2;
}

/* Dark page sections and cards. */
html[data-theme="dark"] .topbar {
    background: #121c17;
    color: #dce7e0;
}
html[data-theme="dark"] .section,
html[data-theme="dark"] .owner-section,
html[data-theme="dark"] .daily-care,
html[data-theme="dark"] .contact-section {
    background: #0f1612;
}
html[data-theme="dark"] .section--soft,
html[data-theme="dark"] .gallery-section,
html[data-theme="dark"] .team-section,
html[data-theme="dark"] .team-card,
html[data-theme="dark"] .team-card__content {
    background: #151f1a;
}
html[data-theme="dark"] .trust-strip {
    border-color: #2a3931;
    background: #121c17;
}
html[data-theme="dark"] .trust-strip__grid > div {
    border-color: #2a3931;
}
html[data-theme="dark"] .service-card,
html[data-theme="dark"] .hours-card,
html[data-theme="dark"] .contact-methods a {
    border-color: #2b3b32;
    background: #17221c;
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
html[data-theme="dark"] .service-card::after {
    background: rgba(105,170,140,.12);
}
html[data-theme="dark"] .service-card__icon,
html[data-theme="dark"] .contact-methods__icon {
    background: #22342a;
    color: #9bd7bb;
}
html[data-theme="dark"] .daily-care__card {
    border-color: #2c3e34;
    background:
        radial-gradient(circle at top right, rgba(105,170,140,.16), transparent 34%),
        linear-gradient(135deg, #17221c, #121a16);
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
html[data-theme="dark"] .button--soft {
    border-color: #30473a;
    background: #22352b;
    color: #dff1e7;
}
html[data-theme="dark"] .button--soft:hover,
html[data-theme="dark"] .button--soft:focus-visible {
    background: var(--green-700);
    color: var(--white);
}
html[data-theme="dark"] .gallery-section h2 {
    color: #f3f8f5;
}
html[data-theme="dark"] .gallery-counter {
    color: #aebcb4;
}
html[data-theme="dark"] .gallery-dots button {
    background: #3a4941;
}
html[data-theme="dark"] .gallery-dots button.is-active {
    background: #82bea3;
}
html[data-theme="dark"] .team-section .team-card {
    background: #151f1a;
}
html[data-theme="dark"] .team-card__content {
    background: #151f1a;
}
html[data-theme="dark"] .image-badge {
    background: #1c2a23;
}
html[data-theme="dark"] .owner-message .quote-mark {
    color: rgba(130,190,163,.25);
}
html[data-theme="dark"] .hours-row {
    border-color: #2d3c34;
}
html[data-theme="dark"] .hours-row.is-today {
    background: var(--green-800);
}
html[data-theme="dark"] .contact-form-card {
    border-color: #2b3b32;
    background: #151f1a;
    box-shadow: 0 18px 48px rgba(0,0,0,.18);
}
html[data-theme="dark"] .contact-form input,
html[data-theme="dark"] .contact-form textarea {
    border-color: #34463b;
    background: #101814;
    color: #edf4ef;
}
html[data-theme="dark"] .contact-form input::placeholder,
html[data-theme="dark"] .contact-form textarea::placeholder {
    color: #7f9086;
}
html[data-theme="dark"] .consent span {
    color: #a9b7af !important;
}
html[data-theme="dark"] .form-message--success {
    background: #173525;
    color: #c7efd9;
}
html[data-theme="dark"] .form-message--error {
    background: #3a2022;
    color: #ffd0d3;
}
html[data-theme="dark"] .location-map {
    background: #15201a;
}
html[data-theme="dark"] .site-footer {
    background: #0b110e;
}
html[data-theme="dark"] .footer-logo {
    border-color: rgba(255,255,255,.16);
}
html[data-theme="dark"] .back-to-top {
    box-shadow: 0 12px 28px rgba(0,0,0,.28);
}

/* Keep the mobile navigation rich and readable in dark mode. */
@media (max-width: 940px) {
    html[data-theme="dark"] .site-nav {
        background:
            linear-gradient(180deg, rgba(38,83,64,.995), rgba(24,54,41,.995));
    }

    html[data-theme="dark"] .theme-toggle {
        border-color: rgba(255,255,255,.34);
        background: rgba(0,0,0,.12);
    }

    html[data-theme="dark"] .theme-toggle:hover,
    html[data-theme="dark"] .theme-toggle:focus-visible {
        background: rgba(255,255,255,.16);
        color: var(--white);
    }
}


/* ================================================================
   Version 2.2 simplified automatic Light/Dark theme control
   ================================================================ */

.theme-toggle {
    width: auto;
    height: auto;
    min-height: 36px;
    flex: 0 0 auto;
    gap: 6px;
    padding: 5px 2px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: rgba(255,255,255,.9);
    cursor: pointer;
    transform: none;
}
.theme-toggle:hover,
.theme-toggle:focus-visible {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: var(--white);
    transform: none;
}
.theme-toggle:focus-visible {
    outline: 2px solid rgba(255,255,255,.72);
    outline-offset: 5px;
}
.theme-toggle__icon {
    display: inline-flex;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.38);
    border-radius: 50%;
    background: transparent;
    font-size: .92rem;
    transition:
        border-color .22s ease,
        background-color .22s ease,
        transform .28s ease;
}
.theme-toggle:hover .theme-toggle__icon,
.theme-toggle:focus-visible .theme-toggle__icon {
    border-color: rgba(255,255,255,.82);
    background: rgba(255,255,255,.08);
}
.theme-toggle__text {
    display: none;
}

/* A soft fade prevents a harsh flash when the theme changes. */
body {
    opacity: 1;
    transition:
        opacity .18s ease,
        background-color .28s ease,
        color .28s ease;
}
html.theme-switching body {
    opacity: .84;
}
html.theme-switching .theme-toggle__icon {
    transform: rotate(28deg) scale(.94);
}

/* Dashed icon means the current appearance is following the device. */
html[data-theme-source="system"] .theme-toggle__icon {
    border-style: dashed;
}

@media (max-width: 940px) {
    .theme-toggle {
        display: flex;
        width: 100%;
        min-height: 52px;
        justify-content: flex-start;
        gap: 12px;
        margin-top: 8px;
        padding: 13px 2px;
        border-top: 1px solid rgba(255,255,255,.24);
        border-bottom: 1px solid rgba(255,255,255,.24);
        border-radius: 0;
        background: transparent;
    }
    .theme-toggle:hover,
    .theme-toggle:focus-visible {
        background: rgba(255,255,255,.05);
        color: var(--white);
    }
    .theme-toggle__icon {
        width: 30px;
        height: 30px;
        flex: 0 0 30px;
    }
    .theme-toggle__text {
        display: inline;
        margin-left: 0;
        color: inherit;
        font-size: 1rem;
        font-weight: 800;
    }
    html[data-theme="dark"] .theme-toggle {
        border-color: rgba(255,255,255,.22);
        background: transparent;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.theme-switching body {
        opacity: 1;
    }
    html.theme-switching .theme-toggle__icon {
        transform: none;
    }
}


/* ================================================================
   Version 2.3 card animations and contact icon corrections
   ================================================================ */

.ui-icon {
    display: block;
    width: 1em;
    height: 1em;
    flex: 0 0 auto;
    overflow: visible;
    color: inherit;
    fill: none;
    stroke: currentColor;
    vector-effect: non-scaling-stroke;
}

/* Larger, consistent top contact icons. */
.topbar__details a,
.topbar__address {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.topbar__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #bfe8d3;
    font-size: 1.08rem;
}
.topbar__icon .ui-icon {
    width: 18px;
    height: 18px;
}

/* Larger contact-card icons. */
.contact-methods__icon {
    width: 60px;
    height: 60px;
    flex: 0 0 60px;
    border-radius: 18px;
}
.contact-methods__icon .ui-icon--contact {
    width: 29px;
    height: 29px;
    stroke-width: 2.1;
}

/* Proper location/phone/mail rows in the map panel. */
.location-panel__contact-line {
    display: flex !important;
    max-width: 410px !important;
    align-items: flex-start;
    gap: 11px;
}
.location-panel__contact-line .ui-icon--location-panel {
    width: 21px;
    height: 21px;
    margin-top: 3px;
    color: rgba(255,255,255,.88);
}
.location-panel__contact-line span {
    min-width: 0;
}

/* Footer contact icons. */
.footer-contact a {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.footer-contact .ui-icon--footer {
    width: 19px;
    height: 19px;
    margin-top: 3px;
    color: #9bd7bb;
}

/* Mobile call and directions icons. */
.mobile-actions a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.mobile-actions .ui-icon--mobile-action {
    width: 18px;
    height: 18px;
}

/*
 * Dark-mode colour transitions previously replaced the transform/opacity
 * transition on cards. This final combined transition restores slide-in
 * animations while retaining smooth colour-theme changes.
 */
.reveal,
.image-reveal {
    --reveal-delay: 0s;
    opacity: 0;
    transition:
        opacity .52s ease var(--reveal-delay),
        transform .58s cubic-bezier(.18,.72,.22,1) var(--reveal-delay),
        clip-path .58s cubic-bezier(.18,.72,.22,1) var(--reveal-delay),
        background-color .28s ease,
        border-color .28s ease,
        color .28s ease,
        box-shadow .28s ease;
    will-change: opacity, transform;
}

.reveal-group > .reveal:nth-child(2) { --reveal-delay: .07s; }
.reveal-group > .reveal:nth-child(3) { --reveal-delay: .14s; }
.reveal-group > .reveal:nth-child(4) { --reveal-delay: .21s; }
.reveal-group > .reveal:nth-child(5) { --reveal-delay: .28s; }
.reveal-group > .reveal:nth-child(6) { --reveal-delay: .35s; }

.reveal:not(.is-visible),
.image-reveal:not(.is-visible) {
    transition-delay: 0s;
}

.reveal[data-reveal="up"] {
    transform: translate3d(0, 44px, 0) scale(.985);
}
.reveal[data-reveal="left"] {
    transform: translate3d(-54px, 0, 0);
}
.reveal[data-reveal="right"] {
    transform: translate3d(54px, 0, 0);
}
.reveal[data-reveal="zoom"],
.image-reveal[data-reveal="zoom"] {
    transform: scale(1.045);
}
.image-reveal {
    clip-path: inset(4% 4% 4% 4% round 24px);
}

.reveal.is-visible,
.image-reveal.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    clip-path: inset(0 0 0 0 round 0);
}

.service-card.reveal.is-visible:hover {
    transform: translate3d(0, -6px, 0);
}

/* Make the Daily Care card's entrance slightly more noticeable. */
.daily-care__card.reveal[data-reveal="up"] {
    transform: translate3d(0, 48px, 0) scale(.985);
}
.daily-care__card.reveal.is-visible {
    transform: translate3d(0, 0, 0) scale(1);
}

@media (max-width: 650px) {
    .topbar__icon .ui-icon {
        width: 17px;
        height: 17px;
    }

    .contact-methods__icon {
        width: 50px;
        height: 50px;
        flex-basis: 50px;
    }

    .contact-methods__icon .ui-icon--contact {
        width: 25px;
        height: 25px;
    }

    .reveal[data-reveal="left"],
    .reveal[data-reveal="right"] {
        transform: translate3d(0, 34px, 0);
    }

    .reveal.is-visible,
    .image-reveal.is-visible {
        transform: translate3d(0, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .reveal,
    .image-reveal,
    .daily-care__card.reveal {
        opacity: 1;
        transform: none;
        clip-path: none;
        transition: none;
    }
}
