/* Plymouth MN — presentation rules */
:root {
    --brick-fb:#A93B2A; --brick-dark-fb:#7E2A1B;
    --ember-fb:#EC9450; --ember-glow-fb:#FBC98F;
    --coast-fb:#1E6F68; --charcoal-fb:#131519;
    --charcoal-2-fb:#20222A; --charcoal-3-fb:#2B2E38;
    --cream-fb:#F4EFE2; --cream-2-fb:#EDE3D5;
    --ink-fb:#17181C; --muted-fb:#6E635B;
    --line-fb:rgba(25,21,19,.12); --gold-fb:#E5B94F;
    --green-ok-fb:#2E7D51; --radius-fb:16px;
    --radius-lg-fb:26px; --shadow-sm-fb:0 4px 14px rgba(25,21,19,.08);
    --shadow-fb:0 14px 40px rgba(25,21,19,.14); --shadow-lg-fb:0 30px 70px rgba(25,21,19,.26);
    --wrap-fb:1200px; --font-fb:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
    --display-fb:'Oswald','Barlow Condensed',var(--font-fb); --header-h-fb:76px;
}
*,*::before,*::after {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth; scroll-padding-top:90px;
    -webkit-text-size-adjust:100%;
}
body {
    margin:0; font-family:var(--font-fb);
    color:var(--ink-fb); background:var(--cream-fb);
    font-size:17px; line-height:1.65;
    overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img {
    max-width:100%; height:auto;
    display:block;
}
a {
    color:var(--brick-fb); text-decoration:none;
}
a:hover {
    color:var(--brick-dark-fb);
}
button {
    font-family:inherit;
}
h1,h2,h3,h4 {
    font-family:var(--display-fb); font-weight:700;
    line-height:1.08; margin:0 0 .5em;
    letter-spacing:.4px; text-transform:uppercase;
}
h1 {
    font-size:clamp(2.15rem,5.4vw,4.15rem);
}
h2 {
    font-size:clamp(1.85rem,3.9vw,3rem);
}
h3 {
    font-size:clamp(1.15rem,1.7vw,1.45rem);
}
p {
    margin:0 0 1.1em;
}
.rail {
    width:min(var(--wrap-fb),92%); margin-inline:auto;
}
.center-fb {
    text-align:center;
}
.sr-only-fb {
    position:absolute; width:1px;
    height:1px; padding:0;
    margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap;
    border:0;
}
.leap-link {
    position:absolute; left:-9999px;
    top:0; background:var(--brick-fb);
    color:#fff; padding:12px 20px;
    z-index:9999;
}
.leap-link:focus {
    left:10px; top:10px;
}
:focus-visible {
    outline:3px solid var(--ember-fb); outline-offset:3px;
}
#bg-fx-fb {
    position:fixed; inset:0;
    z-index:0; pointer-events:none;
    overflow:hidden;
}
#emberCanvas-fb {
    position:absolute; inset:0;
    width:100%; height:100%;
    opacity:.55;
}
.orb-fb {
    position:absolute; border-radius:50%;
    filter:blur(70px); opacity:.34;
    will-change:transform;
}
.orb-1-fb {
    width:520px; height:520px;
    background:radial-gradient(circle at 30% 30%,var(--ember-fb),transparent 68%); top:-140px;
    left:-120px; animation:float1 26s ease-in-out infinite;
}
.orb-2-fb {
    width:640px; height:640px;
    background:radial-gradient(circle at 60% 40%,var(--brick-fb),transparent 66%); top:38%;
    right:-220px; animation:float2 32s ease-in-out infinite;
}
.orb-3-fb {
    width:420px; height:420px;
    background:radial-gradient(circle at 50% 50%,var(--gold-fb),transparent 65%); bottom:-120px;
    left:22%; animation:float3 29s ease-in-out infinite;
}
@keyframes float1 {
    0%,100% {
        transform:translate3d(0,0,0) scale(1);
    }
    50% {
        transform:translate3d(90px,120px,0) scale(1.16);
    }
}
@keyframes float2 {
    0%,100% {
        transform:translate3d(0,0,0) scale(1.05);
    }
    50% {
        transform:translate3d(-120px,-90px,0) scale(.9);
    }
}
@keyframes float3 {
    0%,100% {
        transform:translate3d(0,0,0) scale(.95);
    }
    50% {
        transform:translate3d(70px,-110px,0) scale(1.2);
    }
}
main,header,footer,.frost-bar {
    position:relative; z-index:1;
}
.key {
    --bg-fb:var(--brick-fb); --fg-fb:#fff;
    display:inline-flex; align-items:center;
    justify-content:center; gap:.6rem;
    background:var(--bg-fb); color:var(--fg-fb);
    font-weight:700; font-size:1.02rem;
    padding:16px 30px; border-radius:60px;
    border:0; cursor:pointer;
    letter-spacing:.3px; box-shadow:0 10px 26px rgba(178,58,33,.32);
    transition:transform .22s cubic-bezier(.2,.8,.3,1),box-shadow .22s,background .22s; position:relative;
    overflow:hidden; text-align:center;
}
.key:hover {
    transform:translateY(-3px); box-shadow:0 18px 40px rgba(178,58,33,.42);
    color:#fff;
}
.key:active {
    transform:translateY(-1px);
}
.key::after {
    content:""; position:absolute;
    top:0; left:-60%;
    width:40%; height:100%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent); transform:skewX(-18deg);
    animation:sheen 4.5s ease-in-out infinite;
}
@keyframes sheen {
    0%,72% {
        left:-60%;
    }
    88%,100% {
        left:135%;
    }
}
.btn-ember-fb {
    --bg-fb:linear-gradient(135deg,var(--ember-fb),var(--brick-fb)); box-shadow:0 10px 26px rgba(240,128,60,.4);
}
.btn-ghost-fb {
    --bg-fb:transparent; --fg-fb:#fff;
    border:2px solid rgba(255,255,255,.6); box-shadow:none;
}
.btn-ghost-fb:hover {
    background:rgba(255,255,255,.12); box-shadow:none;
}
.btn-dark-fb {
    --bg-fb:var(--charcoal-fb); box-shadow:0 10px 26px rgba(25,21,19,.3);
}
.btn-lg-fb {
    padding:19px 38px; font-size:1.12rem;
}
.btn-block-fb {
    display:flex; width:100%;
}
.frost-bar {
    background:var(--charcoal-fb); color:#DCCFC2;
    font-size:.86rem; letter-spacing:.3px;
}
.frost-bar .rail {
    display:flex; flex-wrap:wrap;
    gap:8px 26px; align-items:center;
    justify-content:space-between; padding:9px 0;
}
.frost-bar b {
    color:#fff;
}
.frost-bar .tb-item-fb {
    display:inline-flex; align-items:center;
    gap:7px;
}
.dot-live-fb {
    width:8px; height:8px;
    border-radius:50%; background:#49C77E;
    box-shadow:0 0 0 0 rgba(73,199,126,.7); animation:pulseDot 2s infinite;
}
@keyframes pulseDot {
    70% {
        box-shadow:0 0 0 9px rgba(73,199,126,0);
    }
    100% {
        box-shadow:0 0 0 0 rgba(73,199,126,0);
    }
}
.gable {
    position:sticky; top:0;
    z-index:900; background:rgba(246,240,231,.86);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
    border-bottom:1px solid var(--line-fb); transition:box-shadow .3s,background .3s;
}
.gable.scrolled-fb {
    box-shadow:0 8px 30px rgba(25,21,19,.13); background:rgba(246,240,231,.96);
}
.gable .rail {
    width:min(1360px,94%);
}
.navdeck {
    display:flex; align-items:center;
    justify-content:space-between; gap:18px;
    min-height:var(--header-h-fb);
}
.housemark {
    display:flex; align-items:center;
    gap:12px; color:var(--ink-fb);
    flex:0 0 auto;
}
.housemark:hover {
    color:var(--ink-fb);
}
.housemark-glyph {
    width:46px; height:46px;
    flex:0 0 auto; filter:drop-shadow(0 4px 8px rgba(178,58,33,.3));
}
.housemark-txt {
    display:flex; flex-direction:column;
    line-height:1.05;
}
.housemark-txt strong {
    font-family:var(--display-fb); font-size:1.06rem;
    letter-spacing:.6px; text-transform:uppercase;
}
.housemark-txt span {
    font-size:.7rem; letter-spacing:2.4px;
    text-transform:uppercase; color:var(--brick-fb);
    font-weight:600;
}
.navspan {
    display:flex; align-items:center;
    gap:22px; list-style:none;
    margin:0; padding:0;
}
.navspan a {
    color:var(--ink-fb); font-weight:600;
    font-size:.92rem; white-space:nowrap;
    position:relative; padding:6px 0;
}
.navspan a::after {
    content:""; position:absolute;
    left:0; bottom:0;
    height:2px; width:0;
    background:var(--brick-fb); transition:width .28s;
}
.navspan a:hover::after,.navspan a.active-fb::after {
    width:100%;
}
.nav-cta-fb {
    display:flex; align-items:center;
    gap:14px; flex:0 0 auto;
}
.nav-phone-fb {
    display:flex; flex-direction:column;
    line-height:1.1; text-align:right;
}
.nav-phone-fb small {
    font-size:.68rem; text-transform:uppercase;
    letter-spacing:1.4px; color:var(--muted-fb);
}
.nav-phone-fb b {
    font-family:var(--display-fb); font-size:1.22rem;
    color:var(--brick-fb);
}
.flapjack {
    display:none; width:48px;
    height:44px; border:1px solid var(--line-fb);
    background:#fff; border-radius:12px;
    cursor:pointer; padding:0;
    position:relative;
}
.flapjack span {
    position:absolute; left:13px;
    width:22px; height:2px;
    background:var(--ink-fb); transition:.3s;
}
.flapjack span:nth-child(1) {
    top:15px;
}
.flapjack span:nth-child(2) {
    top:21px;
}
.flapjack span:nth-child(3) {
    top:27px;
}
.flapjack[aria-expanded="true"] span:nth-child(1) {
    top:21px; transform:rotate(45deg);
}
.flapjack[aria-expanded="true"] span:nth-child(2) {
    opacity:0;
}
.flapjack[aria-expanded="true"] span:nth-child(3) {
    top:21px; transform:rotate(-45deg);
}
.lead-stage {
    position:relative; color:#fff;
    padding:clamp(56px,8vw,104px) 0 clamp(70px,9vw,120px); overflow:hidden;
    isolation:isolate;
}
.lead-stage-bg {
    position:absolute; inset:0;
    z-index:-2;
}
.lead-stage-bg img {
    width:100%; height:100%;
    object-fit:cover; transform:scale(1.06);
    animation:kenburns 24s ease-in-out infinite alternate;
}
@keyframes kenburns {
    to {
        transform:scale(1.17) translate3d(-1.5%,-1.5%,0);
    }
}
.lead-stage::before {
    content:""; position:absolute;
    inset:0; z-index:-1;
    background:linear-gradient(100deg,rgba(18,14,12,.95) 0%,rgba(26,18,14,.86) 38%,rgba(181,57,31,.6) 74%,rgba(242,145,63,.42) 100%);
}
.lead-stage-grid {
    display:grid; grid-template-columns:1.15fr .85fr;
    gap:52px; align-items:center;
}
.eyebrow-fb {
    display:inline-flex; align-items:center;
    gap:9px; background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.26); color:#fff;
    padding:8px 17px; border-radius:60px;
    font-size:.79rem; font-weight:700;
    letter-spacing:1.6px; text-transform:uppercase;
    margin-bottom:22px; backdrop-filter:blur(6px);
}
.lead-stage h1 {
    color:#fff; text-shadow:0 6px 30px rgba(0,0,0,.4);
}
.lead-stage h1 .beam {
    color:var(--ember-glow-fb); display:inline-block;
}
.lead-stage-sub {
    font-size:clamp(1.02rem,1.5vw,1.2rem); color:#EADFD4;
    max-width:610px;
}
.lead-stage-acts {
    display:flex; flex-wrap:wrap;
    gap:14px; margin:30px 0 26px;
}
.lead-stage-trust {
    display:flex; flex-wrap:wrap;
    gap:10px 22px; list-style:none;
    padding:0; margin:0;
    font-size:.92rem; color:#E6DAD0;
}
.lead-stage-trust li {
    display:flex; align-items:center;
    gap:8px;
}
.tick-fb {
    width:20px; height:20px;
    flex:0 0 auto; border-radius:50%;
    background:rgba(73,199,126,.2); display:grid;
    place-items:center;
}
.tick-fb svg {
    width:12px; height:12px;
    stroke:#6BE39C; fill:none;
    stroke-width:3;
}
.ticket-card {
    background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(246,240,231,.94)); color:var(--ink-fb);
    border-radius:var(--radius-lg-fb); padding:30px 28px;
    box-shadow:var(--shadow-lg-fb); border:1px solid rgba(255,255,255,.6);
    position:relative; animation:floaty 6.5s ease-in-out infinite;
}
@keyframes floaty {
    0%,100% {
        transform:translateY(0);
    }
    50% {
        transform:translateY(-13px);
    }
}
.offer-badge-fb {
    position:absolute; top:-18px;
    right:-10px; background:var(--brick-fb);
    color:#fff; font-family:var(--display-fb);
    font-size:.82rem; letter-spacing:1.4px;
    padding:9px 16px; border-radius:40px;
    box-shadow:0 8px 20px rgba(178,58,33,.4); text-transform:uppercase;
    animation:wobble 5s ease-in-out infinite;
}
@keyframes wobble {
    0%,100% {
        transform:rotate(-3deg);
    }
    50% {
        transform:rotate(3deg);
    }
}
.offer-price-fb {
    font-family:var(--display-fb); font-size:clamp(3.4rem,7vw,4.6rem);
    line-height:1; color:var(--brick-fb);
    display:flex; align-items:flex-start;
    gap:4px; justify-content:center;
    margin:6px 0 2px;
}
.offer-price-fb sup {
    font-size:.42em; margin-top:.32em;
}
.ticket-card h2 {
    font-size:1.32rem; margin-bottom:4px;
    text-align:center;
}
.ticket-card .offer-kicker-fb {
    text-align:center; color:var(--muted-fb);
    font-size:.9rem; margin-bottom:16px;
}
.offer-list-fb {
    list-style:none; margin:0 0 20px;
    padding:0; display:grid;
    gap:9px; font-size:.95rem;
}
.offer-list-fb li {
    display:flex; gap:10px;
    align-items:flex-start;
}
.offer-list-fb svg {
    width:18px; height:18px;
    flex:0 0 auto; margin-top:3px;
    stroke:var(--brick-fb); fill:none;
    stroke-width:3;
}
.offer-fine-fb {
    font-size:.76rem; color:var(--muted-fb);
    text-align:center; margin:12px 0 0;
    line-height:1.5;
}
.slider {
    background:var(--charcoal-2-fb); color:#CBBDB0;
    overflow:hidden; padding:13px 0;
    border-block:1px solid rgba(255,255,255,.07);
}
.slider-lane {
    display:flex; gap:52px;
    white-space:nowrap; width:max-content;
    animation:scrollX 34s linear infinite; font-family:var(--display-fb);
    letter-spacing:2px; font-size:.94rem;
    text-transform:uppercase;
}
.slider-lane span {
    display:inline-flex; align-items:center;
    gap:12px;
}
.slider-lane b {
    color:var(--ember-fb);
}
@keyframes scrollX {
    to {
        transform:translateX(-50%);
    }
}
section {
    padding:clamp(56px,7vw,100px) 0; position:relative;
}
.crown-head {
    max-width:760px; margin:0 auto 52px;
}
.crown-head.left-fb {
    margin-inline:0;
}
.topline {
    display:inline-flex; align-items:center;
    gap:9px; color:var(--brick-fb);
    font-weight:800; letter-spacing:2.4px;
    text-transform:uppercase; font-size:.78rem;
    margin-bottom:14px;
}
.topline::before {
    content:""; width:28px;
    height:2px; background:var(--brick-fb);
}
.byline {
    font-size:1.06rem; color:var(--muted-fb);
}
.birch-zone {
    background:linear-gradient(180deg,rgba(237,227,213,.75),rgba(246,240,231,.4));
}
.midnight-zone {
    background:var(--charcoal-fb); color:#DDD1C6;
}
.midnight-zone h2,.midnight-zone h3 {
    color:#fff;
}
.midnight-zone .byline {
    color:#B7A99C;
}
.midnight-zone .topline {
    color:var(--ember-glow-fb);
}
.midnight-zone .topline::before {
    background:var(--ember-fb);
}
.gauge-row {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:22px;
}
.gauge {
    background:#fff; border-radius:var(--radius-fb);
    padding:26px 20px; text-align:center;
    box-shadow:var(--shadow-sm-fb); border:1px solid var(--line-fb);
    transition:transform .3s,box-shadow .3s;
}
.gauge:hover {
    transform:translateY(-7px); box-shadow:var(--shadow-fb);
}
.gauge b {
    display:block; font-family:var(--display-fb);
    font-size:clamp(2rem,3.6vw,2.9rem); color:var(--brick-fb);
    line-height:1;
}
.gauge span {
    font-size:.87rem; color:var(--muted-fb);
    letter-spacing:.6px;
}
.svc-grid-fb {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(295px,1fr));
    gap:26px;
}
.job-card {
    background:#fff; border-radius:var(--radius-lg-fb);
    overflow:hidden; box-shadow:var(--shadow-sm-fb);
    border:1px solid var(--line-fb); display:flex;
    flex-direction:column; transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s;
}
.job-card:hover {
    transform:translateY(-10px); box-shadow:var(--shadow-lg-fb);
}
.svc-media-fb {
    position:relative; aspect-ratio:16/10;
    overflow:hidden; background:var(--charcoal-3-fb);
}
.svc-media-fb img {
    width:100%; height:100%;
    object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.3,1);
}
.job-card:hover .svc-media-fb img {
    transform:scale(1.09);
}
.svc-media-fb::after {
    content:""; position:absolute;
    inset:0; background:linear-gradient(180deg,transparent 42%,rgba(20,16,14,.72));
}
.svc-ico-fb {
    position:absolute; left:18px;
    bottom:16px; z-index:2;
    width:46px; height:46px;
    border-radius:13px; background:var(--brick-fb);
    display:grid; place-items:center;
    box-shadow:0 8px 20px rgba(178,58,33,.45);
}
.svc-ico-fb svg {
    width:24px; height:24px;
    stroke:#fff; fill:none;
    stroke-width:1.9; stroke-linecap:round;
    stroke-linejoin:round;
}
.svc-body-fb {
    padding:24px 24px 26px; display:flex;
    flex-direction:column; flex:1;
}
.svc-body-fb h3 {
    margin-bottom:8px;
}
.svc-body-fb p {
    font-size:.95rem; color:var(--muted-fb);
    margin-bottom:16px;
}
.svc-body-fb ul {
    list-style:none; margin:0 0 18px;
    padding:0; font-size:.9rem;
    display:grid; gap:6px;
}
.svc-body-fb li {
    display:flex; gap:9px;
    align-items:flex-start; color:#4A423C;
}
.svc-body-fb li::before {
    content:""; width:7px;
    height:7px; border-radius:50%;
    background:var(--ember-fb); flex:0 0 auto;
    margin-top:8px;
}
.svc-link-fb {
    margin-top:auto; font-weight:700;
    display:inline-flex; align-items:center;
    gap:8px; font-size:.95rem;
}
.svc-link-fb svg {
    width:16px; height:16px;
    stroke:currentColor; fill:none;
    stroke-width:2.4; transition:transform .3s;
}
.job-card:hover .svc-link-fb svg {
    transform:translateX(5px);
}
.sign-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:52px; align-items:center;
}
.sign-list {
    display:grid; gap:14px;
    margin:0; padding:0;
    list-style:none;
}
.sign-list li {
    display:flex; gap:15px;
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
    border-radius:14px; padding:16px 18px;
    align-items:flex-start; transition:transform .3s,border-color .3s,background .3s;
}
.sign-list li:hover {
    transform:translateX(7px); border-color:rgba(240,128,60,.55);
    background:rgba(240,128,60,.08);
}
.sign-list .wifb {
    width:38px; height:38px;
    flex:0 0 auto; border-radius:11px;
    background:rgba(240,128,60,.16); display:grid;
    place-items:center;
}
.sign-list .wifb svg {
    width:20px; height:20px;
    stroke:var(--ember-glow-fb); fill:none;
    stroke-width:2; stroke-linecap:round;
    stroke-linejoin:round;
}
.sign-list b {
    display:block; color:#fff;
    font-family:var(--display-fb); letter-spacing:.5px;
    font-size:1.02rem; text-transform:uppercase;
}
.sign-list span {
    font-size:.92rem; color:#B3A599;
}
.sign-photo {
    position:relative; border-radius:var(--radius-lg-fb);
    overflow:hidden; box-shadow:var(--shadow-lg-fb);
}
.sign-photo img {
    width:100%; aspect-ratio:4/5;
    object-fit:cover;
}
.sign-note {
    position:absolute; left:20px;
    bottom:20px; right:20px;
    background:rgba(25,21,19,.82); backdrop-filter:blur(9px);
    border:1px solid rgba(255,255,255,.14); border-radius:16px;
    padding:16px 18px; color:#fff;
}
.sign-note b {
    font-family:var(--display-fb); display:block;
    color:var(--ember-glow-fb); letter-spacing:1px;
}
.sign-note span {
    font-size:.88rem; color:#C7B9AC;
}
.beats {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:24px; counter-reset:step;
    position:relative;
}
.beat {
    background:#fff; border-radius:var(--radius-fb);
    padding:34px 24px 26px; box-shadow:var(--shadow-sm-fb);
    border:1px solid var(--line-fb); position:relative;
    transition:transform .35s,box-shadow .35s;
}
.beat:hover {
    transform:translateY(-8px); box-shadow:var(--shadow-fb);
}
.step-n-fb {
    position:absolute; top:-20px;
    left:24px; width:44px;
    height:44px; border-radius:14px;
    background:linear-gradient(140deg,var(--ember-fb),var(--brick-fb)); color:#fff;
    font-family:var(--display-fb); font-size:1.3rem;
    display:grid; place-items:center;
    box-shadow:0 10px 22px rgba(178,58,33,.35);
}
.beat h3 {
    font-size:1.12rem; margin-top:8px;
}
.beat p {
    font-size:.93rem; color:var(--muted-fb);
    margin:0;
}
.prints {
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:16px;
}
.print {
    position:relative; border-radius:18px;
    overflow:hidden; box-shadow:var(--shadow-sm-fb);
    aspect-ratio:1; background:var(--charcoal-3-fb);
}
.print:nth-child(1),.print:nth-child(6) {
    grid-row:span 2; aspect-ratio:1/2.06;
}
.print img {
    width:100%; height:100%;
    object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.3,1);
}
.print:hover img {
    transform:scale(1.1);
}
.print figcaption {
    position:absolute; inset:auto 0 0 0;
    padding:34px 16px 14px; background:linear-gradient(transparent,rgba(20,16,14,.86));
    color:#fff; font-size:.85rem;
    font-weight:600; transform:translateY(6px);
    opacity:0; transition:.35s;
}
.print:hover figcaption {
    transform:translateY(0); opacity:1;
}
.reviews-fb {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:24px;
}
.review-fb {
    background:#fff; border-radius:var(--radius-fb);
    padding:28px 26px; box-shadow:var(--shadow-sm-fb);
    border:1px solid var(--line-fb); position:relative;
    transition:transform .35s,box-shadow .35s;
}
.review-fb:hover {
    transform:translateY(-8px); box-shadow:var(--shadow-fb);
}
.review-fb .quote-fb {
    position:absolute; top:16px;
    right:22px; font-family:var(--display-fb);
    font-size:4.2rem; color:rgba(178,58,33,.13);
    line-height:1;
}
.stars-fb {
    display:flex; gap:3px;
    margin-bottom:12px;
}
.stars-fb svg {
    width:18px; height:18px;
    fill:var(--gold-fb);
}
.review-fb p {
    font-size:.98rem; color:#4A423C;
}
.review-fb footer {
    display:flex; align-items:center;
    gap:12px; margin-top:16px;
    border-top:1px solid var(--line-fb); padding-top:14px;
}
.avatar-fb {
    width:42px; height:42px;
    border-radius:50%; background:linear-gradient(140deg,var(--brick-fb),var(--ember-fb));
    color:#fff; display:grid;
    place-items:center; font-family:var(--display-fb);
    font-size:1.05rem; flex:0 0 auto;
}
.review-fb footer b {
    display:block; font-size:.95rem;
}
.review-fb footer span {
    font-size:.8rem; color:var(--muted-fb);
}
.reach-map {
    display:flex; flex-wrap:wrap;
    gap:11px; justify-content:center;
    list-style:none; padding:0;
    margin:0 0 30px;
}
.reach-map li {
    background:#fff; border:1px solid var(--line-fb);
    border-radius:60px; padding:10px 20px;
    font-size:.92rem; font-weight:600;
    box-shadow:var(--shadow-sm-fb); transition:transform .25s,background .25s,color .25s,border-color .25s;
}
.reach-map li:hover {
    transform:translateY(-4px); background:var(--brick-fb);
    color:#fff; border-color:var(--brick-fb);
}
.quiz-pile {
    max-width:880px; margin-inline:auto;
}
.quiz-pile details {
    background:#fff; border:1px solid var(--line-fb);
    border-radius:14px; margin-bottom:12px;
    box-shadow:var(--shadow-sm-fb); overflow:hidden;
    transition:box-shadow .3s;
}
.quiz-pile details[open] {
    box-shadow:var(--shadow-fb);
}
.quiz-pile summary {
    cursor:pointer; list-style:none;
    padding:20px 58px 20px 22px; font-weight:700;
    font-size:1.03rem; position:relative;
}
.quiz-pile summary::-webkit-details-marker {
    display:none;
}
.quiz-pile summary::after {
    content:""; position:absolute;
    right:22px; top:50%;
    width:12px; height:12px;
    border-right:2.6px solid var(--brick-fb); border-bottom:2.6px solid var(--brick-fb);
    transform:translateY(-70%) rotate(45deg); transition:transform .3s;
}
.quiz-pile details[open] summary::after {
    transform:translateY(-25%) rotate(-135deg);
}
.quiz-pile .quiz-open {
    padding:0 22px 20px; color:var(--muted-fb);
    font-size:.97rem;
}
.quiz-pile .quiz-open p:last-child {
    margin-bottom:0;
}
.nudge-band {
    position:relative; color:#fff;
    text-align:center; overflow:hidden;
    isolation:isolate;
}
.nudge-band .nudge-bg {
    position:absolute; inset:0;
    z-index:-2;
}
.nudge-band .nudge-bg img {
    width:100%; height:100%;
    object-fit:cover;
}
.nudge-band::before {
    content:""; position:absolute;
    inset:0; z-index:-1;
    background:linear-gradient(120deg,rgba(140,43,22,.94),rgba(25,21,19,.9));
}
.nudge-band h2 {
    color:#fff; font-size:clamp(2rem,4.4vw,3.3rem);
}
.nudge-band p {
    color:#EFE3D8; max-width:660px;
    margin-inline:auto; font-size:1.06rem;
}
.nudge-acts {
    display:flex; gap:15px;
    justify-content:center; flex-wrap:wrap;
    margin-top:28px;
}
.nudge-phone {
    display:block; font-family:var(--display-fb);
    font-size:clamp(2rem,5vw,2.9rem); color:#fff;
    margin-top:20px; letter-spacing:1px;
}
.nudge-phone:hover {
    color:var(--ember-glow-fb);
}
.depot-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:44px; align-items:start;
}
.depot-grid>* {
    min-width:0;
}
.depot-rows a,.footing address a {
    overflow-wrap:anywhere;
}
.form-card-fb {
    background:#fff; border-radius:var(--radius-lg-fb);
    padding:34px 32px; box-shadow:var(--shadow-fb);
    border:1px solid var(--line-fb);
}
.field-fb {
    margin-bottom:16px;
}
.field-fb label {
    display:block; font-weight:700;
    font-size:.86rem; margin-bottom:7px;
    letter-spacing:.4px;
}
.field-fb input,.field-fb select,.field-fb textarea {
    width:100%; padding:14px 16px;
    border:1.6px solid var(--line-fb); border-radius:12px;
    font-size:1rem; font-family:inherit;
    background:#FAF8F1; color:var(--ink-fb);
    transition:border-color .25s,box-shadow .25s,background .25s;
}
.field-fb input:focus,.field-fb select:focus,.field-fb textarea:focus {
    outline:none; border-color:var(--brick-fb);
    background:#fff; box-shadow:0 0 0 4px rgba(178,58,33,.12);
}
.field-fb textarea {
    resize:vertical; min-height:110px;
}
.two-col-fb {
    display:grid; grid-template-columns:1fr 1fr;
    gap:16px;
}
.form-note-fb {
    font-size:.79rem; color:var(--muted-fb);
    margin-top:12px; text-align:center;
}
.form-msg-fb {
    display:none; padding:14px 16px;
    border-radius:12px; font-size:.94rem;
    margin-bottom:16px;
}
.form-msg-fb.okfb {
    display:block; background:rgba(46,125,81,.1);
    color:#2E7D51; border:1px solid rgba(46,125,81,.3);
}
.form-msg-fb.err-fb {
    display:block; background:rgba(178,58,33,.1);
    color:var(--brick-dark-fb); border:1px solid rgba(178,58,33,.3);
}
.depot-rows {
    list-style:none; padding:0;
    margin:0 0 26px; display:grid;
    gap:16px;
}
.depot-rows li {
    display:flex; gap:16px;
    align-items:flex-start;
}
.info-ico-fb {
    width:48px; height:48px;
    flex:0 0 auto; border-radius:14px;
    background:rgba(178,58,33,.1); display:grid;
    place-items:center;
}
.info-ico-fb svg {
    width:22px; height:22px;
    stroke:var(--brick-fb); fill:none;
    stroke-width:1.9; stroke-linecap:round;
    stroke-linejoin:round;
}
.depot-rows b {
    display:block; font-family:var(--display-fb);
    letter-spacing:.6px; text-transform:uppercase;
    font-size:.95rem;
}
.depot-rows a,.depot-rows span {
    color:var(--muted-fb); font-size:1rem;
}
.depot-rows a:hover {
    color:var(--brick-fb);
}
.map-well {
    border-radius:var(--radius-fb); overflow:hidden;
    box-shadow:var(--shadow-sm-fb); border:1px solid var(--line-fb);
    line-height:0;
}
.map-well iframe {
    width:100%; height:290px;
    border:0;
}
.clockface {
    background:#fff; border:1px solid var(--line-fb);
    border-radius:var(--radius-fb); padding:22px 24px;
    box-shadow:var(--shadow-sm-fb); margin-bottom:26px;
}
.clockface dl {
    display:grid; grid-template-columns:auto 1fr;
    gap:8px 18px; margin:0;
    font-size:.95rem;
}
.clockface dt {
    font-weight:700;
}
.clockface dd {
    margin:0; text-align:right;
    color:var(--muted-fb);
}
.footing {
    background:var(--charcoal-fb); color:#A99B8E;
    padding:70px 0 0; font-size:.95rem;
}
.foot-grid-fb {
    display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr;
    gap:38px; padding-bottom:44px;
}
.footing h4 {
    color:#fff; font-size:1rem;
    letter-spacing:1.6px; margin-bottom:18px;
}
.footing a {
    color:#A99B8E;
}
.footing a:hover {
    color:var(--ember-glow-fb);
}
.foot-links-fb {
    list-style:none; padding:0;
    margin:0; display:grid;
    gap:10px;
}
.foot-brand-fb {
    display:flex; align-items:center;
    gap:12px; margin-bottom:16px;
    color:#fff;
}
.foot-brand-fb strong {
    font-family:var(--display-fb); font-size:1.1rem;
    letter-spacing:.6px; text-transform:uppercase;
}
.foot-bottom-fb {
    border-top:1px solid rgba(255,255,255,.1); padding:20px 0;
    display:flex; flex-wrap:wrap;
    gap:10px 24px; justify-content:space-between;
    font-size:.84rem;
}
.orbit-dial {
    position:fixed; right:22px;
    bottom:26px; z-index:950;
    display:inline-flex; align-items:center;
    gap:12px; background:linear-gradient(135deg,var(--brick-fb),var(--brick-dark-fb));
    color:#fff; padding:15px 24px 15px 17px;
    border-radius:60px; font-weight:800;
    letter-spacing:.4px; box-shadow:0 16px 40px rgba(178,58,33,.5);
    transition:transform .3s cubic-bezier(.2,.8,.3,1),box-shadow .3s;
}
.orbit-dial:hover {
    transform:scale(1.06) translateY(-3px); color:#fff;
    box-shadow:0 22px 52px rgba(178,58,33,.6);
}
.orbit-dial .fc-ring-fb {
    position:relative; width:40px;
    height:40px; border-radius:50%;
    background:rgba(255,255,255,.18); display:grid;
    place-items:center; flex:0 0 auto;
}
.orbit-dial .fc-ring-fb::before,.orbit-dial .fc-ring-fb::after {
    content:""; position:absolute;
    inset:0; border-radius:50%;
    border:2px solid rgba(255,255,255,.6); animation:ring 2.6s ease-out infinite;
}
.orbit-dial .fc-ring-fb::after {
    animation-delay:1.3s;
}
@keyframes ring {
    0% {
        transform:scale(1); opacity:.85;
    }
    100% {
        transform:scale(2.1); opacity:0;
    }
}
.orbit-dial svg {
    width:20px; height:20px;
    stroke:#fff; fill:none;
    stroke-width:2; animation:shake 3.2s ease-in-out infinite;
}
@keyframes shake {
    0%,86%,100% {
        transform:rotate(0);
    }
    90% {
        transform:rotate(-14deg);
    }
    94% {
        transform:rotate(14deg);
    }
}
.orbit-dial .fc-txt-fb {
    display:flex; flex-direction:column;
    line-height:1.15;
}
.orbit-dial .fc-txt-fb small {
    font-size:.66rem; text-transform:uppercase;
    letter-spacing:1.4px; opacity:.85;
    font-weight:600;
}
.orbit-dial .fc-txt-fb b {
    font-family:var(--display-fb); font-size:1.12rem;
    letter-spacing:.6px;
}
.mitten-bar {
    display:none; position:fixed;
    left:0; right:0;
    bottom:0; z-index:960;
    background:rgba(25,21,19,.97); backdrop-filter:blur(12px);
    border-top:1px solid rgba(255,255,255,.12); padding:9px 10px calc(9px + env(safe-area-inset-bottom));
}
.mitten-bar ul {
    list-style:none; margin:0;
    padding:0; display:grid;
    grid-template-columns:1.4fr 1fr 1fr; gap:8px;
}
.mitten-bar a {
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    gap:3px; padding:9px 4px;
    border-radius:12px; color:#E8DCD2;
    font-size:.72rem; font-weight:700;
    letter-spacing:.4px; text-transform:uppercase;
}
.mitten-bar a svg {
    width:19px; height:19px;
    stroke:currentColor; fill:none;
    stroke-width:2; stroke-linecap:round;
    stroke-linejoin:round;
}
.mitten-bar .mb-call-fb {
    background:linear-gradient(135deg,var(--brick-fb),var(--brick-dark-fb)); color:#fff;
    box-shadow:0 6px 18px rgba(178,58,33,.5); animation:mbPulse 2.4s ease-in-out infinite;
}
@keyframes mbPulse {
    0%,100% {
        box-shadow:0 6px 18px rgba(178,58,33,.5);
    }
    50% {
        box-shadow:0 6px 26px rgba(240,128,60,.85);
    }
}
.summit {
    position:fixed; right:26px;
    bottom:104px; z-index:940;
    width:46px; height:46px;
    border-radius:50%; background:var(--charcoal-fb);
    color:#fff; display:grid;
    place-items:center; box-shadow:var(--shadow-fb);
    opacity:0; visibility:hidden;
    transform:translateY(10px); transition:.3s;
    border:0; cursor:pointer;
}
.summit.show-fb {
    opacity:1; visibility:visible;
    transform:translateY(0);
}
.summit svg {
    width:18px; height:18px;
    stroke:#fff; fill:none;
    stroke-width:2.6;
}
.thaw {
    opacity:0; transform:translateY(34px);
    transition:opacity .8s cubic-bezier(.2,.8,.3,1),transform .8s cubic-bezier(.2,.8,.3,1);
}
.thaw.infb {
    opacity:1; transform:none;
}
.thaw.wfb1 {
    transition-delay:.1s;
}
.thaw.wfb2 {
    transition-delay:.2s;
}
.thaw.wfb3 {
    transition-delay:.3s;
}
.thaw.wfb4 {
    transition-delay:.4s;
}
.thaw.wfb5 {
    transition-delay:.5s;
}
.thaw.wfb6 {
    transition-delay:.6s;
}
@media (max-width:1080px) {
    .lead-stage-grid {
        grid-template-columns:1fr; gap:44px;
    }
    .ticket-card {
        max-width:520px;
    }
    .gauge-row {
        grid-template-columns:repeat(2,1fr);
    }
    .beats {
        grid-template-columns:repeat(2,1fr); row-gap:38px;
    }
    .reviews-fb {
        grid-template-columns:1fr;
    }
    .foot-grid-fb {
        grid-template-columns:1fr 1fr;
    }
    .prints {
        grid-template-columns:repeat(3,1fr);
    }
}
@media (max-width:1440px) {
    .navspan {
        gap:18px;
    }
    .navspan a {
        font-size:.9rem;
    }
    .nav-phone-fb {
        display:none;
    }
}
@media (max-width:1240px) {
    .navspan {
        gap:15px;
    }
    .navspan a {
        font-size:.86rem;
    }
    .navspan li:has(.nav-opt-fb) {
        display:none;
    }
    .nav-opt-fb {
        display:none;
    }
}
@media (max-width:1150px) {
    .navspan {
        position:fixed; inset:var(--header-h-fb) 0 auto 0;
        background:var(--cream-fb); flex-direction:column;
        align-items:stretch; gap:0;
        padding:10px 6% 26px; border-bottom:1px solid var(--line-fb);
        box-shadow:var(--shadow-fb); transform:translateY(-135%);
        transition:transform .4s cubic-bezier(.2,.8,.3,1); max-height:calc(100vh - var(--header-h-fb));
        overflow:auto;
    }
    .navspan.open-fb {
        transform:translateY(0);
    }
    .navspan li:has(.nav-opt-fb) {
        display:block;
    }
    .nav-opt-fb {
        display:block;
    }
    .navspan li {
        border-bottom:1px solid var(--line-fb);
    }
    .navspan a {
        display:block; padding:15px 0;
        font-size:1.05rem;
    }
    .flapjack {
        display:block;
    }
    .nav-phone-fb {
        display:none;
    }
    .nav-cta-fb .key {
        padding:12px 20px; font-size:.92rem;
    }
    .sign-grid,.depot-grid {
        grid-template-columns:1fr; gap:34px;
    }
    .orbit-dial {
        display:none;
    }
    .mitten-bar {
        display:block;
    }
    body {
        padding-bottom:74px;
    }
    .summit {
        bottom:88px; right:16px;
    }
}
@media (max-width:640px) {
    body {
        font-size:16px;
    }
    .frost-bar .rail {
        justify-content:center; text-align:center;
        font-size:.8rem; gap:6px 16px;
        padding:7px 0;
    }
    .frost-bar .tb-hide-fb,.frost-bar .tb-news-fb {
        display:none;
    }
    .nav-call-txt-fb {
        display:none;
    }
    .nav-cta-fb .key {
        padding:12px 14px; border-radius:50%;
    }
    .nav-cta-fb {
        gap:9px;
    }
    .gauge-row,.beats {
        grid-template-columns:1fr 1fr; gap:14px;
    }
    .prints {
        grid-template-columns:repeat(2,1fr); gap:10px;
    }
    .print:nth-child(1),.print:nth-child(6) {
        grid-row:span 1; aspect-ratio:1;
    }
    .two-col-fb {
        grid-template-columns:1fr;
    }
    .form-card-fb {
        padding:26px 20px;
    }
    .foot-grid-fb {
        grid-template-columns:1fr; gap:30px;
    }
    .lead-stage-acts .key {
        flex:1 1 100%;
    }
    .navdeck {
        gap:8px;
    }
    .housemark {
        min-width:0; gap:9px;
    }
    .housemark-glyph {
        width:38px; height:38px;
    }
    .housemark-txt {
        min-width:0;
    }
    .housemark-txt span {
        font-size:.56rem; letter-spacing:1.2px;
        white-space:nowrap; overflow:hidden;
        text-overflow:ellipsis;
    }
    .housemark-txt strong {
        font-size:.85rem; white-space:nowrap;
        overflow:hidden; text-overflow:ellipsis;
    }
    .gauge-row .gauge {
        padding:20px 12px;
    }
    .svc-body-fb,.form-card-fb {
        overflow-wrap:break-word;
    }
}
@media (max-width:400px) {
    .rail {
        width:94%;
    }
    .beats {
        grid-template-columns:1fr; row-gap:34px;
    }
    .gauge-row {
        gap:10px;
    }
    .housemark-glyph {
        width:34px; height:34px;
    }
    .housemark-txt strong {
        font-size:.8rem;
    }
    .nav-cta-fb .key {
        padding:11px 13px;
    }
    .flapjack {
        width:44px;
    }
}
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after {
        animation-duration:.001ms!important; animation-iteration-count:1!important;
        transition-duration:.001ms!important;
    }
    html {
        scroll-behavior:auto;
    }
    .thaw {
        opacity:1; transform:none;
    }
}
@media print {
    .gable,.orbit-dial,.mitten-bar,.summit,#bg-fx-fb,.slider {
        display:none!important;
    }
    body {
        background:#fff; color:#000;
    }
}
.offer-free-fb {
    font-family:var(--display-fb); font-size:clamp(3rem,6.4vw,4.3rem);
    line-height:1; color:var(--brick-fb);
    text-align:center; letter-spacing:2px;
    margin:8px 0 2px;
}
.offer-free-fb small {
    display:block; font-family:var(--font-fb);
    font-size:.31em; letter-spacing:3.4px;
    color:var(--coast-fb); font-weight:800;
    margin-top:6px;
}
.ticket-card .offer-list-fb svg {
    stroke:var(--coast-fb);
}
.badge-free-fb {
    background:var(--coast-fb); box-shadow:0 8px 20px rgba(30,111,104,.42);
}
.tick-coast-fb {
    background:rgba(30,111,104,.22);
}
.tick-coast-fb svg {
    stroke:#7FD8CE;
}
.season-note {
    display:flex; gap:12px;
    align-items:flex-start; background:rgba(242,145,63,.1);
    border:1px solid rgba(242,145,63,.34); border-radius:14px;
    padding:16px 18px; margin-top:24px;
}
.season-note svg {
    width:22px; height:22px;
    flex:0 0 auto; margin-top:2px;
    stroke:var(--brick-fb); fill:none;
    stroke-width:2; stroke-linecap:round;
    stroke-linejoin:round;
}
.season-note p {
    margin:0; font-size:.94rem;
}
.parley-card {
    background:linear-gradient(158deg,var(--charcoal-fb) 0%,var(--charcoal-2-fb) 55%,#262A33 100%); color:#DCCFC3;
    border-radius:var(--radius-lg-fb); padding:38px 34px;
    box-shadow:var(--shadow-lg-fb); border:1px solid rgba(255,255,255,.09);
    position:relative; overflow:hidden;
}
.parley-card::before {
    content:""; position:absolute;
    top:-90px; right:-70px;
    width:260px; height:260px;
    border-radius:50%; background:radial-gradient(circle,rgba(242,145,63,.34),transparent 68%);
    filter:blur(14px); animation:float1 18s ease-in-out infinite;
}
.parley-card>* {
    position:relative; z-index:1;
}
.call-kicker-fb {
    display:inline-flex; align-items:center;
    gap:9px; color:var(--ember-glow-fb);
    font-weight:800; letter-spacing:2.4px;
    text-transform:uppercase; font-size:.74rem;
    margin-bottom:12px;
}
.call-kicker-fb::before {
    content:""; width:26px;
    height:2px; background:var(--ember-fb);
}
.parley-card h3 {
    color:#fff; font-size:clamp(1.4rem,2.4vw,1.9rem);
    margin-bottom:10px;
}
.parley-card p {
    color:#B5A79A; font-size:.99rem;
}
.call-number-fb {
    display:block; font-family:var(--display-fb);
    font-size:clamp(2.1rem,4.6vw,3rem); color:#fff;
    letter-spacing:1px; margin:20px 0 18px;
    text-align:center; transition:color .25s,transform .25s;
}
.call-number-fb:hover {
    color:var(--ember-glow-fb); transform:scale(1.03);
}
.call-hours-fb {
    text-align:center; font-size:.92rem;
    margin:18px 0 0; color:#B5A79A;
}
.call-hours-fb strong {
    color:#fff;
}
.call-expect-fb {
    margin-top:26px; padding-top:22px;
    border-top:1px solid rgba(255,255,255,.12);
}
.call-expect-fb h4 {
    color:#fff; font-size:.92rem;
    letter-spacing:1.8px; margin-bottom:14px;
}
.call-expect-fb ol {
    margin:0; padding:0;
    list-style:none; counter-reset:ce;
    display:grid; gap:12px;
}
.call-expect-fb li {
    counter-increment:ce; display:flex;
    gap:13px; align-items:flex-start;
    font-size:.94rem; color:#C3B5A8;
}
.call-expect-fb li::before {
    content:counter(ce); flex:0 0 auto;
    width:26px; height:26px;
    border-radius:8px; background:rgba(242,145,63,.18);
    color:var(--ember-glow-fb); font-family:var(--display-fb);
    font-size:.9rem; display:grid;
    place-items:center; margin-top:1px;
}
@media (max-width:640px) {
    .parley-card {
        padding:28px 22px;
    }
}
.review-fb p {
    font-size:.95rem; line-height:1.62;
}
.review-fb footer b {
    font-size:.92rem; line-height:1.3;
}
.review-fb .avatar-fb svg {
    display:block;
}
@media (max-width:1080px) {
    .reviews-fb {
        gap:22px;
    }
}
.mitten-bar ul.mb-two-fb {
    grid-template-columns:1.7fr 1fr;
}

/* smallest handsets: hold the gable to one row */
@media (max-width: 392px) {
    .housemark { flex: 1 1 auto; min-width: 0; overflow: hidden; }
    .housemark-txt strong, .housemark-txt span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
    .key-ember-fb.gable-dial { padding: 9px 12px; }
}
/* mitten bar carries exactly one button, edge to edge */
.mitten-bar ul { grid-template-columns: 1fr; }
