/* ── Theme guard ── */
html, body { margin: 0; padding: 0; }
#tsg-site { font-family: 'Montserrat', system-ui, sans-serif; color: #4A4F5C; line-height: 1.7; font-size: 16px; text-align: left; }
#tsg-site button, #tsg-site [type="button"], #tsg-site [type="submit"] {
  background: none; border: 0; border-radius: 0; box-shadow: none; color: inherit; padding: 0; margin: 0;
  font: inherit; line-height: inherit; letter-spacing: normal; text-transform: none; text-decoration: none;
  white-space: normal; width: auto; min-height: 0; transition: none; -webkit-appearance: none; appearance: none;
}
#tsg-site input, #tsg-site select, #tsg-site textarea { box-shadow: none; margin: 0; font: inherit; min-height: 0; max-width: none; }
#tsg-site a { color: inherit; text-decoration: none; box-shadow: none; }
#tsg-site img { height: auto; max-width: 100%; border: 0; border-radius: 0; box-shadow: none; }
#tsg-site h1, #tsg-site h2, #tsg-site h3, #tsg-site h4, #tsg-site h5, #tsg-site h6 { margin: 0; padding: 0; color: inherit; line-height: inherit; text-transform: none; letter-spacing: normal; }
#tsg-site p, #tsg-site ul, #tsg-site ol, #tsg-site li, #tsg-site figure, #tsg-site label { margin: 0; padding: 0; line-height: inherit; }
#tsg-site ul, #tsg-site ol { list-style: none; }
.admin-bar #tsg-site header.site { top: 32px; }
@media (max-width: 782px) { .admin-bar #tsg-site header.site { top: 46px; } }

:root, #tsg-site {
  --navy:#13285A;
  --navy-deep:#0B1A3E;
  --navy-soft:#1E3A78;
  --gold:#C9A24A;
  --gold-light:#E6CB85;
  --gold-ink:#A8822F;
  --cream:#F8F5EF;
  --ivory:#FDFBF7;
  --ink:#16181D;
  --body:#4A4F5C;
  --line:#E5DFD3;
  --radius:14px;
  --serif:'Playfair Display',Georgia,serif;
  --script:'Allura',cursive;
  --sans:'Montserrat',system-ui,sans-serif;
  --shadow:0 18px 50px -20px rgba(11,26,62,.35);
}
#tsg-site * {box-sizing:border-box;margin:0;padding:0}
html {scroll-behavior:smooth}
body {font-family:var(--sans);color:var(--body);background:var(--ivory);line-height:1.7;font-size:16px;overflow-x:hidden}
#tsg-site img {max-width:100%;height:auto;display:block}
#tsg-site a {color:inherit;text-decoration:none}
#tsg-site button {font:inherit;cursor:pointer;border:0;background:none;color:inherit}
#tsg-site .wrap {width:min(1600px,100% - 48px);margin-inline:auto}
#tsg-site svg.i {width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- type ---------- */
#tsg-site .h2 {font-family:var(--serif);font-weight:600;color:var(--ink);font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.12;letter-spacing:-.01em}
#tsg-site .h2 .nv {color:var(--navy)}
#tsg-site .h2 em {font-style:italic;color:var(--gold-ink)}
#tsg-site .script {font-family:var(--script);font-weight:400;color:var(--navy);font-size:1.25em;line-height:1;display:inline-block;transform:translateY(.06em)}
#tsg-site .eyebrow {font-size:.78rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-ink);display:flex;align-items:center;gap:14px}
#tsg-site .eyebrow::before {content:"";width:38px;height:1px;background:var(--gold)}
#tsg-site .lead {font-size:1.06rem;color:var(--body)}

/* ---------- buttons ---------- */
#tsg-site .btn {display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-weight:600;font-size:.86rem;letter-spacing:.14em;text-transform:uppercase;padding:16px 28px;border-radius:999px;transition:transform .25s,box-shadow .25s,background .25s,color .25s;white-space:nowrap}
#tsg-site .btn-navy {background:var(--navy);color:#fff;box-shadow:0 10px 24px -12px rgba(19,40,90,.8)}
#tsg-site .btn-navy:hover {background:var(--navy-deep);transform:translateY(-2px)}
#tsg-site .btn-gold {background:linear-gradient(135deg,#D8B464,#B8913A);color:var(--navy-deep);box-shadow:0 10px 24px -12px rgba(168,130,47,.9)}
#tsg-site .btn-gold:hover {transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(168,130,47,1)}
#tsg-site .btn-ghost {border:1.5px solid var(--navy);color:var(--navy)}
#tsg-site .btn-ghost:hover {background:var(--navy);color:#fff}
#tsg-site .btn-line-light {border:1.5px solid rgba(255,255,255,.5);color:#fff}
#tsg-site .btn-line-light:hover {background:#fff;color:var(--navy)}

/* ---------- top bar + header ---------- */
#tsg-site .topbar {background:var(--navy-deep);color:#D9DEEA;font-size:.84rem}
#tsg-site .topbar .wrap {display:flex;justify-content:space-between;align-items:center;min-height:42px;gap:20px}
#tsg-site .topbar .tb-r {display:flex;gap:26px;align-items:center}
#tsg-site .topbar a {display:inline-flex;align-items:center;gap:8px}
#tsg-site .topbar a:hover {color:var(--gold-light)}
#tsg-site .topbar .i {color:var(--gold)}
#tsg-site .topbar strong {color:#fff;font-weight:600}
#tsg-site header.site {position:sticky;top:0;z-index:50;background:rgba(253,251,247,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
#tsg-site header.site .wrap {display:flex;align-items:center;justify-content:space-between;min-height:96px;gap:24px}
#tsg-site .brand img {height:68px;width:auto}
#tsg-site nav.main {display:flex;gap:34px;align-items:center}
#tsg-site nav.main a {font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);position:relative;padding:8px 0;display:inline-flex;align-items:center;gap:6px}
#tsg-site nav.main a::after {content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold);transform:scaleX(0);transition:transform .3s}
#tsg-site nav.main a:hover::after, #tsg-site nav.main a.on::after {transform:scaleX(1)}
#tsg-site nav.main a.on {color:var(--navy)}
#tsg-site .hd-cta {display:flex;gap:12px}
#tsg-site .hd-cta .btn {padding:14px 22px;font-size:.78rem}
#tsg-site .hd-qm {display:none}
/* nav dropdowns */
#tsg-site .dd {position:relative;display:flex;align-items:center}
#tsg-site .dd::after {content:"";position:absolute;left:-10px;right:-10px;top:100%;height:16px}
#tsg-site .dd-tg {display:none}
#tsg-site .dd-menu {position:absolute;top:calc(100% + 12px);left:-18px;min-width:250px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:14px;box-shadow:var(--shadow);padding:10px;display:grid;gap:2px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s;z-index:70}
#tsg-site .dd-menu.dd-2 {grid-template-columns:1fr 1fr;min-width:470px}
#tsg-site .dd:hover .dd-menu, #tsg-site .dd:focus-within .dd-menu {opacity:1;visibility:visible;transform:none}
#tsg-site nav.main .dd-menu a {font-size:.86rem;letter-spacing:.01em;text-transform:none;font-weight:500;padding:9px 12px;border-radius:8px;color:var(--body);white-space:nowrap}
#tsg-site nav.main .dd-menu a::after {display:none}
#tsg-site nav.main .dd-menu a:hover {background:var(--cream);color:var(--navy)}
#tsg-site .hamburger {display:none;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--navy);color:var(--navy);align-items:center;justify-content:center;font-size:22px}

/* ---------- hero ---------- */
#tsg-site .hero {position:relative;overflow:hidden;background:
  radial-gradient(1200px 500px at 85% 10%,rgba(201,162,74,.12),transparent 60%),
  linear-gradient(180deg,var(--ivory),var(--cream))}
#tsg-site .hero-bg {position:absolute;inset:0 0 0 52%;background:url(../images/az-skyline-crop.jpg) center/cover;opacity:.95}
#tsg-site .hero-bg::before {content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--cream) 0%,rgba(248,245,239,.55) 30%,rgba(19,40,90,.15) 100%)}
#tsg-site .hero-stripe {position:absolute;top:-10%;bottom:-10%;left:49%;width:120px;background:linear-gradient(180deg,var(--gold-light),var(--gold));transform:skewX(-16deg);opacity:.55}
#tsg-site .hero-stripe.two {left:calc(49% + 140px);width:24px;opacity:.35}
#tsg-site .hero .wrap {position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:center;padding:64px 0 200px}
#tsg-site .hero-copy {padding-bottom:0}
#tsg-site .hero h1 {font-family:var(--serif);font-weight:700;font-size:clamp(2.6rem,4.7vw,4.6rem);line-height:1.04;color:var(--ink);letter-spacing:-.015em}
#tsg-site .hero h1 .nv {color:var(--navy)}
#tsg-site .hero h1 em {font-style:italic;font-weight:500;color:var(--gold-ink)}
#tsg-site .hero .sub {margin-top:26px;font-size:.92rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);line-height:1.6}
#tsg-site .hero .sub span {color:var(--gold);padding:0 8px}
#tsg-site .hero p.lead {margin-top:16px;max-width:620px}
#tsg-site .chips {display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}
#tsg-site .chip {display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:10px 24px 10px 10px;box-shadow:0 10px 30px -18px rgba(11,26,62,.4)}
#tsg-site .chip .ic {width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold-light);font-size:22px}
#tsg-site .chip b {font-family:var(--serif);font-size:1.15rem;color:var(--ink)}
#tsg-site .chip .stars {color:var(--gold);letter-spacing:2px;font-size:.95rem}
#tsg-site .chip small {display:block;font-size:.76rem;color:var(--body);font-style:italic;line-height:1.3}
#tsg-site .hero-photo {position:relative;justify-self:center;width:min(500px,100%)}
#tsg-site .arch {position:relative;border-radius:250px 250px 18px 18px;overflow:hidden;aspect-ratio:896/1152;background:var(--navy);box-shadow:var(--shadow)}
#tsg-site .arch img {width:100%;height:100%;object-fit:cover;object-position:center top}
#tsg-site .arch-wrap {position:relative}
#tsg-site .arch-line {position:absolute;inset:-14px;border:1.5px solid var(--gold);border-radius:264px 264px 26px 26px;pointer-events:none}
#tsg-site .namecard {position:absolute;left:-80px;bottom:56px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-left:3px solid var(--gold);padding:16px 26px;border-radius:6px;box-shadow:var(--shadow)}
#tsg-site .namecard b {display:block;font-family:var(--serif);font-size:1.5rem;color:var(--navy);line-height:1.2}
#tsg-site .namecard span {font-size:.8rem;color:var(--body);letter-spacing:.04em}

/* quote card under hero */
#tsg-site .qcard-wrap {position:relative;z-index:3;margin-top:-140px}
#tsg-site .qcard {background:#fff;border-radius:22px;box-shadow:0 30px 70px -30px rgba(11,26,62,.45);padding:44px 48px 36px;border:1px solid var(--line);position:relative}
#tsg-site .qcard::before {content:"";position:absolute;inset:10px;border:1px solid rgba(201,162,74,.35);border-radius:16px;pointer-events:none}
#tsg-site .qcard h2 {font-family:var(--serif);font-weight:600;text-align:center;font-size:clamp(1.7rem,2.6vw,2.4rem);color:var(--ink);line-height:1.2}
#tsg-site .qcard h2 em {color:var(--navy);font-style:italic}
#tsg-site .qcard p.c {text-align:center;margin-top:6px;font-size:.95rem}
#tsg-site .qtiles {display:grid;grid-template-columns:repeat(7,1fr);gap:14px;margin-top:28px}
#tsg-site .qtile {display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 8px 16px;border:1px solid var(--line);border-radius:14px;background:var(--ivory);transition:.25s;text-align:center;font-size:.82rem;font-weight:600;color:var(--ink);line-height:1.3}
#tsg-site .qtile .ic {width:58px;height:58px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:26px;transition:.25s;box-shadow:inset 0 0 0 3px var(--navy),inset 0 0 0 4.5px var(--gold-light)}
#tsg-site .qtile:hover {border-color:var(--gold);transform:translateY(-4px);box-shadow:0 16px 30px -18px rgba(11,26,62,.45);background:#fff}
#tsg-site .qtile:hover .ic {background:var(--gold);color:var(--navy-deep);box-shadow:inset 0 0 0 3px var(--gold),inset 0 0 0 4.5px #fff}
#tsg-site .qfoot {display:flex;justify-content:center;align-items:center;gap:22px;margin-top:24px;flex-wrap:wrap;font-size:.86rem}
#tsg-site .qfoot a {color:var(--navy);font-weight:600;display:inline-flex;gap:8px;align-items:center}
#tsg-site .qfoot a:hover {color:var(--gold-ink)}

/* ---------- divider + ribbons ---------- */
#tsg-site .mono-div {display:flex;align-items:center;gap:26px;margin:0 auto}
#tsg-site .mono-div::before, #tsg-site .mono-div::after {content:"";flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--gold))}
#tsg-site .mono-div::after {background:linear-gradient(90deg,var(--gold),transparent)}
#tsg-site .mono-div img {width:64px}
#tsg-site .ribbon {overflow:hidden;white-space:nowrap;padding:18px 0;font-family:var(--serif);font-size:1.35rem;letter-spacing:.06em}
#tsg-site .ribbon.navy {background:var(--navy);color:#fff}
#tsg-site .ribbon.gold {background:linear-gradient(90deg,#D8B464,#C9A24A,#D8B464);color:var(--navy-deep)}
#tsg-site .ribbon .track {display:inline-flex;gap:38px;align-items:center;animation:marq 38s linear infinite}
#tsg-site .ribbon .track span {display:inline-flex;align-items:center;gap:38px}
#tsg-site .ribbon .track img {height:30px;width:auto}
#tsg-site .ribbon i {font-style:italic;color:var(--gold-light)}
#tsg-site .ribbon.gold i {color:var(--navy)}
@keyframes marq{to{transform:translateX(-50%)}}

#tsg-site section {position:relative}
#tsg-site .pad {padding:120px 0}

/* ---------- reviews ---------- */
#tsg-site .reviews {background:var(--ivory)}
#tsg-site .reviews .h2 {text-align:center}
#tsg-site .reviews .h2 + p {text-align:center;margin-top:12px}
#tsg-site .carousel {position:relative;margin-top:56px;overflow:hidden;padding:20px 4px 30px}
#tsg-site .ctrack {display:flex;gap:28px;transition:transform .6s cubic-bezier(.65,.05,.2,1)}
#tsg-site .rcard {flex:0 0 calc((100% - 56px)/3);background:#fff;border:1px solid var(--line);border-radius:18px;padding:32px 32px 28px;position:relative;box-shadow:0 18px 40px -28px rgba(11,26,62,.35);display:flex;flex-direction:column}
#tsg-site .rcard .q {position:absolute;right:26px;top:14px;font-family:var(--serif);font-size:5rem;line-height:1;color:var(--gold-light);opacity:.6}
#tsg-site .rtop {display:flex;align-items:center;gap:16px}
#tsg-site .av {width:58px;height:58px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-family:var(--serif);font-size:1.4rem;box-shadow:0 0 0 3px #fff,0 0 0 4.5px var(--gold)}
#tsg-site .rtop b {font-family:var(--serif);font-size:1.2rem;color:var(--ink);display:block;line-height:1.2}
#tsg-site .rstars {position:relative;display:inline-block;font-size:1rem;letter-spacing:3px;color:#E3DED3;line-height:1.4}
#tsg-site .rstars::before {content:"★★★★★"}
#tsg-site .rstars span {position:absolute;inset:0;overflow:hidden;color:var(--gold);white-space:nowrap}
#tsg-site .rstars span::before {content:"★★★★★"}
#tsg-site .rcard p {margin-top:18px;font-family:var(--sans);font-size:.98rem;color:#3A3F4B;line-height:1.75;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
#tsg-site .rcard.full p {-webkit-line-clamp:unset}
#tsg-site .rmore {align-self:flex-start;margin-top:8px;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy);border-bottom:1px solid var(--gold)}
#tsg-site .rcard .sp {flex:1}
#tsg-site .ctrack {align-items:stretch}
#tsg-site .rcount {font-family:var(--serif);font-size:1.1rem;color:var(--ink);min-width:110px;text-align:center}
#tsg-site .rcount b {color:var(--navy)}
#tsg-site .rbar {height:3px;background:#E3DED3;border-radius:3px;margin:22px auto 0;max-width:420px;overflow:hidden}
#tsg-site .rbar i {display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--navy));transition:width .5s}
#tsg-site .rsrc {margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);font-weight:600}
#tsg-site .rsrc.ex {color:#B3261E}
#tsg-site .cnav {display:flex;justify-content:center;align-items:center;gap:26px;margin-top:20px}
#tsg-site .arrow {width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:22px;transition:.25s}
#tsg-site .arrow.prev {background:var(--navy-deep);color:#fff}
#tsg-site .arrow.next {background:var(--gold);color:var(--navy-deep)}
#tsg-site .arrow:hover {transform:scale(1.08)}
#tsg-site .dots {display:flex;gap:10px}
#tsg-site .dots button {width:10px;height:10px;border-radius:50%;background:#D7D1C4;transition:.3s}
#tsg-site .dots button.on {background:var(--navy);width:28px;border-radius:6px}

/* ---------- about ---------- */
#tsg-site .about {background:linear-gradient(180deg,var(--cream),var(--ivory))}
#tsg-site .about .wrap {display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
#tsg-site .ab-ph {display:flex;flex-direction:column;gap:20px;position:relative}
#tsg-site .ab-ph .row {display:grid;grid-template-columns:.5625fr 1fr;gap:20px}
#tsg-site .ab-ph figure {border-radius:16px;overflow:hidden;position:relative;box-shadow:var(--shadow);aspect-ratio:4/3}
#tsg-site .ab-ph .row figure:first-child {aspect-ratio:3/4}
#tsg-site .ab-ph figure img {width:100%;height:100%;object-fit:cover}
#tsg-site .ab-ph figcaption {position:absolute;left:12px;bottom:12px;background:rgba(11,26,62,.82);color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
#tsg-site .ab-badge {position:absolute;right:-24px;top:-30px;width:150px;height:150px;border-radius:50%;background:var(--navy);display:grid;place-items:center;text-align:center;color:#fff;box-shadow:0 0 0 8px var(--ivory),0 0 0 9.5px var(--gold),var(--shadow);z-index:2}
#tsg-site .ab-badge b {font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--gold-light);display:block}
#tsg-site .ab-badge small {font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;line-height:1.4;display:block;margin-top:4px}
#tsg-site .ab-copy .h2 {margin:18px 0 26px}
#tsg-site .ab-copy p + p {margin-top:18px}
#tsg-site .promise {margin-top:30px;background:var(--navy);color:#E8ECF5;border-radius:14px;padding:26px 30px;border-left:5px solid var(--gold);position:relative}
#tsg-site .promise b {color:var(--gold-light);font-family:var(--serif);font-size:1.1rem;font-weight:600}
#tsg-site .ab-copy .btns {display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}

/* V divider */
#tsg-site .vdiv {position:relative;height:200px;background:var(--ivory);overflow:hidden}
#tsg-site .vdiv::before {content:"";position:absolute;inset:auto 0 0 0;height:160px;background:var(--navy);clip-path:polygon(0 0,50% 62%,100% 0,100% 100%,0 100%)}
#tsg-site .vdiv::after {content:"";position:absolute;inset:auto 0 0 0;height:160px;background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold));clip-path:polygon(0 0,50% 62%,100% 0,100% 4%,50% 66%,0 4%)}
#tsg-site .vdiv img {position:absolute;left:50%;top:6px;transform:translateX(-50%);width:84px;z-index:2}

/* ---------- coverage ---------- */
#tsg-site .coverage {background:var(--navy);color:#C9D1E3;padding:40px 0 120px}
#tsg-site .coverage::before {content:"";position:absolute;inset:0;background:url(../images/tsg-monogram-white.png) right -120px top 60px/520px no-repeat;opacity:.035;pointer-events:none}
#tsg-site .cov-top {display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
#tsg-site .coverage .h2 {color:#fff}
#tsg-site .coverage .h2 em {color:var(--gold-light)}
#tsg-site .coverage .eyebrow {color:var(--gold-light)}
#tsg-site .coverage p.lead {color:#C9D1E3;margin-top:22px}
#tsg-site .coverage p.lead + p.lead {margin-top:14px}
#tsg-site .coverage .btn {margin-top:34px}
#tsg-site .cov-img {position:relative;border-radius:16px;overflow:hidden;aspect-ratio:1600/756;width:100%}
#tsg-site .cov-img img {width:100%;height:100%;object-fit:cover}
#tsg-site .cov-img::after {content:"";position:absolute;inset:12px;border:1px solid rgba(230,203,133,.75);border-radius:10px}
#tsg-site .cgrid {display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:80px}
#tsg-site .ccard {border:1px solid rgba(230,203,133,.35);border-radius:16px;padding:36px 30px 32px;text-align:center;background:rgba(255,255,255,.03);transition:.35s;position:relative;overflow:hidden}
#tsg-site .ccard .ic {width:74px;height:74px;margin:0 auto;border-radius:50%;display:grid;place-items:center;font-size:32px;color:var(--gold-light);border:1px solid rgba(230,203,133,.5);transition:.35s}
#tsg-site .ccard h3 {font-family:var(--serif);font-weight:600;color:#fff;font-size:1.4rem;margin-top:20px}
#tsg-site .ccard p {font-size:.94rem;margin-top:10px;color:#B9C2D8}
#tsg-site .ccard .more+.more-l {margin-left:18px}
#tsg-site .ccard h3 a:hover {color:var(--gold-light)}
#tsg-site .ccard:hover h3 a:hover {color:var(--gold-ink)}
#tsg-site .ccard .more {display:inline-flex;gap:8px;align-items:center;margin-top:18px;font-size:.74rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-light)}
#tsg-site .ccard:hover {background:linear-gradient(160deg,#fff,#F6EEDB);transform:translateY(-6px);border-color:var(--gold);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
#tsg-site .ccard:hover h3 {color:var(--navy)}
#tsg-site .ccard:hover p {color:var(--body)}
#tsg-site .ccard:hover .ic {background:var(--navy);color:var(--gold-light);border-color:var(--navy)}
#tsg-site .ccard:hover .more {color:var(--gold-ink)}

/* review band */
#tsg-site .cta-band {margin-top:-60px;position:relative;z-index:2}
#tsg-site .cta-band .in {background:linear-gradient(120deg,#fff 0%,var(--cream) 100%);border:1px solid var(--line);border-radius:20px;padding:30px 36px;display:flex;align-items:center;gap:26px;box-shadow:var(--shadow);position:relative;overflow:hidden}
#tsg-site .cta-band .in::after {content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(201,162,74,.35)}
#tsg-site .cta-band .ic {width:76px;height:76px;flex:none;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-size:32px}
#tsg-site .cta-band h3 {font-family:var(--serif);font-size:clamp(1.4rem,2.2vw,2rem);color:var(--ink);font-weight:600;line-height:1.2}
#tsg-site .cta-band p {font-size:.95rem;margin-top:4px}
#tsg-site .cta-band .btn {margin-left:auto;position:relative;z-index:1}

/* ---------- process ---------- */
#tsg-site .process .wrap {display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
#tsg-site .process .h2 {margin:18px 0 22px}
#tsg-site .steps {margin-top:40px;position:relative}
#tsg-site .steps::before {content:"";position:absolute;left:35px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--gold),var(--navy))}
#tsg-site .step {position:relative;margin-bottom:16px}
#tsg-site .step-h {width:100%;display:flex;align-items:center;gap:0;text-align:left;border-radius:12px;overflow:hidden;background:#EEEAE2;transition:.3s}
#tsg-site .step-h .ic {width:72px;height:68px;flex:none;display:grid;place-items:center;background:var(--navy);color:var(--gold-light);font-size:26px;position:relative;z-index:1}
#tsg-site .step-h .t {flex:1;padding:0 22px;font-size:.88rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
#tsg-site .step-h .t small {color:var(--gold-ink);margin-right:10px;font-family:var(--serif);font-size:1rem;letter-spacing:0}
#tsg-site .step-h .chev {padding-right:22px;font-size:20px;transition:transform .35s;color:var(--navy)}
#tsg-site .step.open .step-h {background:var(--navy)}
#tsg-site .step.open .step-h .t {color:#fff}
#tsg-site .step.open .step-h .ic {background:var(--gold);color:var(--navy-deep)}
#tsg-site .step.open .step-h .chev {transform:rotate(180deg);color:var(--gold-light)}
#tsg-site .acc-p {display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
#tsg-site .open > .acc-p {grid-template-rows:1fr}
#tsg-site .acc-p > div {overflow:hidden}
#tsg-site .step .acc-p p {margin:10px 0 4px 88px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 22px;font-size:.96rem}
#tsg-site .pr-img {position:relative;max-width:600px;margin-left:auto;width:100%}
#tsg-site .pr-img .main {border-radius:20px;overflow:hidden;aspect-ratio:3/4;max-width:600px;margin-left:auto;box-shadow:var(--shadow)}
#tsg-site .pr-img .main img {width:100%;height:100%;object-fit:cover}
#tsg-site .pr-img .tag {position:absolute;left:-40px;bottom:60px;background:#fff;border-radius:14px;padding:18px 22px;display:flex;gap:16px;align-items:center;box-shadow:var(--shadow);border-left:4px solid var(--gold);max-width:340px}
#tsg-site .pr-img .tag .ic {width:50px;height:50px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-size:22px;flex:none}
#tsg-site .pr-img .tag b {display:block;font-family:var(--serif);color:var(--navy);font-size:1.05rem;line-height:1.25}
#tsg-site .pr-img .tag span {font-size:.82rem;line-height:1.4;display:block}
#tsg-site .pr-img .mini {position:absolute;right:-26px;top:-26px;width:150px;height:150px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 6px var(--ivory),0 0 0 7.5px var(--gold),var(--shadow)}
#tsg-site .pr-img .mini img {width:100%;height:100%;object-fit:cover}

/* ---------- booking ---------- */
#tsg-site .book {background:linear-gradient(180deg,var(--cream),#F2EDE2)}
#tsg-site .book .head {text-align:center;max-width:780px;margin:0 auto}
#tsg-site .book .eyebrow {justify-content:center}
#tsg-site .book .eyebrow::after {content:"";width:38px;height:1px;background:var(--gold)}
#tsg-site .book .h2 {margin:16px 0 14px}
#tsg-site .bk {margin-top:54px;display:grid;grid-template-columns:320px 1fr 340px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 40px 80px -40px rgba(11,26,62,.5);border:1px solid var(--line);min-height:560px}
#tsg-site .bk-side {background:var(--navy);color:#C9D1E3;padding:36px 32px;position:relative;overflow:hidden}
#tsg-site .bk-side::after {content:"";position:absolute;right:-90px;bottom:-90px;width:260px;height:260px;background:url(../images/tsg-monogram-white.png) center/contain no-repeat;opacity:.06}
#tsg-site .bk-who {display:flex;gap:14px;align-items:center}
#tsg-site .bk-who img {width:62px;height:62px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--gold)}
#tsg-site .bk-who b {display:block;color:#fff;font-family:var(--serif);font-size:1.15rem;line-height:1.2}
#tsg-site .bk-who span {font-size:.78rem}
#tsg-site .bk-side h3 {font-family:var(--serif);color:#fff;font-size:1.6rem;font-weight:600;margin-top:28px;line-height:1.2}
#tsg-site .bk-types {display:flex;flex-direction:column;gap:10px;margin-top:20px}
#tsg-site .bk-type {display:flex;align-items:center;gap:14px;text-align:left;border:1px solid rgba(230,203,133,.3);border-radius:12px;padding:14px 16px;transition:.25s;color:#D9DEEA}
#tsg-site .bk-type .ic {font-size:20px;color:var(--gold-light)}
#tsg-site .bk-type b {display:block;font-size:.9rem;color:#fff;font-weight:600}
#tsg-site .bk-type small {font-size:.76rem}
#tsg-site .bk-type.on {background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}
#tsg-site .bk-type.on b, #tsg-site .bk-type.on .ic {color:var(--navy-deep)}
#tsg-site .bk-meta {margin-top:26px;display:flex;flex-direction:column;gap:12px;font-size:.84rem}
#tsg-site .bk-meta div {display:flex;gap:10px;align-items:flex-start}
#tsg-site .bk-meta .i {color:var(--gold-light);margin-top:4px}
#tsg-site .bk-cal {padding:36px 40px;border-right:1px solid var(--line)}
#tsg-site .cal-h {display:flex;justify-content:space-between;align-items:center}
#tsg-site .cal-h b {font-family:var(--serif);font-size:1.5rem;color:var(--ink);font-weight:600}
#tsg-site .cal-h .nav {display:flex;gap:8px}
#tsg-site .cal-h .nav button {width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);font-size:18px;transition:.2s}
#tsg-site .cal-h .nav button:hover:not(:disabled) {background:var(--navy);color:#fff}
#tsg-site .cal-h .nav button:disabled {opacity:.3;cursor:default}
#tsg-site .cal-g {display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:26px}
#tsg-site .cal-g .dow {text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.16em;color:var(--gold-ink);padding-bottom:6px}
#tsg-site .cal-g button {aspect-ratio:1;border-radius:50%;font-weight:600;font-size:.95rem;color:var(--navy);background:#F1EEE7;transition:.2s;max-width:58px;width:100%;justify-self:center}
#tsg-site .cal-g button:hover:not(:disabled) {background:var(--navy);color:#fff}
#tsg-site .cal-g button:disabled {background:none;color:#C4C0B7;cursor:default;font-weight:500}
#tsg-site .cal-g button.today {box-shadow:inset 0 0 0 1.5px var(--gold)}
#tsg-site .cal-g button.sel {background:var(--navy);color:var(--gold-light)}
#tsg-site .cal-note {margin-top:22px;font-size:.8rem;display:flex;gap:8px;align-items:center;color:#7A7F8C}
#tsg-site .bk-times {padding:36px 30px;display:flex;flex-direction:column;background:var(--ivory)}
#tsg-site .bk-times h4 {font-family:var(--serif);font-size:1.2rem;color:var(--ink);font-weight:600}
#tsg-site .bk-times .tz {font-size:.78rem;color:#7A7F8C}
#tsg-site .slots {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;overflow:auto;max-height:380px;padding-right:4px}
#tsg-site .slots button {border:1.5px solid var(--line);border-radius:10px;padding:12px 6px;font-weight:600;font-size:.88rem;color:var(--navy);background:#fff;transition:.2s}
#tsg-site .slots button:hover {border-color:var(--navy)}
#tsg-site .slots button.sel {background:var(--navy);border-color:var(--navy);color:#fff}
#tsg-site .bk-empty {margin:auto;text-align:center;color:#8A8F9B;font-size:.92rem;padding:20px}
#tsg-site .bk-empty .i {font-size:44px;color:var(--gold);margin:0 auto 12px;display:block}
#tsg-site .bk-form {display:flex;flex-direction:column;gap:12px;margin-top:18px}
#tsg-site .bk-sum {background:var(--navy);color:#fff;border-radius:12px;padding:14px 16px;font-size:.86rem;line-height:1.5}
#tsg-site .bk-sum b {color:var(--gold-light)}
#tsg-site .fld {width:100%;border:1.5px solid var(--line);border-radius:10px;padding:13px 14px;font:inherit;font-size:.92rem;background:#fff;color:var(--ink);transition:border-color .2s}
#tsg-site .fld:focus {outline:none;border-color:var(--navy)}
#tsg-site .bk-form .btn {margin-top:4px}
#tsg-site .linkbtn {font-size:.8rem;color:var(--navy);text-decoration:underline;align-self:flex-start}
#tsg-site .bk-done {margin:auto;text-align:center}
#tsg-site .bk-done .ok {width:74px;height:74px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-size:34px;margin:0 auto 18px;box-shadow:0 0 0 6px var(--ivory),0 0 0 7.5px var(--gold)}
#tsg-site .bk-done h4 {font-family:var(--serif);font-size:1.4rem;color:var(--ink)}
#tsg-site .bk-done p {font-size:.9rem;margin-top:8px}

/* ---------- FAQ ---------- */
#tsg-site .faq .h2 {text-align:center;margin-top:50px}
#tsg-site .faq-list {max-width:1100px;margin:56px auto 0;display:flex;flex-direction:column;gap:14px}
#tsg-site .fq {border-radius:12px;overflow:hidden;background:#EEEAE2;transition:background .3s}
#tsg-site .fq-h {width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 28px;text-align:left;font-weight:700;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
#tsg-site .fq-h .chev {font-size:20px;color:var(--navy);transition:transform .35s}
#tsg-site .fq.open {background:#fff;box-shadow:0 20px 40px -28px rgba(11,26,62,.4)}
#tsg-site .fq.open .fq-h {background:var(--navy);color:#fff}
#tsg-site .fq.open .fq-h .chev {transform:rotate(180deg);color:var(--gold-light)}
#tsg-site .fq .acc-p p {padding:20px 28px 24px}

/* ---------- areas ---------- */
#tsg-site .areas {background:var(--navy-deep);color:#C9D1E3}
#tsg-site .areas .wrap {display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
#tsg-site .areas .h2 {color:#fff;margin:16px 0 20px}
#tsg-site .areas .h2 em {color:var(--gold-light)}
#tsg-site .areas .eyebrow {color:var(--gold-light)}
#tsg-site .towns {display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:32px}
#tsg-site .town {display:flex;align-items:center;gap:12px;border:1px solid rgba(230,203,133,.3);border-radius:12px;padding:15px 18px;color:#fff;font-weight:600;letter-spacing:.06em;transition:.25s}
#tsg-site .town .i {color:var(--gold-light);font-size:18px}
#tsg-site .town:hover {background:rgba(230,203,133,.1);border-color:var(--gold)}
#tsg-site .town.all {grid-column:span 2;justify-content:center;background:var(--gold);color:var(--navy-deep);border-color:var(--gold)}
#tsg-site .town.all .i {color:var(--navy-deep)}
#tsg-site .map {border-radius:20px;overflow:hidden;aspect-ratio:1/1;position:relative;box-shadow:0 0 0 1px rgba(230,203,133,.4),0 30px 60px -30px #000}
#tsg-site .map iframe {width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05)}
#tsg-site .map .pin {position:absolute;left:20px;bottom:20px;right:20px;background:#fff;border-radius:14px;padding:18px 20px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow)}
#tsg-site .map .pin .ic {width:48px;height:48px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-size:22px;flex:none}
#tsg-site .map .pin b {display:block;font-family:var(--serif);color:var(--navy);font-size:1.05rem}
#tsg-site .map .pin span {font-size:.84rem;color:var(--body);line-height:1.4;display:block}
#tsg-site .map .pin a {margin-left:auto;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink);white-space:nowrap}

/* ---------- footer ---------- */
#tsg-site footer {background:var(--navy);color:#B9C2D8;padding:90px 0 0;font-size:.93rem}
#tsg-site .ft {display:grid;grid-template-columns:1.2fr .75fr .95fr .8fr 1.15fr;gap:44px}
#tsg-site .ft-brand img {width:250px}
#tsg-site .ft-brand p {margin-top:22px;max-width:320px;font-size:.88rem}
#tsg-site .ft-brand .btn {margin-top:26px}
#tsg-site footer h5 {font-family:var(--serif);font-size:1.25rem;color:#fff;font-weight:600;margin-bottom:22px;position:relative;padding-bottom:12px}
#tsg-site footer h5::after {content:"";position:absolute;left:0;bottom:0;width:36px;height:2px;background:var(--gold)}
#tsg-site .ft ul {list-style:none;display:flex;flex-direction:column;gap:12px}
#tsg-site .ft ul a {display:inline-flex;gap:10px;align-items:center;transition:color .2s}
#tsg-site .ft ul a .i {color:var(--gold);font-size:14px}
#tsg-site .ft ul a:hover {color:var(--gold-light)}
#tsg-site .ct {display:flex;flex-direction:column;gap:18px}
#tsg-site .ct div {display:flex;gap:14px;align-items:flex-start}
#tsg-site .ct .ic {width:42px;height:42px;border-radius:50%;border:1px solid rgba(230,203,133,.45);display:grid;place-items:center;color:var(--gold-light);font-size:18px;flex:none}
#tsg-site .ct small {display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:#8994AF}
#tsg-site .ct a, #tsg-site .ct span {color:#fff;font-weight:500}
#tsg-site .ct a:hover {color:var(--gold-light)}
#tsg-site .ft-bot {margin-top:70px;border-top:1px solid rgba(230,203,133,.2);padding:24px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem;color:#8994AF}
#tsg-site .ft-bot a:hover {color:var(--gold-light)}
#tsg-site .ft-bot .lk {display:flex;gap:22px}

/* ---------- team ---------- */
#tsg-site .team {background:var(--ivory)}
#tsg-site .team-head {display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end}
#tsg-site .team-head .lead {max-width:620px;justify-self:end}
#tsg-site .team-grid {display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:22px;margin-top:56px}
#tsg-site .tm {background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;cursor:pointer;transition:transform .35s,box-shadow .35s,border-color .35s;display:flex;flex-direction:column;outline:none}
#tsg-site .tm:hover, #tsg-site .tm:focus-visible {transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--gold)}
#tsg-site .tm-ph {position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--navy)}
#tsg-site .tm-ph img {width:100%;height:100%;object-fit:cover;object-position:center 20%;transition:transform .6s}
#tsg-site .tm:hover .tm-ph img {transform:scale(1.05)}
#tsg-site .tm-ph::after {content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,26,62,.75));opacity:0;transition:opacity .35s}
#tsg-site .tm:hover .tm-ph::after {opacity:1}
#tsg-site .tm-tags {position:absolute;left:12px;top:12px;display:flex;flex-wrap:wrap;gap:6px;z-index:1}
#tsg-site .tm-tags span {background:rgba(255,255,255,.92);color:var(--navy);font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:999px}
#tsg-site .tm-read {position:absolute;left:50%;bottom:18px;transform:translate(-50%,10px);z-index:1;opacity:0;transition:.35s;background:var(--gold);color:var(--navy-deep);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:9px 18px;border-radius:999px;white-space:nowrap}
#tsg-site .tm:hover .tm-read {opacity:1;transform:translate(-50%,0)}
#tsg-site .tm-in {padding:18px 20px 22px;border-top:3px solid var(--gold)}
#tsg-site .tm h3 {font-family:var(--serif);font-weight:600;font-size:1.22rem;color:var(--ink);line-height:1.25}
#tsg-site .tm-t {font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-ink);margin-top:6px;line-height:1.45}
#tsg-site .tm-hl {font-size:.86rem;margin-top:8px;line-height:1.5}
#tsg-site .tm-call {display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);width:100%;font-weight:700;font-size:.9rem;color:var(--navy);letter-spacing:.02em}
#tsg-site .tm-call .i {color:var(--gold-ink);font-size:15px}
#tsg-site .tm-call:hover {color:var(--gold-ink)}
#tsg-site .tm.feat {grid-row:span 2;background:var(--navy);border-color:var(--navy)}
#tsg-site .tm.feat .tm-ph {aspect-ratio:auto;flex:1;min-height:420px}
#tsg-site .tm.feat .tm-in {background:var(--navy);padding:26px 28px 30px}
#tsg-site .tm.feat h3 {color:#fff;font-size:1.8rem}
#tsg-site .tm.feat .tm-t {color:var(--gold-light)}
#tsg-site .tm.feat .tm-hl {color:#C9D1E3;font-size:.95rem}
#tsg-site .tm.feat .tm-tags span {background:var(--gold);color:var(--navy-deep)}
#tsg-site .bio {width:min(880px,100%);display:grid;grid-template-columns:320px 1fr}
#tsg-site .bio-ph {background:var(--navy);position:relative}
#tsg-site .bio-ph img {width:100%;height:100%;object-fit:cover;object-position:center 20%}
#tsg-site .bio-in {padding:44px 44px 36px}
#tsg-site .bio-in h3 {font-family:var(--serif);font-size:2rem;color:var(--ink);font-weight:600;line-height:1.15}
#tsg-site .bio-in .tm-t {font-size:.76rem;margin-top:8px}
#tsg-site .bio-txt {margin-top:20px;font-size:.96rem;max-height:46vh;overflow:auto;padding-right:6px}
#tsg-site .bio-txt p+p {margin-top:12px}
#tsg-site .bio-in .btns {display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
#tsg-site .bio .wz-close {background:rgba(19,40,90,.08);color:var(--navy)}
@media (max-width:1240px){
  #tsg-site .team-grid {grid-template-columns:repeat(3,1fr)}
  #tsg-site .tm.feat {grid-column:span 3;grid-row:auto;display:grid;grid-template-columns:340px 1fr}
  #tsg-site .tm.feat .tm-ph {min-height:0;aspect-ratio:4/5}
  #tsg-site .tm.feat .tm-in {display:flex;flex-direction:column;justify-content:center;border-top:0;border-left:3px solid var(--gold);padding:40px}
}
@media (max-width:1080px){
  #tsg-site .team-head {grid-template-columns:1fr;gap:18px}
  #tsg-site .team-head .lead {justify-self:start}
  #tsg-site .team-grid {grid-template-columns:repeat(3,1fr)}
  #tsg-site .tm.feat {grid-column:span 3}
}
@media (max-width:720px){
  #tsg-site .team-grid {grid-template-columns:repeat(2,1fr);gap:12px;margin-top:36px}
  #tsg-site .tm.feat {grid-column:span 2;grid-template-columns:1fr}
  #tsg-site .tm.feat .tm-in {border-left:0;border-top:3px solid var(--gold);padding:22px}
  #tsg-site .tm.feat h3 {font-size:1.5rem}
  #tsg-site .tm-in {padding:14px 14px 16px}
  #tsg-site .tm h3 {font-size:1.02rem}
  #tsg-site .tm-t {font-size:.62rem;letter-spacing:.06em}
  #tsg-site .tm-hl {display:none}
  #tsg-site .tm-call {font-size:.78rem;gap:6px;margin-top:8px;padding-top:8px}
  #tsg-site .tm.feat .tm-hl {display:block}
  #tsg-site .tm-tags {left:8px;top:8px}
  #tsg-site .tm-tags span {font-size:.56rem;padding:4px 8px}
  #tsg-site .tm-read {opacity:1;transform:translate(-50%,0);font-size:.6rem;padding:7px 12px;bottom:10px}
  #tsg-site .bio {grid-template-columns:1fr}
  #tsg-site .bio-ph {height:300px}
  #tsg-site .bio-in {padding:28px 22px 26px}
  #tsg-site .bio-in h3 {font-size:1.6rem}
}

/* honeypot: hidden from people, bots fill it in */
#tsg-site .hp {position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}

/* accessibility */
#tsg-site .skip {position:absolute;left:16px;top:-60px;z-index:200;background:var(--navy);color:#fff;padding:12px 20px;border-radius:8px;font-weight:600;transition:top .2s}
#tsg-site .skip:focus {top:12px}
#tsg-site :focus-visible {outline:3px solid var(--gold);outline-offset:3px}
#tsg-site .sr {position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){#tsg-site *, #tsg-site *::before, #tsg-site *::after {animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
#tsg-site .ft-legal {font-size:.74rem;color:#7F8AA6;line-height:1.6;margin-top:18px;max-width:1100px}

/* floating CTA */
#tsg-site .float-cta {position:fixed;right:24px;bottom:24px;z-index:60;box-shadow:0 18px 30px -12px rgba(11,26,62,.55)}

/* ---------- quote wizard modal ---------- */
#tsg-site .modal {position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;visibility:hidden;opacity:0;transition:opacity .35s,visibility .35s}
#tsg-site .modal.show {visibility:visible;opacity:1}
#tsg-site .modal .scrim {position:absolute;inset:0;background:rgba(11,26,62,.72);backdrop-filter:blur(6px)}
#tsg-site .wz {position:relative;width:min(860px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--ivory);border-radius:24px;box-shadow:0 50px 100px -30px rgba(0,0,0,.6);transform:translateY(24px) scale(.98);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
#tsg-site .modal.show .wz {transform:none}
#tsg-site .wz-top {background:var(--navy);color:#fff;padding:26px 36px 22px;position:relative;overflow:hidden}
#tsg-site .wz-top::after {content:"";position:absolute;right:-30px;top:-40px;width:180px;height:180px;background:url(../images/tsg-monogram-white.png) center/contain no-repeat;opacity:.08}
#tsg-site .wz-top .eyebrow {color:var(--gold-light);font-size:.7rem}
#tsg-site .wz-close {position:absolute;right:20px;top:20px;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;font-size:20px;z-index:2;transition:.2s}
#tsg-site .wz-close:hover {background:var(--gold);color:var(--navy-deep)}
#tsg-site .prog {display:flex;gap:8px;margin-top:16px}
#tsg-site .prog i {flex:1;height:4px;border-radius:4px;background:rgba(255,255,255,.18);transition:background .4s}
#tsg-site .prog i.on {background:var(--gold)}
#tsg-site .wz-body {padding:36px 40px 30px}
#tsg-site .wz-step {display:none;animation:fadeup .45s ease}
#tsg-site .wz-step.on {display:block}
@keyframes fadeup{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
#tsg-site .wz-step h3 {font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2rem);color:var(--ink);font-weight:600;line-height:1.2}
#tsg-site .wz-step h3 em {color:var(--navy)}
#tsg-site .wz-step > p {margin-top:6px;font-size:.92rem}
#tsg-site .opts {display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:24px}
#tsg-site .opt {border:1.5px solid var(--line);background:#fff;border-radius:14px;padding:18px 8px 14px;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.8rem;font-weight:600;color:var(--ink);text-align:center;line-height:1.3;transition:.2s;position:relative}
#tsg-site .opt .ic {font-size:28px;color:var(--navy)}
#tsg-site .opt:hover {border-color:var(--gold)}
#tsg-site .opt.on {border-color:var(--navy);background:var(--navy);color:#fff}
#tsg-site .opt.on .ic {color:var(--gold-light)}
#tsg-site .opt.on::after {content:"✓";position:absolute;top:8px;right:10px;width:20px;height:20px;border-radius:50%;background:var(--gold);color:var(--navy-deep);font-size:.7rem;display:grid;place-items:center}
#tsg-site .qgrp {margin-top:24px}
#tsg-site .qgrp label.l {display:block;font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:10px}
#tsg-site .pills {display:flex;gap:10px;flex-wrap:wrap}
#tsg-site .pill {border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:11px 20px;font-size:.88rem;font-weight:600;color:var(--navy);transition:.2s}
#tsg-site .pill:hover {border-color:var(--gold)}
#tsg-site .pill.on {background:var(--navy);border-color:var(--navy);color:#fff}
#tsg-site .frow {display:grid;grid-template-columns:1fr 1fr;gap:14px}
#tsg-site .consent {display:flex;gap:10px;align-items:flex-start;font-size:.74rem;line-height:1.5;color:#7A7F8C;margin-top:16px}
#tsg-site .consent input {margin-top:3px;accent-color:var(--navy)}
#tsg-site .wz-foot {display:flex;justify-content:space-between;align-items:center;padding:20px 40px 30px;gap:14px}
#tsg-site .wz-foot .back {font-weight:600;font-size:.84rem;color:var(--navy);display:inline-flex;gap:6px;align-items:center;letter-spacing:.1em;text-transform:uppercase}
#tsg-site .wz-foot .back[hidden] {display:inline-flex;visibility:hidden}
#tsg-site .wz-foot .btn:disabled {opacity:.4;cursor:not-allowed;transform:none}
#tsg-site .wz-done {text-align:center;padding:20px 0 10px}
#tsg-site .wz-done .ok {width:86px;height:86px;border-radius:50%;background:var(--navy);color:var(--gold-light);display:grid;place-items:center;font-size:40px;margin:0 auto 22px;box-shadow:0 0 0 7px var(--ivory),0 0 0 8.5px var(--gold)}
#tsg-site .wz-done p {max-width:480px;margin:10px auto 0}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  #tsg-site nav.main {gap:22px}
  #tsg-site .hd-cta .btn-ghost {display:none}
  #tsg-site .qtiles {grid-template-columns:repeat(4,1fr)}
  #tsg-site .bk {grid-template-columns:1fr 1fr}
  #tsg-site .bk-side {grid-column:span 2}
  #tsg-site .bk-types {flex-direction:row}
  #tsg-site .bk-type {flex:1}
}
@media (max-width:1080px){
  #tsg-site nav.main {display:none}
  #tsg-site .hamburger {display:inline-flex}
  #tsg-site header.site .wrap {gap:12px}
  #tsg-site .brand {margin-right:auto}
  #tsg-site .float-cta {display:none}
  #tsg-site nav.main.open {max-height:calc(100vh - 120px);overflow:auto}
  #tsg-site nav.main .dd {flex-wrap:wrap;width:100%}
  #tsg-site nav.main .dd::after {display:none}
  #tsg-site .dd-tg {display:inline-flex;margin-left:auto;width:38px;height:38px;align-items:center;justify-content:center;color:var(--navy);font-size:18px;transition:transform .3s}
  #tsg-site .dd.open .dd-tg {transform:rotate(180deg)}
  #tsg-site nav.main .dd>a .i {display:none}
  #tsg-site .dd-menu, #tsg-site .dd-menu.dd-2 {position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:2px solid var(--gold);border-radius:0;padding:2px 0 8px 12px;margin:2px 0 6px;display:none;width:100%;min-width:0;grid-template-columns:1fr}
  #tsg-site .dd.open .dd-menu {display:grid}
  #tsg-site .dd:hover .dd-menu {display:none}
  #tsg-site .dd.open:hover .dd-menu {display:grid}
  #tsg-site nav.main.open {display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:4px;background:var(--ivory);padding:16px 24px 24px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  #tsg-site .hero .wrap {grid-template-columns:1fr;min-height:0;padding-top:50px}
  #tsg-site .hero-copy {padding-bottom:0}
  #tsg-site .hero-bg {inset:auto 0 0 0;height:560px}
  #tsg-site .hero-stripe {display:none}
  #tsg-site .hero-photo {margin-top:30px;width:min(400px,86%)}
  #tsg-site .namecard {left:-30px;bottom:40px}
  #tsg-site .qcard-wrap {margin-top:-40px}
  #tsg-site .about .wrap, #tsg-site .cov-top, #tsg-site .process .wrap, #tsg-site .areas .wrap {grid-template-columns:1fr;gap:56px}
  #tsg-site .ab-badge {right:-8px}
  #tsg-site .cgrid {grid-template-columns:repeat(2,1fr)}
  #tsg-site .rcard {flex-basis:calc((100% - 28px)/2)}
  #tsg-site .pr-img .tag {left:16px}
  #tsg-site .pr-img .mini {right:10px}
  #tsg-site .ft {grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  #tsg-site .wrap {width:calc(100% - 32px)}
  #tsg-site .pad {padding:80px 0}
  #tsg-site .topbar .tb-l {display:none}
  #tsg-site .topbar .wrap {justify-content:center}
  #tsg-site .topbar .tb-r {gap:18px;font-size:.78rem}
  #tsg-site .topbar .tb-r .em {display:none}
  #tsg-site header.site .wrap {min-height:76px}
  #tsg-site .brand img {height:50px}
  #tsg-site .hd-cta {display:none}
  #tsg-site header.site .wrap {gap:10px}
  #tsg-site .brand {margin-right:auto}
  #tsg-site .hd-qm {display:inline-flex;padding:12px 16px;font-size:.68rem;letter-spacing:.12em}
  #tsg-site .hamburger {width:42px;height:42px;font-size:20px}
  #tsg-site .float-cta {display:none}
  #tsg-site .hero .sub span {display:none}
  #tsg-site .hero .sub b {display:block}
  #tsg-site .chip {padding-right:18px}
  #tsg-site .namecard {position:relative;left:auto;bottom:auto;margin:22px auto 0;width:fit-content;max-width:100%;text-align:center;border-left:0;border-top:3px solid var(--gold);padding:14px 22px}
  #tsg-site .namecard b {font-size:1.3rem}
  #tsg-site .hero .wrap {padding-bottom:90px}
  #tsg-site .qcard {padding:34px 18px 26px}
  #tsg-site .qcard::before {inset:6px}
  #tsg-site .qtiles {grid-template-columns:repeat(2,1fr);gap:10px}
  #tsg-site .qtiles .qtile:last-child {grid-column:span 2}
  #tsg-site .ribbon {font-size:1.05rem;padding:14px 0}
  #tsg-site .rcard {flex-basis:100%;padding:28px 24px}
  #tsg-site .ab-ph, #tsg-site .ab-ph .row {gap:12px}
  #tsg-site .ab-badge {width:104px;height:104px;right:-6px;top:-24px}
  #tsg-site .ab-badge b {font-size:2rem}
  #tsg-site .cgrid {grid-template-columns:1fr;margin-top:56px}
  #tsg-site .cta-band .in {flex-direction:column;text-align:center;padding:30px 22px}
  #tsg-site .cta-band .btn {margin:6px auto 0}
  #tsg-site .vdiv {height:130px}
  #tsg-site .vdiv::before, #tsg-site .vdiv::after {height:100px}
  #tsg-site .vdiv img {width:60px}
  #tsg-site .steps::before {left:27px}
  #tsg-site .step-h .ic {width:56px;height:62px;font-size:22px}
  #tsg-site .step-h .t {font-size:.78rem;padding:0 14px;letter-spacing:.06em}
  #tsg-site .step .acc-p p {margin-left:0}
  #tsg-site .pr-img .tag {position:relative;left:0;bottom:0;margin-top:-50px;margin-inline:14px}
  #tsg-site .pr-img .mini {width:100px;height:100px;top:-18px;right:-4px}
  #tsg-site .bk {grid-template-columns:1fr}
  #tsg-site .bk-side {grid-column:auto;padding:30px 22px}
  #tsg-site .bk-types {flex-direction:column}
  #tsg-site .bk-cal {padding:28px 18px;border-right:0;border-bottom:1px solid var(--line)}
  #tsg-site .cal-g {gap:4px}
  #tsg-site .bk-times {padding:28px 18px}
  #tsg-site .fq-h {padding:18px 20px;font-size:.8rem;letter-spacing:.05em}
  #tsg-site .fq .acc-p p {padding:18px 20px 20px}
  #tsg-site .towns {grid-template-columns:1fr}
  #tsg-site .town.all {grid-column:auto}
  #tsg-site .map {aspect-ratio:4/5}
  #tsg-site .map .pin {flex-wrap:wrap}
  #tsg-site .ft {grid-template-columns:1fr;gap:40px}
  #tsg-site .float-cta {right:14px;bottom:14px;padding:14px 22px}
  #tsg-site .wz-body {padding:28px 20px 20px}
  #tsg-site .wz-top {padding:22px 20px 18px}
  #tsg-site .wz-foot {padding:16px 20px 24px}
  #tsg-site .opts {grid-template-columns:repeat(2,1fr)}
  #tsg-site .frow {grid-template-columns:1fr}
}
