
:root{
  --bone:#F4EFE6; --paper:#FBF8F2; --card:#FFFFFF;
  --ink:#17130E; --ink-2:#3A332B; --muted:#8C8174; --line:#E5DCCD;
  --clay:#C0522B; --clay-d:#9C3F1E; --amber:#E0A04A; --sand:#EFE7D8;
  --r:18px; --r-lg:28px; --maxw:1240px;
  --shadow:0 1px 2px rgba(23,19,14,.04), 0 18px 50px -20px rgba(23,19,14,.18);
  --shadow-lg:0 40px 90px -40px rgba(23,19,14,.45);
  --serif:"Instrument Serif",Georgia,serif;
  --disp:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Outfit",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bone);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.narrow{max-width:820px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:200}
.eyebrow{display:inline-block;font-family:var(--body);font-weight:700;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay-d);margin-bottom:1rem}
.eyebrow-light{color:var(--amber)}
.sec-title{font-family:var(--disp);font-weight:700;font-size:clamp(1.9rem,4.4vw,3.3rem);line-height:1.04;letter-spacing:-.02em}
.sec-head{max-width:760px;margin-bottom:3rem}
.sec-sub{font-size:1.12rem;color:var(--ink-2);margin-top:1rem}
.section{padding:clamp(60px,8vw,120px) 0}
.lead{font-size:1.22rem;color:var(--ink-2);line-height:1.55}

.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--body);font-weight:700;font-size:.98rem;padding:.85em 1.5em;border-radius:100px;border:1.5px solid transparent;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,color .25s,box-shadow .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn-clay{background:var(--clay);color:#fff;box-shadow:0 10px 26px -10px rgba(192,82,43,.7)}
.btn-clay:hover{background:var(--clay-d)}
.btn-lg{padding:1.05em 1.9em;font-size:1.04rem}
.btn-block{width:100%;justify-content:center}
.btn-ink-outline{border-color:var(--ink);color:var(--ink)}
.btn-ink-outline:hover{background:var(--ink);color:#fff}
.btn-outline-light{border-color:rgba(255,255,255,.5);color:#fff}
.btn-outline-light:hover{background:#fff;color:var(--ink)}
.btn-ghost-sm{border-color:var(--line);color:var(--ink);font-size:.9rem;padding:.6em 1em}
.btn-ghost-sm:hover{border-color:var(--ink)}

/* ---- top bar ---- */
.topbar{background:linear-gradient(90deg,#15110c,#251c11 60%,#15110c);color:#e7dac6;font-size:.8rem;font-weight:400;border-bottom:1px solid rgba(224,160,74,.16)}
.topbar-in{display:flex;align-items:center;gap:1.1rem;height:44px}
.tb-item{display:inline-flex;align-items:center;gap:.5rem;opacity:.92;letter-spacing:.005em}
.tb-ico{display:inline-flex}.tb-ico svg{width:15px;height:15px;color:var(--amber)}
.tb-dot{opacity:.3}
.tb-phone{margin-left:auto;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:#fff;letter-spacing:.01em;transition:color .25s}
.tb-phone .tb-ico svg{color:var(--amber)}
.tb-phone:hover{color:var(--amber)}
@media(max-width:760px){.tb-item.hide-sm,.tb-dot{display:none}}
@media(max-width:480px){.tb-item:not(.hide-sm) span:last-child{font-size:0}.tb-item .tb-ico svg{width:16px;height:16px}}

/* ---- header ---- */
.site-head{position:sticky;top:0;z-index:100;background:rgba(250,246,239,.7);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border-bottom:1px solid rgba(229,220,205,.7);transition:background .3s,box-shadow .3s,border-color .3s}
.site-head.scrolled{background:rgba(250,246,239,.94);box-shadow:0 14px 44px -26px rgba(23,19,14,.55);border-color:rgba(229,220,205,.95)}
.head-in{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.2rem;height:90px;transition:height .35s cubic-bezier(.2,.8,.2,1)}
.site-head.scrolled .head-in{height:74px}

/* brand lockup */
.brand{display:flex;align-items:center;gap:.5rem;justify-self:start}
.brand-mark{display:grid;place-items:center;flex:none;margin-top:8px;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.brand-img{height:52px;width:auto;display:block;transition:height .35s}
.brand:hover .brand-mark{transform:scale(1.06) rotate(-4deg)}
.site-head.scrolled .brand-img{height:44px}
.brand-words{display:flex;flex-direction:column;justify-content:center;line-height:1;transform:translateY(12px)}
.bw-1{font-family:var(--disp);font-weight:700;font-size:1.12rem;letter-spacing:-.015em;color:var(--ink)}
.bw-2{display:flex;align-items:center;gap:.45rem;margin-top:.34rem;font-size:.66rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--clay-d)}
.bw-2::before{content:"";width:18px;height:1.5px;background:var(--clay)}
.bw-est{font-style:normal;color:var(--muted);letter-spacing:.14em;font-weight:500}
@media(max-width:400px){.bw-1{font-size:.98rem}.brand-img{height:36px}}

/* nav with animated underline */
.nav{display:flex;gap:.1rem;justify-self:center}
.nav-link{position:relative;font-weight:500;font-size:.96rem;padding:.6em .95em;color:var(--ink-2);transition:color .25s}
.nav-link span{position:relative}
.nav-link::after{content:"";position:absolute;left:50%;bottom:.45em;width:0;height:2px;background:var(--clay);border-radius:2px;transform:translateX(-50%);transition:width .32s cubic-bezier(.2,.8,.2,1)}
.nav-link:hover{color:var(--ink)}
.nav-link:hover::after{width:calc(100% - 1.9em)}
.nav-link.active{color:var(--clay-d);font-weight:600}
.nav-link.active::after{width:calc(100% - 1.9em)}

/* services mega-dropdown */
.nav-item{position:static;display:flex}
.has-drop > .nav-link{display:inline-flex;align-items:center;gap:.25rem}
.chev{width:14px;height:14px;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.nav-item:hover .chev,.nav-item:focus-within .chev{transform:rotate(180deg)}
.mega{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(16px);width:720px;max-width:calc(100vw - 40px);background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);padding:.85rem;opacity:0;visibility:hidden;transition:opacity .3s ease,transform .35s cubic-bezier(.2,.8,.2,1);z-index:130}
.mega::before{content:"";position:absolute;top:-48px;left:0;right:0;height:52px}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;transform:translateX(-50%) translateY(8px)}
.mega-inner{display:grid;grid-template-columns:.82fr 1.18fr;gap:.85rem}
.mega-left{display:flex;flex-direction:column}
.mega-left .eyebrow{padding:.45rem .6rem .55rem;margin:0;font-size:.68rem}
.mega-list{display:flex;flex-direction:column;gap:.1rem;flex:1}
.mega-row{display:flex;align-items:center;gap:.8rem;padding:.52rem .8rem;border-radius:12px;color:var(--ink-2);position:relative;transition:background .25s,transform .25s}
.mr-n{font-family:var(--disp);font-size:.74rem;font-weight:700;color:var(--muted);width:1.4rem;transition:color .25s}
.mr-name{font-family:var(--disp);font-weight:600;font-size:1.02rem;color:var(--ink);transition:color .25s}
.mr-ar{margin-left:auto;display:inline-flex;color:var(--clay);opacity:0;transform:translateX(-6px);transition:opacity .25s,transform .25s}
.mr-ar svg{width:16px;height:16px}
.mega-row:hover,.mega-row.active{background:var(--sand);transform:translateX(5px)}
.mega-row.active .mr-name{color:var(--clay-d)}
.mega-row.active .mr-n{color:var(--clay)}
.mega-row:hover .mr-ar,.mega-row.active .mr-ar{opacity:1;transform:none}
.mega-all{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.45rem;padding:.7rem;border-radius:13px;background:var(--ink);color:#fff;font-weight:600;font-size:.9rem;transition:background .25s}
.mega-all:hover{background:var(--clay)}
.mega-all svg{width:16px;height:16px;transition:transform .3s}
.mega-all:hover svg{transform:translateX(4px)}
.mega-right{position:relative;border-radius:16px;overflow:hidden;min-height:0;background:var(--ink)}
.mega-pane{position:absolute;inset:0;opacity:0;transform:scale(1.05);transition:opacity .5s ease,transform .7s cubic-bezier(.2,.8,.2,1);display:block;pointer-events:none}
.mega-pane.on{opacity:1;transform:scale(1);pointer-events:auto}
.mega-pane img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mega-pane::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,15,10,.94),rgba(20,15,10,.25) 55%,rgba(20,15,10,.05))}
.mp-ico{position:absolute;top:15px;left:15px;z-index:2;width:44px;height:44px;border-radius:12px;background:rgba(251,248,242,.92);backdrop-filter:blur(4px);color:var(--clay);display:grid;place-items:center}
.mp-ico svg{width:22px;height:22px}
.mp-tx{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.3rem;color:#fff}
.mp-tx strong{font-family:var(--disp);font-weight:700;font-size:1.4rem;display:block;letter-spacing:-.01em}
.mp-tx em{font-style:normal;font-size:.92rem;color:rgba(255,255,255,.82);display:block;margin:.25rem 0 .7rem}
.mp-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.88rem;color:var(--amber)}
.mp-link svg{width:15px;height:15px;transition:transform .3s}
.mega-pane.on:hover .mp-link svg{transform:translateX(5px)}

/* mobile services sub-list */
.mnav-head{font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);padding:1rem 0 .3rem;font-weight:700}
.mnav-sub{display:flex;flex-direction:column}
.mnav-sub a{padding:.7rem 0 .7rem 1.1rem;border-bottom:1px solid var(--line);font-weight:500;font-size:.95rem;color:var(--ink-2)!important;position:relative}
.mnav-sub a::before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;border-radius:50%;background:var(--clay);transform:translateY(-50%)}

/* cta cluster */
.head-cta{display:flex;gap:.85rem;align-items:center;justify-self:end}
.head-phone{display:flex;align-items:center;gap:.65rem;padding:.4em 1em .4em .45em;border-radius:100px;border:1px solid var(--line);background:rgba(255,255,255,.55);transition:border-color .25s,box-shadow .25s,transform .25s}
.head-phone:hover{border-color:var(--clay);transform:translateY(-1px);box-shadow:var(--shadow)}
.hp-ico{width:36px;height:36px;border-radius:50%;background:var(--sand);color:var(--clay);display:grid;place-items:center;transition:background .25s,color .25s}
.hp-ico svg{width:17px;height:17px}
.head-phone:hover .hp-ico{background:var(--clay);color:#fff}
.hp-txt{display:flex;flex-direction:column;line-height:1.1}
.head-phone{flex:none}
.hp-k{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:600;white-space:nowrap}
.hp-n{font-weight:700;font-size:.96rem;color:var(--ink);white-space:nowrap}
.btn-quote{gap:.5em;padding:.9em 1.4em}
.btn-quote svg{width:17px;height:17px;transition:transform .3s}
.btn-quote:hover svg{transform:translateX(4px)}

/* hamburger (boxed) */
.hamburger{display:none;position:relative;align-items:center;gap:10px;border:0;background:transparent;padding:0;cursor:pointer;font-family:var(--body);grid-column:3;justify-self:end}
.hamburger__box{position:relative;width:44px;height:44px;border:2px solid var(--ink);background:transparent;box-shadow:4px 4px 0 var(--clay);display:grid;place-items:center;transition:transform .2s ease,box-shadow .2s ease,background-color .25s ease}
.hamburger:hover .hamburger__box{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--clay);background:var(--ink)}
.hamburger:hover .hamburger__line{background:var(--amber)}
.hamburger__line{position:absolute;left:50%;width:20px;height:2px;background:var(--ink);transform-origin:center;transition:transform .35s cubic-bezier(.65,0,.35,1),top .25s ease,background-color .25s ease}
.hamburger__line--top{top:14px;transform:translateX(-50%)}
.hamburger__line--bot{top:26px;transform:translateX(-50%)}
.hamburger.is-open .hamburger__line--top{top:20px;transform:translateX(-50%) rotate(45deg)}
.hamburger.is-open .hamburger__line--bot{top:20px;transform:translateX(-50%) rotate(-45deg)}
.hamburger.is-open .hamburger__box{background:var(--ink)}
.hamburger.is-open .hamburger__line{background:var(--amber)}
.hamburger__label{font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--ink)}

/* full-screen mobile menu — slides in from right */
.mobile-menu{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;background:linear-gradient(180deg,#1c1610,#15110b);visibility:hidden;pointer-events:none;transform:translateX(100%);transition:transform .5s cubic-bezier(.7,0,.2,1),visibility 0s linear .5s;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mobile-menu.is-open{visibility:visible;pointer-events:auto;transform:translateX(0);transition:transform .55s cubic-bezier(.2,.8,.2,1),visibility 0s linear 0s}
.mobile-menu__bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(60% 50% at 10% 5%,rgba(224,160,74,.22) 0%,transparent 65%),radial-gradient(60% 60% at 95% 95%,rgba(192,82,43,.2) 0%,transparent 65%);opacity:0;transition:opacity .4s ease}
.mobile-menu.is-open .mobile-menu__bg{opacity:1}
.mobile-menu__monogram{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:0;font-family:var(--disp);font-weight:800;font-size:64vw;line-height:.85;letter-spacing:-.06em;color:rgba(224,160,74,.06);pointer-events:none;user-select:none;opacity:0;transition:opacity .4s ease}
.mobile-menu.is-open .mobile-menu__monogram{opacity:1}
.mobile-menu__top{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:18px 22px 16px;border-bottom:1px solid rgba(224,160,74,.2)}
.mobile-menu .brand-words{transform:none}
.mobile-menu .bw-1{color:var(--bone)}.mobile-menu .bw-2{color:var(--amber)}.mobile-menu .bw-est{color:#9b8e7c}
.mobile-menu__close{display:inline-flex;align-items:center;gap:10px;background:transparent;border:0;padding:0;cursor:pointer;font-family:var(--body)}
.mobile-menu__close-label{font-size:10px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--amber)}
.mobile-menu__close-mark{position:relative;width:34px;height:34px;border:1.5px solid var(--amber);display:grid;place-items:center;transition:transform .25s ease,background-color .25s ease}
.mobile-menu__close:hover .mobile-menu__close-mark{background:var(--amber);transform:rotate(90deg)}
.mobile-menu__close-mark span{position:absolute;left:50%;top:50%;width:16px;height:2px;background:var(--amber);transform-origin:center;transition:background-color .25s}
.mobile-menu__close:hover .mobile-menu__close-mark span{background:var(--ink)}
.mobile-menu__close-mark span:nth-child(1){transform:translate(-50%,-50%) rotate(45deg)}
.mobile-menu__close-mark span:nth-child(2){transform:translate(-50%,-50%) rotate(-45deg)}
.mobile-menu__inner{position:relative;z-index:1;padding:30px 22px 50px;display:flex;flex-direction:column;gap:26px;flex:1}
.mobile-menu__eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--body);font-size:10.5px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--amber);opacity:0;transform:translateY(10px);transition:opacity .5s ease .1s,transform .55s cubic-bezier(.2,.8,.2,1) .1s}
.mobile-menu__eyebrow-line{width:28px;height:1.5px;background:var(--amber)}
.mobile-menu.is-open .mobile-menu__eyebrow{opacity:1;transform:translateY(0)}
.mobile-menu__nav{display:flex;flex-direction:column}
.mob-link{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid rgba(224,160,74,.2);text-decoration:none;opacity:0;transform:translateY(16px);transition:opacity .55s ease var(--mob-delay),transform .65s cubic-bezier(.2,.8,.2,1) var(--mob-delay),background-color .25s ease,padding .25s ease}
.mobile-menu.is-open .mob-link{opacity:1;transform:translateY(0)}
.mob-link:hover,.mob-link:focus{background:rgba(224,160,74,.08);padding-left:8px;padding-right:8px}
.mob-link__num{font-family:var(--disp);font-weight:800;font-size:18px;letter-spacing:-.04em;color:var(--amber);opacity:.7;min-width:32px}
.mob-link__text{font-family:var(--disp);font-weight:800;font-size:38px;line-height:1;letter-spacing:-.035em;color:var(--bone)}
.mob-link__arrow{font-size:18px;color:var(--amber);transition:transform .3s ease}
.mob-link:hover .mob-link__arrow{transform:translate(3px,-3px)}
.mobile-menu__feature{position:relative;background:rgba(224,160,74,.08);border:1.5px solid var(--amber);border-radius:6px;padding:20px 22px;display:flex;flex-direction:column;gap:8px;opacity:0;transform:translateY(16px);transition:opacity .6s ease var(--mob-delay),transform .7s cubic-bezier(.2,.8,.2,1) var(--mob-delay)}
.mobile-menu.is-open .mobile-menu__feature{opacity:1;transform:translateY(0)}
.mobile-menu__feature-eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-size:9.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--amber)}
.mobile-menu__feature-eyebrow-line{width:18px;height:1px;background:var(--amber)}
.mobile-menu__feature-title{font-family:var(--disp);font-weight:800;font-size:30px;line-height:1.02;letter-spacing:-.025em;color:var(--bone);margin:4px 0 6px}
.mobile-menu__feature-title em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--amber)}
.mobile-menu__feature-desc{font-family:var(--body);font-size:13.5px;line-height:1.55;color:rgba(244,239,230,.78);margin:0}
.mobile-menu__feature-link{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--bone);border-bottom:1.5px solid var(--amber);padding-bottom:3px;align-self:flex-start;margin-top:8px;transition:color .25s ease,gap .25s ease}
.mobile-menu__feature-link:hover{color:var(--amber);gap:14px}
.mobile-menu__foot{display:flex;flex-direction:column;gap:14px;padding-top:18px;border-top:1px solid rgba(224,160,74,.2);opacity:0;transform:translateY(16px);transition:opacity .55s ease var(--mob-delay),transform .65s cubic-bezier(.2,.8,.2,1) var(--mob-delay)}
.mobile-menu.is-open .mobile-menu__foot{opacity:1;transform:translateY(0)}
.mobile-menu__phone{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.mobile-menu__phone-label{font-family:var(--body);font-size:10px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--amber)}
.mobile-menu__phone strong{font-family:var(--disp);font-weight:800;font-size:28px;letter-spacing:-.025em;color:var(--bone)}
.mobile-menu__foot .btn{display:flex;width:100%;justify-content:center;height:60px}
.mobile-menu__meta{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.12em;color:rgba(244,239,230,.5);text-align:center;padding-top:8px;opacity:0;transform:translateY(10px);transition:opacity .55s ease var(--mob-delay),transform .55s cubic-bezier(.2,.8,.2,1) var(--mob-delay)}
.mobile-menu.is-open .mobile-menu__meta{opacity:1;transform:translateY(0)}
.mobile-menu__meta-dot{color:var(--amber)}
body.menu-open{overflow:hidden}
@media(max-width:1080px){.nav,.head-cta{display:none}.hamburger{display:inline-flex}.head-in{display:flex;justify-content:space-between}}

.hero{position:relative;padding:clamp(24px,4vw,52px) 0 clamp(32px,4vw,64px);overflow:hidden;display:flex;align-items:center;min-height:calc(100svh - 98px)}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(900px 500px at 78% -8%,rgba(224,160,74,.22),transparent 60%),
  radial-gradient(700px 500px at -5% 30%,rgba(192,82,43,.10),transparent 55%);z-index:0}
.hero-in{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.hero-h1{font-family:var(--disp);font-weight:800;font-size:clamp(2.3rem,5.2vw,4.2rem);line-height:.96;letter-spacing:-.03em;margin:.2rem 0 .9rem;color:var(--ink)}
.hero-h1 .hl{color:#9c3f1e}
.hero-h1 span{display:block}
.hero-h1 .accent{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--clay);letter-spacing:-.01em}
.hero-sub{font-size:clamp(1.02rem,1.5vw,1.15rem);color:var(--ink-2);max-width:36ch;margin-bottom:1.5rem}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap}
.ph-ico{font-size:.95em}
.hero-trust{list-style:none;display:flex;flex-wrap:wrap;gap:1.1rem;margin-top:1.4rem;font-size:.9rem;font-weight:600;color:var(--ink-2)}
.hero-media{position:relative}
.hero-img-main{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3.4}
.hero-img-main img{width:100%;height:100%;object-fit:cover}
.hero-img-sub{position:absolute;bottom:-34px;left:-34px;width:42%;border-radius:18px;overflow:hidden;border:6px solid var(--bone);box-shadow:var(--shadow);aspect-ratio:4/3}
.hero-img-sub img{width:100%;height:100%;object-fit:cover}
.hero-badge{position:absolute;top:-18px;right:-10px;background:var(--ink);color:#fff;border-radius:16px;padding:.9rem 1.1rem;box-shadow:var(--shadow);text-align:center}
.hero-badge strong{font-family:var(--disp);font-size:1.5rem;display:block;color:var(--amber)}
.hero-badge span{font-size:.72rem;opacity:.85;max-width:9ch;display:block}
@media(max-width:880px){.hero{min-height:auto}.hero-in{grid-template-columns:1fr}.hero-media{margin-top:2rem;max-width:520px}.hero-img-sub{left:0}}

.pop{opacity:0;transform:translateY(22px);animation:pop .8s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--d)*.09s)}
@keyframes pop{to{opacity:1;transform:none}}

/* luxury social-proof chip */
.trust-chip{display:inline-flex;align-items:center;gap:.75rem;margin-bottom:1.4rem;padding:.42rem 1.05rem .42rem .5rem;background:rgba(255,255,255,.55);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(229,220,205,.9);border-radius:100px;box-shadow:0 14px 34px -18px rgba(23,19,14,.4),inset 0 1px 0 rgba(255,255,255,.7)}
.tc-avatars{display:flex}
.tc-avatars span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:.66rem;font-weight:700;color:#fff;border:2.5px solid var(--paper);margin-left:-12px;letter-spacing:.02em}
.tc-avatars span:first-child{margin-left:0}
.tc-avatars span:nth-child(1){background:linear-gradient(140deg,#d35e34,var(--clay-d))}
.tc-avatars span:nth-child(2){background:linear-gradient(140deg,#3a332b,var(--ink))}
.tc-avatars span:nth-child(3){background:linear-gradient(140deg,#f0c373,var(--amber));color:var(--ink)}
.tc-meta{display:flex;flex-direction:column;line-height:1.15}
.tc-stars{font-size:.92rem;letter-spacing:.14em;background:linear-gradient(100deg,#bd9038 0%,#f6dd96 45%,#bd9038 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 3.4s linear infinite}
@keyframes shimmer{to{background-position:-220% 0}}
.tc-label{font-size:.76rem;color:var(--ink-2);font-weight:500;letter-spacing:.01em}
.tc-label b{color:var(--ink);font-weight:700}

.marquee{position:relative;background:var(--ink);padding:1.1rem 0;overflow:hidden;white-space:nowrap;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:inline-flex;align-items:center;gap:2.2rem;animation:scroll 38s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.mq-name{font-family:var(--disp);font-weight:700;font-size:clamp(1.35rem,2.3vw,2rem);text-transform:uppercase;letter-spacing:.02em;color:#f4efe6;transition:color .3s}
.mq-name.out{color:transparent;-webkit-text-stroke:1.2px rgba(244,239,230,.55);text-stroke:1.2px rgba(244,239,230,.55)}
.mq-d{width:9px;height:9px;background:var(--clay);transform:rotate(45deg);border-radius:1px;flex:none;opacity:.9}
@keyframes scroll{to{transform:translateX(-50%)}}

.intro-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.intro-h em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--clay);letter-spacing:0}
.intro-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.6rem;font-weight:600;font-size:.95rem;color:var(--clay-d);border-bottom:2px solid transparent;transition:border-color .25s,gap .25s;padding-bottom:2px}
.intro-link svg{width:17px;height:17px;transition:transform .3s}
.intro-link:hover{border-color:var(--clay)}
.intro-link:hover svg{transform:translateX(4px)}
.intro-split{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2rem}
.split-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.8rem 1.6rem;box-shadow:var(--shadow);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.split-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--clay),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.split-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--clay)}
.split-card:hover::before{transform:scaleX(1)}
.sc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem}
.sc-ico{width:46px;height:46px;border-radius:12px;background:var(--sand);color:var(--clay);display:grid;place-items:center;transition:background .3s,color .3s,transform .4s cubic-bezier(.34,1.56,.64,1)}
.sc-ico svg{width:24px;height:24px}
.split-card:hover .sc-ico{background:var(--clay);color:#fff;transform:rotate(-6deg) scale(1.06)}
.sc-n{font-family:var(--disp);font-weight:800;font-size:1.7rem;color:var(--clay);opacity:.22;letter-spacing:-.02em}
.split-card h3{font-family:var(--disp);font-size:1.24rem;margin-bottom:.5rem}
.split-card p{font-size:.96rem;color:var(--ink-2)}
@media(max-width:820px){.intro-grid{grid-template-columns:1fr}.intro-split{grid-template-columns:1fr}}

.stats-row{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(3rem,5vw,4.5rem);border-top:1px solid var(--line);padding-top:clamp(2.2rem,4vw,3.2rem)}
.stat{position:relative;padding:0 clamp(1rem,2.6vw,2.4rem);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.stat:first-child{padding-left:0}
.stat+.stat{border-left:1px solid var(--line)}
.stat:hover{transform:translateY(-5px)}
.stat-bar{display:block;width:30px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--clay),var(--amber));margin-bottom:1.1rem;transition:width .45s cubic-bezier(.2,.8,.2,1)}
.stat:hover .stat-bar{width:58px}
.stat-num{font-family:var(--disp);font-weight:800;font-size:clamp(2.6rem,5vw,3.9rem);line-height:1;letter-spacing:-.03em;color:var(--clay)}
.stat-suf{color:var(--ink)}
.stat-label{font-size:.92rem;color:var(--ink-2);margin-top:.7rem;max-width:18ch;line-height:1.4}
@media(max-width:720px){.stats-row{grid-template-columns:1fr 1fr;gap:2.2rem 1.5rem}.stat{padding:0}.stat+.stat{border-left:0}}

.services{background:var(--paper)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.svc-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.svc-img{aspect-ratio:16/10;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.svc-card:hover .svc-img img{transform:scale(1.07)}
.svc-body{padding:1.6rem;flex:1;display:flex;flex-direction:column}
.svc-body h3{font-family:var(--disp);font-size:1.4rem;margin-bottom:.5rem}
.svc-body p{font-size:.96rem;color:var(--ink-2);margin-bottom:1rem}
.svc-more{font-weight:700;color:var(--clay-d);font-size:.92rem;margin-top:auto}
.svc-more i{transition:transform .3s;display:inline-block;font-style:normal}
.svc-card:hover .svc-more i{transform:translateX(5px)}
.svc-card{position:relative}
.svc-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--clay),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1);z-index:3}
.svc-card:hover::before{transform:scaleX(1)}
.svc-go{position:absolute;bottom:14px;right:14px;width:46px;height:46px;border-radius:50%;background:var(--clay);color:#fff;display:grid;place-items:center;opacity:0;transform:translateY(12px) scale(.8);transition:opacity .35s,transform .5s cubic-bezier(.34,1.56,.64,1);box-shadow:0 12px 24px -8px rgba(192,82,43,.85);z-index:2}
.svc-go svg{width:20px;height:20px}
.svc-card:hover .svc-go{opacity:1;transform:none}
.svc-kicker{display:flex;align-items:center;gap:.6rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;font-weight:700;color:var(--clay-d);margin-bottom:.7rem}
.svc-kicker i{width:18px;height:1.5px;background:var(--clay);display:inline-block;flex:none}
.svc-body h3{transition:color .25s}
.svc-card:hover .svc-body h3{color:var(--clay-d)}
@media(max-width:920px){.svc-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr}}

.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.why-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.6rem;box-shadow:var(--shadow)}
.why-n{font-family:var(--disp);font-weight:800;font-size:2.2rem;line-height:1;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px var(--clay);opacity:.5;transition:opacity .35s,color .35s}
.why-card:hover .why-n{opacity:1;color:var(--clay);-webkit-text-stroke-width:0}
.why-card{position:relative;overflow:hidden}
.why-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--clay),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.why-card:hover::before{transform:scaleX(1)}
.sec-title em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--clay);letter-spacing:0}
.why-card h3{font-family:var(--disp);font-size:1.22rem;margin-bottom:.6rem;line-height:1.15}
.why-card p{font-size:.95rem;color:var(--ink-2)}
@media(max-width:920px){.why-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.why-grid{grid-template-columns:1fr}}

.process{background:var(--ink);color:var(--bone)}
.process .sec-title{color:#fff}.process .eyebrow{color:var(--amber)}
.process.alt{background:var(--sand);color:var(--ink)}
.process.alt .sec-title{color:var(--ink)}.process.alt .eyebrow{color:var(--clay-d)}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem}
.step-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:2rem 1.6rem 1.8rem;box-shadow:var(--shadow);overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.step-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--clay),var(--amber));transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.step-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--clay)}
.step-card:hover::before{transform:scaleX(1)}
.step-stage{position:relative;background:linear-gradient(180deg,#fbf8f2,#efe6d6);border:1px solid var(--line);border-radius:13px;height:120px;display:grid;place-items:center;margin-bottom:1.3rem;overflow:hidden}
.bh{width:auto;height:100px;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.step-card:hover .bh{transform:scale(1.05) translateY(-2px)}
.step-tag{position:absolute;left:.75rem;bottom:.55rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--clay-d);opacity:.8;z-index:2}
.step-num{position:absolute;top:.5rem;right:.75rem;font-family:var(--disp);font-weight:800;font-size:1.75rem;line-height:1;letter-spacing:-.03em;color:transparent;-webkit-text-stroke:1.5px var(--clay);opacity:.4;transition:opacity .35s,color .35s;z-index:2}
.step-card:hover .step-num{opacity:1;color:var(--clay);-webkit-text-stroke-width:0}
.step-card h3{font-family:var(--disp);font-size:1.22rem;margin-bottom:.5rem}
.step-card p{font-size:.95rem;color:var(--ink-2)}
@media(max-width:820px){.process-grid{grid-template-columns:1fr 1fr;gap:1.3rem}}
@media(max-width:480px){.process-grid{grid-template-columns:1fr}}

.testimonials{background:var(--paper)}
.t-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:2.6rem}
.t-nav{display:flex;gap:.6rem;flex:none}
.t-arrow{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.32);backdrop-filter:blur(16px) saturate(170%);-webkit-backdrop-filter:blur(16px) saturate(170%);color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background .3s,color .3s,border-color .3s,transform .3s,box-shadow .3s;box-shadow:0 10px 28px -12px rgba(23,19,14,.32),inset 0 1px 0 rgba(255,255,255,.8)}
.t-arrow svg{width:20px;height:20px}
.t-arrow:hover{background:rgba(192,82,43,.92);color:#fff;border-color:rgba(255,255,255,.4);transform:translateY(-3px);box-shadow:0 16px 32px -12px rgba(192,82,43,.6),inset 0 1px 0 rgba(255,255,255,.4)}
.t-arrow:active{transform:translateY(-1px)}
.tslider{position:relative;overflow:hidden;padding:1.8rem .3rem 2.8rem}
.tslider-viewport{display:flex;gap:1.4rem;transition:transform .55s cubic-bezier(.2,.8,.2,1);will-change:transform}
.tslider-viewport .t-card{flex:0 0 calc((100% - 2*1.4rem)/3)}
.t-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1.4rem}
.t-dot{width:9px;height:9px;border-radius:50%;border:0;background:var(--line);cursor:pointer;padding:0;transition:width .3s,background .3s}
.t-dot.on{background:var(--clay);width:26px;border-radius:5px}
.t-grid-unused{display:none}
.t-card{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.1rem;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.t-card:hover{transform:translateY(-14px);box-shadow:0 34px 64px -22px rgba(192,82,43,.5),0 0 50px -6px rgba(224,160,74,.42)}
.t-quote{position:absolute;top:-.7rem;right:1.2rem;font-family:var(--disp);font-weight:800;font-size:6rem;line-height:1;color:var(--clay);opacity:.1;pointer-events:none}
.t-stars{font-size:.98rem;letter-spacing:.18em;background:linear-gradient(100deg,#bd9038,#f6dd96 45%,#bd9038 70%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 3.4s linear infinite;width:fit-content}
.t-card blockquote{font-family:var(--body);font-size:1.06rem;font-weight:500;line-height:1.62;color:var(--ink-2)}
.t-card figcaption{display:flex;align-items:center;gap:.85rem;margin-top:auto}
.t-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--body);font-weight:700;font-size:.85rem;letter-spacing:.02em;flex:none;box-shadow:var(--shadow)}
.av0{background:linear-gradient(140deg,#d35e34,var(--clay-d))}
.av1{background:linear-gradient(140deg,#3a332b,var(--ink))}
.av2{background:linear-gradient(140deg,#f0c373,var(--amber));color:var(--ink)}
.t-meta{display:flex;flex-direction:column;line-height:1.25}
.t-meta strong{font-weight:700;color:var(--ink)}
.t-meta span{font-size:.85rem;color:var(--muted)}
@media(max-width:900px){.tslider-viewport .t-card{flex:0 0 calc((100% - 1.4rem)/2)}}
@media(max-width:600px){.tslider-viewport .t-card{flex:0 0 100%}.t-head{align-items:flex-start;flex-direction:column}}

.areas{padding-bottom:clamp(2.4rem,4vw,3.6rem)}
.areas-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.areas-intro .sec-title{font-size:clamp(1.8rem,3.8vw,2.7rem)}
.areas-aside{margin-top:2.2rem;display:flex;flex-direction:column;gap:1.3rem}
.areas-count{display:flex;align-items:center;gap:.8rem}
.areas-count strong{font-family:var(--disp);font-weight:800;font-size:3.2rem;line-height:.9;color:var(--clay);letter-spacing:-.03em}
.areas-count span{font-size:.95rem;color:var(--ink-2);max-width:13ch;line-height:1.3}
.areas-call{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--clay-d);border-bottom:2px solid transparent;padding-bottom:3px;width:fit-content;transition:border-color .25s}
.areas-call svg{width:17px;height:17px;transition:transform .3s}
.areas-call:hover{border-color:var(--clay)}
.areas-call:hover svg{transform:translateX(4px)}
.area-grid{display:flex;flex-wrap:wrap;gap:.55rem;align-content:flex-start}
.area-chip{display:inline-flex;align-items:center;gap:.4rem;background:var(--card);border:1px solid var(--line);border-radius:100px;padding:.55em 1em .55em .75em;font-size:.9rem;font-weight:600;color:var(--ink-2);box-shadow:0 1px 2px rgba(23,19,14,.03);transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,color .25s,border-color .25s,box-shadow .25s}
.ac-pin{display:inline-grid;place-items:center;color:var(--clay);transition:color .25s,transform .3s cubic-bezier(.34,1.56,.64,1)}
.ac-pin svg{width:13px;height:13px}
.area-chip:hover{background:var(--clay);color:#fff;border-color:var(--clay);transform:translateY(-3px);box-shadow:0 12px 22px -10px rgba(192,82,43,.6)}
.area-chip:hover .ac-pin{color:#fff;transform:scale(1.18) translateY(-1px)}
@media(max-width:860px){.areas-grid{grid-template-columns:1fr}}

.faqs{background:var(--bone);padding-top:clamp(2.4rem,4vw,3.6rem)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.faq-intro .sec-title{font-size:clamp(1.8rem,3.8vw,2.7rem)}
.faq-sub{color:var(--ink-2);margin:1.1rem 0 1.8rem;font-size:1.02rem;max-width:34ch}
.faq-call{display:inline-flex;align-items:center;gap:.85rem;background:var(--card);border:1px solid var(--line);border-radius:15px;padding:.8rem 1.2rem .8rem .8rem;box-shadow:var(--shadow);transition:transform .25s,border-color .25s,box-shadow .25s}
.faq-call:hover{transform:translateY(-3px);border-color:var(--clay);box-shadow:var(--shadow-lg)}
.faq-call-ico{width:44px;height:44px;border-radius:12px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none;transition:background .25s,color .25s}
.faq-call:hover .faq-call-ico{background:var(--clay);color:#fff}
.faq-call-ico svg{width:20px;height:20px}
.faq-call-tx{display:flex;flex-direction:column;line-height:1.15}
.faq-call-k{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:600}
.faq-call-n{font-family:var(--disp);font-weight:700;font-size:1.12rem;color:var(--ink)}
.faq-list{display:flex;flex-direction:column;gap:.8rem}
.faq{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:border-color .3s,box-shadow .3s}
.faq[open]{border-color:var(--clay);box-shadow:0 16px 32px -20px rgba(192,82,43,.4)}
.faq summary{list-style:none;cursor:pointer;padding:1.3rem 1.4rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq-q{font-family:var(--disp);font-weight:600;font-size:1.08rem;color:var(--ink);transition:color .25s}
.faq summary:hover .faq-q,.faq[open] .faq-q{color:var(--clay-d)}
.faq-i{position:relative;width:30px;height:30px;border-radius:50%;background:var(--sand);flex:none;transition:background .3s}
.faq-i::before,.faq-i::after{content:"";position:absolute;top:50%;left:50%;width:12px;height:2px;background:var(--clay);border-radius:2px;transform:translate(-50%,-50%);transition:transform .3s,opacity .3s,background .3s}
.faq-i::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq[open] .faq-i{background:var(--clay)}
.faq[open] .faq-i::before,.faq[open] .faq-i::after{background:#fff}
.faq[open] .faq-i::after{transform:translate(-50%,-50%) rotate(0);opacity:0}
.faq-a{padding:0 1.4rem 1.4rem;color:var(--ink-2)}
.faq[open] .faq-a{animation:faqIn .35s ease}
@keyframes faqIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media(max-width:860px){.faq-grid{grid-template-columns:1fr}}

.cta-band{background:linear-gradient(135deg,#1d1810,#17130e);color:var(--bone)}
.cta-in{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem;align-items:center;padding:clamp(50px,7vw,90px) 0}
.cta-copy h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.9rem,4vw,3rem);line-height:1.04;letter-spacing:-.02em}
.cta-copy p{color:rgba(244,239,230,.8);margin-top:1rem;font-size:1.05rem}
.cta-actions{display:flex;flex-direction:column;gap:.9rem;align-items:flex-start}
.cta-note{font-size:.85rem;color:var(--amber);font-weight:600}
@media(max-width:820px){.cta-in{grid-template-columns:1fr}}

.page-hero{padding:clamp(50px,7vw,90px) 0 clamp(36px,5vw,60px);background:var(--paper);border-bottom:1px solid var(--line)}
.page-hero h1{font-family:var(--disp);font-weight:800;font-size:clamp(2.3rem,5.5vw,4rem);line-height:1.02;letter-spacing:-.03em;max-width:18ch}
.page-lead{font-size:1.18rem;color:var(--ink-2);max-width:60ch;margin-top:1.2rem}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:1.2rem;font-weight:600}
.crumbs a:hover{color:var(--clay-d)}
.crumbs.light{color:rgba(255,255,255,.7)}.crumbs.light a:hover{color:#fff}

.svc-hero{position:relative;overflow:hidden;padding-top:clamp(1.6rem,3vw,2.6rem)}
.svc-hero-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(820px 460px at 88% -5%,rgba(224,160,74,.22),transparent 60%),radial-gradient(620px 460px at -5% 70%,rgba(192,82,43,.1),transparent 55%)}
.svc-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.page-hero h1 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--clay);letter-spacing:0}
.svc-hero-media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3}
.svc-hero-media img{width:100%;height:100%;object-fit:cover}
.svc-hero-badge{position:absolute;left:16px;bottom:16px;z-index:2;display:flex;align-items:center;gap:.7rem;background:rgba(251,248,242,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.6);border-radius:15px;padding:.7rem 1rem;box-shadow:0 18px 40px -16px rgba(23,19,14,.5)}
.shb-ico{width:42px;height:42px;border-radius:11px;background:var(--clay);color:#fff;display:grid;place-items:center;flex:none}
.shb-ico svg{width:22px;height:22px}
.shb-tx strong{display:block;font-family:var(--disp);font-weight:600;font-size:1rem;color:var(--ink);line-height:1.1}
.shb-tx span{font-size:.8rem;color:var(--ink-2)}
.svc-hero .hero-cta{margin-top:1.7rem}
@media(max-width:880px){.svc-hero-in{grid-template-columns:1fr}.svc-hero-media{margin-top:1.5rem}}
.hero-badges{list-style:none;display:flex;flex-wrap:wrap;gap:1.3rem;margin-top:1.5rem}
.hero-badges li{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--ink-2)}
.hb-ico{width:28px;height:28px;border-radius:8px;background:var(--sand);color:var(--clay);display:grid;place-items:center}
.hb-ico svg{width:16px;height:16px}
.sub-grid-row .sub-card{display:flex;align-items:flex-start;gap:1rem}
/* arvo-style: light clay-tinted glass chip + clean clay icon + ONE subtle continuous motion */
.sub-tick{width:52px;height:52px;border-radius:15px;color:var(--clay);flex:none;display:grid;place-items:center;isolation:isolate;overflow:hidden;
  background:linear-gradient(135deg,rgba(192,82,43,.16),rgba(192,82,43,.04));border:1px solid rgba(192,82,43,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 6px 14px -6px rgba(192,82,43,.28);transition:transform .3s,box-shadow .3s}
.sub-tick{width:58px;height:58px}
.sub-tick svg{width:40px;height:40px}
.sub-card:hover .sub-tick{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 12px 22px -8px rgba(192,82,43,.42)}
.sub-tick svg [class^="ai-"]{transform-box:fill-box;transform-origin:center}
.ai-drop{animation:aiDrop 3.4s ease-in-out infinite}
.ai-drip{animation:aiDrip 2.8s ease-in-out infinite}
.ai-rise{animation:aiRise 3s ease-in-out infinite}
.ai-pop{animation:aiPop 3s ease-in-out infinite}
.ai-slide{animation:aiSlide 3.2s ease-in-out infinite}
.ai-rock{animation:aiRock 3s ease-in-out infinite}
.ai-glow{animation:aiGlow 2.4s ease-in-out infinite}
.ai-grow{animation:aiGrow 3.4s ease-in-out infinite;transform-origin:bottom}
.ai-flash{animation:aiFlash 2.6s ease-in-out infinite}
.ai-sweep{animation:aiSweep 3s ease-in-out infinite alternate}
@keyframes aiDrop{0%{transform:translateY(-6px);opacity:0}40%{opacity:1}70%{transform:translateY(0)}100%{transform:translateY(0);opacity:1}}
@keyframes aiDrip{0%{transform:translateY(-2px);opacity:0}25%{opacity:1}70%{opacity:1}100%{transform:translateY(8px);opacity:0}}
@keyframes aiRise{0%{transform:translateY(3px);opacity:0}40%{opacity:.9}100%{transform:translateY(-8px);opacity:0}}
@keyframes aiPop{0%,100%{transform:scale(.78)}50%{transform:scale(1.14)}}
@keyframes aiSlide{0%{transform:translateX(-8px);opacity:0}40%,100%{transform:none;opacity:1}}
@keyframes aiRock{0%,100%{transform:rotate(-13deg)}50%{transform:rotate(13deg)}}
@keyframes aiGlow{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes aiGrow{0%,100%{transform:scaleY(.7)}50%{transform:scaleY(1)}}
@keyframes aiFlash{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes aiSweep{0%{transform:translateX(-4px) rotate(-6deg)}100%{transform:translateX(4px) rotate(6deg)}}
/* roofing icons — clear, continuous, work-explaining motion */
.sub-tick svg [class^="rs-"]{transform-box:fill-box;transform-origin:center}
.rs-beam{animation:rsBeam 2.6s ease-in-out infinite}
.rs-newtile{animation:rsNewTile 2.6s ease-in-out infinite}
@keyframes rsNewTile{0%{transform:translateY(-6px);opacity:0}25%{opacity:1}55%,80%{transform:translateY(0);opacity:1}100%{transform:translateY(-6px);opacity:0}}
.rs-wipe{animation:rsWipe 3s ease-in-out infinite}
@keyframes rsWipe{0%,100%{opacity:0;transform:translateX(5px)}40%,80%{opacity:1;transform:none}}
.rs-drip2{animation:rsDrip2 2.4s ease-in infinite}
@keyframes rsDrip2{0%{transform:translateY(-2px);opacity:0}25%{opacity:1}100%{transform:translateY(8px);opacity:0}}
.rs-ring{animation:rsRing 2.4s ease-out infinite}
.rs-ring2{animation-delay:1.2s}
.rs-t1{animation:rsTile 2.4s ease-in-out infinite}
.rs-t2{animation:rsTile 2.4s ease-in-out infinite .4s}
.rs-t3{animation:rsTile 2.4s ease-in-out infinite .8s}
.rs-smoke{animation:rsSmoke 2.8s ease-in-out infinite}
.rs-smoke-b{animation-delay:1.4s}
.rs-flow{animation:rsFlow 2.2s linear infinite}
.rs-flow-b{animation-delay:1.1s}
@keyframes rsBeam{0%{transform:translateY(6px);opacity:0}30%{opacity:1}70%{opacity:1}100%{transform:translateY(-7px);opacity:0}}
@keyframes rsSpin{to{transform:rotate(360deg)}}
@keyframes rsRing{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1.9);opacity:0}}
@keyframes rsTile{0%,100%{opacity:.28}50%{opacity:1}}
@keyframes rsSmoke{0%{transform:translateY(2px);opacity:0}35%{opacity:.95}100%{transform:translateY(-8px);opacity:0}}
@keyframes rsFlow{0%{transform:translateY(-4px);opacity:0}25%{opacity:1}100%{transform:translateY(7px);opacity:0}}
/* premium glassmorphic roofing icons — continuous motion */
.sub-glass{flex:none;display:block}
.sub-glass .gi{width:58px;height:58px;display:block;filter:drop-shadow(0 12px 22px rgba(23,19,14,.32))}
.gi [class^="gi-"]{transform-box:fill-box;transform-origin:center}
.gi-float{animation:giFloat 3.6s ease-in-out infinite}
.gi-beam{animation:giBeam 3s ease-in-out infinite}
.gi-in{animation:giSwapIn 4.6s ease-in-out infinite}
.gi-out{animation:giSwapOut 4.6s ease-in-out infinite}
.gi-radar{animation:giRadar 2.4s ease-out infinite}
.gi-pulse{animation:giPulse 1.6s ease-in-out infinite}
.gi-glint{animation:giGlint 3.4s ease-in-out infinite}
.gi-seal{animation:giPulse 2.2s ease-in-out infinite}
.gi-smoke{animation:giSmoke 3.4s ease-in-out infinite}
.gi-smoke2{animation:giSmoke 3.4s ease-in-out infinite .7s}
.gi-flow{animation:giFlow 2.6s linear infinite}
.gi-flow2{animation:giFlow 2.6s linear infinite 1.3s}
@keyframes giFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
@keyframes giBeam{0%{transform:translateY(5px);opacity:0}25%{opacity:1}75%{opacity:1}100%{transform:translateY(-16px);opacity:0}}
@keyframes giSwapIn{0%,12%{transform:translateX(-12px);opacity:0}35%,82%{transform:translateX(0);opacity:1}100%{transform:translateX(-12px);opacity:0}}
@keyframes giSwapOut{0%,12%{transform:translateX(0);opacity:.6}38%,100%{transform:translateX(12px);opacity:0}}
@keyframes giRadar{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes giPulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes giGlint{0%{transform:translateX(0);opacity:0}20%{opacity:.6}80%{opacity:.6}100%{transform:translateX(66px);opacity:0}}
@keyframes giSmoke{0%{transform:translateY(2px);opacity:0}30%{opacity:.7}100%{transform:translateY(-9px);opacity:0}}
@keyframes giFlow{0%{transform:translateY(-3px);opacity:0}20%{opacity:1}100%{transform:translateY(13px);opacity:0}}
.specs-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.specs-media{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3.2}
.specs-media img{width:100%;height:100%;object-fit:cover}
.specs-copy .lead{margin:1rem 0 1.4rem}
.spec-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.4rem}
.spec-list li{position:relative;padding-left:1.7rem;color:var(--ink);font-weight:600;font-size:.95rem}
.spec-list li::before{content:"";position:absolute;left:0;top:.4em;width:.7rem;height:.7rem;background:linear-gradient(135deg,var(--clay),var(--amber));transform:rotate(45deg);border-radius:1px}
@media(max-width:860px){.specs-grid{grid-template-columns:1fr}.specs-media{order:-1}}
@media(max-width:520px){.spec-list{grid-template-columns:1fr}}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gal-item{border-radius:var(--r);overflow:hidden;aspect-ratio:1/1;box-shadow:var(--shadow)}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gal-item:hover img{transform:scale(1.08)}
@media(max-width:820px){.gal-grid{grid-template-columns:1fr 1fr}}
.creds-sec{padding-top:0}
.cred-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem;box-shadow:var(--shadow)}
.cred-item{display:flex;align-items:center;gap:.8rem}
.cred-ico{width:44px;height:44px;border-radius:12px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none}
.cred-ico svg{width:22px;height:22px}
.cred-item strong{display:block;font-family:var(--disp);font-weight:600;font-size:1rem;color:var(--ink)}
.cred-item span{font-size:.84rem;color:var(--muted)}
@media(max-width:820px){.cred-row{grid-template-columns:1fr 1fr;gap:1.4rem}}
@media(max-width:460px){.cred-row{grid-template-columns:1fr}}

.answer-box{padding-top:clamp(1.6rem,3vw,2.4rem);padding-bottom:0}
.subs{padding-top:clamp(2.4rem,4.5vw,3.4rem)}
.answer{background:var(--sand);border-left:4px solid var(--clay);border-radius:14px;padding:1.6rem 1.8rem}
.answer-tag{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--clay-d);margin-bottom:.6rem}
.answer p{font-size:1.18rem;color:var(--ink);line-height:1.5}
.svc-intro .lead{margin-bottom:1.2rem}.svc-intro p{margin-bottom:1rem;color:var(--ink-2)}

.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.sub-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem;box-shadow:var(--shadow);transition:transform .3s}
.sub-card:hover{transform:translateY(-4px)}
.sub-card h3{font-family:var(--disp);font-size:1.2rem;margin-bottom:.5rem}
.sub-card p{font-size:.95rem;color:var(--ink-2)}
@media(max-width:900px){.sub-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.sub-grid{grid-template-columns:1fr}}

.loc-svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.loc-svc{display:flex;gap:1.2rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .3s}
.loc-svc:hover{transform:translateY(-4px)}
.loc-svc img{width:120px;height:auto;object-fit:cover;flex:none}
.loc-svc div{padding:1.2rem 1.2rem 1.2rem 0}
.loc-svc h3{font-family:var(--disp);font-size:1.15rem;margin-bottom:.3rem}
.loc-svc p{font-size:.88rem;color:var(--ink-2)}
@media(max-width:760px){.loc-svc-grid{grid-template-columns:1fr}}
@media(max-width:440px){.loc-svc{flex-direction:column}.loc-svc img{width:100%;height:160px}.loc-svc div{padding:0 1.2rem 1.2rem}}

.ticks{list-style:none;display:flex;flex-direction:column;gap:.6rem;margin:1.4rem 0}
.ticks li{padding-left:1.9rem;position:relative;color:var(--ink-2)}
.ticks li::before{content:"✓";position:absolute;left:0;top:0;width:1.3rem;height:1.3rem;background:var(--clay);color:#fff;border-radius:50%;font-size:.7rem;display:grid;place-items:center;font-weight:700}
.tick-inline{flex-direction:row;flex-wrap:wrap;gap:1.4rem}
.tick-inline li{font-weight:600;color:var(--ink)}

.svc-rows .svc-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding:clamp(2.5rem,5vw,4rem) 0;border-bottom:1px solid var(--line)}
.svc-row:last-child{border-bottom:0}
.svc-row-rev .svc-row-media{order:2}
.svc-row-media{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/11}
.svc-row-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.svc-row:hover .svc-row-media img{transform:scale(1.05)}
.svc-row-body h2{font-family:var(--disp);font-weight:700;font-size:clamp(1.6rem,3.5vw,2.4rem);letter-spacing:-.02em;margin:.3rem 0 .8rem}
@media(max-width:820px){.svc-rows .svc-row{grid-template-columns:1fr}.svc-row-rev .svc-row-media{order:0}}

.rel-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.rel-card{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow)}
.rel-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.rel-card:hover img{transform:scale(1.08)}
.rel-card span{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1rem .9rem;color:#fff;font-family:var(--disp);font-weight:600;background:linear-gradient(transparent,rgba(0,0,0,.78))}
@media(max-width:900px){.rel-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.rel-grid{grid-template-columns:1fr 1fr}}
.rel-pills{display:flex;flex-wrap:wrap;gap:.7rem}
.rel-pill{background:var(--card);border:1px solid var(--line);border-radius:100px;padding:.7em 1.3em;font-weight:600;font-size:.95rem;transition:.25s}
.rel-pill:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

.about-in{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.about-media{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/4.4}
.about-media img{width:100%;height:100%;object-fit:cover}
.about-badge{position:absolute;bottom:1.4rem;left:1.4rem;background:var(--bone);border-radius:14px;padding:1rem 1.3rem;box-shadow:var(--shadow)}
.about-badge strong{font-family:var(--disp);font-size:1.5rem;display:block;color:var(--clay)}
.about-badge span{font-size:.85rem;color:var(--ink-2)}
@media(max-width:820px){.about-in{grid-template-columns:1fr}}
.stats-section{background:var(--paper)}

.contact-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.contact-info h2,.contact-form-wrap h2{font-family:var(--disp);font-size:1.7rem;margin-bottom:1.4rem}
.contact-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:1rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.2rem 1.3rem;margin-bottom:.9rem;box-shadow:var(--shadow);transition:transform .25s}
a.contact-card:hover{transform:translateY(-3px)}
.ci-ico{grid-row:1/3;width:46px;height:46px;background:var(--sand);color:var(--clay);border-radius:12px;display:grid;place-items:center;font-size:1.3rem}
.ci-k{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}
.contact-card strong{font-size:1.05rem}
.contact-social{display:inline-block;margin-top:.6rem;font-weight:700;color:var(--clay-d)}
.contact-form-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--shadow)}
.contact-form{display:flex;flex-direction:column;gap:1rem}
.contact-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;font-size:.9rem}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.contact-form input,.contact-form select,.contact-form textarea{font-family:var(--body);font-size:1rem;padding:.85em 1em;border:1.5px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);transition:border .2s}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:0;border-color:var(--clay)}
.form-note{font-size:.82rem;color:var(--muted);text-align:center}
@media(max-width:820px){.contact-in{grid-template-columns:1fr}.f-row{grid-template-columns:1fr}}
.map-section{height:420px}
.map-section iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}

.loc-hero{position:relative;background:var(--ink);border:0;overflow:hidden;padding:clamp(70px,9vw,130px) 0 clamp(50px,6vw,80px)}
.loc-hero::before{content:"";position:absolute;inset:0;background:var(--bgimg) center/cover;opacity:.28}
.loc-hero-overlay{position:absolute;inset:0;background:linear-gradient(120deg,rgba(23,19,14,.92),rgba(23,19,14,.55))}
.loc-hero-in{position:relative;z-index:2;color:#fff}
.loc-hero h1{color:#fff}
.page-lead.light{color:rgba(244,239,230,.88)}

.site-foot{position:relative;overflow:hidden;background:var(--ink);color:#cbbfae;padding:clamp(50px,7vw,82px) 0 2rem}
.site-foot::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--clay),var(--amber) 50%,var(--clay))}
.site-foot::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(224,160,74,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(224,160,74,.045) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(120% 95% at 82% 0%,#000,transparent 68%);mask-image:radial-gradient(120% 95% at 82% 0%,#000,transparent 68%);pointer-events:none}
.foot-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.7fr 1fr 1fr 1.45fr;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-lockup{margin-bottom:1.3rem}
.site-foot .bw-1{color:#fff}
.site-foot .bw-2{color:var(--amber)}
.site-foot .bw-est{color:#8a8074}
.foot-tag{font-family:var(--serif);font-size:1.34rem;color:#efe7d8;max-width:24ch;margin-bottom:1.6rem;line-height:1.35}
.foot-social{display:inline-flex;align-items:center;gap:.55rem;padding:.55rem 1.1rem;border:1px solid rgba(255,255,255,.18);border-radius:100px;color:var(--amber);font-weight:600;font-size:.9rem;transition:background .25s,border-color .25s,color .25s,transform .25s}
.foot-social svg{width:16px;height:16px}
.foot-social:hover{background:var(--clay);border-color:var(--clay);color:#fff;transform:translateY(-2px)}
.foot-col h4{font-family:var(--disp);color:#fff;font-size:1.05rem;margin-bottom:1.2rem}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.65rem}
.foot-col a{font-size:.94rem;color:#b3a895;transition:color .2s,padding-left .2s}
.foot-col a:hover{color:#fff;padding-left:5px}
.foot-contact .fc-row{display:flex;align-items:flex-start;gap:.7rem;margin-bottom:1rem}
.fc-ico{width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.06);color:var(--amber);display:grid;place-items:center;flex:none;transition:background .25s,color .25s}
.fc-ico svg{width:17px;height:17px}
a.fc-row:hover .fc-ico{background:var(--clay);color:#fff}
.fc-tx{display:flex;flex-direction:column;line-height:1.3;font-size:.92rem;color:#dccdb8;transition:color .2s}
.fc-k{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;color:#8a8074;font-weight:600;margin-bottom:.1rem}
a.fc-row:hover .fc-tx{color:#fff}
.foot-base{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;font-size:.82rem;color:#8a8074}
.foot-top{display:inline-flex;align-items:center;gap:.4rem;color:#cbbfae;font-weight:600;font-size:.82rem;transition:color .2s}
.foot-top svg{width:15px;height:15px;transition:transform .25s}
.foot-top:hover{color:var(--amber)}
.foot-top:hover svg{transform:translateY(-3px)}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.foot-grid{grid-template-columns:1fr}.foot-base{justify-content:flex-start}}

/* ---- animated icons ---- */
.ico{width:54px;height:54px;border-radius:15px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none;transition:transform .5s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s,box-shadow .4s}
.ico svg{width:27px;height:27px}
.btn svg{width:18px;height:18px;flex:none}
.svc-img{position:relative}
.svc-badge{position:absolute;top:14px;left:14px;width:48px;height:48px;border-radius:13px;background:rgba(251,248,242,.92);backdrop-filter:blur(6px);color:var(--clay);display:grid;place-items:center;box-shadow:var(--shadow);transition:transform .55s cubic-bezier(.34,1.56,.64,1),background .4s,color .4s}
.svc-badge svg{width:26px;height:26px}
.svc-card:hover .svc-badge{transform:translateY(-4px) rotate(-8deg);background:var(--clay);color:#fff}
.why-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.3rem}
.why-card{transition:transform .4s,box-shadow .4s,border-color .4s}
.why-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-lg);border-color:var(--clay)}
.why-card:hover .ico{background:var(--clay);color:#fff;transform:rotate(-6deg) scale(1.08);box-shadow:0 12px 26px -10px rgba(192,82,43,.6)}
.step-head{display:flex;align-items:center;gap:.9rem;margin-bottom:.5rem}
.step .ico{width:46px;height:46px;border-radius:12px}
.step .ico svg{width:24px;height:24px}
.step{transition:transform .4s}
.step:hover{transform:translateY(-4px)}
.step:hover .ico{background:var(--clay);color:#fff;transform:rotate(-5deg) scale(1.07)}
.ci-ico svg{width:22px;height:22px}
.ci-ico{transition:background .3s,color .3s,transform .3s}
a.contact-card:hover .ci-ico{background:var(--clay);color:#fff;transform:rotate(-6deg)}

/* ---- premium chrome ---- */
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.10;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* ---- button shine ---- */
.btn-clay{position:relative;overflow:hidden}
.btn-clay::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-20deg);transition:left .65s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.btn-clay:hover::after{left:150%}
.btn-lg{will-change:transform}

/* ---- construction hero CTAs ---- */
.btn-build{position:relative;overflow:hidden;border:0;border-radius:12px;background:var(--clay);color:#fff;font-weight:700;font-size:1.04rem;padding:1.05em 1.8em 1.3em;box-shadow:0 16px 34px -12px rgba(192,82,43,.72);transition:transform .25s,background .25s,box-shadow .25s}
.btn-build:hover{transform:translateY(-3px);background:var(--clay-d);box-shadow:0 20px 40px -14px rgba(192,82,43,.8)}
.btn-build svg{width:19px;height:19px;flex:none}
.btn-build .ar{transition:transform .3s}
.btn-build:hover .ar{transform:translateX(5px)}
.btn-build::after{content:"";position:absolute;left:0;right:0;bottom:0;height:7px;background:repeating-linear-gradient(-45deg,#17120d 0 9px,var(--amber) 9px 18px);background-size:25.45px 100%}
.btn-build:hover::after{animation:hztape .5s linear infinite}
@keyframes hztape{to{background-position:25.45px 0}}

.btn-girder{position:relative;display:inline-flex;align-items:center;gap:.7rem;padding:1.05em 1.8em;border:2px solid var(--ink);border-radius:12px;background:linear-gradient(180deg,#fbf8f2,#efe6d6);color:var(--ink);font-weight:700;font-size:1.04rem;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 0 0 1px rgba(23,19,14,.05);transition:transform .25s,background .3s,color .3s,box-shadow .3s}
.bg-ph{width:auto;height:21px;flex:none;position:relative;z-index:1;color:var(--clay);transition:color .3s}
.btn-girder:hover .bg-ph{color:var(--amber)}
.ph-hand{transform-box:fill-box;transform-origin:center;animation:phshake 2.6s ease-in-out infinite}
@keyframes phshake{0%,66%,100%{transform:rotate(0)}70%{transform:rotate(-11deg)}74%{transform:rotate(9deg)}78%{transform:rotate(-7deg)}82%{transform:rotate(5deg)}86%{transform:rotate(-3deg)}90%{transform:rotate(1deg)}}
.ph-waves path{opacity:0;animation:phwave 2.6s ease-in-out infinite}
.ph-waves .w1{animation-delay:.04s}
.ph-waves .w2{animation-delay:.2s}
@keyframes phwave{0%,42%{opacity:0}52%{opacity:1}66%{opacity:1}76%,100%{opacity:0}}
.bg-n{font-family:var(--disp);font-weight:700;font-size:1.12rem;letter-spacing:-.01em;position:relative;z-index:1;white-space:nowrap}
.bolt{position:absolute;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#857a66,#2a241e 78%);box-shadow:0 0 0 1.5px rgba(23,19,14,.18),inset 0 -1px 1px rgba(0,0,0,.4);transition:background .3s,box-shadow .3s}
.bolt-tl{top:8px;left:8px}.bolt-tr{top:8px;right:8px}.bolt-bl{bottom:8px;left:8px}.bolt-br{bottom:8px;right:8px}
.btn-girder:hover{transform:translateY(-3px);background:linear-gradient(180deg,#241c13,#16110c);color:#fff;box-shadow:0 20px 42px -18px rgba(23,19,14,.65),inset 0 1px 0 rgba(255,255,255,.08)}
.btn-girder:hover .bolt{background:radial-gradient(circle at 34% 30%,#f6dd96,var(--clay));box-shadow:0 0 9px rgba(224,160,74,.7)}

/* header CTAs — medium size (bigger than nav, smaller than hero) */
.head-cta{align-items:stretch}
.head-cta .btn-build{font-size:.95rem;padding:.68em 1.3em .92em;border-radius:11px;gap:.5em;box-shadow:0 11px 24px -11px rgba(192,82,43,.65)}
.head-cta .btn-build svg{width:17px;height:17px}
.head-cta .btn-build::after{height:6px}
.head-cta .btn-girder{font-size:.95rem;padding:.6em 1.2em;border-radius:11px}
.head-cta .btn-girder .bg-n{font-size:1.04rem}
.head-cta .bolt{width:6px;height:6px}
.head-cta .bolt-tl{top:7px;left:7px}.head-cta .bolt-tr{top:7px;right:7px}.head-cta .bolt-bl{bottom:7px;left:7px}.head-cta .bolt-br{bottom:7px;right:7px}

/* ---- hero motion ---- */
.hero-badge{animation:float 4.5s ease-in-out infinite}
.hero-img-sub{animation:float 6s ease-in-out infinite .5s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-h1 .accent{position:relative;display:inline-block}
.hero-media{will-change:transform}

/* ---- rebalanced CTA band ---- */
.cta-band{position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:repeating-linear-gradient(-45deg,#17120d 0 9px,var(--amber) 9px 18px);background-size:25.45px 100%;z-index:3;animation:hztape 1.5s linear infinite}
.cta-band::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(224,160,74,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(224,160,74,.05) 1px,transparent 1px);background-size:46px 46px;pointer-events:none;z-index:0;-webkit-mask-image:radial-gradient(120% 110% at 22% 50%,#000,transparent 72%);mask-image:radial-gradient(120% 110% at 22% 50%,#000,transparent 72%)}
.cta-glow{position:absolute;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,rgba(192,82,43,.5),transparent 62%);top:-240px;right:-140px;filter:blur(30px);pointer-events:none;z-index:0}
.cta-in{position:relative;z-index:1;grid-template-columns:1.45fr auto;max-width:1120px;margin:0 auto}
.cta-actions{min-width:280px;align-items:stretch}
.cta-actions .btn{justify-content:center}
.cta-note{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.4rem;font-size:.88rem;color:var(--amber);font-weight:600}
.cta-note svg{width:16px;height:16px}
@media(max-width:820px){.cta-in{grid-template-columns:1fr}}

/* ---- sticky mobile CTA bar ---- */
.mobile-bar{display:none}
@media(max-width:1000px){
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:210;box-shadow:0 -12px 32px -14px rgba(23,19,14,.5)}
  .mobile-bar a{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;font-weight:700;font-size:1rem;color:#fff}
  .mobile-bar svg{width:20px;height:20px}
  .mb-call{background:var(--ink)}
  .mb-quote{background:var(--clay)}
  body{padding-bottom:58px}
}

/* ---- conversion: trust strip ---- */
.trust-strip{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.5rem 0}
.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.trust-item{display:flex;align-items:center;gap:.8rem}
.trust-ico{width:46px;height:46px;border-radius:12px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none}
.trust-ico svg{width:23px;height:23px}
.trust-tx{display:flex;flex-direction:column;line-height:1.2}
.trust-tx strong{font-family:var(--disp);font-weight:600;font-size:1rem;color:var(--ink)}
.trust-tx span{font-size:.85rem;color:var(--muted)}
@media(max-width:880px){.trust-row{grid-template-columns:1fr 1fr;gap:1.4rem}}
@media(max-width:460px){.trust-row{grid-template-columns:1fr}}

/* ---- conversion: home quote section ---- */
.quote-sec{background:var(--paper)}
.quote-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.quote-copy .sec-title{font-size:clamp(1.9rem,3.8vw,2.8rem)}
.quote-copy .lead{margin:1.1rem 0 1.3rem}
.quote-call{display:inline-flex;align-items:center;gap:.75rem;margin-top:1.6rem;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.7rem 1.2rem .7rem .7rem;box-shadow:var(--shadow);transition:transform .25s,border-color .25s,box-shadow .25s}
.quote-call:hover{transform:translateY(-3px);border-color:var(--clay);box-shadow:var(--shadow-lg)}
.qc-ico{width:44px;height:44px;border-radius:12px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none;transition:background .25s,color .25s}
.quote-call:hover .qc-ico{background:var(--clay);color:#fff}
.qc-ico svg{width:20px;height:20px}
.qc-tx{display:flex;flex-direction:column;line-height:1.15}
.qc-k{font-size:.66rem;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:600}
.qc-n{font-family:var(--disp);font-weight:700;font-size:1.14rem;color:var(--ink)}
.quote-form-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--shadow-lg)}
.quote-form-title{font-family:var(--disp);font-size:1.45rem;margin-bottom:1.2rem}
@media(max-width:880px){.quote-grid{grid-template-columns:1fr}}

/* ---- conversion: floating action button ---- */
.fab{position:fixed;right:24px;bottom:24px;z-index:190;display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.45rem;border-radius:100px;background:var(--clay);color:#fff;font-weight:700;font-size:1rem;box-shadow:0 16px 36px -10px rgba(192,82,43,.85);opacity:0;transform:translateY(20px) scale(.92);pointer-events:none;transition:opacity .35s,transform .35s cubic-bezier(.34,1.56,.64,1),background .25s}
.fab svg{width:19px;height:19px}
.fab.show{opacity:1;transform:none;pointer-events:auto;animation:fabBreath 2.8s ease-in-out infinite}
.fab:hover{background:var(--clay-d);transform:translateY(-3px)}
@keyframes fabBreath{0%,100%{box-shadow:0 16px 34px -10px rgba(192,82,43,.65)}50%{box-shadow:0 18px 42px -8px rgba(192,82,43,1)}}
@media(max-width:1000px){.fab{display:none}}

/* ---- quote modal ---- */
.qm-overlay{position:fixed;inset:0;z-index:300;background:rgba(20,15,10,.62);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:grid;place-items:center;padding:18px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s,visibility .3s}
.qm-overlay.open{opacity:1;visibility:visible;pointer-events:auto}
body.qm-open{overflow:hidden}
.qm-dialog{position:relative;width:min(940px,100%);max-height:94vh;overflow:auto;scrollbar-width:none;-ms-overflow-style:none;background:var(--card);border-radius:22px;display:grid;grid-template-columns:.82fr 1.18fr;box-shadow:0 50px 110px -30px rgba(0,0,0,.65);transform:translateY(22px) scale(.97);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.qm-dialog::-webkit-scrollbar{display:none}
.qm-brandline .brand-words{transform:none}
.qm-overlay.open .qm-dialog{transform:none}
.qm-close{position:absolute;top:14px;right:16px;z-index:3;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .2s}
.qm-close:hover{background:rgba(255,255,255,.32);transform:rotate(90deg)}
.qm-left{position:relative;overflow:hidden;background:linear-gradient(160deg,#241c13,#15110c);color:#e7dac6;padding:1.9rem 1.8rem;display:flex;flex-direction:column;justify-content:center}
.qm-left::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(192,82,43,.5),transparent 64%);top:-150px;right:-130px;filter:blur(24px);pointer-events:none}
.qm-brandline{position:relative;z-index:1;margin-bottom:1.4rem}
.qm-brandline .brand-mark{margin-top:0}
.qm-brandline .brand-img{height:40px}
.qm-left .bw-1{color:#fff}
.qm-left .bw-2{color:var(--amber)}
.qm-left .bw-est{color:#a99a85}
.qm-h{position:relative;z-index:1;font-family:var(--disp);font-weight:800;font-size:1.55rem;line-height:1.08;letter-spacing:-.02em;color:#fff;margin-bottom:.6rem}
.qm-h em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--amber)}
.qm-p{position:relative;z-index:1;font-size:.9rem;color:rgba(231,218,198,.78);margin-bottom:1.3rem;line-height:1.5}
.qm-benefits{position:relative;z-index:1;list-style:none;display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.4rem}
.qm-benefits li{display:flex;align-items:center;gap:.65rem;font-weight:600;font-size:.9rem;color:#efe7d8}
.qm-bi{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.08);color:var(--amber);display:grid;place-items:center;flex:none}
.qm-bi svg{width:16px;height:16px}
.qm-call{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.7rem;border-top:1px solid rgba(255,255,255,.12);padding-top:1.1rem;color:#fff}
.qm-call-ico{width:42px;height:42px;border-radius:11px;background:var(--clay);color:#fff;display:grid;place-items:center;flex:none}
.qm-call-ico svg{width:18px;height:18px}
.qm-call-k{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:#a99a85}
.qm-call strong{font-family:var(--disp);font-size:1.18rem}
.qm-right{padding:1.9rem 1.9rem;display:flex;flex-direction:column;justify-content:center}
.qm-title{font-family:var(--disp);font-weight:800;font-size:1.6rem;letter-spacing:-.02em;margin:.15rem 0 1.1rem}
.qm-steps{display:flex;align-items:center;gap:.5rem;margin-bottom:1.3rem}
.qm-step{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}
.qm-step b{width:28px;height:28px;border-radius:50%;background:var(--sand);color:var(--muted);display:grid;place-items:center;font-family:var(--disp);font-size:.82rem;transition:.25s}
.qm-step.on{color:var(--ink)}
.qm-step.on b,.qm-step.done b{background:var(--clay);color:#fff}
.qm-steps i{flex:1;height:2px;background:var(--line);border-radius:2px;min-width:12px}
.qm-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-bottom:.9rem}
.qm-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.83rem;color:var(--ink)}
.qm-form input,.qm-form textarea{font-family:var(--body);font-size:.98rem;padding:.7em .9em;border:1.5px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);transition:border .2s}
.qm-form input:focus,.qm-form textarea:focus{outline:0;border-color:var(--clay)}
.qm-label{font-weight:700;font-size:.92rem;margin-bottom:.85rem;color:var(--ink)}
.qm-options{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}
.qm-opt{position:relative;cursor:pointer}
.qm-opt input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.qm-opt span{display:block;padding:.55em 1em;border:1.5px solid var(--line);border-radius:100px;font-size:.9rem;font-weight:600;color:var(--ink-2);transition:.2s}
.qm-opt input:checked+span{background:var(--clay);border-color:var(--clay);color:#fff}
.qm-opt input:focus-visible+span{outline:2px solid var(--clay);outline-offset:2px}
.qm-msg{margin-bottom:1.2rem}
.qm-nav{display:flex;align-items:center;gap:1rem}
.qm-back{background:none;border:0;color:var(--ink-2);font-weight:600;cursor:pointer;font-size:.95rem;flex:none}
.qm-back:hover{color:var(--clay-d)}
.qm-nav .btn{flex:1;justify-content:center}
.qm-foot{display:flex;align-items:center;gap:.45rem;justify-content:center;margin-top:1.2rem;font-size:.79rem;color:var(--muted)}
.qm-foot .qm-bi.sm{width:20px;height:20px;background:transparent;color:var(--clay)}
.qm-foot .qm-bi.sm svg{width:15px;height:15px}
@media(max-width:760px){.qm-dialog{grid-template-columns:1fr}.qm-left{display:none}.qm-row{grid-template-columns:1fr}.qm-right{padding:2rem 1.4rem}}

/* ---- live chat widget ---- */
.chat-widget{position:fixed;right:24px;bottom:24px;z-index:220;display:flex;flex-direction:column;align-items:flex-end;gap:14px;pointer-events:none}
.chat-launch{width:60px;height:60px;border-radius:50%;border:0;background:var(--clay);color:#fff;cursor:pointer;display:grid;place-items:center;position:relative;box-shadow:0 16px 34px -10px rgba(192,82,43,.8);transition:transform .25s,background .25s;animation:chatBreath 2.8s ease-in-out infinite;pointer-events:auto}
.chat-launch:hover{transform:translateY(-3px);background:var(--clay-d)}
.chat-launch svg{width:27px;height:27px}
.chat-ico-open,.chat-ico-close{grid-area:1/1;display:grid;place-items:center;transition:opacity .25s,transform .25s}
.chat-ico-close{font-size:1.9rem;line-height:1;opacity:0;transform:scale(.5)}
.chat-widget.open .chat-ico-open{opacity:0;transform:scale(.5)}
.chat-widget.open .chat-ico-close{opacity:1;transform:scale(1)}
@keyframes chatBreath{0%,100%{box-shadow:0 16px 34px -10px rgba(192,82,43,.6)}50%{box-shadow:0 16px 42px -8px rgba(192,82,43,1)}}
.chat-panel{width:340px;max-width:calc(100vw - 40px);max-height:calc(100vh - 110px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(16px) scale(.96);transform-origin:bottom right;transition:opacity .3s,transform .3s cubic-bezier(.2,.8,.2,1),visibility .3s}
.chat-head{flex:none}
.chat-body{overflow-y:auto}
.chat-widget.open .chat-panel{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.chat-head{position:relative;display:flex;align-items:center;gap:.7rem;padding:1rem 1.1rem;background:linear-gradient(135deg,#c0522b,#9c3f1e);color:#fff}
.chat-avatar{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none}
.chat-avatar svg{width:23px;height:23px}
.chat-head-tx strong{display:block;font-family:var(--disp);font-size:.96rem;line-height:1.1}
.chat-status{display:flex;align-items:center;gap:.35rem;font-size:.76rem;color:rgba(255,255,255,.82);margin-top:.15rem}
.chat-status i{width:7px;height:7px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.7);animation:chatDot 2s infinite}
@keyframes chatDot{0%{box-shadow:0 0 0 0 rgba(61,220,132,.6)}70%{box-shadow:0 0 0 6px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
.chat-x{position:absolute;top:8px;right:10px;background:none;border:0;color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;opacity:.85}
.chat-x:hover{opacity:1}
.chat-body{padding:1.1rem;display:flex;flex-direction:column;gap:.55rem}
.chat-greet{font-size:.88rem;color:var(--ink-2);background:var(--sand);padding:.8rem .95rem;border-radius:12px;border-bottom-left-radius:3px;margin-bottom:.4rem}
.chat-opt{display:flex;align-items:center;gap:.8rem;padding:.65rem .8rem;border-radius:13px;border:1px solid var(--line);background:var(--paper);cursor:pointer;text-align:left;width:100%;font-family:var(--body);transition:border-color .2s,transform .2s,box-shadow .2s}
.chat-opt:hover{border-color:var(--clay);transform:translateX(3px);box-shadow:var(--shadow)}
.co-ico{width:40px;height:40px;border-radius:11px;background:var(--sand);color:var(--clay);display:grid;place-items:center;flex:none}
.co-ico svg{width:21px;height:21px}
.chat-opt.wa .co-ico{background:#25d366;color:#fff}
.co-tx strong{display:block;font-weight:700;font-size:.9rem;color:var(--ink)}
.co-tx em{font-style:normal;font-size:.76rem;color:var(--muted)}
@media(max-width:1000px){.chat-widget{bottom:18px;right:16px}}

.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal,.pop{opacity:1!important;transform:none!important;animation:none!important}.marquee-track,.hero-badge,.hero-img-sub,.tc-stars,.t-stars,.ph-hand,.ph-waves path{animation:none!important}.ph-waves path{opacity:1}.proc-line-fill{transition:none;width:100%}.bh-solid path{stroke-dashoffset:0!important;transition:none}.faq[open] .faq-a{animation:none}.cta-band::before{animation:none}.fab.show{animation:none}[class^="ai-"]{animation:none!important}[class^="rs-"]{animation:none!important}.gi [class^="gi-"]{animation:none!important}.chat-launch,.chat-status i{animation:none!important}}

/* ===== Advice teaser (home) + Blog listing + Blog post ===== */
.advice .advice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.advice-card{display:flex;flex-direction:column;gap:10px;background:var(--paper,#FBF7F0);border:1px solid #e7dccb;border-radius:18px;padding:26px 24px;text-decoration:none;color:var(--ink,#17130E);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.advice-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px -28px rgba(23,19,14,.45);border-color:#d9c8ad}
.advice-card-tag{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-d,#9C3F1E);background:#f3e6d6;padding:5px 11px;border-radius:999px}
.advice-card h3{font-family:var(--disp);font-size:20px;line-height:1.25;margin:2px 0 0}
.advice-card p{color:#5e5345;font-size:14.5px;line-height:1.6;margin:0;flex:1}
.advice-card-link{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--clay-d,#9C3F1E);font-size:14px}
.advice-card-link svg{width:16px;height:16px;transition:transform .3s}
.advice-card:hover .advice-card-link svg{transform:translateX(4px)}
.advice-empty{color:#7a6a55;font-size:15px;padding:8px 0}
.advice-all{margin-top:30px;text-align:center}

.blog-index-hero h1{max-width:18ch}
.blog-listing .blog-feature{display:flex;flex-direction:column;gap:14px;background:linear-gradient(140deg,#17130E,#3a2c1c);color:#fff;border-radius:24px;padding:42px 40px;text-decoration:none;margin-bottom:30px;position:relative;overflow:hidden}
.blog-feature .blog-card-tag{align-self:flex-start;background:rgba(224,160,74,.2);color:#E0A04A}
.blog-feature h2{font-family:var(--disp);font-size:clamp(26px,3.4vw,40px);line-height:1.1;margin:0;max-width:20ch}
.blog-feature p{color:rgba(255,255,255,.82);font-size:16px;line-height:1.6;margin:0;max-width:60ch}
.blog-feature .blog-card-meta{color:rgba(255,255,255,.6)}
.blog-feature .blog-card-link{color:#E0A04A}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.blog-card{display:flex;flex-direction:column;gap:11px;background:#fff;border:1px solid #e7dccb;border-radius:18px;padding:26px 24px;text-decoration:none;color:var(--ink,#17130E);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 22px 48px -28px rgba(23,19,14,.4);border-color:#d9c8ad}
.blog-card-tag{align-self:flex-start;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-d,#9C3F1E);background:#f3e6d6;padding:5px 11px;border-radius:999px}
.blog-card h3{font-family:var(--disp);font-size:19px;line-height:1.25;margin:2px 0 0}
.blog-card p{color:#5e5345;font-size:14px;line-height:1.55;margin:0;flex:1}
.blog-card-meta{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#8a7a64;margin-top:4px}
.blog-meta-dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.5}
.blog-card-link{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:14px}
.blog-card-link svg,.blog-card-arrow svg{width:16px;height:16px}
.blog-card-arrow{margin-left:auto;color:var(--clay-d,#9C3F1E)}

/* Blog post page */
.blog-post-hero{background:var(--bone,#F4EFE6);padding:46px 0 30px;border-bottom:1px solid #e7dccb}
.blog-post-hero .crumbs{margin-bottom:18px}
.blog-post-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--clay-d,#9C3F1E);background:#f3e6d6;padding:6px 13px;border-radius:999px;margin-bottom:14px}
.blog-post-hero h1{font-family:var(--disp);font-size:clamp(28px,4vw,48px);line-height:1.08;letter-spacing:-.02em;margin:0;max-width:24ch}
.blog-post-meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:18px;font-size:13.5px;color:#7a6a55}
.blog-post-body{max-width:780px;padding-top:38px;padding-bottom:10px}
.blog-post-foot{max-width:780px;padding-bottom:20px}
.blog-back{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--clay-d,#9C3F1E);text-decoration:none}
.blog-back svg{width:16px;height:16px;transform:rotate(180deg)}

@media(max-width:880px){.advice .advice-grid,.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.advice .advice-grid,.blog-grid{grid-template-columns:1fr}.blog-listing .blog-feature{padding:30px 24px}}

/* ===== "Made with love" credit (centre of footer base) ===== */
.foot-credit{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13.5px;color:rgba(244,239,230,.72);letter-spacing:.01em;overflow:visible}
.foot-credit a{color:#E6A45A;font-weight:700;text-decoration:none}
.foot-credit a:hover{text-decoration:underline;color:#f0b86a}
.foot-credit .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.heart-pump{width:16px;height:16px;flex:none;color:#e64a37;display:inline-block;vertical-align:middle;transform-origin:center center;overflow:visible;animation:heartPump 1.3s ease-in-out infinite}
@keyframes heartPump{0%{transform:scale(1)}12%{transform:scale(1.28)}24%{transform:scale(1)}36%{transform:scale(1.18)}52%{transform:scale(1)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.heart-pump{animation:none}}

/* ===== Forms: honeypot + submit messages ===== */
.form-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none}
.form-msg{margin:14px 0 0;padding:13px 16px;border-radius:11px;font-size:14.5px;line-height:1.5;font-weight:600}
.form-msg:empty{display:none}
.form-msg.ok{background:#eaf5ea;border:1px solid #b9dcb9;color:#1f6b32}
.form-msg.err{background:#fbeae6;border:1px solid #e6c2b6;color:#9C3F1E}
.form-msg.err a{color:inherit;text-decoration:underline}
.qm-form .form-msg{margin-top:10px}

/* Floating bottom Call / Free-quote bar removed per request */
.mobile-bar{display:none!important}

/* ===== Cookie consent banner ===== */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:400;max-width:560px;margin:0 auto;background:#17130E;color:#F4EFE6;border:1px solid #3a2c1c;border-radius:16px;padding:18px 20px;box-shadow:0 22px 60px -20px rgba(0,0,0,.6);display:flex;flex-direction:column;gap:12px;transform:translateY(140%);opacity:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .4s}
.cookie-banner.show{transform:none;opacity:1}
.cookie-tx{margin:0;font-size:13.5px;line-height:1.6;color:rgba(244,239,230,.86)}
.cookie-tx a{color:#E0A04A;text-decoration:underline;font-weight:600}
.cookie-actions{display:flex;gap:10px;align-items:center}
.cookie-btn{font-family:inherit;font-weight:700;font-size:14px;border-radius:10px;padding:10px 20px;cursor:pointer;text-decoration:none;border:0}
.cookie-accept{background:#C0522B;color:#fff}
.cookie-accept:hover{background:#9C3F1E}
.cookie-more{background:transparent;border:1px solid rgba(244,239,230,.3);color:#F4EFE6;display:inline-flex;align-items:center}
@media(min-width:560px){.cookie-banner{flex-direction:row;align-items:center;justify-content:space-between;gap:18px}.cookie-actions{flex:none}}

/* ===== Legal / policy pages ===== */
.legal{max-width:760px;margin:0 auto;color:#4a4138;font-size:16px;line-height:1.75}
.legal-updated{font-size:13px;color:#8a7a64;text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin:0 0 8px}
.legal h2{font-family:var(--disp);font-size:1.5rem;color:var(--ink);margin:32px 0 10px}
.legal p{margin:0 0 16px}
.legal ul{list-style:disc;margin:0 0 18px 22px}
.legal li{margin:6px 0}
.legal a{color:var(--clay-d);text-decoration:underline;font-weight:600}
