/* East Setauket — dress */
:root {
  --tv-brick:#B75434; --tv-brick-dark:#823A20; --tv-ember:#F4A961;
  --tv-ember-glow:#FCD9A4; --tv-coast:#1E6F68; --tv-charcoal:#12181A;
  --tv-charcoal-2:#232B2F; --tv-charcoal-3:#2F3B40; --tv-cream:#F5F0E5;
  --tv-cream-2:#EDE3D5; --tv-ink:#161D20; --tv-muted:#6E635B;
  --tv-line:rgba(25,21,19,.12); --tv-gold:#DBBA66; --tv-green-ok:#2E7D51;
  --tv-radius:16px; --tv-radius-lg:26px; --tv-shadow-sm:0 4px 14px rgba(25,21,19,.08);
  --tv-shadow:0 14px 40px rgba(25,21,19,.14); --tv-shadow-lg:0 30px 70px rgba(25,21,19,.26); --tv-wrap:1200px;
  --tv-font:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; --tv-display:'Oswald','Barlow Condensed',var(--tv-font); --tv-header-h: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(--tv-font); color:var(--tv-ink);
  background:var(--tv-cream); 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(--tv-brick); text-decoration:none;
}
a:hover {
  color:var(--tv-brick-dark);
}
button {
  font-family:inherit;
}
h1,h2,h3,h4 {
  font-family:var(--tv-display); 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;
}
.greenway {
  width:min(var(--tv-wrap),92%); margin-inline:auto;
}
.center-tv {
  text-align:center;
}
.sr-only-tv {
  position:absolute; width:1px; height:1px;
  padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.shortcut-link {
  position:absolute; left:-9999px; top:0;
  background:var(--tv-brick); color:#fff; padding:12px 20px;
  z-index:9999;
}
.shortcut-link:focus {
  left:10px; top:10px;
}
:focus-visible {
  outline:3px solid var(--tv-ember); outline-offset:3px;
}
#bg-fx-tv {
  position:fixed; inset:0; z-index:0;
  pointer-events:none; overflow:hidden;
}
#emberCanvas-tv {
  position:absolute; inset:0; width:100%;
  height:100%; opacity:.55;
}
.orb-tv {
  position:absolute; border-radius:50%; filter:blur(70px);
  opacity:.34; will-change:transform;
}
.orb-1-tv {
  width:520px; height:520px; background:radial-gradient(circle at 30% 30%,var(--tv-ember),transparent 68%);
  top:-140px; left:-120px; animation:float1 26s ease-in-out infinite;
}
.orb-2-tv {
  width:640px; height:640px; background:radial-gradient(circle at 60% 40%,var(--tv-brick),transparent 66%);
  top:38%; right:-220px; animation:float2 32s ease-in-out infinite;
}
.orb-3-tv {
  width:420px; height:420px; background:radial-gradient(circle at 50% 50%,var(--tv-gold),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,.eave-bar {
  position:relative; z-index:1;
}
.knock {
  --tv-bg:var(--tv-brick); --tv-fg:#fff; display:inline-flex;
  align-items:center; justify-content:center; gap:.6rem;
  background:var(--tv-bg); color:var(--tv-fg); 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;
}
.knock:hover {
  transform:translateY(-3px); box-shadow:0 18px 40px rgba(178,58,33,.42); color:#fff;
}
.knock:active {
  transform:translateY(-1px);
}
.knock::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-tv {
  --tv-bg:linear-gradient(135deg,var(--tv-ember),var(--tv-brick)); box-shadow:0 10px 26px rgba(240,128,60,.4);
}
.btn-ghost-tv {
  --tv-bg:transparent; --tv-fg:#fff; border:2px solid rgba(255,255,255,.6);
  box-shadow:none;
}
.btn-ghost-tv:hover {
  background:rgba(255,255,255,.12); box-shadow:none;
}
.btn-dark-tv {
  --tv-bg:var(--tv-charcoal); box-shadow:0 10px 26px rgba(25,21,19,.3);
}
.btn-lg-tv {
  padding:19px 38px; font-size:1.12rem;
}
.btn-block-tv {
  display:flex; width:100%;
}
.eave-bar {
  background:var(--tv-charcoal); color:#DCCFC2; font-size:.86rem;
  letter-spacing:.3px;
}
.eave-bar .greenway {
  display:flex; flex-wrap:wrap; gap:8px 26px;
  align-items:center; justify-content:space-between; padding:9px 0;
}
.eave-bar b {
  color:#fff;
}
.eave-bar .tb-item-tv {
  display:inline-flex; align-items:center; gap:7px;
}
.dot-live-tv {
  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);
  }
}
.threshold {
  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(--tv-line); transition:box-shadow .3s,background .3s;
}
.threshold.scrolled-tv {
  box-shadow:0 8px 30px rgba(25,21,19,.13); background:rgba(246,240,231,.96);
}
.threshold .greenway {
  width:min(1360px,94%);
}
.navgreen {
  display:flex; align-items:center; justify-content:space-between;
  gap:18px; min-height:var(--tv-header-h);
}
.weathervane {
  display:flex; align-items:center; gap:12px;
  color:var(--tv-ink); flex:0 0 auto;
}
.weathervane:hover {
  color:var(--tv-ink);
}
.weathervane-glyph {
  width:46px; height:46px; flex:0 0 auto;
  filter:drop-shadow(0 4px 8px rgba(178,58,33,.3));
}
.weathervane-txt {
  display:flex; flex-direction:column; line-height:1.05;
}
.weathervane-txt strong {
  font-family:var(--tv-display); font-size:1.06rem; letter-spacing:.6px;
  text-transform:uppercase;
}
.weathervane-txt span {
  font-size:.7rem; letter-spacing:2.4px; text-transform:uppercase;
  color:var(--tv-brick); font-weight:600;
}
.navpath {
  display:flex; align-items:center; gap:22px;
  list-style:none; margin:0; padding:0;
}
.navpath a {
  color:var(--tv-ink); font-weight:600; font-size:.92rem;
  white-space:nowrap; position:relative; padding:6px 0;
}
.navpath a::after {
  content:""; position:absolute; left:0;
  bottom:0; height:2px; width:0;
  background:var(--tv-brick); transition:width .28s;
}
.navpath a:hover::after,.navpath a.active-tv::after {
  width:100%;
}
.nav-cta-tv {
  display:flex; align-items:center; gap:14px;
  flex:0 0 auto;
}
.nav-phone-tv {
  display:flex; flex-direction:column; line-height:1.1;
  text-align:right;
}
.nav-phone-tv small {
  font-size:.68rem; text-transform:uppercase; letter-spacing:1.4px;
  color:var(--tv-muted);
}
.nav-phone-tv b {
  font-family:var(--tv-display); font-size:1.22rem; color:var(--tv-brick);
}
.threebar {
  display:none; width:48px; height:44px;
  border:1px solid var(--tv-line); background:#fff; border-radius:12px;
  cursor:pointer; padding:0; position:relative;
}
.threebar span {
  position:absolute; left:13px; width:22px;
  height:2px; background:var(--tv-ink); transition:.3s;
}
.threebar span:nth-child(1) {
  top:15px;
}
.threebar span:nth-child(2) {
  top:21px;
}
.threebar span:nth-child(3) {
  top:27px;
}
.threebar[aria-expanded="true"] span:nth-child(1) {
  top:21px; transform:rotate(45deg);
}
.threebar[aria-expanded="true"] span:nth-child(2) {
  opacity:0;
}
.threebar[aria-expanded="true"] span:nth-child(3) {
  top:21px; transform:rotate(-45deg);
}
.prospect {
  position:relative; color:#fff; padding:clamp(56px,8vw,104px) 0 clamp(70px,9vw,120px);
  overflow:hidden; isolation:isolate;
}
.prospect-veil {
  position:absolute; inset:0; z-index:-2;
}
.prospect-veil 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);
  }
}
.prospect::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%);
}
.prospect-grid {
  display:grid; grid-template-columns:1.15fr .85fr; gap:52px;
  align-items:center;
}
.eyebrow-tv {
  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);
}
.prospect h1 {
  color:#fff; text-shadow:0 6px 30px rgba(0,0,0,.4);
}
.prospect h1 .lamplit {
  color:var(--tv-ember-glow); display:inline-block;
}
.prospect-sub {
  font-size:clamp(1.02rem,1.5vw,1.2rem); color:#EADFD4; max-width:610px;
}
.prospect-moves {
  display:flex; flex-wrap:wrap; gap:14px;
  margin:30px 0 26px;
}
.prospect-vows {
  display:flex; flex-wrap:wrap; gap:10px 22px;
  list-style:none; padding:0; margin:0;
  font-size:.92rem; color:#E6DAD0;
}
.prospect-vows li {
  display:flex; align-items:center; gap:8px;
}
.tick-tv {
  width:20px; height:20px; flex:0 0 auto;
  border-radius:50%; background:rgba(73,199,126,.2); display:grid;
  place-items:center;
}
.tick-tv svg {
  width:12px; height:12px; stroke:#6BE39C;
  fill:none; stroke-width:3;
}
.handshake-card {
  background:linear-gradient(160deg,rgba(255,255,255,.98),rgba(246,240,231,.94)); color:var(--tv-ink); border-radius:var(--tv-radius-lg);
  padding:30px 28px; box-shadow:var(--tv-shadow-lg); 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-tv {
  position:absolute; top:-18px; right:-10px;
  background:var(--tv-brick); color:#fff; font-family:var(--tv-display);
  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-tv {
  font-family:var(--tv-display); font-size:clamp(3.4rem,7vw,4.6rem); line-height:1;
  color:var(--tv-brick); display:flex; align-items:flex-start;
  gap:4px; justify-content:center; margin:6px 0 2px;
}
.offer-price-tv sup {
  font-size:.42em; margin-top:.32em;
}
.handshake-card h2 {
  font-size:1.32rem; margin-bottom:4px; text-align:center;
}
.handshake-card .offer-kicker-tv {
  text-align:center; color:var(--tv-muted); font-size:.9rem;
  margin-bottom:16px;
}
.offer-list-tv {
  list-style:none; margin:0 0 20px; padding:0;
  display:grid; gap:9px; font-size:.95rem;
}
.offer-list-tv li {
  display:flex; gap:10px; align-items:flex-start;
}
.offer-list-tv svg {
  width:18px; height:18px; flex:0 0 auto;
  margin-top:3px; stroke:var(--tv-brick); fill:none;
  stroke-width:3;
}
.offer-fine-tv {
  font-size:.76rem; color:var(--tv-muted); text-align:center;
  margin:12px 0 0; line-height:1.5;
}
.millrace {
  background:var(--tv-charcoal-2); color:#CBBDB0; overflow:hidden;
  padding:13px 0; border-block:1px solid rgba(255,255,255,.07);
}
.millrace-run {
  display:flex; gap:52px; white-space:nowrap;
  width:max-content; animation:scrollX 34s linear infinite; font-family:var(--tv-display);
  letter-spacing:2px; font-size:.94rem; text-transform:uppercase;
}
.millrace-run span {
  display:inline-flex; align-items:center; gap:12px;
}
.millrace-run b {
  color:var(--tv-ember);
}
@keyframes scrollX {
  to {
    transform:translateX(-50%);
  }
}
section {
  padding:clamp(56px,7vw,100px) 0; position:relative;
}
.chapter-crest {
  max-width:760px; margin:0 auto 52px;
}
.chapter-crest.left-tv {
  margin-inline:0;
}
.inkline {
  display:inline-flex; align-items:center; gap:9px;
  color:var(--tv-brick); font-weight:800; letter-spacing:2.4px;
  text-transform:uppercase; font-size:.78rem; margin-bottom:14px;
}
.inkline::before {
  content:""; width:28px; height:2px;
  background:var(--tv-brick);
}
.annotation {
  font-size:1.06rem; color:var(--tv-muted);
}
.clapboard-zone {
  background:linear-gradient(180deg,rgba(237,227,213,.75),rgba(246,240,231,.4));
}
.harborside-zone {
  background:var(--tv-charcoal); color:#DDD1C6;
}
.harborside-zone h2,.harborside-zone h3 {
  color:#fff;
}
.harborside-zone .annotation {
  color:#B7A99C;
}
.harborside-zone .inkline {
  color:var(--tv-ember-glow);
}
.harborside-zone .inkline::before {
  background:var(--tv-ember);
}
.milestone-row {
  display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
}
.milestone {
  background:#fff; border-radius:var(--tv-radius); padding:26px 20px;
  text-align:center; box-shadow:var(--tv-shadow-sm); border:1px solid var(--tv-line);
  transition:transform .3s,box-shadow .3s;
}
.milestone:hover {
  transform:translateY(-7px); box-shadow:var(--tv-shadow);
}
.milestone b {
  display:block; font-family:var(--tv-display); font-size:clamp(2rem,3.6vw,2.9rem);
  color:var(--tv-brick); line-height:1;
}
.milestone span {
  font-size:.87rem; color:var(--tv-muted); letter-spacing:.6px;
}
.svc-grid-tv {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(295px,1fr)); gap:26px;
}
.trade-ledger {
  background:#fff; border-radius:var(--tv-radius-lg); overflow:hidden;
  box-shadow:var(--tv-shadow-sm); border:1px solid var(--tv-line); display:flex;
  flex-direction:column; transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s;
}
.trade-ledger:hover {
  transform:translateY(-10px); box-shadow:var(--tv-shadow-lg);
}
.svc-media-tv {
  position:relative; aspect-ratio:16/10; overflow:hidden;
  background:var(--tv-charcoal-3);
}
.svc-media-tv img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.8,.3,1);
}
.trade-ledger:hover .svc-media-tv img {
  transform:scale(1.09);
}
.svc-media-tv::after {
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 42%,rgba(20,16,14,.72));
}
.svc-ico-tv {
  position:absolute; left:18px; bottom:16px;
  z-index:2; width:46px; height:46px;
  border-radius:13px; background:var(--tv-brick); display:grid;
  place-items:center; box-shadow:0 8px 20px rgba(178,58,33,.45);
}
.svc-ico-tv svg {
  width:24px; height:24px; stroke:#fff;
  fill:none; stroke-width:1.9; stroke-linecap:round;
  stroke-linejoin:round;
}
.svc-body-tv {
  padding:24px 24px 26px; display:flex; flex-direction:column;
  flex:1;
}
.svc-body-tv h3 {
  margin-bottom:8px;
}
.svc-body-tv p {
  font-size:.95rem; color:var(--tv-muted); margin-bottom:16px;
}
.svc-body-tv ul {
  list-style:none; margin:0 0 18px; padding:0;
  font-size:.9rem; display:grid; gap:6px;
}
.svc-body-tv li {
  display:flex; gap:9px; align-items:flex-start;
  color:#4A423C;
}
.svc-body-tv li::before {
  content:""; width:7px; height:7px;
  border-radius:50%; background:var(--tv-ember); flex:0 0 auto;
  margin-top:8px;
}
.svc-link-tv {
  margin-top:auto; font-weight:700; display:inline-flex;
  align-items:center; gap:8px; font-size:.95rem;
}
.svc-link-tv svg {
  width:16px; height:16px; stroke:currentColor;
  fill:none; stroke-width:2.4; transition:transform .3s;
}
.trade-ledger:hover .svc-link-tv svg {
  transform:translateX(5px);
}
.notice-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:52px;
  align-items:center;
}
.notice-list {
  display:grid; gap:14px; margin:0;
  padding:0; list-style:none;
}
.notice-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;
}
.notice-list li:hover {
  transform:translateX(7px); border-color:rgba(240,128,60,.55); background:rgba(240,128,60,.08);
}
.notice-list .witv {
  width:38px; height:38px; flex:0 0 auto;
  border-radius:11px; background:rgba(240,128,60,.16); display:grid;
  place-items:center;
}
.notice-list .witv svg {
  width:20px; height:20px; stroke:var(--tv-ember-glow);
  fill:none; stroke-width:2; stroke-linecap:round;
  stroke-linejoin:round;
}
.notice-list b {
  display:block; color:#fff; font-family:var(--tv-display);
  letter-spacing:.5px; font-size:1.02rem; text-transform:uppercase;
}
.notice-list span {
  font-size:.92rem; color:#B3A599;
}
.notice-plate {
  position:relative; border-radius:var(--tv-radius-lg); overflow:hidden;
  box-shadow:var(--tv-shadow-lg);
}
.notice-plate img {
  width:100%; aspect-ratio:4/5; object-fit:cover;
}
.notice-mark {
  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;
}
.notice-mark b {
  font-family:var(--tv-display); display:block; color:var(--tv-ember-glow);
  letter-spacing:1px;
}
.notice-mark span {
  font-size:.88rem; color:#C7B9AC;
}
.stride-set {
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  counter-reset:step; position:relative;
}
.stride-tv {
  background:#fff; border-radius:var(--tv-radius); padding:34px 24px 26px;
  box-shadow:var(--tv-shadow-sm); border:1px solid var(--tv-line); position:relative;
  transition:transform .35s,box-shadow .35s;
}
.stride-tv:hover {
  transform:translateY(-8px); box-shadow:var(--tv-shadow);
}
.step-n-tv {
  position:absolute; top:-20px; left:24px;
  width:44px; height:44px; border-radius:14px;
  background:linear-gradient(140deg,var(--tv-ember),var(--tv-brick)); color:#fff; font-family:var(--tv-display);
  font-size:1.3rem; display:grid; place-items:center;
  box-shadow:0 10px 22px rgba(178,58,33,.35);
}
.stride-tv h3 {
  font-size:1.12rem; margin-top:8px;
}
.stride-tv p {
  font-size:.93rem; color:var(--tv-muted); margin:0;
}
.tintype-wall {
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
.tintype {
  position:relative; border-radius:18px; overflow:hidden;
  box-shadow:var(--tv-shadow-sm); aspect-ratio:1; background:var(--tv-charcoal-3);
}
.tintype:nth-child(1),.tintype:nth-child(6) {
  grid-row:span 2; aspect-ratio:1/2.06;
}
.tintype img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.8,.3,1);
}
.tintype:hover img {
  transform:scale(1.1);
}
.tintype 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;
}
.tintype:hover figcaption {
  transform:translateY(0); opacity:1;
}
.reviews-tv {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.review-tv {
  background:#fff; border-radius:var(--tv-radius); padding:28px 26px;
  box-shadow:var(--tv-shadow-sm); border:1px solid var(--tv-line); position:relative;
  transition:transform .35s,box-shadow .35s;
}
.review-tv:hover {
  transform:translateY(-8px); box-shadow:var(--tv-shadow);
}
.review-tv .quote-tv {
  position:absolute; top:16px; right:22px;
  font-family:var(--tv-display); font-size:4.2rem; color:rgba(178,58,33,.13);
  line-height:1;
}
.stars-tv {
  display:flex; gap:3px; margin-bottom:12px;
}
.stars-tv svg {
  width:18px; height:18px; fill:var(--tv-gold);
}
.review-tv p {
  font-size:.98rem; color:#4A423C;
}
.review-tv footer {
  display:flex; align-items:center; gap:12px;
  margin-top:16px; border-top:1px solid var(--tv-line); padding-top:14px;
}
.avatar-tv {
  width:42px; height:42px; border-radius:50%;
  background:linear-gradient(140deg,var(--tv-brick),var(--tv-ember)); color:#fff; display:grid;
  place-items:center; font-family:var(--tv-display); font-size:1.05rem;
  flex:0 0 auto;
}
.review-tv footer b {
  display:block; font-size:.95rem;
}
.review-tv footer span {
  font-size:.8rem; color:var(--tv-muted);
}
.hamlet-roll {
  display:flex; flex-wrap:wrap; gap:11px;
  justify-content:center; list-style:none; padding:0;
  margin:0 0 30px;
}
.hamlet-roll li {
  background:#fff; border:1px solid var(--tv-line); border-radius:60px;
  padding:10px 20px; font-size:.92rem; font-weight:600;
  box-shadow:var(--tv-shadow-sm); transition:transform .25s,background .25s,color .25s,border-color .25s;
}
.hamlet-roll li:hover {
  transform:translateY(-4px); background:var(--tv-brick); color:#fff;
  border-color:var(--tv-brick);
}
.hearthside-set {
  max-width:880px; margin-inline:auto;
}
.hearthside-set details {
  background:#fff; border:1px solid var(--tv-line); border-radius:14px;
  margin-bottom:12px; box-shadow:var(--tv-shadow-sm); overflow:hidden;
  transition:box-shadow .3s;
}
.hearthside-set details[open] {
  box-shadow:var(--tv-shadow);
}
.hearthside-set summary {
  cursor:pointer; list-style:none; padding:20px 58px 20px 22px;
  font-weight:700; font-size:1.03rem; position:relative;
}
.hearthside-set summary::-webkit-details-marker {
  display:none;
}
.hearthside-set summary::after {
  content:""; position:absolute; right:22px;
  top:50%; width:12px; height:12px;
  border-right:2.6px solid var(--tv-brick); border-bottom:2.6px solid var(--tv-brick); transform:translateY(-70%) rotate(45deg);
  transition:transform .3s;
}
.hearthside-set details[open] summary::after {
  transform:translateY(-25%) rotate(-135deg);
}
.hearthside-set .hearthside-open {
  padding:0 22px 20px; color:var(--tv-muted); font-size:.97rem;
}
.hearthside-set .hearthside-open p:last-child {
  margin-bottom:0;
}
.townbell-band {
  position:relative; color:#fff; text-align:center;
  overflow:hidden; isolation:isolate;
}
.townbell-band .townbell-veil {
  position:absolute; inset:0; z-index:-2;
}
.townbell-band .townbell-veil img {
  width:100%; height:100%; object-fit:cover;
}
.townbell-band::before {
  content:""; position:absolute; inset:0;
  z-index:-1; background:linear-gradient(120deg,rgba(140,43,22,.94),rgba(25,21,19,.9));
}
.townbell-band h2 {
  color:#fff; font-size:clamp(2rem,4.4vw,3.3rem);
}
.townbell-band p {
  color:#EFE3D8; max-width:660px; margin-inline:auto;
  font-size:1.06rem;
}
.townbell-moves {
  display:flex; gap:15px; justify-content:center;
  flex-wrap:wrap; margin-top:28px;
}
.townbell-line {
  display:block; font-family:var(--tv-display); font-size:clamp(2rem,5vw,2.9rem);
  color:#fff; margin-top:20px; letter-spacing:1px;
}
.townbell-line:hover {
  color:var(--tv-ember-glow);
}
.homestead-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:44px;
  align-items:start;
}
.homestead-grid>* {
  min-width:0;
}
.homestead-rows a,.cellar address a {
  overflow-wrap:anywhere;
}
.form-card-tv {
  background:#fff; border-radius:var(--tv-radius-lg); padding:34px 32px;
  box-shadow:var(--tv-shadow); border:1px solid var(--tv-line);
}
.field-tv {
  margin-bottom:16px;
}
.field-tv label {
  display:block; font-weight:700; font-size:.86rem;
  margin-bottom:7px; letter-spacing:.4px;
}
.field-tv input,.field-tv select,.field-tv textarea {
  width:100%; padding:14px 16px; border:1.6px solid var(--tv-line);
  border-radius:12px; font-size:1rem; font-family:inherit;
  background:#FCF9F3; color:var(--tv-ink); transition:border-color .25s,box-shadow .25s,background .25s;
}
.field-tv input:focus,.field-tv select:focus,.field-tv textarea:focus {
  outline:none; border-color:var(--tv-brick); background:#fff;
  box-shadow:0 0 0 4px rgba(178,58,33,.12);
}
.field-tv textarea {
  resize:vertical; min-height:110px;
}
.two-col-tv {
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.form-note-tv {
  font-size:.79rem; color:var(--tv-muted); margin-top:12px;
  text-align:center;
}
.form-msg-tv {
  display:none; padding:14px 16px; border-radius:12px;
  font-size:.94rem; margin-bottom:16px;
}
.form-msg-tv.oktv {
  display:block; background:rgba(46,125,81,.1); color:#2E7D51;
  border:1px solid rgba(46,125,81,.3);
}
.form-msg-tv.err-tv {
  display:block; background:rgba(178,58,33,.1); color:var(--tv-brick-dark);
  border:1px solid rgba(178,58,33,.3);
}
.homestead-rows {
  list-style:none; padding:0; margin:0 0 26px;
  display:grid; gap:16px;
}
.homestead-rows li {
  display:flex; gap:16px; align-items:flex-start;
}
.info-ico-tv {
  width:48px; height:48px; flex:0 0 auto;
  border-radius:14px; background:rgba(178,58,33,.1); display:grid;
  place-items:center;
}
.info-ico-tv svg {
  width:22px; height:22px; stroke:var(--tv-brick);
  fill:none; stroke-width:1.9; stroke-linecap:round;
  stroke-linejoin:round;
}
.homestead-rows b {
  display:block; font-family:var(--tv-display); letter-spacing:.6px;
  text-transform:uppercase; font-size:.95rem;
}
.homestead-rows a,.homestead-rows span {
  color:var(--tv-muted); font-size:1rem;
}
.homestead-rows a:hover {
  color:var(--tv-brick);
}
.map-acre {
  border-radius:var(--tv-radius); overflow:hidden; box-shadow:var(--tv-shadow-sm);
  border:1px solid var(--tv-line); line-height:0;
}
.map-acre iframe {
  width:100%; height:290px; border:0;
}
.village-clock {
  background:#fff; border:1px solid var(--tv-line); border-radius:var(--tv-radius);
  padding:22px 24px; box-shadow:var(--tv-shadow-sm); margin-bottom:26px;
}
.village-clock dl {
  display:grid; grid-template-columns:auto 1fr; gap:8px 18px;
  margin:0; font-size:.95rem;
}
.village-clock dt {
  font-weight:700;
}
.village-clock dd {
  margin:0; text-align:right; color:var(--tv-muted);
}
.cellar {
  background:var(--tv-charcoal); color:#A99B8E; padding:70px 0 0;
  font-size:.95rem;
}
.foot-grid-tv {
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:38px;
  padding-bottom:44px;
}
.cellar h4 {
  color:#fff; font-size:1rem; letter-spacing:1.6px;
  margin-bottom:18px;
}
.cellar a {
  color:#A99B8E;
}
.cellar a:hover {
  color:var(--tv-ember-glow);
}
.foot-links-tv {
  list-style:none; padding:0; margin:0;
  display:grid; gap:10px;
}
.foot-brand-tv {
  display:flex; align-items:center; gap:12px;
  margin-bottom:16px; color:#fff;
}
.foot-brand-tv strong {
  font-family:var(--tv-display); font-size:1.1rem; letter-spacing:.6px;
  text-transform:uppercase;
}
.foot-bottom-tv {
  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;
}
.lantern-dial {
  position:fixed; right:22px; bottom:26px;
  z-index:950; display:inline-flex; align-items:center;
  gap:12px; background:linear-gradient(135deg,var(--tv-brick),var(--tv-brick-dark)); 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;
}
.lantern-dial:hover {
  transform:scale(1.06) translateY(-3px); color:#fff; box-shadow:0 22px 52px rgba(178,58,33,.6);
}
.lantern-dial .fc-ring-tv {
  position:relative; width:40px; height:40px;
  border-radius:50%; background:rgba(255,255,255,.18); display:grid;
  place-items:center; flex:0 0 auto;
}
.lantern-dial .fc-ring-tv::before,.lantern-dial .fc-ring-tv::after {
  content:""; position:absolute; inset:0;
  border-radius:50%; border:2px solid rgba(255,255,255,.6); animation:ring 2.6s ease-out infinite;
}
.lantern-dial .fc-ring-tv::after {
  animation-delay:1.3s;
}
@keyframes ring {
  0% {
    transform:scale(1); opacity:.85;
  }
  100% {
    transform:scale(2.1); opacity:0;
  }
}
.lantern-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);
  }
}
.lantern-dial .fc-txt-tv {
  display:flex; flex-direction:column; line-height:1.15;
}
.lantern-dial .fc-txt-tv small {
  font-size:.66rem; text-transform:uppercase; letter-spacing:1.4px;
  opacity:.85; font-weight:600;
}
.lantern-dial .fc-txt-tv b {
  font-family:var(--tv-display); font-size:1.12rem; letter-spacing:.6px;
}
.footpath-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));
}
.footpath-bar ul {
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:8px;
}
.footpath-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;
}
.footpath-bar a svg {
  width:19px; height:19px; stroke:currentColor;
  fill:none; stroke-width:2; stroke-linecap:round;
  stroke-linejoin:round;
}
.footpath-bar .mb-call-tv {
  background:linear-gradient(135deg,var(--tv-brick),var(--tv-brick-dark)); 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);
  }
}
.lookout {
  position:fixed; right:26px; bottom:104px;
  z-index:940; width:46px; height:46px;
  border-radius:50%; background:var(--tv-charcoal); color:#fff;
  display:grid; place-items:center; box-shadow:var(--tv-shadow);
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:.3s; border:0; cursor:pointer;
}
.lookout.show-tv {
  opacity:1; visibility:visible; transform:translateY(0);
}
.lookout svg {
  width:18px; height:18px; stroke:#fff;
  fill:none; stroke-width:2.6;
}
.come-to {
  opacity:0; transform:translateY(34px); transition:opacity .8s cubic-bezier(.2,.8,.3,1),transform .8s cubic-bezier(.2,.8,.3,1);
}
.come-to.intv {
  opacity:1; transform:none;
}
.come-to.ptv1 {
  transition-delay:.1s;
}
.come-to.ptv2 {
  transition-delay:.2s;
}
.come-to.ptv3 {
  transition-delay:.3s;
}
.come-to.ptv4 {
  transition-delay:.4s;
}
.come-to.ptv5 {
  transition-delay:.5s;
}
.come-to.ptv6 {
  transition-delay:.6s;
}
@media (max-width:1080px) {
  .prospect-grid {
    grid-template-columns:1fr; gap:44px;
  }
  .handshake-card {
    max-width:520px;
  }
  .milestone-row {
    grid-template-columns:repeat(2,1fr);
  }
  .stride-set {
    grid-template-columns:repeat(2,1fr); row-gap:38px;
  }
  .reviews-tv {
    grid-template-columns:1fr;
  }
  .foot-grid-tv {
    grid-template-columns:1fr 1fr;
  }
  .tintype-wall {
    grid-template-columns:repeat(3,1fr);
  }
}
@media (max-width:1440px) {
  .navpath {
    gap:18px;
  }
  .navpath a {
    font-size:.9rem;
  }
  .nav-phone-tv {
    display:none;
  }
}
@media (max-width:1240px) {
  .navpath {
    gap:15px;
  }
  .navpath a {
    font-size:.86rem;
  }
  .navpath li:has(.nav-opt-tv) {
    display:none;
  }
  .nav-opt-tv {
    display:none;
  }
}
@media (max-width:1150px) {
  .navpath {
    position:fixed; inset:var(--tv-header-h) 0 auto 0; background:var(--tv-cream);
    flex-direction:column; align-items:stretch; gap:0;
    padding:10px 6% 26px; border-bottom:1px solid var(--tv-line); box-shadow:var(--tv-shadow);
    transform:translateY(-135%); transition:transform .4s cubic-bezier(.2,.8,.3,1); max-height:calc(100vh - var(--tv-header-h));
    overflow:auto;
  }
  .navpath.open-tv {
    transform:translateY(0);
  }
  .navpath li:has(.nav-opt-tv) {
    display:block;
  }
  .nav-opt-tv {
    display:block;
  }
  .navpath li {
    border-bottom:1px solid var(--tv-line);
  }
  .navpath a {
    display:block; padding:15px 0; font-size:1.05rem;
  }
  .threebar {
    display:block;
  }
  .nav-phone-tv {
    display:none;
  }
  .nav-cta-tv .knock {
    padding:12px 20px; font-size:.92rem;
  }
  .notice-grid,.homestead-grid {
    grid-template-columns:1fr; gap:34px;
  }
  .lantern-dial {
    display:none;
  }
  .footpath-bar {
    display:block;
  }
  body {
    padding-bottom:74px;
  }
  .lookout {
    bottom:88px; right:16px;
  }
}
@media (max-width:640px) {
  body {
    font-size:16px;
  }
  .eave-bar .greenway {
    justify-content:center; text-align:center; font-size:.8rem;
    gap:6px 16px; padding:7px 0;
  }
  .eave-bar .tb-hide-tv,.eave-bar .tb-news-tv {
    display:none;
  }
  .nav-call-txt-tv {
    display:none;
  }
  .nav-cta-tv .knock {
    padding:12px 14px; border-radius:50%;
  }
  .nav-cta-tv {
    gap:9px;
  }
  .milestone-row,.stride-set {
    grid-template-columns:1fr 1fr; gap:14px;
  }
  .tintype-wall {
    grid-template-columns:repeat(2,1fr); gap:10px;
  }
  .tintype:nth-child(1),.tintype:nth-child(6) {
    grid-row:span 1; aspect-ratio:1;
  }
  .two-col-tv {
    grid-template-columns:1fr;
  }
  .form-card-tv {
    padding:26px 20px;
  }
  .foot-grid-tv {
    grid-template-columns:1fr; gap:30px;
  }
  .prospect-moves .knock {
    flex:1 1 100%;
  }
  .navgreen {
    gap:8px;
  }
  .weathervane {
    min-width:0; gap:9px;
  }
  .weathervane-glyph {
    width:38px; height:38px;
  }
  .weathervane-txt {
    min-width:0;
  }
  .weathervane-txt span {
    font-size:.56rem; letter-spacing:1.2px; white-space:nowrap;
    overflow:hidden; text-overflow:ellipsis;
  }
  .weathervane-txt strong {
    font-size:.85rem; white-space:nowrap; overflow:hidden;
    text-overflow:ellipsis;
  }
  .milestone-row .milestone {
    padding:20px 12px;
  }
  .svc-body-tv,.form-card-tv {
    overflow-wrap:break-word;
  }
}
@media (max-width:400px) {
  .greenway {
    width:94%;
  }
  .stride-set {
    grid-template-columns:1fr; row-gap:34px;
  }
  .milestone-row {
    gap:10px;
  }
  .weathervane-glyph {
    width:34px; height:34px;
  }
  .weathervane-txt strong {
    font-size:.8rem;
  }
  .nav-cta-tv .knock {
    padding:11px 13px;
  }
  .threebar {
    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;
  }
  .come-to {
    opacity:1; transform:none;
  }
}
@media print {
  .threshold,.lantern-dial,.footpath-bar,.lookout,#bg-fx-tv,.millrace {
    display:none!important;
  }
  body {
    background:#fff; color:#000;
  }
}
.offer-free-tv {
  font-family:var(--tv-display); font-size:clamp(3rem,6.4vw,4.3rem); line-height:1;
  color:var(--tv-brick); text-align:center; letter-spacing:2px;
  margin:8px 0 2px;
}
.offer-free-tv small {
  display:block; font-family:var(--tv-font); font-size:.31em;
  letter-spacing:3.4px; color:var(--tv-coast); font-weight:800;
  margin-top:6px;
}
.handshake-card .offer-list-tv svg {
  stroke:var(--tv-coast);
}
.badge-free-tv {
  background:var(--tv-coast); box-shadow:0 8px 20px rgba(30,111,104,.42);
}
.tick-coast-tv {
  background:rgba(30,111,104,.22);
}
.tick-coast-tv svg {
  stroke:#7FD8CE;
}
.almanack-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;
}
.almanack-note svg {
  width:22px; height:22px; flex:0 0 auto;
  margin-top:2px; stroke:var(--tv-brick); fill:none;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.almanack-note p {
  margin:0; font-size:.94rem;
}
.keeping-room {
  background:linear-gradient(158deg,var(--tv-charcoal) 0%,var(--tv-charcoal-2) 55%,#293338 100%); color:#DCCFC3; border-radius:var(--tv-radius-lg);
  padding:38px 34px; box-shadow:var(--tv-shadow-lg); border:1px solid rgba(255,255,255,.09);
  position:relative; overflow:hidden;
}
.keeping-room::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;
}
.keeping-room>* {
  position:relative; z-index:1;
}
.call-kicker-tv {
  display:inline-flex; align-items:center; gap:9px;
  color:var(--tv-ember-glow); font-weight:800; letter-spacing:2.4px;
  text-transform:uppercase; font-size:.74rem; margin-bottom:12px;
}
.call-kicker-tv::before {
  content:""; width:26px; height:2px;
  background:var(--tv-ember);
}
.keeping-room h3 {
  color:#fff; font-size:clamp(1.4rem,2.4vw,1.9rem); margin-bottom:10px;
}
.keeping-room p {
  color:#B5A79A; font-size:.99rem;
}
.call-number-tv {
  display:block; font-family:var(--tv-display); 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-tv:hover {
  color:var(--tv-ember-glow); transform:scale(1.03);
}
.call-hours-tv {
  text-align:center; font-size:.92rem; margin:18px 0 0;
  color:#B5A79A;
}
.call-hours-tv strong {
  color:#fff;
}
.call-expect-tv {
  margin-top:26px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12);
}
.call-expect-tv h4 {
  color:#fff; font-size:.92rem; letter-spacing:1.8px;
  margin-bottom:14px;
}
.call-expect-tv ol {
  margin:0; padding:0; list-style:none;
  counter-reset:ce; display:grid; gap:12px;
}
.call-expect-tv li {
  counter-increment:ce; display:flex; gap:13px;
  align-items:flex-start; font-size:.94rem; color:#C3B5A8;
}
.call-expect-tv li::before {
  content:counter(ce); flex:0 0 auto; width:26px;
  height:26px; border-radius:8px; background:rgba(242,145,63,.18);
  color:var(--tv-ember-glow); font-family:var(--tv-display); font-size:.9rem;
  display:grid; place-items:center; margin-top:1px;
}
@media (max-width:640px) {
  .keeping-room {
    padding:28px 22px;
  }
}
.review-tv p {
  font-size:.95rem; line-height:1.62;
}
.review-tv footer b {
  font-size:.92rem; line-height:1.3;
}
.review-tv .avatar-tv svg {
  display:block;
}
@media (max-width:1080px) {
  .reviews-tv {
    gap:22px;
  }
}
.footpath-bar ul.mb-two-tv {
  grid-template-columns:1.7fr 1fr;
}
@media (max-width: 392px) {
  .weathervane { flex: 1 1 auto; min-width: 0; overflow: hidden; }
  .weathervane-txt strong, .weathervane-txt span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block; }
  .knock-ember-tv.threshold-dial { padding: 9px 12px; }
}
.footpath-bar ul { grid-template-columns: 1fr; }
.stride-set > * { min-width: 0; }
