/*
Theme Name: Toothtabs Flatsome Child
Description: Toothtabs.co.uk visual system on the frozen SSG Flatsome v1.4.1 structural baseline
Author: SaveSomeGreen
Template: flatsome
Version: 1.6.12
Text Domain: toothtabs
*/

/* =========================================================
   FROZEN SSG FLATSOME EQUAL-CARD STRUCTURE — v1.4.1

   Structural rules only. Page/site CSS owns visual design.
   Do not alter this block without proving a structural defect.
   ========================================================= */

:root {
    --ssg-card-gap-x: 14px;
    --ssg-card-gap-y: 14px;
    --ssg-card-title-lines: 2.65em;
}

/* =========================================================
   TOOTHTABS HEADER + PRIMARY MENU

   Flatsome owns the header structure. The child theme owns
   a restrained visual treatment and responsive touch targets.
   ========================================================= */

.header-main,
.stuck .header-main {
    background: rgba(255, 255, 255, .98);
}

.header-wrapper {
    border-bottom: 1px solid rgba(13, 75, 58, .10);
    box-shadow: none;
}

.header-nav.header-nav-main.nav {
    align-items: center;
    flex-wrap: nowrap;
    gap: clamp(1px, .2vw, 4px);
}

.header-nav.header-nav-main.nav > li {
    flex: 0 0 auto;
    margin: 0;
}

.header-nav.header-nav-main.nav > li > a {
    min-height: 32px;
    padding: 6px 6px;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: var(--tt-forest);
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0;
    line-height: 1.15;
    white-space: nowrap;
    text-transform: none;
    text-decoration: none;
    transition: color .14s ease;
}

.header-nav.header-nav-main.nav > li > a:hover,
.header-nav.header-nav-main.nav > li.current-menu-item > a,
.header-nav.header-nav-main.nav > li.current_page_item > a,
.header-nav.header-nav-main.nav > li.current-menu-ancestor > a {
    background: transparent !important;
    color: var(--tt-green);
    text-decoration: none;
}

.header-nav .header-button .button,
.header-nav .header-button a,
.header-nav .tt-menu-buy > a {
    min-height: 32px;
    padding: 7px 12px !important;
    border-color: var(--tt-forest) !important;
    border-radius: 4px !important;
    background: var(--tt-forest) !important;
    color: var(--tt-white) !important;
    box-shadow: none;
    font-size: 11px;
    line-height: 1;
}

.header-nav .header-button a::after,
.header-nav .tt-menu-buy > a::after {
    display: none;
}

.header-nav .header-button .button:hover,
.header-nav .header-button a:hover,
.header-nav .tt-menu-buy > a:hover {
    border-color: var(--tt-green) !important;
    background: var(--tt-green) !important;
}

@media (min-width: 850px) and (max-width: 1240px) {
    .header-nav.header-nav-main.nav { gap: 0; }
    .header-nav.header-nav-main.nav > li > a {
        min-height: 30px;
        padding: 5px 4px;
        font-size: 10.5px;
    }
}

.mobile-sidebar .nav-vertical > li > a {
    margin: 0 12px;
    padding: 12px 8px;
    border: 0;
    border-radius: 0;
    background: transparent !important;
    color: var(--tt-forest);
    font-weight: 700;
}

.mobile-sidebar .nav-vertical > li.current-menu-item > a,
.mobile-sidebar .nav-vertical > li > a:hover {
    background: transparent !important;
    color: var(--tt-green);
}

.row.ssg-equal-row {
    align-items: stretch;
    row-gap: var(--ssg-card-gap-y);
}

.ssg-equal-row > .col {
    display: flex;
    padding-left: calc(var(--ssg-card-gap-x) / 2);
    padding-right: calc(var(--ssg-card-gap-x) / 2);
    padding-bottom: 0;
}

.ssg-equal-row > .col > .col-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.ssg-equal-card {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    box-sizing: border-box;
}

.ssg-card-title {
    min-height: var(--ssg-card-title-lines);
}

.ssg-card-body {
    flex: 1 1 auto;
}

.ssg-card-action {
    margin-top: auto;
}

.ssg-card-title--single {
    min-height: 1.35em;
}

@media (max-width: 849px) {
    .ssg-card-title,
    .ssg-card-title--single {
        min-height: 0;
    }
}

/* =========================================================
   TOOTHTABS GLOBAL VISUAL SYSTEM

   One owner for shared brand tokens, typography, buttons,
   image frames, genuine comparison cards and accessibility.
   Page-specific composition stays inside each page block.
   ========================================================= */

:root {
    --tt-forest: #0d4b3a;
    --tt-green: #2e7d5a;
    --tt-mint: #a8c79d;
    --tt-sage: #e7f0e7;
    --tt-cream: #f7f4eb;
    --tt-sand: #eee5d3;
    --tt-charcoal: #1f2937;
    --tt-white: #ffffff;
    --tt-line: rgba(13, 75, 58, .16);
    --tt-shadow: 0 12px 30px rgba(13, 75, 58, .10);
    --tt-radius: 14px;
}

.tt-page {
    color: var(--tt-charcoal);
    font-size: 16px;
    line-height: 1.62;
    overflow: hidden;
}

.tt-page h1,
.tt-page h2 {
    color: var(--tt-forest);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    letter-spacing: -.025em;
}

.tt-page h1 {
    margin: 0 0 20px;
    font-size: clamp(40px, 5vw, 64px);
    line-height: 1;
}

.tt-page h2 {
    margin: 0 0 16px;
    font-size: clamp(30px, 3.5vw, 44px);
    line-height: 1.1;
}

.tt-page h3 {
    color: var(--tt-forest);
    font-size: 21px;
    line-height: 1.24;
}

.tt-page p:last-child { margin-bottom: 0; }

.tt-kicker {
    margin: 0 0 12px;
    color: var(--tt-green);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.tt-lead {
    color: #30483f;
    font-size: clamp(18px, 1.8vw, 21px);
    line-height: 1.55;
}

.tt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

.tt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border: 2px solid var(--tt-forest);
    border-radius: 6px;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
}

.tt-btn:hover { box-shadow: none; }

.tt-btn--primary {
    background: var(--tt-forest);
    color: var(--tt-white) !important;
}

.tt-btn--primary:hover {
    background: var(--tt-green);
    border-color: var(--tt-green);
}

.tt-btn--secondary {
    background: transparent;
    color: var(--tt-forest) !important;
}

.tt-btn--secondary:hover { background: var(--tt-white); }

.tt-photo {
    display: block;
    overflow: hidden;
    margin: 0;
    border-radius: var(--tt-radius);
    background: var(--tt-cream);
    box-shadow: var(--tt-shadow);
}

.tt-photo img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: cover;
}

.tt-photo--hero img { min-height: 460px; }
.tt-photo--editorial img { min-height: 360px; }
.tt-photo--wide img { aspect-ratio: 16 / 7; min-height: 300px; }

.tt-card {
    padding: 26px;
    border: 1px solid var(--tt-line);
    border-radius: 14px;
    background: var(--tt-white);
}

.tt-card--sage { background: var(--tt-sage); }
.tt-card--cream { background: var(--tt-cream); }
.tt-card--forest {
    border-color: var(--tt-forest);
    background: var(--tt-forest);
    color: var(--tt-white);
}
.tt-card--forest h2,
.tt-card--forest h3,
.tt-card--forest a { color: var(--tt-white) !important; }

.tt-stat {
    display: block;
    margin: 0 0 12px;
    color: var(--tt-forest);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(44px, 6vw, 78px);
    font-weight: 700;
    letter-spacing: -.04em;
    line-height: 1;
}

.tt-stat small {
    font-family: inherit;
    font-size: .34em;
    letter-spacing: 0;
}

.tt-route-link {
    color: var(--tt-forest);
    font-weight: 800;
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.tt-band-dark {
    padding: clamp(28px, 4vw, 52px);
    border-radius: 16px;
    background: linear-gradient(125deg, var(--tt-forest), #163f34);
    color: var(--tt-white);
    box-shadow: var(--tt-shadow);
}

.tt-band-dark h2,
.tt-band-dark h3,
.tt-band-dark p { color: var(--tt-white); }
.tt-band-dark .tt-kicker { color: #cfe2c9; }
.tt-band-dark .tt-btn--secondary {
    border-color: var(--tt-white);
    color: var(--tt-white) !important;
}
.tt-band-dark .tt-btn--secondary:hover {
    color: var(--tt-forest) !important;
}

.tt-list-check {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.tt-list-check li {
    position: relative;
    margin: 0 0 12px;
    padding-left: 28px;
}

.tt-list-check li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--tt-green);
    font-weight: 900;
}

.tt-faq { display: grid; gap: 12px; }
.tt-faq details {
    overflow: hidden;
    border: 1px solid var(--tt-line);
    border-radius: 16px;
    background: var(--tt-white);
}
.tt-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--tt-forest);
    cursor: pointer;
    font-size: 19px;
    font-weight: 800;
    list-style: none;
}
.tt-faq summary::-webkit-details-marker { display: none; }
.tt-faq summary::after {
    content: "+";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
}
.tt-faq details[open] summary::after { content: "–"; }
.tt-faq details p { padding: 0 20px 18px; }

.tt-page a:focus-visible,
.tt-page summary:focus-visible {
    outline: 3px solid #d6a74b;
    outline-offset: 4px;
}

@media (max-width: 849px) {
    .tt-photo--hero img,
    .tt-photo--editorial img { min-height: 310px; }
    .tt-photo--wide img { min-height: 240px; aspect-ratio: 4 / 3; }
    .tt-actions { align-items: stretch; flex-direction: column; }
    .tt-btn { width: 100%; }
    .tt-card { padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .tt-page *, .tt-page *::before, .tt-page *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}


/* =========================================================
   FLATSOME ABSOLUTE FOOTER ALIGNMENT — v1.6.9

   Flatsome owns footer content and links through Customizer.
   The child theme owns only the small structural correction
   that keeps Primary and Secondary text vertically aligned.
   ========================================================= */

@media (min-width: 850px) {
    .absolute-footer .container {
        display: flex;
        align-items: center;
        gap: 24px;
    }

    .absolute-footer .footer-primary,
    .absolute-footer .footer-secondary {
        float: none !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: 1.4;
    }

    .absolute-footer .footer-primary {
        order: 1;
    }

    .absolute-footer .footer-secondary {
        order: 2;
        margin-left: auto !important;
    }

    .absolute-footer .copyright-footer {
        margin: 0;
        line-height: inherit;
    }
}

@media (max-width: 849px) {
    .absolute-footer .footer-primary,
    .absolute-footer .footer-secondary {
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        text-align: center !important;
    }
}


/* =========================================================
   TOOTHTABS LEGAL PAGES — v1.6.9

   WordPress body classes provide the stable legal-page owner
   for Privacy/Cookie by slug. This avoids relying on Flatsome
   inner page markup or page-level width patches.
   ========================================================= */

.tt-legal-page .tt-legal-hero {
    margin: 0;
    padding: 68px 24px 58px;
    border-bottom: 1px solid rgba(13, 75, 58, .10);
    background: var(--tt-cream, #f7f4eb);
}

.tt-legal-page .tt-legal-hero__inner {
    width: min(820px, 100%);
    margin: 0 auto;
}

.tt-legal-page .tt-legal-hero h1 {
    max-width: 760px;
    margin-bottom: 18px;
    font-size: clamp(46px, 6vw, 70px);
    line-height: .98;
}

.tt-legal-page .tt-legal-hero .tt-lead {
    max-width: 760px;
    margin-bottom: 0;
    font-size: 19px;
    line-height: 1.58;
}

.tt-legal-page .tt-legal-meta {
    margin: 18px 0 0;
    color: #65756f;
    font-size: 14px;
}

.tt-legal-page .tt-legal-body {
    width: min(820px, calc(100% - 48px));
    margin: 0 auto;
    padding: 64px 0 86px;
}

.tt-legal-page .tt-legal-body h2 {
    margin: 46px 0 14px;
    font-size: clamp(29px, 3.2vw, 39px);
    line-height: 1.1;
}

.tt-legal-page .tt-legal-body h2:first-child {
    margin-top: 0;
}

.tt-legal-page .tt-legal-body h3 {
    margin: 30px 0 10px;
}

.tt-legal-page .tt-legal-body p,
.tt-legal-page .tt-legal-body li {
    color: #41564e;
    font-size: 17px;
    line-height: 1.72;
}

.tt-legal-page .tt-legal-body p {
    margin-bottom: 18px;
}

.tt-legal-page .tt-legal-body ul {
    margin: 0 0 26px;
    padding-left: 24px;
}

.tt-legal-page .tt-legal-body li + li {
    margin-top: 9px;
}

.tt-legal-page .tt-legal-note {
    margin: 30px 0;
    padding: 22px 24px;
    border-left: 4px solid var(--tt-mint, #2e7d5a);
    border-radius: 0 10px 10px 0;
    background: var(--tt-sage, #e7f0e7);
}

@media (max-width: 849px) {
    .tt-legal-page .tt-legal-hero {
        padding: 48px 20px 42px;
    }

    .tt-legal-page .tt-legal-body {
        width: min(100% - 40px, 820px);
        padding: 46px 0 64px;
    }

    .tt-legal-page .tt-legal-body p,
    .tt-legal-page .tt-legal-body li {
        font-size: 16px;
    }
}


/* =========================================================
   TOOTHTABS SHARED HOME COMPOSITION — v2.0.1

   Promoted from the live-proven Home page source so all
   consumer pages use one shared composition owner.
   ========================================================= */

.tt-home-v2{--home-cream:#f7f4eb;--home-sand:#eee5d3;--home-forest:#0d4b3a;--home-green:#2e7d5a;--home-sage:#e7f0e7;--home-ink:#1f2937;--home-white:#fff;}
.tt-home-v2 .tt-home-hero{position:relative;display:flex;align-items:center;height:620px;min-height:620px;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);overflow:hidden;background:var(--home-sand);}
.tt-home-v2 .tt-home-hero__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;}
.tt-home-v2 .tt-home-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,244,235,.98) 0%,rgba(247,244,235,.94) 30%,rgba(247,244,235,.46) 50%,rgba(247,244,235,0) 69%);}
.tt-home-v2 .tt-home-hero__inner{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:72px 42px;}
.tt-home-v2 .tt-home-hero__copy{max-width:525px;}
.tt-home-v2 .tt-home-hero h1{margin:0 0 22px;font-size:clamp(54px,6.2vw,82px);line-height:.91;letter-spacing:-.045em;}
.tt-home-v2 .tt-home-hero .tt-lead{max-width:480px;margin:0;color:#294238;font-size:20px;line-height:1.52;}
.tt-home-v2 .tt-home-trust{margin:14px 0 0;color:#52645c;font-size:13px;line-height:1.45;}
.tt-home-v2 .tt-home-proof{position:relative;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1120px;margin:-42px auto 0;border-top:1px solid rgba(13,75,58,.12);border-bottom:1px solid rgba(13,75,58,.12);background:rgba(255,255,255,.97);box-shadow:0 14px 34px rgba(13,75,58,.08);}
.tt-home-v2 .tt-home-proof__item{position:relative;padding:23px 22px;text-align:center;}
.tt-home-v2 .tt-home-proof__item:not(:last-child):after{content:"";position:absolute;top:18px;right:0;bottom:18px;width:1px;background:rgba(13,75,58,.12);}
.tt-home-v2 .tt-home-proof strong{display:block;margin-bottom:4px;color:var(--home-forest);font-size:15px;line-height:1.25;}
.tt-home-v2 .tt-home-proof span{display:block;color:#53645d;font-size:13px;line-height:1.35;}
.tt-home-v2 .tt-home-shell{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px;}
.tt-home-v2 .tt-home-how{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(40px,7vw,86px);align-items:center;padding-top:104px;padding-bottom:104px;}
.tt-home-v2 .tt-home-how__image{overflow:hidden;border-radius:20px;box-shadow:0 20px 42px rgba(13,75,58,.11);}
.tt-home-v2 .tt-home-how__image img{display:block;width:100%;min-height:520px;object-fit:cover;}
.tt-home-v2 .tt-home-steps{margin:34px 0 0;padding:0;list-style:none;}
.tt-home-v2 .tt-home-step{display:grid;grid-template-columns:58px 1fr;gap:18px;align-items:start;padding:18px 0;border-top:1px solid rgba(13,75,58,.15);}
.tt-home-v2 .tt-home-step:last-child{border-bottom:1px solid rgba(13,75,58,.15);}
.tt-home-v2 .tt-home-step__n{color:var(--home-green);font-family:Georgia,"Times New Roman",serif;font-size:42px;font-weight:700;line-height:.92;}
.tt-home-v2 .tt-home-step h3{margin:0 0 3px;font-size:22px;}
.tt-home-v2 .tt-home-step p{margin:0;color:#52645d;font-size:16px;line-height:1.5;}
.tt-home-v2 .tt-home-clean{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding:78px 24px;background:var(--home-forest);text-align:center;}
.tt-home-v2 .tt-home-clean__inner{max-width:1000px;margin:0 auto;}
.tt-home-v2 .tt-home-clean h2{margin:0;color:#fff;font-size:clamp(40px,5vw,68px);line-height:1.02;letter-spacing:-.035em;}
.tt-home-v2 .tt-home-clean p{margin:20px auto 0;color:#d7e6df;font-size:18px;line-height:1.5;}
.tt-home-v2 .tt-home-refill-band{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:var(--home-cream);}
.tt-home-v2 .tt-home-refill{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(40px,7vw,86px);align-items:center;padding-top:98px;padding-bottom:98px;}
.tt-home-v2 .tt-home-refill__image{overflow:hidden;border-radius:20px;box-shadow:0 20px 42px rgba(13,75,58,.10);}
.tt-home-v2 .tt-home-refill__image img{display:block;width:100%;min-height:480px;object-fit:cover;}
.tt-home-v2 .tt-home-copy p{color:#41564e;font-size:18px;line-height:1.62;}
.tt-home-v2 .tt-home-copy .tt-route-link{display:inline-block;margin-top:10px;}
.tt-home-v2 .tt-home-fluoride{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);background:var(--home-sage);}
.tt-home-v2 .tt-home-fluoride__inner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,72px);align-items:center;max-width:1180px;margin:0 auto;padding:86px 24px;}
.tt-home-v2 .tt-home-fluoride__stat{display:block;margin:0 0 12px;color:var(--home-forest);font-family:Georgia,"Times New Roman",serif;font-size:clamp(68px,8vw,112px);font-weight:700;letter-spacing:-.055em;line-height:.84;}
.tt-home-v2 .tt-home-fluoride__stat small{font-size:.24em;letter-spacing:0;}
.tt-home-v2 .tt-home-fluoride__image{overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 18px 38px rgba(13,75,58,.10);}
.tt-home-v2 .tt-home-fluoride__image img{display:block;width:100%;min-height:400px;object-fit:cover;}
.tt-home-v2 .tt-home-choose{padding-top:92px;padding-bottom:72px;text-align:center;}
.tt-home-v2 .tt-home-choose h2{max-width:800px;margin-left:auto;margin-right:auto;font-size:clamp(38px,4.7vw,62px);}
.tt-home-v2 .tt-home-choose__line{max-width:820px;margin:20px auto 0;color:#31473e;font-size:clamp(20px,2.2vw,27px);line-height:1.5;}
.tt-home-v2 .tt-home-choose .tt-actions{justify-content:center;}
.tt-home-v2 .tt-home-guides{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;padding:0 24px 86px;color:#5a6963;font-size:14px;text-align:center;}
.tt-home-v2 .tt-home-guides strong{color:var(--home-forest);}
.tt-home-v2 .tt-home-guides a{color:var(--home-forest);font-weight:750;text-decoration-thickness:1px;text-underline-offset:3px;}
@media(max-width:849px){
.tt-home-v2 .tt-home-hero{height:660px;min-height:660px;align-items:flex-end;}
.tt-home-v2 .tt-home-hero__image{object-position:64% center;}
.tt-home-v2 .tt-home-hero:after{background:linear-gradient(180deg,rgba(247,244,235,.04) 0%,rgba(247,244,235,.22) 37%,rgba(247,244,235,.96) 68%,rgba(247,244,235,1) 100%);}
.tt-home-v2 .tt-home-hero__inner{padding:290px 22px 44px;}
.tt-home-v2 .tt-home-hero h1{font-size:52px;}
.tt-home-v2 .tt-home-proof{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:0;box-shadow:none;}
.tt-home-v2 .tt-home-proof__item{padding:20px 14px;}
.tt-home-v2 .tt-home-proof__item:nth-child(2n):after{display:none;}
.tt-home-v2 .tt-home-proof__item:nth-child(-n+2){border-bottom:1px solid rgba(13,75,58,.12);}
.tt-home-v2 .tt-home-how,.tt-home-v2 .tt-home-refill,.tt-home-v2 .tt-home-fluoride__inner{grid-template-columns:1fr;gap:36px;}
.tt-home-v2 .tt-home-how{padding-top:66px;padding-bottom:66px;}
.tt-home-v2 .tt-home-how__image img,.tt-home-v2 .tt-home-refill__image img{min-height:360px;}
.tt-home-v2 .tt-home-clean{padding:58px 22px;}
.tt-home-v2 .tt-home-refill{padding-top:66px;padding-bottom:66px;}
.tt-home-v2 .tt-home-fluoride__inner{padding-top:62px;padding-bottom:62px;}
.tt-home-v2 .tt-home-fluoride__image{order:-1;}
.tt-home-v2 .tt-home-fluoride__image img{min-height:320px;}
.tt-home-v2 .tt-home-choose{padding-top:68px;padding-bottom:58px;}
.tt-home-v2 .tt-home-guides{padding-bottom:64px;}
}


/* =========================================================
   TOOTHTABS LINK AFFORDANCE — v1.6.1

   Text links inside page content must look actionable.
   Buttons retain their existing button treatment.
   ========================================================= */

.tt-page a:not(.tt-btn):not(.button) {
    color: var(--tt-forest);
    font-weight: 750;
    text-decoration-line: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 4px;
    text-decoration-color: rgba(13, 75, 58, .55);
}

.tt-page a:not(.tt-btn):not(.button):hover {
    color: var(--tt-green);
    text-decoration-color: currentColor;
    text-decoration-thickness: 2px;
}

.tt-home-v2 .tt-home-guides strong {
    color: #5a6963;
    font-weight: 600;
}

.tt-home-v2 .tt-home-guides a {
    text-decoration-line: underline;
}


/* =========================================================
   BULK / WHOLESALE HERO TIDY — v1.6.3

   Keeps the shared hero system, but gives the trade page's
   CTA row more breathing room above the proof rail.
   ========================================================= */

.tt-home-v2.tt-bulk-v3 .tt-home-hero__copy {
    max-width: 560px;
}

.tt-home-v2.tt-bulk-v3 .tt-home-hero h1 {
    font-size: clamp(54px, 5.8vw, 78px);
}

.tt-home-v2.tt-bulk-v3 .tt-home-hero .tt-actions {
    gap: 14px;
    margin-top: 30px;
}

.tt-home-v2.tt-bulk-v3 .tt-home-hero .tt-btn {
    min-height: 50px;
    padding: 13px 22px;
    font-size: 13px;
}

.tt-home-v2.tt-bulk-v3 .tt-home-proof {
    margin-top: -24px;
}

@media (max-width: 849px) {
    .tt-home-v2.tt-bulk-v3 .tt-home-hero h1 {
        font-size: 50px;
    }

    .tt-home-v2.tt-bulk-v3 .tt-home-proof {
        margin-top: 0;
    }
}


/* =========================================================
   TOOTHTABS CONTACT PAGE — v1.6.9

   Utility/contact pages use a calm contained owner rather than
   the full-width marketing composition. Actual enquiries route
   to Save Some Green so Toothtabs does not duplicate form/mail.
   ========================================================= */

.tt-contact-page .tt-contact-hero {
    margin: 0;
    padding: 68px 24px 58px;
    border-bottom: 1px solid rgba(13, 75, 58, .10);
    background: var(--tt-sage, #e7f0e7);
}

.tt-contact-page .tt-contact-hero__inner {
    width: min(920px, 100%);
    margin: 0 auto;
}

.tt-contact-page .tt-contact-hero h1 {
    max-width: 820px;
    margin-bottom: 18px;
    font-size: clamp(46px, 6vw, 70px);
    line-height: .98;
}

.tt-contact-page .tt-contact-hero .tt-lead {
    max-width: 800px;
    margin-bottom: 0;
    font-size: 19px;
    line-height: 1.58;
}

.tt-contact-page .tt-contact-body {
    width: min(960px, calc(100% - 48px));
    margin: 0 auto;
    padding: 64px 0 86px;
}

.tt-contact-page .tt-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.tt-contact-page .tt-contact-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 30px;
    border: 1px solid rgba(13, 75, 58, .14);
    border-top: 5px solid var(--tt-green, #2e7d5a);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(13, 75, 58, .06);
}

.tt-contact-page .tt-contact-card--sage {
    background: var(--tt-cream, #f7f4eb);
}

.tt-contact-page .tt-contact-card h2 {
    margin: 0 0 14px;
    font-size: clamp(29px, 3.2vw, 38px);
    line-height: 1.08;
}

.tt-contact-page .tt-contact-card p {
    color: #41564e;
    font-size: 17px;
    line-height: 1.68;
}

.tt-contact-page .tt-contact-card .tt-actions {
    margin-top: auto;
    padding-top: 20px;
}

.tt-contact-page .tt-contact-note {
    margin-top: 28px;
    padding: 28px 30px;
    border-left: 4px solid var(--tt-mint, #a8c79d);
    border-radius: 0 12px 12px 0;
    background: var(--tt-sage, #e7f0e7);
}

.tt-contact-page .tt-contact-note h2 {
    margin: 0 0 12px;
    font-size: clamp(27px, 3vw, 36px);
}

.tt-contact-page .tt-contact-note p {
    color: #41564e;
    font-size: 16px;
    line-height: 1.65;
}

@media (max-width: 849px) {
    .tt-contact-page .tt-contact-hero {
        padding: 48px 20px 42px;
    }

    .tt-contact-page .tt-contact-body {
        width: min(100% - 40px, 960px);
        padding: 46px 0 64px;
    }

    .tt-contact-page .tt-contact-grid {
        grid-template-columns: 1fr;
    }

    .tt-contact-page .tt-contact-card {
        padding: 24px;
    }
}

/* =========================================================
   HOME HERO COPY CLEARANCE — v1.6.11

   The shared proof rail is fixed infrastructure and must keep
   the same position as the other marketing pages. On Home only,
   lift the hero copy slightly so the CTA/trust line has clear
   breathing room above that rail.
   ========================================================= */

body.home .tt-home-v2 .tt-home-hero__copy {
    transform: translateY(-16px);
}

@media (max-width: 849px) {
    body.home .tt-home-v2 .tt-home-hero__copy {
        transform: none;
    }
}
