:root{--brush-panel:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%201000%20400%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M40.0%2C21.4%20L47.8%2C21.5%20L55.6%2C21.7%20L63.4%2C20.6%20L71.2%2C21.3%20L79.0%2C21.2%20L86.8%2C21.0%20L94.5%2C18.3%20L102.3%2C18.0%20L110.1%2C16.6%20L117.9%2C17.8%20L125.7%2C17.0%20L133.5%2C15.2%20L141.3%2C18.1%20L149.1%2C18.7%20L156.9%2C18.7%20L164.7%2C19.7%20L172.5%2C19.4%20L180.2%2C19.9%20L188.0%2C21.8%20L195.8%2C20.8%20L203.6%2C20.9%20L211.4%2C20.5%20L219.2%2C19.2%20L227.0%2C19.5%20L234.8%2C18.6%20L242.6%2C19.0%20L250.4%2C17.6%20L258.2%2C17.8%20L266.0%2C17.4%20L273.8%2C18.2%20L281.5%2C18.0%20L289.3%2C17.9%20L297.1%2C20.0%20L304.9%2C20.1%20L312.7%2C19.4%20L320.5%2C18.7%20L328.3%2C17.0%20L336.1%2C16.2%20L343.9%2C15.8%20L351.7%2C15.0%20L359.5%2C16.9%20L367.2%2C16.4%20L375.0%2C18.4%20L382.8%2C18.4%20L390.6%2C21.5%20L398.4%2C22.7%20L406.2%2C22.0%20L414.0%2C23.9%20L421.8%2C26.8%20L429.6%2C26.3%20L437.4%2C28.1%20L445.2%2C26.5%20L453.0%2C25.4%20L460.8%2C26.7%20L468.5%2C26.9%20L476.3%2C25.4%20L484.1%2C25.0%20L491.9%2C26.0%20L499.7%2C28.2%20L507.5%2C28.1%20L515.3%2C26.9%20L523.1%2C27.6%20L530.9%2C27.2%20L538.7%2C26.8%20L546.5%2C28.2%20L554.2%2C25.6%20L562.0%2C25.5%20L569.8%2C24.1%20L577.6%2C22.3%20L585.4%2C22.9%20L593.2%2C20.8%20L601.0%2C22.1%20L608.8%2C21.0%20L616.6%2C22.4%20L624.4%2C22.7%20L632.2%2C23.7%20L640.0%2C26.4%20L647.8%2C26.5%20L655.5%2C25.5%20L663.3%2C27.1%20L671.1%2C25.0%20L678.9%2C24.9%20L686.7%2C25.6%20L694.5%2C24.4%20L702.3%2C22.5%20L710.1%2C24.6%20L717.9%2C22.4%20L725.7%2C22.7%20L733.5%2C24.4%20L741.2%2C23.5%20L749.0%2C23.6%20L756.8%2C22.9%20L764.6%2C22.6%20L772.4%2C23.2%20L780.2%2C21.2%20L788.0%2C20.8%20L795.8%2C18.6%20L803.6%2C17.4%20L811.4%2C17.4%20L819.2%2C15.0%20L827.0%2C14.6%20L834.8%2C15.1%20L842.5%2C13.3%20L850.3%2C13.7%20L858.1%2C16.4%20L865.9%2C16.8%20L873.7%2C16.0%20L881.5%2C16.3%20L889.3%2C18.1%20L897.1%2C18.7%20L904.9%2C16.6%20L912.7%2C18.5%20L920.5%2C18.1%20L928.2%2C17.4%20L936.0%2C17.2%20L943.8%2C16.9%20L951.6%2C17.5%20L959.4%2C21.1%20L967.2%2C20.3%20L975.0%2C22.7%20L989.3%2C36.8%20L989.0%2C51.7%20L982.1%2C66.5%20L986.2%2C81.3%20L987.7%2C96.2%20L985.8%2C111.0%20L977.2%2C125.8%20L987.2%2C140.7%20L990.7%2C155.5%20L985.8%2C170.3%20L984.9%2C185.2%20L989.1%2C200.0%20L992.9%2C214.8%20L977.6%2C229.7%20L980.2%2C244.5%20L989.4%2C259.3%20L985.5%2C274.2%20L975.9%2C289.0%20L984.2%2C303.8%20L990.2%2C318.7%20L984.8%2C333.5%20L977.5%2C348.3%20L988.2%2C363.2%20L975.0%2C373.8%20L967.1%2C374.0%20L959.2%2C373.7%20L951.4%2C374.5%20L943.5%2C375.8%20L935.6%2C379.7%20L927.8%2C380.5%20L919.9%2C382.4%20L912.0%2C380.7%20L904.1%2C382.8%20L896.2%2C382.4%20L888.4%2C382.8%20L880.5%2C381.0%20L872.6%2C382.1%20L864.8%2C378.8%20L856.9%2C379.5%20L849.0%2C379.6%20L841.1%2C379.9%20L833.2%2C379.6%20L825.4%2C379.9%20L817.5%2C380.7%20L809.6%2C381.6%20L801.8%2C380.5%20L793.9%2C381.7%20L786.0%2C382.3%20L778.1%2C381.9%20L770.2%2C380.3%20L762.4%2C380.8%20L754.5%2C380.5%20L746.6%2C379.4%20L738.8%2C379.5%20L730.9%2C379.2%20L723.0%2C380.3%20L715.1%2C381.3%20L707.2%2C381.0%20L699.4%2C383.6%20L691.5%2C385.7%20L683.6%2C386.2%20L675.8%2C386.2%20L667.9%2C385.3%20L660.0%2C385.9%20L652.1%2C384.7%20L644.2%2C383.4%20L636.4%2C383.4%20L628.5%2C380.2%20L620.6%2C381.1%20L612.8%2C378.4%20L604.9%2C379.5%20L597.0%2C378.9%20L589.1%2C378.1%20L581.2%2C379.2%20L573.4%2C378.5%20L565.5%2C378.5%20L557.6%2C378.7%20L549.8%2C376.1%20L541.9%2C374.4%20L534.0%2C373.9%20L526.1%2C373.8%20L518.2%2C371.4%20L510.4%2C370.5%20L502.5%2C372.0%20L494.6%2C371.3%20L486.7%2C371.1%20L478.9%2C373.1%20L471.0%2C372.5%20L463.1%2C374.5%20L455.2%2C374.3%20L447.4%2C375.7%20L439.5%2C377.2%20L431.6%2C377.7%20L423.8%2C377.5%20L415.9%2C375.8%20L408.0%2C375.8%20L400.1%2C374.6%20L392.2%2C373.7%20L384.4%2C374.5%20L376.5%2C375.5%20L368.6%2C375.8%20L360.8%2C375.9%20L352.9%2C377.0%20L345.0%2C375.7%20L337.1%2C375.8%20L329.2%2C376.6%20L321.4%2C375.9%20L313.5%2C375.2%20L305.6%2C375.0%20L297.8%2C374.8%20L289.9%2C373.6%20L282.0%2C372.4%20L274.1%2C373.4%20L266.2%2C373.8%20L258.4%2C372.9%20L250.5%2C372.7%20L242.6%2C373.7%20L234.8%2C377.3%20L226.9%2C376.5%20L219.0%2C379.6%20L211.1%2C380.3%20L203.2%2C380.4%20L195.4%2C382.2%20L187.5%2C380.3%20L179.6%2C380.7%20L171.8%2C381.6%20L163.9%2C380.4%20L156.0%2C382.7%20L148.1%2C381.5%20L140.2%2C381.8%20L132.4%2C382.3%20L124.5%2C384.7%20L116.6%2C384.9%20L108.8%2C386.0%20L100.9%2C386.4%20L93.0%2C386.7%20L85.1%2C386.6%20L77.2%2C385.0%20L69.4%2C382.6%20L61.5%2C382.0%20L53.6%2C379.9%20L45.8%2C378.3%20L37.9%2C378.6%20L30.0%2C378.7%20L15.6%2C363.2%20L21.2%2C348.3%20L24.7%2C333.5%20L13.3%2C318.7%20L12.4%2C303.8%20L19.4%2C289.0%20L19.1%2C274.2%20L14.9%2C259.3%20L10.7%2C244.5%20L17.6%2C229.7%20L25.0%2C214.8%20L7.6%2C200.0%20L13.3%2C185.2%20L27.2%2C170.3%20L18.9%2C155.5%20L10.6%2C140.7%20L13.3%2C125.8%20L24.5%2C111.0%20L15.4%2C96.2%20L8.1%2C81.3%20L16.7%2C66.5%20L17.4%2C51.7%20L14.7%2C36.8Z%22/%3E%3C/svg%3E");--brush-edge:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%201200%2060%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2C60%20L0.0%2C21.8%20L7.5%2C21.2%20L15.0%2C21.5%20L22.5%2C20.2%20L30.0%2C22.5%20L37.5%2C23.1%20L45.0%2C23.5%20L52.5%2C22.4%20L60.0%2C23.3%20L67.5%2C21.9%20L75.0%2C23.4%20L82.5%2C22.8%20L90.0%2C20.7%20L97.5%2C19.1%20L105.0%2C19.3%20L112.5%2C18.6%20L120.0%2C18.3%20L127.5%2C16.6%20L135.0%2C14.5%20L142.5%2C16.3%20L150.0%2C13.8%20L157.5%2C16.0%20L165.0%2C14.3%20L172.5%2C15.3%20L180.0%2C17.4%20L187.5%2C16.3%20L195.0%2C17.3%20L202.5%2C19.3%20L210.0%2C20.9%20L217.5%2C22.0%20L225.0%2C22.3%20L232.5%2C23.5%20L240.0%2C22.6%20L247.5%2C24.2%20L255.0%2C21.7%20L262.5%2C22.2%20L270.0%2C23.2%20L277.5%2C22.6%20L285.0%2C24.1%20L292.5%2C24.2%20L300.0%2C24.4%20L307.5%2C26.0%20L315.0%2C26.0%20L322.5%2C26.2%20L330.0%2C27.4%20L337.5%2C29.7%20L345.0%2C30.8%20L352.5%2C29.5%20L360.0%2C32.0%20L367.5%2C32.7%20L375.0%2C31.4%20L382.5%2C31.4%20L390.0%2C29.8%20L397.5%2C30.2%20L405.0%2C29.3%20L412.5%2C28.8%20L420.0%2C26.2%20L427.5%2C28.2%20L435.0%2C26.1%20L442.5%2C25.3%20L450.0%2C26.1%20L457.5%2C25.3%20L465.0%2C25.2%20L472.5%2C26.1%20L480.0%2C24.6%20L487.5%2C26.5%20L495.0%2C26.7%20L502.5%2C28.8%20L510.0%2C29.0%20L517.5%2C27.3%20L525.0%2C28.0%20L532.5%2C26.9%20L540.0%2C27.6%20L547.5%2C28.4%20L555.0%2C28.3%20L562.5%2C26.7%20L570.0%2C25.8%20L577.5%2C25.2%20L585.0%2C26.4%20L592.5%2C27.4%20L600.0%2C25.3%20L607.5%2C27.7%20L615.0%2C26.0%20L622.5%2C27.2%20L630.0%2C28.0%20L637.5%2C30.0%20L645.0%2C29.5%20L652.5%2C30.0%20L660.0%2C31.0%20L667.5%2C29.4%20L675.0%2C31.0%20L682.5%2C28.6%20L690.0%2C28.9%20L697.5%2C27.1%20L705.0%2C25.8%20L712.5%2C25.6%20L720.0%2C24.1%20L727.5%2C22.8%20L735.0%2C22.0%20L742.5%2C21.5%20L750.0%2C19.8%20L757.5%2C19.5%20L765.0%2C20.5%20L772.5%2C20.4%20L780.0%2C20.1%20L787.5%2C21.1%20L795.0%2C20.4%20L802.5%2C21.1%20L810.0%2C19.0%20L817.5%2C20.3%20L825.0%2C20.1%20L832.5%2C19.9%20L840.0%2C17.5%20L847.5%2C16.8%20L855.0%2C18.0%20L862.5%2C15.4%20L870.0%2C17.3%20L877.5%2C16.7%20L885.0%2C14.5%20L892.5%2C15.0%20L900.0%2C17.0%20L907.5%2C16.3%20L915.0%2C16.7%20L922.5%2C19.9%20L930.0%2C19.7%20L937.5%2C21.9%20L945.0%2C20.8%20L952.5%2C22.5%20L960.0%2C24.0%20L967.5%2C22.3%20L975.0%2C23.0%20L982.5%2C24.4%20L990.0%2C24.8%20L997.5%2C24.6%20L1005.0%2C21.5%20L1012.5%2C22.2%20L1020.0%2C22.5%20L1027.5%2C21.3%20L1035.0%2C21.6%20L1042.5%2C20.0%20L1050.0%2C19.7%20L1057.5%2C20.1%20L1065.0%2C20.2%20L1072.5%2C22.2%20L1080.0%2C22.6%20L1087.5%2C23.2%20L1095.0%2C22.2%20L1102.5%2C22.6%20L1110.0%2C22.7%20L1117.5%2C24.5%20L1125.0%2C24.8%20L1132.5%2C24.2%20L1140.0%2C21.2%20L1147.5%2C20.7%20L1155.0%2C22.9%20L1162.5%2C21.1%20L1170.0%2C21.8%20L1177.5%2C20.5%20L1185.0%2C21.2%20L1192.5%2C21.8%20L1200.0%2C22.3%20L1200%2C60Z%22/%3E%3C/svg%3E")}
/* Hamlet's Painting — brand: logo navy + swirl teal/orange/sun. Display: Bricolage Grotesque. Body: Figtree.
   Signature device: hand-painted brush strokes (hero panel, section edges) and paint-chip cards. */
:root{
  --navy:#0b3274; --ink:#0d1a33; --teal:#1aa9ba; --orange:#d93a30; --sun:#f5c642; --rose:#e2577e;
  --paper:#ffffff; --mist:#eef3f9; --line:#dbe3ee; --muted:#55627a;
  --accent:var(--orange); --accent-d:#b92e25;
  --display:"Bricolage Grotesque","Avenir Next","Segoe UI",system-ui,sans-serif;
  --body:"Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
  --r:10px; --wrap:1180px;
}
*{box-sizing:border-box}
:root{color-scheme:light only}
html{background:#fff}

body{margin:0;font:400 17px/1.65 var(--body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{font-family:var(--display);line-height:1.08;color:var(--navy);margin:0 0 .55em;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.6vw,4.1rem);font-weight:800}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem);font-weight:800;margin-top:1.3em}
h3{font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
section>h2:first-child,.wrap>h2:first-child{margin-top:0}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.section{padding-block:88px}
.alt{background:var(--mist)}
.narrow{max-width:760px}
.center{text-align:center}.center .cards{text-align:left}
.lead{font-size:1.2rem;color:var(--muted);max-width:62ch}
.sub{color:var(--muted);max-width:60ch;font-size:1.08rem}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99}
.hp{position:absolute;left:-9999px}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}

/* buttons */
.btn{display:inline-block;background:var(--orange);color:#fff;font-weight:700;text-decoration:none;padding:15px 26px;border-radius:8px;border:2px solid var(--orange);transition:background .15s,transform .15s;text-align:center;cursor:pointer;font:700 1rem/1.2 var(--body)}
.btn:hover{background:var(--accent-d);border-color:var(--accent-d)}
.btn:active{transform:translateY(1px)}
.btn-sm{padding:10px 18px;font-size:.95rem}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.8)}.btn-ghost:hover{background:#fff;color:var(--navy);border-color:#fff}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}.btn-outline:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-light{background:#fff;border-color:#fff;color:var(--navy)}.btn-light:hover{background:var(--sun);border-color:var(--sun)}
.btn-block{display:block;width:100%;margin-top:10px}

/* header */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.brand img{width:52px;height:52px;object-fit:contain}
.brand span{display:flex;flex-direction:column;line-height:1.05}
.brand strong{font-family:var(--display);font-size:1.2rem;font-weight:800;letter-spacing:-.02em}
.brand small{color:var(--teal);font-weight:700;font-size:.82rem}
.main-nav{display:flex;align-items:center;gap:24px}
.main-nav ul{display:flex;gap:20px;list-style:none;margin:0;padding:0}
.main-nav a:not(.btn){white-space:nowrap;text-decoration:none;color:var(--ink);font-weight:600;font-size:.97rem;padding:6px 0;border-bottom:2px solid transparent}
.main-nav a:not(.btn):hover{border-color:var(--teal)}
.main-nav a[aria-current]{color:var(--navy);border-color:var(--orange)}
.nav-toggle,.burger{display:none}
@media (max-width:1480px) and (min-width:1321px){.main-nav{gap:16px}.main-nav ul{gap:14px}.main-nav a:not(.btn){font-size:.9rem}}
@media (max-width:1320px){
  .burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:10px}
  .burger span{width:26px;height:2px;background:var(--navy);border-radius:2px}
  .main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:8px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(11,50,116,.12)}
  .main-nav ul{flex-direction:column;gap:0}
  .main-nav li a{display:block;padding:14px 0!important;border-bottom:1px solid var(--line)!important;font-size:1.05rem!important}
  .main-nav .btn{margin-top:16px}
  .nav-toggle:checked~.main-nav{display:flex}
}

/* hero: full photo, headline painted onto a navy brush stroke */
.hero{position:relative;overflow:hidden;background:var(--navy);color:#fff;min-height:min(640px,86vh);display:flex;align-items:center}
.hero-slides,.hero video.hero-bg{position:absolute;inset:0;width:100%;height:100%}
.hero-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:0;transition:opacity 1.8s ease}
.hero-slides img.on{opacity:1;animation:kb 14s ease-out both}
@keyframes kb{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,50,116,.28),rgba(11,50,116,0) 65%);pointer-events:none}
.hero-inner{position:relative;z-index:2;padding-block:72px;width:100%}
.hero-panel{position:relative;max-width:720px;padding:56px 64px 52px 52px;margin-left:-12px;isolation:isolate}
.hero-panel::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--navy);-webkit-mask:var(--brush-panel) center/100% 100% no-repeat;mask:var(--brush-panel) center/100% 100% no-repeat;animation:paint 1.1s cubic-bezier(.6,.05,.25,1) both}
@keyframes paint{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero-panel>*{animation:rise .7s .55s ease both}
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.hero-kicker{color:var(--sun);font-weight:700;margin-bottom:14px}
.hero h1{color:#fff;margin:0 0 18px}
.hero .lead{color:#dfe7f5;margin:0}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-inner>.hero-btns{padding-left:40px}
@media (max-width:700px){
  .hero{min-height:0}
  .hero-inner{padding-block:40px 34px}
  .hero-panel{padding:40px 28px 36px 26px;margin-left:-14px;margin-right:-14px}
  .hero-inner>.hero-btns{padding-left:0}
  .hero-inner>.hero-btns .btn{flex:1 1 100%}
}

/* paint-chip trust row */
.chiprow{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:-46px auto 0;position:relative;z-index:3}
.pchip{background:#fff;border-radius:6px;box-shadow:0 14px 34px rgba(11,50,116,.14);overflow:hidden;display:grid;padding-bottom:16px}
.pchip-sw{display:block;height:54px;margin-bottom:12px}
.pchip-teal .pchip-sw{background:var(--teal)}.pchip-orange .pchip-sw{background:var(--orange)}.pchip-navy .pchip-sw{background:var(--navy)}.pchip-sun .pchip-sw{background:var(--sun)}
.pchip strong{font-family:var(--display);font-size:1.7rem;font-weight:800;color:var(--navy);padding:0 18px;line-height:1.1}
.pchip span:last-child{padding:0 18px;color:var(--muted);font-size:.95rem}
@media (max-width:820px){.chiprow{grid-template-columns:1fr 1fr;margin-top:-30px}}

/* service cards styled like paint chips */
.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;margin-top:34px}.cards>.card{flex:0 1 calc((100% - 48px)/3);min-width:0}@media (max-width:900px){.cards>.card{flex-basis:calc((100% - 24px)/2)}}@media (max-width:560px){.cards>.card{flex-basis:100%}}
.card{display:flex;flex-direction:column;background:#fff;border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 var(--line),0 10px 26px rgba(11,50,116,.08);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 1px 0 var(--line),0 18px 36px rgba(11,50,116,.16)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s}
.card:hover img{transform:scale(1.04)}
.card-body{padding:18px 20px 22px;border-top:8px solid var(--teal);flex:1;display:flex;flex-direction:column}
.card:nth-child(4n+2) .card-body{border-top-color:var(--orange)}.card:nth-child(4n+3) .card-body{border-top-color:var(--navy)}.card:nth-child(4n+4) .card-body{border-top-color:var(--sun)}
.card-body h3{margin-bottom:6px}
.card-body p{color:var(--muted);font-size:.95rem;flex:1}
.more{font-weight:700;color:var(--navy);font-size:.95rem;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:4px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.split>*{min-width:0}
.split img{border-radius:var(--r)}
@media (max-width:860px){.split{grid-template-columns:1fr;gap:32px}}

/* process: a real 5-step sequence */
.process{list-style:none;counter-reset:s;padding:0;margin:36px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.process li{counter-increment:s;position:relative;padding:0 18px 0 0;display:grid;gap:6px;align-content:start}
.process li::before{content:counter(s);display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--navy);color:#fff;font:800 1.3rem var(--display);margin-bottom:10px;position:relative;z-index:1}
.process li:nth-child(2)::before{background:var(--teal)}.process li:nth-child(3)::before{background:var(--orange)}.process li:nth-child(4)::before{background:var(--sun);color:var(--navy)}.process li:nth-child(5)::before{background:var(--rose)}
.process li::after{content:"";position:absolute;top:25px;left:52px;right:0;height:3px;background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 14px)}
.process li:last-child::after{display:none}
.process strong{font-family:var(--display);font-size:1.15rem;color:var(--navy)}
.process span{color:var(--muted);font-size:.95rem}
@media (max-width:860px){.process{grid-template-columns:1fr;gap:20px}.process li{grid-template-columns:52px 1fr;column-gap:16px;padding:0}.process li::before{grid-row:span 2;margin:0}.process li::after{top:52px;left:25px;width:3px;height:calc(100% - 32px);right:auto;background:repeating-linear-gradient(180deg,var(--line) 0 8px,transparent 8px 14px)}}

/* color band */
.colorband{background:var(--teal);color:#fff;position:relative;padding-block:84px}
.colorband::before,.dark::before,.cta-band::before{content:"";position:absolute;left:0;right:0;top:-38px;height:40px;background:inherit;-webkit-mask:var(--brush-edge) center/100% 100% no-repeat;mask:var(--brush-edge) center/100% 100% no-repeat}
.colorband-in{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.colorband h2{color:#fff}.colorband p{font-size:1.12rem;max-width:48ch;color:#eafcff}
.colorband .btn{background:var(--navy);border-color:var(--navy)}.colorband .btn:hover{background:var(--ink)}
.fan{list-style:none;padding:0;margin:0;height:220px;position:relative}
.fan li{position:absolute;left:50%;bottom:0;width:86px;height:210px;margin-left:-43px;border-radius:6px 6px 4px 4px;background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.18);transform-origin:50% 92%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.fan li::before{content:"";position:absolute;inset:6px 6px 40px;border-radius:3px;background:var(--c)}
.fan li:nth-child(1){transform:rotate(-40deg)}.fan li:nth-child(2){transform:rotate(-24deg)}.fan li:nth-child(3){transform:rotate(-8deg)}.fan li:nth-child(4){transform:rotate(8deg)}.fan li:nth-child(5){transform:rotate(24deg)}.fan li:nth-child(6){transform:rotate(40deg)}
.colorband:hover .fan li:nth-child(1){transform:rotate(-48deg)}.colorband:hover .fan li:nth-child(6){transform:rotate(48deg)}
@media (max-width:760px){.colorband-in{grid-template-columns:1fr}.fan{height:190px}.fan li{height:170px;width:72px;margin-left:-36px}}

.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:28px;margin-top:24px}
.why>div{padding-top:18px;border-top:4px solid var(--teal)}
.why>div:nth-child(2){border-color:var(--orange)}.why>div:nth-child(3){border-color:var(--navy)}.why>div:nth-child(4){border-color:var(--sun)}
.why p{color:var(--muted);margin:0}

.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:18px 0}
.chips a{display:block;padding:10px 18px;border:2px solid var(--line);background:#fff;border-radius:6px;text-decoration:none;font-weight:700;color:var(--navy)}
.chips a:hover{border-color:var(--teal);color:var(--teal)}

.faq{max-width:820px}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{font-weight:700;cursor:pointer;color:var(--navy);font-size:1.08rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:800 1.5rem/1 var(--display);color:var(--orange);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:10px 0 0;color:var(--muted)}

.crumbs{font-size:.9rem;color:var(--muted);padding-top:24px}
.crumbs a{color:var(--muted)}

/* service + city pages */
.svc{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:56px;align-items:start}
.svc-img{border-radius:var(--r);margin:10px 0 28px;width:100%;aspect-ratio:16/9;object-fit:cover}
.svc-side{position:sticky;top:100px;display:grid;gap:18px}
.box{border-radius:var(--r);padding:24px;background:#fff;box-shadow:0 1px 0 var(--line),0 10px 26px rgba(11,50,116,.08)}
.svc-side .box:first-child{border-top:8px solid var(--orange)}
.box-h{font-family:var(--display);font-weight:800;font-size:1.15rem;color:var(--navy);margin:0 0 6px}
.box .box-h:not(:first-child){margin-top:16px}
.mini-trust,.side-links,.checks{list-style:none;padding:0;margin:14px 0 0}
.mini-trust li{font-size:.94rem;padding:3px 0}
.side-links li{padding:7px 0;border-bottom:1px solid var(--line)}
.side-links a{text-decoration:none;font-weight:600}
.checks li{padding:7px 0 7px 32px;position:relative}
.checks li::before,.mini-trust li::before{content:"";position:absolute;left:0;top:11px;width:20px;height:20px;border-radius:50%;background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.mini-trust li{position:relative;padding-left:30px}.mini-trust li::before{top:5px;width:18px;height:18px}
.checks.two{columns:2;column-gap:28px}
@media (max-width:960px){.svc{grid-template-columns:1fr}.svc-side{position:static}.checks.two{columns:1}}

.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:16px;margin:30px 0}
.area-card{border-radius:6px;padding:20px 20px 18px;text-decoration:none;color:var(--ink);background:#fff;box-shadow:0 1px 0 var(--line),0 8px 20px rgba(11,50,116,.07);border-left:6px solid var(--teal)}
.area-card:nth-child(3n+2){border-left-color:var(--orange)}.area-card:nth-child(3n+3){border-left-color:var(--navy)}
.area-card:hover{transform:translateY(-2px)}
.area-card h3{margin-bottom:2px}.area-card p{color:var(--muted);margin:0 0 8px}

.map{margin-top:28px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.map iframe{width:100%;height:380px;border:0;display:block}
.timeline{padding-left:20px}.timeline li{padding:6px 0}

/* contact + forms */
.contact-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;margin-top:28px}
.contact-grid>*{min-width:0}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.form{display:grid;gap:14px}
.form label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
.form input,.form select,.form textarea{font:inherit;padding:13px 14px;border:1.5px solid #c9d3e2;border-radius:8px;background:#fff;width:100%;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid rgba(26,169,186,.35);border-color:var(--teal)}
.big{font-family:var(--display);font-size:1.6rem;font-weight:800;text-decoration:none}
address{font-style:normal}
.hours{list-style:none;padding:0;margin:0}
.hours li{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-variant-numeric:tabular-nums}
.est-split{align-items:start}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:230px;gap:12px;margin-top:28px}
.gallery figure{margin:0;position:relative;overflow:hidden;border-radius:6px}
.gallery figure:first-child{grid-column:span 2;grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 11px;background:linear-gradient(transparent,rgba(11,50,116,.85));color:#fff;font-size:.92rem;font-weight:600}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.gallery figure:nth-child(6){grid-column:span 2}}

/* dark band (before/after) */
.dark{background:var(--navy);color:#fff;position:relative}
.dark h2{color:#fff}.dark .sub{color:#e6edf8}
.ba-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:26px;margin-top:28px}
.ba-wrap{margin:0}
.ba{position:relative;overflow:hidden;border-radius:var(--r);aspect-ratio:4/3;max-width:100%;background:#000;touch-action:pan-y}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-before img{filter:grayscale(.55) sepia(.35) brightness(.8) contrast(.88) blur(.4px)}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;pointer-events:none;box-shadow:0 0 8px rgba(0,0,0,.4)}
.ba-handle::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 46'%3E%3Cpath d='M18 16l-6 7 6 7M28 16l6 7-6 7' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba:focus-within .ba-handle::after{outline:3px solid var(--sun);outline-offset:2px}
.ba-tag{position:absolute;top:12px;padding:4px 11px;border-radius:5px;font-size:.82rem;font-weight:700;pointer-events:none}
.ba-tag-b{left:12px;background:#fff;color:var(--navy)}.ba-tag-a{right:12px;background:var(--sun);color:var(--navy)}
.ba-demo{position:absolute;bottom:12px;left:12px;padding:3px 9px;border-radius:5px;font-size:.74rem;font-weight:700;background:rgba(255,255,255,.88);color:var(--navy);pointer-events:none}
.ba-wrap figcaption{font-size:.92rem;padding-top:10px;color:var(--muted)}.dark .ba-wrap figcaption{color:#e6edf8}

/* video block */
.vid{position:relative;border-radius:var(--r);overflow:hidden;cursor:pointer;aspect-ratio:4/3;max-width:100%;background:var(--mist)}
.vid img,.vid video{width:100%;height:100%;object-fit:cover;display:block}
.vid img{opacity:1;transition:filter .2s}.vid:hover img{filter:brightness(.9)}
.vid-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78px;height:78px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 10px rgba(240,138,44,.28)}
.vid-play svg{margin-left:4px}
.vid-cap{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;background:linear-gradient(transparent,rgba(11,50,116,.85));color:#fff;display:grid}
.vid-cap strong{font-family:var(--display);font-size:1.2rem}
.vid-cap small{opacity:.85}
.vid.playing{cursor:default}

/* reviews */
.reviews{margin-top:22px}
.rv-view{overflow:hidden;border-radius:var(--r)}
.rv-track{display:flex;transition:transform .5s ease}
.rv-card{flex:0 0 100%;margin:0;padding:34px 34px 30px;background:var(--mist);border-radius:var(--r);min-width:0;position:relative}
.rv-card::before{content:"\201C";position:absolute;right:26px;top:-6px;font:800 7rem/1 var(--display);color:var(--teal);opacity:.25}
.rv-stars{color:var(--orange);font-size:1.3rem;letter-spacing:3px;margin-bottom:10px}
.rv-text{font-size:1.2rem;color:var(--ink);max-width:62ch}
.rv-card footer{font-weight:700;color:var(--navy)}
.rv-ctrl{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}
.rv-ctrl>button{width:42px;height:42px;border-radius:50%;border:2px solid var(--line);background:#fff;font-size:1.4rem;cursor:pointer;color:var(--navy)}
.rv-ctrl>button:hover{border-color:var(--navy)}
.rv-dots{display:flex;gap:8px}
.rv-dots button{width:10px;height:10px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0}
.rv-dots button[aria-current=true]{background:var(--orange);width:26px;border-radius:5px}
.rv-note{font-size:.86rem;color:var(--muted);text-align:center;margin-top:8px}

/* step form */
.steps{background:#fff;border-radius:var(--r);padding:28px;display:block;box-shadow:0 1px 0 var(--line),0 16px 40px rgba(11,50,116,.12);border-top:8px solid var(--teal)}
.steps-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.steps-title{font-family:var(--display);font-weight:800;font-size:1.4rem;color:var(--navy);margin:0}
.steps-count{margin:0;color:var(--muted);font-size:.9rem}
.steps-bar{height:6px;background:var(--mist);border-radius:6px;margin:12px 0 20px;overflow:hidden}
.steps-bar span{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--teal),var(--orange));transition:width .35s}
.step{border:0;padding:0;margin:0;display:grid;gap:14px;min-width:0}
.step legend{font-weight:700;font-size:1.15rem;color:var(--navy);margin-bottom:12px;padding:0}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0}
.choice span{display:block;padding:14px 16px;border:2px solid var(--line);border-radius:8px;font-weight:600;transition:border-color .15s,background .15s}
.choice:hover span{border-color:var(--teal)}
.choice input:checked+span{border-color:var(--teal);background:#e6f7f9}
.choice input:focus-visible+span{outline:3px solid var(--teal)}
.step-nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;margin-top:6px}
.form-err{color:#b3261e;font-weight:600;margin:0}
.done{text-align:center;padding:20px 0}.done-h{font-family:var(--display);font-size:1.5rem;font-weight:800;color:var(--navy)}
.calc-fine{font-size:.84rem;color:var(--muted);margin:8px 0 0}

/* color visualizer */
.viz{margin-top:28px;display:grid;gap:12px}
.viz>*{min-width:0}
.viz-scene,.viz-parts{display:flex;flex-wrap:wrap;gap:8px}
.viz-scene button,.viz-parts button{font:inherit;font-weight:700;padding:9px 16px;border-radius:6px;border:2px solid var(--line);background:#fff;color:var(--navy);cursor:pointer}
.viz-scene button[aria-pressed=true],.viz-parts button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.viz-stage{border-radius:var(--r);overflow:hidden;max-width:760px;box-shadow:0 14px 34px rgba(11,50,116,.14)}
.viz-stage svg{display:block;width:100%;height:auto}
.viz-stage [data-part]{transition:fill .35s ease}
.viz-k{font-weight:800;color:var(--navy);margin:10px 0 0;font-family:var(--display);font-size:1.1rem}
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px;max-width:760px}
.swatch{font:inherit;border:0;border-radius:5px;background:#fff;padding:0;cursor:pointer;overflow:hidden;text-align:left;box-shadow:0 1px 0 var(--line),0 4px 12px rgba(11,50,116,.1);transition:transform .15s}
.swatch:hover{transform:translateY(-2px)}
.swatch::before{content:"";display:block;height:52px;background:var(--c)}
.swatch span{display:block;padding:6px 8px;font-size:.8rem;font-weight:600}
.viz-picked{font-weight:700;color:var(--navy);min-height:1.5em;margin:4px 0 0}

/* footer CTA + footer */
.cta-band{background:var(--orange);color:#fff;position:relative}
.cta-row{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:56px}
.cta-band h2{color:#fff;margin:0 0 4px}.cta-band p{margin:0;color:#fff4e8;font-size:1.1rem}
.cta-btns{display:flex;gap:12px;flex-wrap:wrap}
.cta-band .btn-ghost:hover{color:var(--accent-d)}
.site-foot{background:var(--navy);color:#e6edf8;font-size:.95rem;padding-bottom:20px}
.site-foot a{color:#fff;text-decoration:none}.site-foot a:hover{color:var(--sun)}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px;padding-block:56px 28px}
@media (max-width:960px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-brand{font-family:var(--display);font-weight:800;color:#fff;font-size:1.25rem}
.foot-h{font-weight:800;color:#fff;margin-bottom:10px}
.site-foot ul{list-style:none;padding:0;margin:0}.site-foot li{padding:3px 0}
.cols2{columns:2}
.foot-legal{border-top:1px solid rgba(255,255,255,.22);padding-block:18px;font-size:.86rem}

/* sticky estimate */
.mbar{display:none}
.est-fab{position:fixed;right:max(22px,env(safe-area-inset-right,0px));bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--orange);color:#fff;font-weight:800;padding:15px 24px;border-radius:8px;text-decoration:none;box-shadow:0 12px 28px rgba(11,50,116,.3)}
.est-fab:hover{background:var(--accent-d)}
@media (max-width:700px){
  .est-fab{display:none}
  .site-foot{padding-bottom:90px}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:10px;box-shadow:0 -6px 20px rgba(11,50,116,.1)}
  .mbar a{text-align:center;font-weight:800;padding:13px 6px;border-radius:8px;text-decoration:none;font-size:.95rem}
  .mbar-call{border:2px solid var(--navy);color:var(--navy)}
  .mbar-est{background:var(--orange);color:#fff}
  .section{padding-block:64px}
}
@media (prefers-reduced-motion:reduce){*,*::before{transition:none!important;animation:none!important}}

/* ===== Logo intro (home page only). Pure CSS timeline, so it always ends even without JavaScript. ===== */
.intro{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:#fff;animation:intro-out .75s cubic-bezier(.7,0,.2,1) 2.5s forwards;cursor:pointer}
.intro-in{display:grid;justify-items:center;gap:14px;padding:24px;text-align:center}
.intro-logo{width:min(46vw,210px);height:auto;animation:logo-in 1.1s cubic-bezier(.2,.8,.2,1) both}
.intro-name{font:800 clamp(1.6rem,6vw,2.4rem)/1.05 var(--display);color:var(--navy);letter-spacing:-.02em;animation:name-in .6s .8s ease both}
.intro-sub{font-weight:700;color:var(--teal);animation:name-in .6s 1s ease both}
.intro-stroke{width:min(70vw,320px);height:14px;background:linear-gradient(90deg,var(--teal),var(--orange) 55%,var(--sun));-webkit-mask:var(--brush-edge) center/100% 100% no-repeat;mask:var(--brush-edge) center/100% 100% no-repeat;animation:stroke-in .7s 1.25s cubic-bezier(.6,.05,.25,1) both}
.intro::after{content:"";position:absolute;left:0;right:0;bottom:-40px;height:42px;background:#fff;-webkit-mask:var(--brush-edge) center/100% 100% no-repeat;mask:var(--brush-edge) center/100% 100% no-repeat;transform:scaleY(-1)}
@keyframes logo-in{0%{opacity:0;transform:scale(.6) rotate(-14deg);clip-path:circle(0% at 50% 50%)}60%{opacity:1;clip-path:circle(75% at 50% 50%)}100%{opacity:1;transform:none;clip-path:circle(75% at 50% 50%)}}
@keyframes name-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes stroke-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes intro-out{to{transform:translateY(calc(-100% - 50px));visibility:hidden;pointer-events:none}}
.intro.skip{animation:intro-out .45s cubic-bezier(.7,0,.2,1) forwards}
html.intro-seen .intro{display:none}
/* hold the hero's own paint-in until the intro lifts */
.has-intro .hero-panel::before{animation-delay:2.75s}
.has-intro .hero-panel>*{animation-delay:3.2s}
html.intro-seen .has-intro .hero-panel::before{animation-delay:0s}
html.intro-seen .has-intro .hero-panel>*{animation-delay:.05s}
@media (prefers-reduced-motion:reduce){.intro{display:none}}

/* ===== Tools ===== */
.toolgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;margin-top:28px}
.tcard{display:grid;gap:6px;align-content:start;background:#fff;border-radius:6px;padding:22px 22px 24px;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 var(--line),0 10px 26px rgba(11,50,116,.08);border-top:8px solid var(--teal);transition:transform .2s}
.tcard:nth-child(2){border-top-color:var(--orange)}.tcard:nth-child(3){border-top-color:var(--navy)}.tcard:nth-child(4){border-top-color:var(--sun)}.tcard:nth-child(5){border-top-color:var(--rose)}
.tcard:hover{transform:translateY(-3px)}
.tcard strong{font-family:var(--display);font-size:1.2rem;color:var(--navy);line-height:1.2}
.tcard span{color:var(--muted);font-size:.95rem}
/* visualizer extras */
.viz-scene{gap:8px}
.swatch[aria-pressed=true]{outline:3px solid var(--navy);outline-offset:2px}
.photo-stage{background:var(--mist);display:grid}
.photo-stage canvas{width:100%;height:auto;display:block;cursor:crosshair;touch-action:manipulation}
.pp-hint{margin:0;padding:10px 14px;font-weight:600;color:var(--navy);background:#fff;border-top:1px solid var(--line)}
.pp-tools{align-items:center}
.pp-tools .pp-upload{margin:0;cursor:pointer;border-radius:6px}
.pp-tol{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;color:var(--navy)}
.pp-tol input{accent-color:var(--teal);width:120px}
#pp-compare{user-select:none;-webkit-user-select:none;touch-action:none}
/* repaint checker */
.rc{display:grid;gap:22px;margin-top:28px;max-width:860px}
.rc-q{border:0;padding:0;margin:0;min-width:0}
.rc-q legend{display:flex;gap:12px;align-items:flex-start;font-weight:700;font-size:1.12rem;color:var(--navy);margin-bottom:12px;padding:0}
.rc-n{flex:0 0 32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:grid;place-items:center;font:800 1rem var(--display)}
.rc-q:nth-child(2) .rc-n{background:var(--orange)}.rc-q:nth-child(3) .rc-n{background:var(--navy)}.rc-q:nth-child(4) .rc-n{background:var(--sun);color:var(--navy)}.rc-q:nth-child(5) .rc-n{background:var(--rose)}
.rc-result{background:var(--mist);border-radius:var(--r);padding:26px;border-left:8px solid var(--line)}
.rc.lvl-1 .rc-result{border-left-color:#2e9e5b}.rc.lvl-2 .rc-result{border-left-color:var(--sun)}.rc.lvl-3 .rc-result{border-left-color:var(--orange)}
.rc-meter{height:12px;border-radius:6px;background:linear-gradient(90deg,#2e9e5b,var(--sun) 50%,var(--orange));position:relative;margin-bottom:16px;opacity:.9}
.rc-meter span{position:absolute;top:-5px;left:0;width:0;height:22px;border-right:4px solid var(--navy);transition:width .5s}
.rc-h{font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--navy);margin:0 0 6px}
.rc-p{margin:0 0 6px}
/* finish explorer */
.fx{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;margin-top:28px;align-items:start}
.fx>*{min-width:0}
@media (max-width:820px){.fx{grid-template-columns:1fr}}
.fx-wall{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;background:#6f8ca3;box-shadow:inset 0 -40px 60px rgba(0,0,0,.12)}
.fx-light{position:absolute;inset:0;background:radial-gradient(ellipse 45% 38% at 32% 28%,rgba(255,255,255,calc(var(--sheen)*.95)),rgba(255,255,255,calc(var(--sheen)*.25)) 45%,transparent 70%),linear-gradient(115deg,transparent 40%,rgba(255,255,255,calc(var(--sheen)*.35)) 52%,transparent 64%);transition:all .4s}
.fx-wall::before{content:"";position:absolute;inset:0;opacity:calc(.5 - var(--sheen)*.45);background:repeating-radial-gradient(circle at 20% 30%,rgba(0,0,0,.05) 0 2px,transparent 2px 6px)}
.fx-trim{position:absolute;left:0;right:0;bottom:0;height:16%;background:#fff;box-shadow:0 -2px 0 rgba(0,0,0,.06)}
.fx-trim::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(0,0,0,calc(.04 + var(--sheen)*.06)))}
.fx-slide{display:grid;gap:6px;font-weight:700;color:var(--navy)}
.fx-slide input{accent-color:var(--orange);width:100%}
.fx-btns{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.fx-btns button{font:inherit;font-weight:700;padding:8px 14px;border-radius:6px;border:2px solid var(--line);background:#fff;color:var(--navy);cursor:pointer}
.fx-btns button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.fx-meters{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;align-items:center;margin:14px 0}
.fx-meters dt{font-weight:600}.fx-meters dd{margin:0}
.meter{display:flex;gap:5px}.meter i{width:26px;height:10px;border-radius:3px;background:var(--line)}.meter i.on{background:var(--teal)}
/* prep checklist */
.ckl{margin-top:24px;max-width:820px}
.ck-progress{position:sticky;top:84px;z-index:5;background:#fff;display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.ck-bar{grid-column:1/-1;height:10px;border-radius:5px;background:var(--mist);overflow:hidden}
.ck-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--orange));transition:width .3s}
.ck-progress p{margin:0;font-weight:700;color:var(--navy)}
.ck-group h2{font-size:1.5rem;margin-top:1.4em}
.ck-group ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ck{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:2px solid var(--line);border-radius:8px;cursor:pointer;background:#fff}
.ck input{width:22px;height:22px;flex:0 0 22px;margin:1px 0 0;accent-color:var(--teal)}
.ck:has(input:checked){border-color:var(--teal);background:#eef9fa}
.ck:has(input:checked) span{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--teal)}
/* project map */
.pmap{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;margin-top:28px;align-items:start}
.pmap>*{min-width:0}
@media (max-width:860px){.pmap{grid-template-columns:1fr}}
.pmap svg{width:100%;height:auto;display:block;border-radius:var(--r);box-shadow:0 14px 34px rgba(11,50,116,.12)}
.map-land{fill:#e9f2e4}
.map-lake{fill:#a9d8e4}
.map-road{fill:none;stroke:#f0c05a;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.map-road-2{stroke:#d9dee6;stroke-width:4}
.map-tag{font:800 20px var(--body);fill:#9a7a2e}
.map-water{font:600 17px var(--body);fill:#4b8fa1;font-style:italic}
.pin{cursor:pointer;outline:none}
.pin circle{fill:var(--teal);stroke:#fff;stroke-width:3;transition:r .15s}
.pin text{font:700 22px var(--body);fill:var(--navy);paint-order:stroke;stroke:#e9f2e4;stroke-width:5px}
.pin-hq circle{fill:var(--orange)}
.pin:hover circle,.pin:focus-visible circle{fill:var(--navy)}
.pin.on circle{fill:var(--navy);stroke:var(--sun);stroke-width:4}
.pmap-card{background:#fff;border-radius:var(--r);padding:24px;box-shadow:0 1px 0 var(--line),0 10px 26px rgba(11,50,116,.08);border-top:8px solid var(--orange)}
.pmap-h{font-family:var(--display);font-weight:800;font-size:1.5rem;color:var(--navy);margin:0 0 8px}
/* articles + updated line */
.updated{font-size:.85rem;color:var(--muted);padding-block:6px 26px;margin:0}
.article h2{font-size:clamp(1.4rem,2.6vw,1.8rem)}
.article p{max-width:68ch}
.byline{color:var(--muted);font-size:.92rem;margin-top:-6px}
.answer{background:#e6f7f9;border-left:6px solid var(--teal);border-radius:6px;padding:18px 22px;margin:20px 0 10px}
.answer p{margin:0;font-size:1.1rem}
.answer .answer-k{font-weight:800;color:var(--navy);font-size:.95rem;margin-bottom:4px}

/* ===== Small touches ===== */
/* 2. brush underline under section headings */
main h2::after{content:"";display:block;width:min(150px,45%);height:11px;margin-top:12px;background:linear-gradient(90deg,var(--teal),var(--orange));-webkit-mask:var(--brush-panel) center/100% 100% no-repeat;mask:var(--brush-panel) center/100% 100% no-repeat}
.dark h2::after,.colorband h2::after{background:linear-gradient(90deg,var(--sun),var(--orange))}
.center h2::after{margin-left:auto;margin-right:auto}
main h2.stroke-pre::after{clip-path:inset(0 100% 0 0);transition:clip-path .7s cubic-bezier(.6,.05,.25,1) .1s}
main h2.stroke-pre.painted::after{clip-path:inset(0 0 0 0)}
.cta-band h2::after,.svc-side h2::after{display:none}
/* 3. counting chips: keep width steady while digits change */
.pchip strong{font-variant-numeric:tabular-nums}
/* 5. paint-chip confetti */
.confetti{position:fixed;inset:0;z-index:450;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-24px;width:12px;height:16px;border-radius:2px;box-shadow:inset 0 -5px 0 rgba(255,255,255,.55);animation:chip-fall linear forwards}
@keyframes chip-fall{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(var(--dx),110vh) rotate(var(--r))}}
@media (prefers-reduced-motion:reduce){.confetti{display:none}main h2.stroke-pre::after{clip-path:none}}
/* photo upload in quote form */
.photos{border:2px dashed var(--line);border-radius:8px;padding:16px;display:grid;gap:8px}
.photos-k{margin:0;font-weight:700;color:var(--navy)}
.photos-p{margin:0;color:var(--muted);font-size:.92rem}
.photos-add{justify-self:start;cursor:pointer;margin:4px 0 0}
.photos-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px}
.photos-list li{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:1;background:var(--mist)}
.photos-list img{width:100%;height:100%;object-fit:cover}
.photos-list button{position:absolute;left:4px;right:4px;bottom:4px;font:600 .78rem var(--body);padding:5px;border:0;border-radius:5px;background:rgba(255,255,255,.92);color:var(--navy);cursor:pointer}
.lang{font-weight:700;font-size:.9rem;color:var(--teal)!important;text-decoration:none;border:2px solid var(--teal)!important;border-radius:6px;padding:6px 10px!important}
.lang:hover{background:var(--teal);color:#fff!important}
@media (max-width:1320px){.main-nav .lang{margin-top:14px;text-align:center;border-bottom:2px solid var(--teal)!important}}

/* Hero: no solid panel — text sits on the photo with a soft shade */
.hero-panel::before{display:none}
.hero::after{background:linear-gradient(90deg,rgba(6,22,52,.66) 0%,rgba(6,22,52,.42) 42%,rgba(6,22,52,0) 75%),linear-gradient(0deg,rgba(6,22,52,.35),rgba(6,22,52,0) 40%)}
.hero-panel{padding-left:0;margin-left:0}
.hero h1,.hero .lead,.hero-kicker{text-shadow:0 2px 14px rgba(0,0,0,.45)}
@media (max-width:760px){
  .hero::after{background:linear-gradient(180deg,rgba(6,22,52,.25) 0%,rgba(6,22,52,.55) 45%,rgba(6,22,52,.72) 100%)}
  .hero-panel{margin-left:0;margin-right:0;padding:36px 0 28px}
}
.hero-inner>.hero-btns{padding-left:0}
@media (max-width:760px){.hero{min-height:560px;align-items:flex-end}.hero-panel{padding:0 0 4px}}
@media (max-width:760px){.hero{min-height:max(700px,88svh)}.hero::after{background:linear-gradient(180deg,rgba(6,22,52,0) 0%,rgba(6,22,52,0) 22%,rgba(6,22,52,.6) 50%,rgba(6,22,52,.8) 100%)}.hero-slides img{object-position:center 62%}}

/* Real before/after photos */
.ba.ba-real{aspect-ratio:4/5}
.ba.ba-real .ba-before img{filter:none}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:#000}
.ba-pair>div{position:relative;overflow:hidden}
.ba-pair img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-pair .ba-tag-a{right:12px}
.ba-grid.two{max-width:980px;margin-inline:auto}

/* Instagram photo grid */
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}
.ig-tile{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:8px;background:var(--mist)}
.ig-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ig-ov{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:rgba(11,50,116,.62);color:#fff;font-weight:700;font-size:.92rem;opacity:0;transition:opacity .25s}
.ig-tile:hover img,.ig-tile:focus-visible img{transform:scale(1.05)}
.ig-tile:hover .ig-ov,.ig-tile:focus-visible .ig-ov{opacity:1}
.ig-follow{text-align:center;margin-top:26px}
.ig-handle{color:var(--teal);font-weight:700;text-decoration:none}
@media (max-width:760px){.ig-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.ba-pair.wide{aspect-ratio:3/2}

/* Match the "& Renovations" color in the official logo */
.brand small,.intro-sub{color:#c64c9b}

/* ===== Animated logo intro (video). The CSS timeline is a fallback so it always lifts, even without JavaScript. ===== */
.intro{background:#fff;animation:intro-out .75s cubic-bezier(.7,0,.2,1) 11s forwards}
.intro::after{background:#fff}
.intro-in{padding:0}
.intro-vid,.intro-still{display:block;width:min(86vw,560px);height:auto;background:#fff}
.intro.lift{animation:intro-out .75s cubic-bezier(.7,0,.2,1) forwards}
/* the hero settles underneath while the intro plays */
.has-intro .hero-panel>*{animation-delay:.2s}

/* ===== Smooth hand-off from the logo intro to the home page ===== */
.intro{animation:intro-safety 1.2s ease 8s forwards}            /* no-JS safety net */
@keyframes intro-safety{to{opacity:0;visibility:hidden;pointer-events:none}}
.intro::after{display:none}
.intro.lift,.intro.skip{animation:intro-fade 1.15s cubic-bezier(.4,0,.2,1) forwards}
.intro.lift .intro-in,.intro.skip .intro-in{animation:logo-away 1.15s cubic-bezier(.4,0,.2,1) forwards}
@keyframes intro-fade{0%{opacity:1}35%{opacity:1}100%{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes logo-away{to{transform:scale(1.08);filter:blur(5px);opacity:0}}
/* hero waits under the intro, then eases in */
html.intro-wait .hero-panel>*,html.intro-wait .hero-btns{animation:none!important;opacity:0;transform:translateY(18px)}
html.intro-reveal .hero-panel>*,html.intro-reveal .hero-btns{animation:none!important;opacity:1;transform:none;transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
html.intro-reveal .hero-panel>:nth-child(1){transition-delay:.15s}
html.intro-reveal .hero-panel>:nth-child(2){transition-delay:.3s}
html.intro-reveal .hero-panel>:nth-child(3){transition-delay:.45s}
html.intro-reveal .hero-btns{transition-delay:.6s}
html.intro-reveal .hero-slides{animation:hero-settle 1.8s cubic-bezier(.2,.7,.2,1) both}
@keyframes hero-settle{from{transform:scale(1.07)}to{transform:none}}
@media (prefers-reduced-motion:reduce){html.intro-wait .hero-panel>*,html.intro-wait .hero-btns{opacity:1;transform:none}}

/* Skip button on the intro */
.intro-skip{position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));padding:8px 16px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font:600 .9rem var(--body,inherit);cursor:pointer;opacity:0;animation:skip-in .4s ease .6s forwards}
.intro-skip:hover,.intro-skip:focus-visible{border-color:var(--navy)}
@keyframes skip-in{to{opacity:1}}
.intro.skip,.intro.skip .intro-in{animation-duration:.6s}
.intro.skip .intro-skip{opacity:0;transition:opacity .2s}

/* Animated logo image (replaces the video) */
.intro-art{position:relative;width:min(86vw,560px)}
.intro-anim,.intro-art .intro-still{display:block;width:100%;height:auto}
.intro-art .intro-still{position:absolute;inset:0}

/* Keep tall before/after photos at a size the photos can hold sharply */
.svc-main .ba-wrap:has(.ba-real),.svc-main .ba-wrap:has(.ba-pair:not(.wide)){max-width:440px}
@media (max-width:560px){.svc-main .ba-wrap:has(.ba-real),.svc-main .ba-wrap:has(.ba-pair:not(.wide)){max-width:none}}

/* Home: "How a Project Works" with a photo beside a vertical step list */
.process-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}
.process-photo{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;box-shadow:0 18px 40px rgba(11,50,116,.14)}
.process-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.process.process-v{grid-template-columns:1fr;margin-top:26px}
.process-v li{grid-template-columns:52px 1fr;column-gap:18px;row-gap:2px;padding:0 0 22px}
.process-v li::before{grid-row:1 / span 2;margin:0}
.process-v li strong{align-self:end;padding-top:4px}
.process-v li::after{top:56px;bottom:4px;left:25px;right:auto;width:3px;height:auto;background:repeating-linear-gradient(180deg,var(--line) 0 8px,transparent 8px 14px)}
@media (max-width:860px){.process-split{grid-template-columns:1fr;gap:28px}.process-photo{aspect-ratio:4/3}.process-photo img{object-position:center 22%}}
/* Interior page: in-text photo */
.svc-fig{margin:6px 0 26px;max-width:440px}
.svc-fig img{width:100%;height:auto;border-radius:var(--r);display:block}
.svc-fig figcaption{font-size:.92rem;color:var(--muted);padding-top:8px}
/* Stacked before/after for wide photos */
.ba-pair.stack{grid-template-columns:1fr;aspect-ratio:auto;gap:4px}
.ba-pair.stack>div{aspect-ratio:16/9}
.svc-main .ba-wrap:has(.ba-pair.stack){max-width:none}

/* Service cards: quick "what's included" list */
.card-body p{flex:0 0 auto}
.card-checks{list-style:none;margin:12px 0 16px;padding:12px 0 0;border-top:1px solid var(--line);display:grid;gap:7px;flex:1;align-content:start}
.card-checks li{position:relative;padding-left:26px;font-size:.9rem;font-weight:600;color:var(--navy);line-height:1.35}
.card-checks li::before{content:"";position:absolute;left:0;top:1px;width:17px;height:17px;border-radius:50%;background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
/* Home: three before/afters side by side */
.ba-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1140px;margin-inline:auto}
@media (max-width:900px){.ba-grid.three{grid-template-columns:1fr;max-width:480px}}
/* several before/afters in one service section */
.svc-main .ba-wrap+.ba-wrap{margin-top:26px}
/* Landscape slider (accent wall) */
.ba.ba-real.ba-land{aspect-ratio:4/3}
.svc-main .ba-wrap:has(.ba-land){max-width:none}
/* Home: four before/afters, two per row (wide ones on top, tall ones below) */
.ba-grid.four{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1100px;margin-inline:auto;align-items:start}
.ba-grid.four .ba-wrap:nth-child(n+3){max-width:440px;justify-self:center;width:100%}
@media (max-width:760px){.ba-grid.four{grid-template-columns:1fr}.ba-grid.four .ba-wrap:nth-child(n+3){max-width:none}}
.svc-fig.svc-fig-wide{max-width:none}
/* Three-step before / rebuild / after */
.ba-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-radius:var(--r);overflow:hidden;background:#000}
.ba-steps>div{position:relative;aspect-ratio:3/4;overflow:hidden}
.ba-steps img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-steps .ba-tag-b{left:10px}.ba-steps .ba-tag-m{left:10px;background:var(--teal);color:#fff}.ba-steps .ba-tag-a{right:10px}
@media (max-width:560px){.ba-steps .ba-tag{font-size:.72rem;padding:3px 7px;top:8px}}
.ba-pair.stack>div:has(img[src*="floor-open"]){aspect-ratio:4/3}
/* Longer hero headline: wider text block so it sits on 2–3 lines */
.hero-panel{max-width:860px}
.hero h1{font-size:clamp(2rem,4.4vw,3.6rem)}
@media (max-width:760px){.hero::after{background:linear-gradient(180deg,rgba(6,22,52,.15) 0%,rgba(6,22,52,.45) 22%,rgba(6,22,52,.7) 50%,rgba(6,22,52,.82) 100%)}}

/* Color band: real room photo that cycles through wall colors */
.wallswap{position:relative;margin:0;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;box-shadow:0 24px 50px rgba(6,22,52,.35);border:6px solid #fff;background:#fff}
.wallswap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.wallswap img.on{opacity:1}
.wallswap-chip{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:10px;background:#fff;border-radius:8px;padding:7px 14px 7px 7px;box-shadow:0 6px 18px rgba(0,0,0,.18);font-weight:700;color:var(--navy);font-size:.92rem}
.wallswap-sw{width:30px;height:30px;border-radius:5px;border:1px solid rgba(0,0,0,.12);transition:background 1.2s ease}
@media (max-width:760px){.wallswap{border-width:4px}.wallswap-chip{left:10px;bottom:10px;font-size:.85rem}}
.about-portrait{margin:0;align-self:start}
.about-portrait img{width:100%;height:auto;border-radius:var(--r);box-shadow:0 18px 40px rgba(11,50,116,.14);display:block}
.about-portrait figcaption{font-size:.92rem;color:var(--muted);padding-top:10px;text-align:center}
.gallery img[src*="hamlet-loading-roller"]{object-position:center 30%}
.gallery-about{grid-template-columns:1fr 1fr;grid-auto-rows:280px;max-width:980px;margin-inline:auto}
.gallery-about figure:first-child{grid-column:span 1;grid-row:span 2}
@media (max-width:760px){.gallery-about{grid-auto-rows:200px}}
/* Color band: faster crossfade + dots */
.wallswap img{transition:opacity .55s ease}
.wallswap-sw{transition:background .55s ease}
.wallswap-dots{position:absolute;right:14px;bottom:20px;display:flex;gap:7px}
.wallswap-dots button{width:11px;height:11px;padding:0;border-radius:50%;border:2px solid #fff;background:rgba(255,255,255,.35);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:background .3s,transform .3s}
.wallswap-dots button.on{background:#fff;transform:scale(1.25)}
/* Replace dots with a slim segmented progress line */
.wallswap-dots{left:0;right:0;bottom:0;gap:3px;padding:0;height:4px}
.wallswap-dots button{flex:1;width:auto;height:4px;border-radius:0;border:0;box-shadow:none;background:rgba(255,255,255,.35);transform:none!important}
.wallswap-dots button.on{background:var(--orange)}
.wallswap-chip{bottom:18px}
.wallswap-dots button{background:rgba(11,50,116,.28)}

.brand{flex-shrink:0}

/* Spanish menu labels are longer: switch to the menu button sooner */
@media (max-width:1860px){
  html[lang="es-US"] .burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:10px}
  html[lang="es-US"] .burger span{width:26px;height:2px;background:var(--navy);border-radius:2px}
  html[lang="es-US"] .main-nav{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:8px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(11,50,116,.12)}
  html[lang="es-US"] .main-nav ul{flex-direction:column;gap:0}
  html[lang="es-US"] .main-nav li a{display:block;padding:14px 0!important;border-bottom:1px solid var(--line)!important;font-size:1.05rem!important}
  html[lang="es-US"] .main-nav .btn{margin-top:16px}
  html[lang="es-US"] .nav-toggle:checked~.main-nav{display:flex}
}
@media (max-width:1860px){html[lang="es-US"] .main-nav .lang{margin-top:14px;text-align:center;border-bottom:2px solid var(--teal)!important}}
.main-nav .btn{white-space:nowrap}
/* Tool cards: call-to-action link line */
.tcard-cta{display:inline-flex;gap:6px;margin-top:10px;font-style:normal;font-weight:700;color:var(--navy);font-size:.95rem;border-bottom:2px solid var(--orange);justify-self:start;padding-bottom:2px}
.tcard-cta span{color:inherit;font-size:inherit;transition:transform .2s}
.tcard:hover .tcard-cta span{transform:translateX(4px)}
.toolgrid .tcard{display:flex;flex-direction:column;gap:6px}.toolgrid .tcard .tcard-cta{margin-top:auto;padding-top:12px}

/* Areas We Serve: city cards */
.acards{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:14px}
.acard{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;border-radius:10px;text-decoration:none;color:var(--navy);box-shadow:0 1px 0 var(--line),0 8px 22px rgba(11,50,116,.07);border-left:4px solid var(--teal);transition:transform .2s,box-shadow .2s,border-color .2s}
.acards li:nth-child(4n+2) .acard{border-left-color:var(--orange)}
.acards li:nth-child(4n+3) .acard{border-left-color:var(--navy)}
.acards li:nth-child(4n+4) .acard{border-left-color:var(--sun)}
.acard-pin{flex:0 0 40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--mist);color:var(--teal);transition:background .2s,color .2s}
.acard-txt{display:grid;gap:1px;min-width:0}
.acard-txt strong{font-family:var(--display);font-size:1.08rem;line-height:1.2}
.acard-txt small{font-size:.82rem;color:var(--muted);font-weight:600}
.acard-go{margin-left:auto;font-weight:700;color:var(--orange);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.acard:hover,.acard:focus-visible{transform:translateY(-3px);box-shadow:0 1px 0 var(--line),0 14px 30px rgba(11,50,116,.13)}
.acard:hover .acard-pin,.acard:focus-visible .acard-pin{background:var(--teal);color:#fff}
.acard:hover .acard-go,.acard:focus-visible .acard-go{opacity:1;transform:none}
.acard-hq{background:var(--navy);color:#fff;border-left-color:var(--orange)!important}
.acard-hq .acard-txt small{color:#cfdcf2}
.acard-hq .acard-pin{background:var(--orange);color:#fff}
.acard-hq:hover .acard-pin{background:#fff;color:var(--orange)}
@media (hover:none){.acard-go{opacity:1;transform:none}}
@media (max-width:560px){.acards{grid-template-columns:1fr 1fr;gap:10px}.acard{padding:12px 10px;gap:9px}.acard-pin{flex-basis:30px;height:30px}.acard-pin svg{width:16px;height:16px}.acard-txt strong{font-size:.95rem}.acard-txt small{font-size:.74rem}.acard-go{display:none}}

/* ===== Areas We Serve: paint-chip cities + mini map ===== */
.areas-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px;align-items:center;margin-top:30px}
.cchips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px 14px}
.cchip{display:flex;flex-direction:column;text-decoration:none;background:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 6px 14px rgba(11,50,116,.08);transform:rotate(var(--tilt));transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;padding:6px 6px 0}
.cchip-color{position:relative;display:block;height:74px;border-radius:2px;background:var(--sw);background-image:linear-gradient(160deg,rgba(255,255,255,.18),rgba(255,255,255,0) 45%,rgba(0,0,0,.08));overflow:hidden}
.cchip-color::after{content:"";position:absolute;inset:0;background:var(--sw);clip-path:inset(0 100% 0 0);transition:clip-path .45s ease;filter:brightness(1.12)}
.cchip-code{position:absolute;left:7px;bottom:5px;z-index:1;font:700 .62rem/1 var(--body,inherit);letter-spacing:.08em;color:rgba(255,255,255,.85)}
.cchip-tag{position:absolute;right:6px;top:6px;z-index:1;background:#fff;color:var(--navy);font-weight:800;font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:3px}
.cchip-label{display:grid;gap:1px;padding:8px 4px 10px}
.cchip-label strong{font-family:var(--display);font-size:.98rem;color:var(--navy);line-height:1.15}
.cchip-label small{font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700}
.cchip:hover,.cchip:focus-visible,.cchip.on{transform:translateY(-6px) rotate(0deg) scale(1.04);box-shadow:0 2px 3px rgba(0,0,0,.08),0 16px 30px rgba(11,50,116,.18)}
.cchip:hover .cchip-color::after,.cchip.on .cchip-color::after{clip-path:inset(0 0 0 0)}
.minimap{position:relative}
.minimap svg{width:100%;height:auto;display:block;filter:drop-shadow(0 14px 30px rgba(11,50,116,.12))}
.minimap-land{fill:#fff}
.minimap .map-lake{fill:#d7ebf0}
.minimap .map-road{fill:none;stroke:#e8d3a8;stroke-width:5;stroke-linecap:round}
.mpin circle{transition:r .25s ease,opacity .25s ease}
.mpin-ring{fill:none;stroke-width:3;opacity:0;r:10}
.mpin.on .mpin-ring,.mpin:hover .mpin-ring{opacity:.9;r:24;animation:mpin-pulse 1.2s ease-out infinite}
@keyframes mpin-pulse{0%{r:12;opacity:.9}100%{r:30;opacity:0}}
.minimap-cap{position:absolute;left:16px;bottom:12px;margin:0;font-family:var(--display);font-weight:800;color:var(--navy);font-size:1.05rem;background:rgba(255,255,255,.9);padding:6px 12px;border-radius:999px}
@media (max-width:900px){.areas-split{grid-template-columns:1fr;gap:26px}.minimap{max-width:460px;margin-inline:auto;width:100%}}
@media (max-width:560px){.cchips{grid-template-columns:repeat(2,1fr);gap:14px 12px}.cchip-color{height:58px}}
@media (hover:none){.minimap-cap{font-size:.92rem}}

/* ===== Areas We Serve: real map + list ===== */
.amap{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:26px;margin-top:28px;align-items:stretch}
.alist{list-style:none;margin:0;padding:6px;background:#fff;border-radius:14px;box-shadow:0 1px 0 var(--line),0 12px 30px rgba(11,50,116,.08);max-height:520px;overflow:auto}
.aitem{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;text-decoration:none;color:var(--navy);transition:background .2s}
.aitem-dot{flex:0 0 12px;height:12px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(26,169,186,.15)}
.aitem-hq .aitem-dot{background:var(--orange);box-shadow:0 0 0 4px rgba(217,58,48,.18)}
.aitem-txt{display:grid;gap:1px}
.aitem-txt strong{font-family:var(--display);font-size:1rem}
.aitem-txt small{font-size:.8rem;color:var(--muted);font-weight:600}
.aitem-go{margin-left:auto;color:var(--orange);font-weight:700;opacity:0;transform:translateX(-4px);transition:.2s}
.aitem:hover,.aitem:focus-visible,.aitem.on{background:var(--mist)}
.aitem:hover .aitem-go,.aitem.on .aitem-go{opacity:1;transform:none}
.alist li+li{border-top:1px solid var(--line)}
.amap-box{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 1px 0 var(--line),0 12px 30px rgba(11,50,116,.1);min-height:520px;background:#e9eef4}
.amap-canvas{position:absolute;inset:0}
.amap-nomap{grid-template-columns:1fr}.amap-nomap .amap-box{display:none}.amap-nomap .alist{max-height:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.apin span{display:block;width:100%;height:100%;border-radius:50%;background:var(--teal);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.apin-hq span{background:var(--orange)}
.apop{display:grid;gap:3px;font-family:var(--body,inherit);min-width:170px}
.apop strong{font-family:var(--display);color:var(--navy);font-size:1.05rem}
.apop small{color:var(--muted);font-weight:600}
.apop a{color:var(--orange);font-weight:700;text-decoration:none;margin-top:4px}
@media (max-width:860px){.amap{grid-template-columns:1fr}.amap-box{min-height:340px;order:-1}.alist{max-height:none;display:grid;grid-template-columns:1fr 1fr}.alist li+li{border-top:0}.aitem-go{display:none}}
/* Show every city without a scroll bar; map matches the list height */
.alist{max-height:none;overflow:visible}
.aitem{padding:9px 12px}
.amap-box{min-height:460px;height:100%}
.amap-canvas .leaflet-tile-pane{filter:saturate(.75) contrast(.98)}

.prose{max-width:780px}.prose h2{margin-top:1.6em;font-size:1.35rem}.prose ul{padding-left:1.2em}.prose li{margin:.3em 0}
