/*
 * Site footer (v0.3.0). Dark/light variant from Branding footer style.
 */

.tt-sitefooter { padding: var(--tt-space-8) 0 var(--tt-space-5); }
.tt-sitefooter-dark { background: var(--tt-dark); color: var(--tt-cream2); }
.tt-sitefooter-light { background: var(--tt-surface-soft); color: var(--tt-text); }

.tt-sitefooter-grid { display: grid; gap: var(--tt-space-6); }

.tt-sitefooter-logo { margin: 0 0 var(--tt-space-3); }
.tt-sitefooter-logo img { max-height: 48px; width: auto; }
.tt-sitefooter-name { font-weight: 900; font-size: var(--tt-text-xl); margin: 0 0 var(--tt-space-2); }
.tt-sitefooter-text { margin: 0 0 var(--tt-space-4); }
.tt-sitefooter-text p { margin: 0; }
.tt-sitefooter-dark .tt-sitefooter-text, .tt-sitefooter-dark .tt-sitefooter-address { color: color-mix(in srgb, var(--tt-cream2) 72%, var(--tt-dark)); }
.tt-sitefooter-light .tt-sitefooter-text, .tt-sitefooter-light .tt-sitefooter-address { color: var(--tt-muted); }

.tt-sitefooter-heading { font-size: var(--tt-text-sm); font-weight: 800; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 var(--tt-space-3); opacity: .75; }

.tt-sitefooter-col p { margin: 0 0 var(--tt-space-2); }
.tt-sitefooter-col a { color: inherit; font-weight: 700; text-decoration: none; }
.tt-sitefooter-col a:hover { color: var(--tt-accent); }

.tt-sitefooter-hours { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.tt-sitefooter-hours li { display: flex; justify-content: space-between; gap: var(--tt-space-3); font-size: var(--tt-text-sm); }
.tt-sitefooter-hours span { opacity: .75; }

.tt-sitefooter-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

.tt-sitefooter-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--tt-space-2); }
.tt-sitefooter-social a {
    display: inline-block;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 6px 13px;
    font-size: var(--tt-text-xs);
    font-weight: 800;
    text-decoration: none;
    color: inherit;
    opacity: .85;
}

.tt-sitefooter-social a:hover { opacity: 1; color: var(--tt-accent); }

.tt-sitefooter-trust { margin-top: var(--tt-space-6); padding-top: var(--tt-space-4); border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--tt-text-sm); opacity: .85; }
.tt-sitefooter-light .tt-sitefooter-trust { border-top-color: var(--tt-border); }
.tt-sitefooter-trust a { color: inherit; }

.tt-sitefooter-bottom {
    margin-top: var(--tt-space-4);
    padding-top: var(--tt-space-4);
    border-top: 1px solid rgba(255, 255, 255, .12);
    display: flex;
    justify-content: space-between;
    gap: var(--tt-space-3);
    flex-wrap: wrap;
    font-size: var(--tt-text-xs);
    opacity: .75;
}
.tt-sitefooter-light .tt-sitefooter-bottom { border-top-color: var(--tt-border); }
.tt-sitefooter-bottom a { color: inherit; }

@media (min-width: 621px) {
    .tt-sitefooter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 901px) {
    .tt-sitefooter-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
}

/* === v0.3.14 responsive footer redesign === */
.tt-sitefooter{
    padding:clamp(44px,6vw,76px) 0 clamp(22px,3vw,34px);
}
.tt-sitefooter-grid{
    align-items:start;
    gap:clamp(24px,4vw,54px);
}
.tt-sitefooter-brandcol{
    display:grid;
    align-content:start;
    gap:14px;
}
.tt-sitefooter-name{
    font-size:clamp(24px,3vw,34px);
    line-height:1;
    letter-spacing:-.05em;
}
.tt-sitefooter-text{
    max-width:360px;
    line-height:1.55;
}
.tt-sitefooter-heading{
    margin-bottom:14px;
    letter-spacing:.14em;
}
.tt-sitefooter-col{
    min-width:0;
}
.tt-sitefooter-col p{
    line-height:1.55;
}
.tt-sitefooter-links{
    gap:7px;
}
.tt-sitefooter-links a{
    display:inline-flex;
    align-items:center;
    min-height:30px;
}
.tt-sitefooter-actions .tt-sitefooter-links{
    gap:9px;
}
.tt-sitefooter-actions .tt-sitefooter-links a{
    font-size:17px;
}
.tt-sitefooter-legal .tt-sitefooter-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px 18px;
}
.tt-sitefooter-legal .tt-sitefooter-links a{
    font-size:13px;
    color:color-mix(in srgb,currentColor 78%,transparent);
}
.tt-sitefooter-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    margin-top:16px;
    padding:0 18px;
    border-radius:14px;
    background:var(--tt-primary);
    color:#fff!important;
    text-decoration:none;
    font-weight:900!important;
    box-shadow:0 18px 36px color-mix(in srgb,var(--tt-primary) 22%,transparent);
}
.tt-sitefooter-social a{
    display:inline-flex;
    align-items:center;
    min-height:34px;
}
.tt-sitefooter-trust{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.tt-sitefooter-bottom{
    align-items:center;
}

@media (min-width: 901px){
    .tt-sitefooter-grid{
        grid-template-columns:minmax(260px,1.35fr) minmax(210px,.95fr) minmax(210px,.9fr) minmax(180px,.85fr) minmax(280px,1.15fr);
    }
}

@media (max-width: 900px){
    .tt-sitefooter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .tt-sitefooter-brandcol,
    .tt-sitefooter-legal{
        grid-column:1/-1;
    }
}

@media (max-width: 620px){
    .tt-sitefooter{
        padding-bottom:calc(28px + env(safe-area-inset-bottom,0px));
    }
    .tt-sitefooter-grid{
        grid-template-columns:1fr;
        gap:28px;
    }
    .tt-sitefooter-brandcol,
    .tt-sitefooter-legal{
        grid-column:auto;
    }
    .tt-sitefooter-name{
        font-size:30px;
    }
    .tt-sitefooter-legal .tt-sitefooter-links{
        grid-template-columns:1fr;
    }
    .tt-sitefooter-actions .tt-sitefooter-links a,
    .tt-sitefooter-cta{
        width:100%;
        justify-content:center;
    }
    .tt-sitefooter-hours li{
        font-size:15px;
    }
    .tt-sitefooter-bottom{
        display:grid;
        gap:10px;
    }
}

/* === v0.3.20 final cascade: Inkfire footer signature === */
.tt-sitefooter-bottom{opacity:1}
.iw-copy,.iw-signature,.iw-agency-link{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.iw-copy{color:color-mix(in srgb,currentColor 72%,transparent);font-weight:750}
.iw-signature{justify-content:flex-end;color:color-mix(in srgb,currentColor 74%,transparent)}
.iw-agency-link{color:inherit;text-decoration:none;font-weight:900}
.iw-icon{width:26px;height:26px;border-radius:999px;object-fit:cover;background:#fff}
.iw-brand{color:#fff}
.tt-sitefooter-light .iw-brand{color:var(--tt-text)}
.iw-agency-link:hover .iw-brand{color:var(--tt-accent)}
@media(max-width:620px){.iw-signature{justify-content:flex-start}}

/* === v0.3.21 true final cascade: no-overflow footer grid === */
@media (min-width: 901px){
    .tt-sitefooter-grid{
        grid-template-columns:minmax(190px,1.2fr) minmax(145px,.85fr) minmax(145px,.85fr) minmax(140px,.75fr) minmax(190px,1fr);
        gap:clamp(18px,2vw,28px);
    }
}
.tt-sitefooter-legal .tt-sitefooter-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.tt-sitefooter-legal .tt-sitefooter-links li,
.tt-sitefooter-legal .tt-sitefooter-links a{
    min-width:0;
    overflow-wrap:anywhere;
}

/* === v0.3.28 final cascade: premium four-zone footer === */
.tt-sitefooter{
    padding:clamp(54px,7vw,92px) 0 clamp(24px,3vw,36px);
}
.tt-sitefooter-grid{
    align-items:start;
}
.tt-sitefooter-name{
    max-width:12ch;
    font-size:clamp(28px,3.2vw,42px);
}
.tt-sitefooter-text{
    max-width:320px;
    color:color-mix(in srgb,currentColor 68%,transparent);
}
.tt-sitefooter-contactcol{
    display:grid;
    gap:8px;
}
.tt-sitefooter-contactcol p{
    max-width:32ch;
    margin:0;
}
.tt-sitefooter-hours-wrap{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid color-mix(in srgb,currentColor 14%,transparent);
}
.tt-sitefooter-hours-wrap h4{
    margin:0 0 10px;
    color:color-mix(in srgb,currentColor 78%,transparent);
    font-size:12px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.tt-sitefooter-hours{
    max-width:320px;
}
.tt-sitefooter-hours li{
    min-height:30px;
    align-items:center;
}
.tt-sitefooter-social{
    gap:10px;
    margin-top:4px;
}
.tt-sitefooter-social a{
    width:38px;
    height:38px;
    justify-content:center;
    padding:0;
    border-color:color-mix(in srgb,currentColor 18%,transparent);
    color:color-mix(in srgb,currentColor 82%,transparent);
    background:color-mix(in srgb,currentColor 6%,transparent);
}
.tt-sitefooter-social a:hover{
    background:var(--tt-primary);
    border-color:var(--tt-primary);
    color:#fff;
}
.tt-sitefooter-social svg{
    width:16px;
    height:16px;
}
@media (min-width:901px){
    .tt-sitefooter-grid{
        grid-template-columns:minmax(260px,1.2fr) minmax(260px,1fr) minmax(190px,.72fr) minmax(300px,1.06fr);
        gap:clamp(30px,4vw,72px);
    }
}
@media (max-width:900px){
    .tt-sitefooter-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .tt-sitefooter-brandcol{
        grid-column:auto;
    }
    .tt-sitefooter-legal{
        grid-column:1/-1;
    }
}
@media (max-width:620px){
    .tt-sitefooter-grid{
        grid-template-columns:1fr;
    }
    .tt-sitefooter-name{
        max-width:none;
    }
    .tt-sitefooter-legal{
        grid-column:auto;
    }
}
