.cty-hero{position:relative;background:var(--deep-blue);padding:168px 0 var(--s-8);overflow:hidden}.cty-hero:before{content:"";position:absolute;inset:0;background:url(/brand/texture-water.png) 50%/cover no-repeat;opacity:.08;pointer-events:none}.cty-hero-inner{position:relative;z-index:1;text-align:center}.cty-hero h1{color:var(--off-white)}.cty-hero h1 .nwi-script{color:var(--sunset);font-size:1.18em;display:inline-block;transform:rotate(-2.5deg) translateY(.06em);padding:0 .1em}.cty-hero-sub{color:rgba(255,254,244,.88);font-size:1.1rem;max-width:640px;margin:var(--s-2) auto 0}.cty-hero-img{object-fit:cover;object-position:center}.cty-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,48,67,.62),rgba(0,48,67,.86))}.cty-rows{display:flex;flex-direction:column;gap:clamp(var(--s-8),8vw,var(--s-12))}.cty-row{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:clamp(var(--s-4),5vw,var(--s-8));gap:clamp(var(--s-4),5vw,var(--s-8));align-items:center}.cty-row-photo{display:block;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lift);aspect-ratio:4/3}.cty-row-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}.cty-row:hover .cty-row-photo img{transform:scale(1.05)}.cty-row-rev .cty-row-photo{order:2}.cty-num{font-family:var(--font-cond);font-weight:500;font-size:1rem;letter-spacing:var(--track-wide);color:var(--deep-aqua)}.cty-num,.cty-row h2{margin-bottom:var(--s-1)}.cty-row h2 a{color:var(--deep-blue);text-decoration:none;transition:color .25s ease}.cty-row h2 a:hover{color:var(--deep-aqua)}.cty-row-tag{font-weight:600;font-size:1.05rem}.cty-row-blurb,.cty-row-tag{color:var(--ink-soft);margin-bottom:var(--s-2)}.cty-count{display:inline-block;padding:8px 20px;background:var(--pale-green);border-radius:999px;font-family:var(--font-cond);font-weight:500;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--deep-blue);margin-bottom:var(--s-3)}.cty-count strong{color:var(--deep-aqua);font-weight:700}.cty-stats{position:relative;background:var(--deep-blue);padding:var(--s-8) 0;overflow:hidden}.cty-stats:before{content:"";position:absolute;inset:0;background:url(/brand/texture-water.png) 50%/cover no-repeat;opacity:.08;pointer-events:none}.cty-stats-head{position:relative;text-align:center;margin-bottom:var(--s-5)}.cty-stats-head h2{color:var(--off-white)}.cty-stats-grid{position:relative;display:grid;grid-template-columns:repeat(5,1fr);grid-gap:var(--s-3);gap:var(--s-3);text-align:center}a.cty-stat{display:block;padding:var(--s-2) var(--s-1);border-radius:var(--radius-sm);text-decoration:none;transition:background .25s ease,transform .3s var(--ease-out)}a.cty-stat:hover{background:rgba(255,254,244,.07);transform:translateY(-3px)}.cty-stat strong{display:block;font-family:var(--font-slab);font-weight:700;font-size:clamp(2.2rem,4vw,3.4rem);color:var(--sky);line-height:1;letter-spacing:.02em;margin-bottom:var(--s-1);transition:color .25s ease}a.cty-stat:hover strong{color:var(--sunset)}.cty-stat span{font-family:var(--font-cond);font-weight:400;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,254,244,.85)}.cty-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-4)}.cty-band-green{background:var(--pale-green)}.cty-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--s-3);gap:var(--s-3)}a.cty-card{display:flex;flex-direction:column;gap:8px;background:var(--paper);border:1px solid var(--deep-blue-08);border-radius:var(--radius);padding:var(--s-3);text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .25s ease}a.cty-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:var(--deep-aqua)}.cty-card-city{font-family:var(--font-cond);font-weight:500;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--deep-aqua)}.cty-card h3{font-size:1.05rem;letter-spacing:.05em;line-height:1.25;transition:color .2s ease}a.cty-card:hover h3{color:var(--deep-aqua)}.cty-card-desc{color:var(--ink-soft);font-size:.92rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cty-town-chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}a.cty-town-chip{display:inline-block;padding:10px 22px;border-radius:999px;background:var(--pale-green);border:1px solid var(--deep-blue-08);font-family:var(--font-cond);font-weight:500;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;color:var(--deep-blue);text-decoration:none;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),background .2s ease,color .2s ease}a.cty-town-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);background:var(--deep-blue);color:var(--off-white)}.cty-prefooter{position:relative;background:var(--pale-green);padding:var(--s-6) 0;overflow:hidden}.cty-prefooter:before{content:"";position:absolute;inset:0;background:url(/brand/badge-leafy.png) 0 0/132px repeat;opacity:.05;pointer-events:none}.cty-prefooter-inner{position:relative;display:flex;align-items:center;justify-content:center;gap:var(--s-2) var(--s-4);flex-wrap:wrap;text-align:center}.cty-prefooter-text{font-family:var(--font-slab);font-weight:700;font-size:1.3rem;letter-spacing:.06em;text-transform:uppercase;color:var(--deep-blue)}.cty-thumb-empty{display:flex;align-items:center;justify-content:center;background:var(--pale-green)}.cty-thumb-empty img{width:72px;height:72px;object-fit:contain;opacity:.85;transition:transform .3s var(--ease-out)}.vn-post-card:hover .cty-thumb-empty img{transform:rotate(-6deg) scale(1.06)}@media (max-width:1080px){.cty-cards{grid-template-columns:repeat(2,1fr)}.cty-stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:860px){.cty-row{grid-template-columns:1fr}.cty-row-photo,.cty-row-rev .cty-row-photo{order:-1}.cty-hero{padding-top:140px}}@media (max-width:600px){.cty-cards{grid-template-columns:1fr}.cty-stats-grid{grid-template-columns:repeat(2,1fr);gap:var(--s-4) var(--s-2)}}