/* RVFixWise theme styles.
   Light is the default; :root[data-theme="dark"] is set only by the theme toggle (assets/js/theme-init.js + theme.js). */

/* ---------- tokens ---------- */
:root{
  --bg:var(--wp--preset--color--bg,#FBF7F0); --bg-2:var(--wp--preset--color--bg-2,#F4EEE3);
  --surface:var(--wp--preset--color--surface,#fff); --surface-2:var(--wp--preset--color--surface-2,#F8F3EA);
  --ink:var(--wp--preset--color--ink,#1D3439); --muted:var(--wp--preset--color--muted,#5A6D70); --line:var(--wp--preset--color--line,#E9E1D3);
  --brand:var(--wp--preset--color--brand,#0F4C5C); --brand-ink:var(--wp--preset--color--brand-ink,#fff); --brand-soft:var(--wp--preset--color--brand-soft,#E1EEEC);
  --accent:var(--wp--preset--color--accent,#F28F3B); --accent-ink:var(--wp--preset--color--accent-ink,#2A1600); --accent-text:var(--wp--preset--color--accent-text,#A24E0E);
  --ok:var(--wp--preset--color--ok,#2F8F5B);
  --peach:var(--wp--preset--color--peach,#FDE8D4); --sage:var(--wp--preset--color--sage,#E3ECDC); --sky:var(--wp--preset--color--sky,#DDEEF2);
  --sand:var(--wp--preset--color--sand,#F6EBD9); --mint:var(--wp--preset--color--mint,#DCEFE8);
  --warn-bg:var(--wp--preset--color--warn-bg,#FFF2E4); --warn-line:var(--wp--preset--color--warn-line,#F5C79C); --warn-ink:var(--wp--preset--color--warn-ink,#7A3E0C);
  --shadow:var(--wp--preset--shadow--soft,0 14px 34px -16px rgba(29,52,57,.22));
  --shadow-lg:var(--wp--preset--shadow--lifted,0 28px 54px -22px rgba(29,52,57,.32));
  --sky-top:#CDE7EC; --sky-bot:#FBEBD8; --sun:#F7B26A; --sun-halo:#FCD9AE; --cloud:#FFFFFF;
  --m1:#C9DECF; --m2:#A6C9B5; --m3:#7FB09D; --pine:#3E7F74; --pine-2:#2C6560; --star-o:0;
  --tr-body:#FFF8EC; --tr-band:#0F4C5C; --tr-win:#BFDDE3; --tr-door:#EADFCB; --tr-tire:#26393D; --tr-hub:#DCD2BF;
  --header-bg:rgba(251,247,240,.86); --glass:rgba(255,255,255,.88); --thumb-filter:none;
  --duo:color-mix(in oklab,var(--accent) 42%,transparent);
  --display:var(--wp--preset--font-family--display,"Bricolage Grotesque",system-ui,sans-serif);
  --body:var(--wp--preset--font-family--body,"Instrument Sans",system-ui,sans-serif);
  --r-lg:var(--wp--custom--radius--lg,28px); --r:var(--wp--custom--radius--md,22px); --r-sm:var(--wp--custom--radius--sm,14px);
  --gl:max(16px,env(safe-area-inset-left,0px)); --gr:max(16px,env(safe-area-inset-right,0px)); --gb:max(16px,env(safe-area-inset-bottom,0px));
  /* default scene tint (water) */
  --tint:var(--brand-soft); --t-sky:#D6ECF2; --t-sun:#F7B26A; --t-h1:#B7D7DD; --t-h2:#8DBFC6; --t-p:#3F7C82;
  color-scheme:light;
}
:root[data-theme="dark"],:root[data-theme="dark"] body{
  --wp--preset--color--bg:#0F1E22; --wp--preset--color--bg-2:#132629; --wp--preset--color--surface:#162A2F; --wp--preset--color--surface-2:#1A3136;
  --wp--preset--color--ink:#ECF3F0; --wp--preset--color--muted:#A5B9B6; --wp--preset--color--line:#264146;
  --wp--preset--color--brand:#7CC6C6; --wp--preset--color--brand-ink:#08201F; --wp--preset--color--brand-soft:#1C3A3D;
  --wp--preset--color--accent:#F6A25E; --wp--preset--color--accent-ink:#2A1600; --wp--preset--color--accent-text:#F6B47A;
  --wp--preset--color--ok:#6CCB94;
  --wp--preset--color--peach:#3A2C21; --wp--preset--color--sage:#1F3430; --wp--preset--color--sky:#1A3340; --wp--preset--color--sand:#2E2A22; --wp--preset--color--mint:#18352F;
  --wp--preset--color--warn-bg:#33261A; --wp--preset--color--warn-line:#6E4A26; --wp--preset--color--warn-ink:#F8CFA3;
  --wp--preset--shadow--soft:0 1px 2px rgba(0,0,0,.3),0 14px 34px -16px rgba(0,0,0,.65);
  --wp--preset--shadow--lifted:0 2px 4px rgba(0,0,0,.3),0 28px 54px -22px rgba(0,0,0,.75);
  --sky-top:#0E2230; --sky-bot:#2A4148; --sun:#F2DDA8; --sun-halo:#35505A; --cloud:#2B4650;
  --m1:#21414A; --m2:#1B3A3B; --m3:#173230; --pine:#12302D; --pine-2:#0D2624; --star-o:.85;
  --tr-body:#E6DCC8; --tr-band:#2E7F86; --tr-win:#F7C77B; --tr-door:#CDBFA6; --tr-tire:#0B1517; --tr-hub:#8A8170;
  --header-bg:rgba(15,30,34,.86); --glass:rgba(22,42,47,.9); --thumb-filter:brightness(.62) saturate(.85);
  color-scheme:dark;
}

/* category tints (by category slug; body gets .category-* on archives and .rvfw-cat-* on single posts) */
.t-water,.category-water-plumbing,.rvfw-cat-water-plumbing{--tint:var(--sky);--t-sky:#D6ECF2;--t-sun:#F7B26A;--t-h1:#B7D7DD;--t-h2:#8DBFC6;--t-p:#3F7C82}
.t-roof,.category-roof-leaks,.rvfw-cat-roof-leaks{--tint:var(--sand);--t-sky:#F7E6CF;--t-sun:#F28F3B;--t-h1:#DCD8B4;--t-h2:#B9C69C;--t-p:#6E8466}
.t-ac,.category-ac-climate,.rvfw-cat-ac-climate{--tint:var(--mint);--t-sky:#DDF0EC;--t-sun:#F9D49B;--t-h1:#BFE0D5;--t-h2:#93C8B6;--t-p:#3F8070}
.t-slide,.category-slide-outs-body,.rvfw-cat-slide-outs-body{--tint:var(--sage);--t-sky:#E6EEDD;--t-sun:#F5B97A;--t-h1:#C9DAB8;--t-h2:#A5C392;--t-p:#5B8250}
.t-cost,.category-cost-warranty,.rvfw-cat-cost-warranty{--tint:var(--peach);--t-sky:#FCE6D2;--t-sun:#F28F3B;--t-h1:#F1CDB0;--t-h2:#E2AE88;--t-p:#A86C45}
body.category,body.single{--tint:var(--brand-soft)}
body.category-water-plumbing,body.rvfw-cat-water-plumbing{--tint:var(--sky)}
body.category-roof-leaks,body.rvfw-cat-roof-leaks{--tint:var(--sand)}
body.category-ac-climate,body.rvfw-cat-ac-climate{--tint:var(--mint)}
body.category-slide-outs-body,body.rvfw-cat-slide-outs-body{--tint:var(--sage)}
body.category-cost-warranty,body.rvfw-cat-cost-warranty{--tint:var(--peach)}

/* ---------- base ---------- */
body{background:var(--bg);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--bg)}
.wp-site-blocks{padding:0}
.wp-site-blocks>*,.rvfw-main>*{margin-block-start:0}
.has-global-padding{padding-left:max(var(--wp--style--root--padding-left,16px),env(safe-area-inset-left,0px));padding-right:max(var(--wp--style--root--padding-right,16px),env(safe-area-inset-right,0px))}
:where(.rvfw-main) p{margin-block:0 1em}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:12px}
.rvfw-sprite{position:absolute;width:0;height:0;overflow:hidden}
.rvfw-ic,.ic{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.rvfw-wrap{max-width:var(--wp--style--global--wide-size,1180px);margin-inline:auto;padding-left:var(--gl);padding-right:var(--gr);box-sizing:border-box;width:100%}
.rvfw-wrap .rvfw-wrap{padding-left:0;padding-right:0}
.rvfw-narrow{max-width:calc(760px + 32px)}
.rvfw-section{padding-block:clamp(44px,7vw,64px)}
.rvfw-section--tight{padding-top:0}
.rvfw-eyebrow{display:inline-flex;align-items:center;gap:8px;font:650 .78rem/1 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);margin:0 0 12px!important}
.rvfw-lede{font-size:1.12rem;color:var(--muted);max-width:52ch}
.rvfw-empty{color:var(--muted);padding:18px 20px;border-radius:var(--r);background:var(--surface-2)}
.rvfw-head{margin-bottom:28px}
.rvfw-head h2{margin:0}
.rvfw-head--row{display:flex;justify-content:space-between;align-items:end;gap:12px 24px;flex-wrap:wrap}
.rvfw-more{margin:0!important;font-weight:700;color:var(--brand)}
.rvfw-more a{color:inherit}
/* animated underline */
.rvfw-ul,.rvfw-footer-list a,.rvfw-toc a,.rvfw-crumbs a{text-decoration:none!important;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;padding-bottom:2px}
.rvfw-ul:hover,.rvfw-ul:focus-visible,.rvfw-footer-list a:hover,.rvfw-toc a:hover,.rvfw-crumbs a:hover{background-size:100% 2px}
@media (prefers-reduced-motion:no-preference){.rvfw-ul,.rvfw-footer-list a,.rvfw-toc a,.rvfw-crumbs a{transition:background-size .3s ease}}

/* ---------- header ---------- */
.rvfw-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--header-bg);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid color-mix(in oklab,var(--line) 70%,transparent)}
.admin-bar .rvfw-header{top:calc(env(safe-area-inset-top,0px) + var(--wp-admin--admin-bar--height,32px))}
.rvfw-bar{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;max-width:1180px;margin-inline:auto;padding:12px var(--gr) 12px var(--gl)}
.rvfw-bar>*{margin:0!important}
.rvfw-logo{display:flex;align-items:center;flex:none;margin-right:auto!important}
.rvfw-logo img{display:block;width:152px;height:38px}
.rvfw-logo-dark{display:none!important}
:root[data-theme="dark"] .rvfw-logo-light{display:none!important}
:root[data-theme="dark"] .rvfw-logo-dark{display:block!important}
.rvfw-nav{min-width:0;overflow-x:auto;scrollbar-width:none;max-width:100%}
.rvfw-nav::-webkit-scrollbar{display:none}
.rvfw-nav .wp-block-navigation__container{gap:4px;flex-wrap:nowrap}
.rvfw-nav .wp-block-navigation-item__content{display:block;white-space:nowrap;padding:9px 14px!important;border-radius:999px;font-weight:600;font-size:.94rem;color:var(--muted);text-decoration:none}
.rvfw-nav .wp-block-navigation-item__content:hover{background:var(--brand-soft);color:var(--ink)}
.rvfw-nav .current-menu-item>.wp-block-navigation-item__content,.rvfw-nav [aria-current="page"]{background:var(--brand);color:var(--brand-ink)}
.rvfw-header-search{margin:0}
.rvfw-header-search .wp-block-search__button{width:42px;height:42px;padding:0;border-radius:50%;background:var(--surface);color:var(--brand);box-shadow:var(--shadow);display:grid;place-items:center;margin-left:0}
.rvfw-header-search .wp-block-search__button svg{fill:currentColor;width:22px;height:22px}
.rvfw-header-search .wp-block-search__inside-wrapper{border:0;padding:0;background:none}
.rvfw-header-search .wp-block-search__input{border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);padding:9px 14px;margin-right:6px;font:inherit}
.rvfw-theme-toggle{all:unset;cursor:pointer;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow);color:var(--brand);flex:none}
.rvfw-theme-toggle .moon{display:none}
:root[data-theme="dark"] .rvfw-theme-toggle .sun{display:none}
:root[data-theme="dark"] .rvfw-theme-toggle .moon{display:block}
@media (max-width:860px){
  .rvfw-nav{order:3;flex:1 0 100%}
  .rvfw-logo img{width:136px;height:34px}
}

/* ---------- hero ---------- */
.rvfw-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-bot) 80%);margin:0!important}
.rvfw-hero-art{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:clamp(250px,40svh,330px);display:block}
.rvfw-hero-in{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:40px;align-items:start;max-width:1180px;margin-inline:auto;padding:clamp(28px,6svh,60px) var(--gr) 0 var(--gl)}
.rvfw-hero-copy>*{margin-block:0}
.rvfw-hero-title{font-size:clamp(2.6rem,6vw,4.5rem);font-weight:750;max-width:11ch;line-height:.98!important;letter-spacing:-.035em!important;margin:2px 0 0!important}
.rvfw-hero-title em{font-style:normal;color:var(--brand);background:linear-gradient(transparent 62%,color-mix(in oklab,var(--accent) 40%,transparent) 62% 92%,transparent 92%)}
.rvfw-hero .rvfw-lede{margin:18px 0 24px!important;max-width:44ch}
@media (min-width:861px){
  .rvfw-hero{height:clamp(600px,calc(100svh - var(--rvfw-hh,88px)),800px)}
  .admin-bar .rvfw-hero{height:clamp(600px,calc(100svh - var(--rvfw-hh,88px) - var(--wp-admin--admin-bar--height,32px)),800px)}
  .rvfw-hero-title{font-size:clamp(2.6rem,min(6vw,9svh),4.5rem)}
}
/* search pill (hero + search/404 pages) */
.rvfw-finder{max-width:540px;margin:0!important}
.rvfw-finder .wp-block-search__inside-wrapper{display:flex;align-items:center;gap:8px;background:var(--surface);border:0!important;border-radius:999px;padding:7px 7px 7px 20px!important;box-shadow:var(--shadow-lg)}
.rvfw-finder .wp-block-search__inside-wrapper::before{content:"";width:22px;height:22px;flex:none;background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.4'/%3E%3Cpath d='m15.6 15.6 4.9 4.9'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.4'/%3E%3Cpath d='m15.6 15.6 4.9 4.9'/%3E%3C/svg%3E") center/contain no-repeat}
.rvfw-finder .wp-block-search__input{flex:1 1 auto;min-width:0;border:0!important;background:transparent;font:inherit;font-size:1rem;color:var(--ink);padding:10px 4px;outline:none}
.rvfw-finder .wp-block-search__input::placeholder{color:var(--muted);opacity:.85}
.rvfw-finder .wp-block-search__inside-wrapper:focus-within{outline:3px solid var(--accent);outline-offset:3px}
.rvfw-finder .wp-block-search__button{margin:0;border-radius:999px;padding:12px 22px;white-space:nowrap}
.rvfw-finder--page{margin-top:22px!important}
.rvfw-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.rvfw-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:.88rem;font-weight:600;line-height:1.3;background:color-mix(in oklab,var(--surface) 75%,transparent);color:var(--ink);text-decoration:none}
.rvfw-chip:hover{background:var(--surface);color:var(--ink)}
.rvfw-chip .rvfw-ic{width:18px;height:18px;color:var(--brand)}
@media (max-width:860px){
  .rvfw-hero{display:flex;flex-direction:column}
  .rvfw-hero-in{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:40px}
  .rvfw-hero-art{position:relative;order:2;height:240px;margin-top:-6px}
}
@media (max-width:760px){.rvfw-finder .wp-block-search__inside-wrapper{padding-left:16px!important}.rvfw-finder .wp-block-search__button{padding:12px 16px}}

/* hero scene */
.rvfw-hero .cloud{fill:var(--cloud);opacity:.9}
.rvfw-hero .sunc{fill:var(--sun)} .rvfw-hero .halo{fill:var(--sun-halo);opacity:.55}
.rvfw-hero .star{fill:#FFF6DE;opacity:var(--star-o)}
.rvfw-hero .m1{fill:var(--m1)} .rvfw-hero .m2{fill:var(--m2)} .rvfw-hero .m3{fill:var(--m3)} .rvfw-hero .gnd{fill:var(--bg)}
.rvfw-hero .pine{fill:var(--pine);color:var(--pine)} .rvfw-hero .pine2{fill:var(--pine-2);color:var(--pine-2)}
.rvfw-hero .bub{fill:var(--surface)}
.st-warn,.st-wrench,.st-puff{opacity:0}
.st-check{opacity:1}
.st-warn .ic-in{color:#D9622B}.st-wrench .ic-in{color:var(--brand)}.st-check .ic-in{color:var(--ok)}
.st-puff{fill:#fff}
.st-spin,.st-wob,.st-tilt,.st-wrench-r,.st-pop{transform-box:fill-box;transform-origin:center}
.st-tilt{transform-origin:85% 100%}
@media (prefers-reduced-motion:no-preference){
  .st-move{animation:st-move 14s infinite}
  .st-spin{animation:st-spin 14s infinite}
  .st-wob{animation:st-wob 14s infinite}
  .st-tilt{animation:st-tilt 14s infinite}
  .st-warn{animation:st-warn 14s infinite}
  .st-wrench{animation:st-wrench 14s infinite}
  .st-wrench-r{animation:st-wrench-r 14s infinite}
  .st-check{animation:st-check 14s infinite}
  .st-pop{animation:st-pop 14s infinite}
  .st-puff{animation:st-puff 14s infinite}
  .st-puff.p2{animation-delay:.45s}.st-puff.p3{animation-delay:1.6s}.st-puff.p4{animation-delay:2.05s}
  .rvfw-hero.is-paused *{animation-play-state:paused!important}
  .drift{animation:drift 40s ease-in-out infinite alternate}
  .drift.slow{animation-duration:56s}
}
@keyframes drift{to{transform:translateX(70px)}}
@keyframes st-move{
  0%{transform:translateX(-1150px);animation-timing-function:cubic-bezier(.2,.7,.3,1)}
  17%{transform:translateX(0)} 19%{transform:translateX(-7px)} 21%,73%{transform:translateX(0)}
  75%{transform:translate(0,-12px)} 77%{transform:translate(0,0)} 79%{transform:translate(0,-6px)}
  81%{transform:translate(0,0);animation-timing-function:cubic-bezier(.5,0,.8,.4)}
  97%,100%{transform:translateX(1150px)}}
@keyframes st-spin{0%{transform:rotate(0)}17%,81%{transform:rotate(1080deg)}97%,100%{transform:rotate(2160deg)}}
@keyframes st-wob{0%,24%{transform:none}26%{transform:translate(2px,4px) rotate(-12deg)}29%{transform:translate(-2px,5px) rotate(9deg)}32%{transform:translate(2px,5px) rotate(-11deg)}35%{transform:translate(-1px,6px) rotate(8deg)}38%{transform:translate(2px,6px) rotate(-12deg)}41%{transform:translate(-2px,6px) rotate(9deg)}44%{transform:translate(1px,6px) rotate(-10deg)}47%{transform:translate(-1px,6px) rotate(7deg)}50%{transform:translate(1px,6px) rotate(-9deg)}54%{transform:translate(0,4px) rotate(5deg)}58%{transform:translate(0,2px) rotate(-2deg)}62%,100%{transform:none}}
@keyframes st-tilt{0%,24%{transform:none}28%,56%{transform:rotate(-1.6deg)}62%,100%{transform:none}}
@keyframes st-warn{0%,23%{opacity:0;transform:scale(.4)}26%{opacity:1;transform:scale(1.1)}28%{transform:scale(1)}32%{opacity:.45}36%{opacity:1}40%{opacity:.45}44%{opacity:1}48%{opacity:1}50%,100%{opacity:0}}
@keyframes st-wrench{0%,49%{opacity:0}51%,62%{opacity:1}64%,100%{opacity:0}}
@keyframes st-wrench-r{0%,51%{transform:rotate(-30deg)}54%{transform:rotate(30deg)}57%{transform:rotate(-30deg)}60%{transform:rotate(30deg)}63%,100%{transform:rotate(0)}}
@keyframes st-check{0%,63%{opacity:0}65%,95%{opacity:1}98%,100%{opacity:0}}
@keyframes st-pop{0%,63%{transform:scale(.3)}66%{transform:scale(1.18)}69%,100%{transform:scale(1)}}
@keyframes st-puff{0%,24%{opacity:0;transform:translate(0,0) scale(.4)}29%{opacity:.85}38%,100%{opacity:0;transform:translate(-14px,-46px) scale(1.5)}}
.para{will-change:transform}

/* ---------- slider (a Query Loop enhanced by theme.js) ---------- */
.rvfw-slider{position:relative;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:14px;max-width:500px;justify-self:end;width:100%;margin:0!important}
.rvfw-slider .wp-block-post-template{list-style:none;margin:0;padding:0;display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;touch-action:pan-y pan-x}
.rvfw-slider .wp-block-post-template>li{flex:0 0 100%;scroll-snap-align:start;margin:0!important;min-width:0}
.rvfw-slider.is-ready .wp-block-post-template{display:grid;overflow:visible;gap:0;touch-action:pan-y}
.rvfw-slider.is-ready .wp-block-post-template>li{grid-area:1/1;opacity:0;visibility:hidden;transform:translateX(26px);transition:opacity .5s ease,transform .5s ease,visibility 0s linear .5s}
.rvfw-slider.is-ready .wp-block-post-template>li.is-on{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.rvfw-slider .wp-block-post-featured-image{aspect-ratio:2.4/1;border-radius:18px;overflow:hidden;background:var(--tint);margin:0}
.rvfw-slide-txt{padding:16px 8px 4px}
.rvfw-slide-txt>*{margin-block:0}
.rvfw-slide-title{font-size:clamp(1.25rem,2.3vw,1.55rem)!important;margin:10px 0 6px!important;letter-spacing:-.02em}
.rvfw-slide-excerpt{color:var(--muted);font-size:.95rem;margin:0 0 14px!important}
.rvfw-slide-excerpt p{margin:0}
.rvfw-btn,.wp-block-read-more.rvfw-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;background:var(--brand);color:var(--brand-ink)!important;font-weight:700;font-size:.95rem;text-decoration:none!important}
.rvfw-btn::after{content:"→"}
.rvfw-btn:hover{filter:brightness(1.08)}
.rvfw-sl-ctrl{display:flex;align-items:center;gap:8px;padding:10px 8px 2px}
.rvfw-sl-btn{all:unset;cursor:pointer;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--brand)}
.rvfw-sl-btn:hover{background:var(--brand-soft)}
.rvfw-sl-btn .rvfw-ic{width:18px;height:18px}
.rvfw-sl-prev .rvfw-ic{transform:scaleX(-1)}
.rvfw-dots{display:flex;gap:6px;margin-inline:auto}
.rvfw-dot{all:unset;cursor:pointer;position:relative;width:10px;height:10px;border-radius:99px;background:color-mix(in oklab,var(--brand) 25%,transparent);overflow:hidden;transition:width .3s}
.rvfw-dot[aria-current="true"]{width:30px}
.rvfw-dot::after{content:"";position:absolute;inset:0;background:var(--brand);transform-origin:left;transform:scaleX(0)}
.rvfw-dot[aria-current="true"]::after{transform:scaleX(1)}
.rvfw-slider.is-playing .rvfw-dot[aria-current="true"]::after{animation:rvfw-fill 6.5s linear forwards}
.rvfw-slider.is-held .rvfw-dot::after{animation-play-state:paused!important}
@keyframes rvfw-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.rvfw-sl-pause .play{display:none}.rvfw-sl-pause[aria-pressed="true"] .play{display:block}.rvfw-sl-pause[aria-pressed="true"] .pause{display:none}
@media (prefers-reduced-motion:reduce){.rvfw-slider.is-ready .wp-block-post-template>li{transition:none;transform:none}.rvfw-dot{transition:none}}
@media (max-width:860px){.rvfw-slider{justify-self:stretch;max-width:none}}

/* ---------- tags, thumbnails ---------- */
.rvfw-tag{display:flex;flex-wrap:wrap;gap:6px;font-size:.72rem!important}
.rvfw-tag a,.rvfw-tag .wp-block-post-terms__separator{display:none}
.rvfw-tag a:first-of-type{display:inline-flex}
.rvfw-tag a{align-items:center;padding:5px 12px;border-radius:999px;font:700 .72rem/1 var(--body);letter-spacing:.06em;text-transform:uppercase;background:var(--tint,var(--brand-soft));color:var(--ink);text-decoration:none}
.rvfw-tag a:hover{color:var(--brand)}
.rvfw-thumb{display:block;width:100%;height:100%;filter:var(--thumb-filter)}
.rvfw-badge{fill:var(--surface);opacity:.94}
.rvfw-badge-ic{color:var(--brand);fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.rvfw-scene-fig a{display:block;height:100%}
.wp-block-post-featured-image{margin:0}
.wp-block-post-featured-image img{width:100%;height:100%;object-fit:cover;display:block}

/* ---------- topic cards ---------- */
.rvfw-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.rvfw-topics>*{margin:0!important}
.rvfw-topic{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:24px 22px 22px;border-radius:var(--r-lg);background:var(--tint);min-width:0}
.rvfw-topic::after{content:"";position:absolute;right:-40px;bottom:-50px;width:150px;height:150px;border-radius:50%;background:color-mix(in oklab,var(--surface) 45%,transparent);pointer-events:none}
.rvfw-topic>*{margin:0!important;position:relative;z-index:1}
.rvfw-tile{position:relative;z-index:1;display:grid;place-items:center;width:64px;height:64px;margin-bottom:12px;background:var(--surface);color:var(--brand);border-radius:42% 58% 55% 45%/52% 44% 56% 48%;box-shadow:var(--shadow);flex:none}
.rvfw-tile .rvfw-ic{width:32px;height:32px}
.rvfw-topic-title{font-size:1.3rem!important}
.rvfw-topic-title a{color:var(--ink);text-decoration:none}
.rvfw-topic-title a::after{content:"";position:absolute;inset:0;z-index:2;border-radius:var(--r-lg)}
.rvfw-topic:has(a:focus-visible){outline:3px solid var(--accent);outline-offset:3px}
.rvfw-topic-title a:focus-visible{outline:none}
.rvfw-topic-desc{color:var(--muted);font-size:.93rem;line-height:1.5}
.rvfw-go{margin-top:auto!important;padding-top:14px;font-weight:700;font-size:.9rem;color:var(--brand)}
@media (max-width:640px){
  .rvfw-topics{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(210px,64%);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
  .rvfw-topic{scroll-snap-align:start;padding:20px 18px}
  .rvfw-topic-desc{display:none}
  .rvfw-tile{width:54px;height:54px}
}

/* ---------- callouts ---------- */
.rvfw-safety,.rvfw-answer{display:flex;gap:16px;align-items:flex-start;border-radius:var(--r);padding:20px 22px;margin-block:22px}
.rvfw-safety{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink)}
.rvfw-answer{background:linear-gradient(135deg,var(--brand-soft),var(--sky))}
.rvfw-safety .rvfw-tile,.rvfw-answer .rvfw-tile{width:48px;height:48px;margin:0;box-shadow:none}
.rvfw-safety .rvfw-tile{color:var(--accent-text)}
.rvfw-safety .rvfw-tile .rvfw-ic,.rvfw-answer .rvfw-tile .rvfw-ic{width:26px;height:26px}
.rvfw-safety-txt>*,.rvfw-answer-txt>*{margin:0!important}
.rvfw-callout-title strong{display:block;font:700 1.1rem/1.3 var(--display);letter-spacing:-.01em;color:var(--ink);margin-bottom:2px}
.rvfw-section--tight .rvfw-safety{margin:0}

/* ---------- latest guides ---------- */
.rvfw-split{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start}
.rvfw-split>*{margin:0!important}
@media (max-width:860px){.rvfw-split{grid-template-columns:1fr}}
.rvfw-feature-q .wp-block-post-template,.rvfw-list-q .wp-block-post-template{list-style:none;margin:0;padding:0}
.rvfw-feature-q li{background:var(--surface);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);margin:0}
.rvfw-feature-q .wp-block-post-featured-image{aspect-ratio:16/9;background:var(--tint)}
.rvfw-card-in{padding:20px 22px 22px}
.rvfw-card-in>*{margin-block:0}
.rvfw-feature-q .rvfw-card-in{padding:22px 26px 26px}
.rvfw-feature-q .wp-block-post-title{font-size:clamp(1.5rem,3vw,2rem)!important;margin:10px 0!important}
.rvfw-card-in .wp-block-post-excerpt{color:var(--muted)}
.rvfw-card-in .wp-block-post-excerpt p{margin:0}
.rvfw-date{margin-top:12px!important}
.rvfw-list-q .wp-block-post-template{display:grid;gap:12px}
.rvfw-list-q li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:16px;align-items:center;padding:12px;border-radius:var(--r);background:var(--surface);box-shadow:0 1px 0 var(--line);margin:0!important;position:relative}
.rvfw-list-q .wp-block-post-featured-image{width:92px;height:92px;border-radius:18px;overflow:hidden;background:var(--tint)}
.rvfw-list-q .rvfw-card-in{padding:0}
.rvfw-list-q .wp-block-post-title{font-size:1.08rem!important;margin:8px 0 0!important;line-height:1.25!important;letter-spacing:-.01em}
.rvfw-list-q .wp-block-post-title a::after,.rvfw-grid .rvfw-card-title a::after,.rvfw-feature-q .wp-block-post-title a::after{content:"";position:absolute;inset:0;z-index:1}
.rvfw-feature-q li,.rvfw-grid>li{position:relative}
.rvfw-tag a{position:relative;z-index:2}

/* ---------- card grid ---------- */
.rvfw-grid{list-style:none;margin:0;padding:0;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.rvfw-grid>li{display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);min-width:0;margin:0!important}
.rvfw-grid .wp-block-post-featured-image{aspect-ratio:16/9;background:var(--tint)}
.rvfw-card-title{font-size:1.25rem!important;margin:12px 0 6px!important;letter-spacing:-.015em}
.rvfw-pager{margin-top:36px;gap:8px;font-weight:600}
.rvfw-pager a,.rvfw-pager .page-numbers{padding:8px 14px;border-radius:999px;text-decoration:none;color:var(--ink)}
.rvfw-pager .current{background:var(--brand);color:var(--brand-ink)}

/* hover lift */
@media (prefers-reduced-motion:no-preference){
  .rvfw-grid>li,.rvfw-topic,.rvfw-list-q li,.rvfw-feature-q li,.rvfw-how-item{transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s ease}
  .rvfw-grid>li:hover,.rvfw-topic:hover,.rvfw-feature-q li:hover,.rvfw-list-q li:hover,.rvfw-how-item:hover{transform:translateY(-5px)}
}
.rvfw-grid>li:hover,.rvfw-topic:hover,.rvfw-feature-q li:hover,.rvfw-list-q li:hover{box-shadow:var(--shadow-lg)}

/* scroll reveal: visible by default; theme.js hides only items that start below the fold */
.rvfw-wait{opacity:0;transform:translateY(18px)}
.rvfw-in{animation:rvfw-in .7s cubic-bezier(.2,.7,.3,1) both}
@keyframes rvfw-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* ---------- ad slots: reserved fixed height, hidden until enabled ---------- */
.rvfw-ad{display:none;box-sizing:border-box;width:100%;overflow:hidden;border-radius:var(--r)}
.rvfw-ad--wide{min-height:120px;height:120px}
.rvfw-ad--inline{min-height:280px;height:280px;margin:32px 0}
.rvfw-ad--side{min-height:250px;height:250px}
.rvfw-ads-on .rvfw-ad,.rvfw-ads-preview .rvfw-ad{display:block}
.rvfw-ads-preview .rvfw-ad{display:grid;place-items:center;background:repeating-linear-gradient(135deg,var(--surface-2) 0 12px,transparent 12px 24px),var(--bg-2);border:1px dashed var(--line)}
.rvfw-ads-preview .rvfw-ad::before{content:"Ad slot (admin preview)";color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.rvfw-ad-wrap{padding-bottom:64px}
body:not(.rvfw-ads-on):not(.rvfw-ads-preview) .rvfw-ad-wrap{display:none}

/* ---------- trust band ---------- */
.rvfw-how{background:var(--bg-2);margin-top:0!important}
.rvfw-wave{display:block;width:100%;height:56px;background:var(--bg)}
.rvfw-wave path{fill:var(--bg-2)}
.rvfw-how-in{padding-block:24px 64px}
.rvfw-how-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.rvfw-how-grid>*{margin:0!important}
.rvfw-how-item{display:flex;gap:16px;align-items:flex-start;background:var(--surface);border-radius:var(--r);padding:22px}
.rvfw-how-item .rvfw-tile{width:52px;height:52px;margin:0;box-shadow:none;background:var(--brand-soft)}
.rvfw-how-item .rvfw-tile .rvfw-ic{width:28px;height:28px}
.rvfw-how-item p{margin:0!important;color:var(--muted);font-size:.94rem;line-height:1.55}
.rvfw-how-item .rvfw-callout-title{color:var(--ink)}

/* ---------- footer ---------- */
.rvfw-footer{background:var(--bg-2);color:var(--muted);font-size:.94rem;padding-bottom:max(28px,env(safe-area-inset-bottom,0px));margin-top:0!important}
.rvfw-footer-wave{display:block;width:100%;height:70px}
.rvfw-footer-wave path{fill:var(--bg)}
.rvfw-footer-in{padding-top:28px}
.rvfw-footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:28px}
.rvfw-footer-cols>*{margin:0!important}
.rvfw-footer-brand p{max-width:42ch;margin:14px 0 0}
.rvfw-footer-h{font-size:1.05rem!important;color:var(--ink);margin:0 0 10px!important}
.rvfw-footer-list{list-style:none;margin:0;padding:0}
.rvfw-footer-list li{margin:4px 0}
.rvfw-footer-list a{color:var(--muted)}
.rvfw-footer-list a:hover{color:var(--brand)}
.rvfw-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:32px!important;padding:18px 80px 0 0;border-top:1px solid var(--line);font-size:.85rem}
.rvfw-legal p{margin:0!important}
@media (max-width:700px){
  .rvfw-footer-cols{grid-template-columns:1fr 1fr}
  .rvfw-footer-brand{grid-column:1/-1}
  .rvfw-footer{padding-bottom:calc(max(28px,env(safe-area-inset-bottom,0px)) + 76px)}
  .rvfw-legal{padding-right:0}
}

/* ---------- page heads, archive hero ---------- */
.rvfw-page-top{padding-top:clamp(28px,5vw,44px)}
.rvfw-page-head{padding-bottom:28px}
.rvfw-page-head>*{margin-block:0}
.rvfw-page-head h1,.rvfw-cat-hero h1{margin:4px 0 10px!important;max-width:20ch}
.rvfw-cat-hero{position:relative;overflow:hidden;border-radius:var(--r-lg);background:var(--tint);padding:36px 32px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:center;margin-bottom:28px}
.rvfw-cat-copy>*{margin-block:0}
.rvfw-cat-copy .wp-block-term-description p{margin:0;color:var(--muted)}
.rvfw-cat-art{width:100%;aspect-ratio:16/10;border-radius:var(--r);overflow:hidden}
.rvfw-cat-ic{display:none}
.rvfw-cat-ic--default{display:inline}
.category-water-plumbing .rvfw-cat-ic--default,.category-roof-leaks .rvfw-cat-ic--default,.category-ac-climate .rvfw-cat-ic--default,.category-slide-outs-body .rvfw-cat-ic--default,.category-cost-warranty .rvfw-cat-ic--default{display:none}
.category-water-plumbing .rvfw-cat-ic--water-plumbing,.category-roof-leaks .rvfw-cat-ic--roof-leaks,.category-ac-climate .rvfw-cat-ic--ac-climate,.category-slide-outs-body .rvfw-cat-ic--slide-outs-body,.category-cost-warranty .rvfw-cat-ic--cost-warranty{display:inline}
@media (max-width:760px){.rvfw-cat-hero{grid-template-columns:1fr;padding:26px 20px}.rvfw-cat-art{display:none}}

/* ---------- single guide ---------- */
.rvfw-article-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;padding-block:36px 64px}
.rvfw-article-grid>*{margin:0!important}
@media (max-width:940px){.rvfw-article-grid{grid-template-columns:minmax(0,1fr)}}
.rvfw-article>*{margin-block:0}
.rvfw-crumbs{font-size:.88rem;color:var(--muted)}
.rvfw-crumbs a{color:var(--muted)}
.rvfw-article-title{font-size:clamp(2.1rem,5vw,3.3rem)!important;margin:12px 0 8px!important;max-width:20ch}
.rvfw-meta{color:var(--muted);font-size:.88rem;gap:6px 16px}
.rvfw-cover{margin:26px 0 8px!important;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:16/9;background:var(--tint)}
.rvfw-content{max-width:68ch;margin-top:26px!important}
.rvfw-content>*{margin-block:0 1.1em}
.rvfw-content h2{font-size:clamp(1.55rem,3.2vw,2rem);margin:44px 0 14px;scroll-margin-top:calc(env(safe-area-inset-top,0px) + 96px)}
.rvfw-content h3{font-size:1.3rem;margin:32px 0 10px;scroll-margin-top:calc(env(safe-area-inset-top,0px) + 96px)}
.rvfw-content a{text-underline-offset:3px}
.rvfw-content ol:not([class]),.rvfw-content ul:not([class]){padding-left:1.3em}
.rvfw-content .wp-block-table{overflow-x:auto;max-width:100%;border-radius:var(--r);background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.rvfw-content .wp-block-table table{border-collapse:collapse;width:100%;min-width:520px}
.rvfw-content .wp-block-table th,.rvfw-content .wp-block-table td{text-align:left;padding:14px 16px;border:0;border-bottom:1px solid var(--line);vertical-align:top}
.rvfw-content .wp-block-table tr:last-child td{border-bottom:0}
.rvfw-content .wp-block-table thead{border:0}
.rvfw-content .wp-block-table th{background:var(--surface-2);font-weight:700;font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.rvfw-faq{display:grid;gap:10px}
.rvfw-faq>*{margin:0!important}
.wp-block-details{background:var(--surface);border-radius:var(--r-sm);padding:0 18px;box-shadow:0 0 0 1px var(--line)}
.wp-block-details summary{list-style:none;cursor:pointer;font-weight:700;padding:16px 28px 16px 0;position:relative}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::after{content:"";position:absolute;right:0;top:50%;width:16px;height:16px;margin-top:-8px;background:linear-gradient(var(--brand),var(--brand)) center/16px 2px no-repeat,linear-gradient(var(--brand),var(--brand)) center/2px 16px no-repeat}
.wp-block-details[open] summary::after{transform:rotate(45deg)}
@media (prefers-reduced-motion:no-preference){.wp-block-details summary::after{transition:transform .2s}}
.wp-block-details>:not(summary){color:var(--muted);margin:0 0 16px}
.rvfw-post-tags{margin-top:28px!important;font-size:.88rem;color:var(--muted)}
.rvfw-aside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 92px);align-self:start;display:grid;gap:18px}
.admin-bar .rvfw-aside{top:calc(env(safe-area-inset-top,0px) + 124px)}
.rvfw-aside>*{margin:0!important}
.rvfw-toc{background:var(--surface);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow)}
.rvfw-toc[hidden]{display:none}
.rvfw-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.94rem}
.rvfw-toc a{color:var(--muted)}
.rvfw-toc a:hover,.rvfw-toc a[aria-current="true"]{color:var(--ink)}
@media (max-width:940px){.rvfw-aside{position:static}}
.rvfw-more-title{margin-bottom:24px!important}

/* editor: keep the hero readable in the canvas */
.editor-styles-wrapper .rvfw-hero{height:auto;min-height:640px}
.editor-styles-wrapper .rvfw-wait{opacity:1;transform:none}
