.elementor-130 .elementor-element.elementor-element-50bef01{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:1px 0px 0px 0px;--border-top-width:1px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#E2DAC5;--border-color:#E2DAC5;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-130 .elementor-element.elementor-element-6c3a19d{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:50px 50px;--row-gap:50px;--column-gap:50px;--flex-wrap:wrap;--padding-top:125px;--padding-bottom:125px;--padding-left:20px;--padding-right:20px;}.elementor-130 .elementor-element.elementor-element-6c3a19d:not(.elementor-motion-effects-element-type-background), .elementor-130 .elementor-element.elementor-element-6c3a19d > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-e7cc477 );}.elementor-130 .elementor-element.elementor-element-e07e0c7{--display:flex;}.elementor-widget-theme-post-title .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-130 .elementor-element.elementor-element-03d663d .elementor-heading-title{font-family:"Rubik", Sans-serif;font-size:36px;font-weight:800;line-height:46px;color:var( --e-global-color-001054e );}.elementor-widget-text-editor{font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );color:var( --e-global-color-text );}.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:var( --e-global-color-primary );}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap, .elementor-widget-text-editor.elementor-drop-cap-view-default .elementor-drop-cap{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-130 .elementor-element.elementor-element-1e40c23{font-family:"Nunito", Sans-serif;font-size:16px;font-weight:400;color:#6B6553;}.elementor-130 .elementor-element.elementor-element-d8bde7d{--display:flex;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-130 .elementor-element.elementor-element-2d17933 img{height:400px;object-fit:cover;object-position:center center;border-radius:18px 18px 18px 18px;box-shadow:0px 25px 60px -25px rgba(0, 0, 0, 0.3);}.elementor-130 .elementor-element.elementor-element-af8a9bb{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-130 .elementor-element.elementor-element-12b3461{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:72px;--padding-bottom:72px;--padding-left:72px;--padding-right:72px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-130 .elementor-element.elementor-element-1319323{text-align:center;}.elementor-130 .elementor-element.elementor-element-1319323 .elementor-heading-title{font-family:"Rubik", Sans-serif;font-size:40px;font-weight:800;color:var( --e-global-color-e7cc477 );}.elementor-130 .elementor-element.elementor-element-f5ea623{text-align:center;font-family:var( --e-global-typography-1dbf199-font-family ), Sans-serif;font-weight:var( --e-global-typography-1dbf199-font-weight );color:var( --e-global-color-e7cc477 );}.elementor-130 .elementor-element.elementor-element-a3cf26f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:125px;--padding-bottom:125px;--padding-left:72px;--padding-right:72px;}.elementor-130 .elementor-element.elementor-element-a3cf26f:not(.elementor-motion-effects-element-type-background), .elementor-130 .elementor-element.elementor-element-a3cf26f > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-e7cc477 );}.elementor-130 .elementor-element.elementor-element-bb81ea8{text-align:center;}.elementor-130 .elementor-element.elementor-element-bb81ea8 .elementor-heading-title{font-family:"Rubik", Sans-serif;font-size:40px;font-weight:800;color:var( --e-global-color-001054e );}.elementor-130 .elementor-element.elementor-element-d19fe58{padding:20px 30px 20px 30px;text-align:center;font-family:"Nunito", Sans-serif;font-size:16px;font-weight:400;color:#6B6553;}.elementor-130 .elementor-element.elementor-element-c813ee8{margin:-75px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-130 .elementor-element.elementor-element-2f83a1b{margin:125px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-130 .elementor-element.elementor-element-2f83a1b .elementor-heading-title{font-family:"Rubik", Sans-serif;font-size:40px;font-weight:800;color:var( --e-global-color-001054e );}.elementor-130 .elementor-element.elementor-element-a5c6e41{font-family:"Nunito", Sans-serif;font-size:16px;font-weight:400;color:#6B6553;}.elementor-130 .elementor-element.elementor-element-e12a703{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-130 .elementor-element.elementor-element-2b540a9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:125px;--padding-bottom:125px;--padding-left:125px;--padding-right:125px;}.elementor-130 .elementor-element.elementor-element-2b540a9:not(.elementor-motion-effects-element-type-background), .elementor-130 .elementor-element.elementor-element-2b540a9 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#1F1E1A;}.elementor-130 .elementor-element.elementor-element-2d996ba{text-align:center;}.elementor-130 .elementor-element.elementor-element-2d996ba .elementor-heading-title{font-family:"Rubik", Sans-serif;font-size:40px;font-weight:800;color:var( --e-global-color-e7cc477 );}.elementor-130 .elementor-element.elementor-element-c3027e8{text-align:center;font-family:var( --e-global-typography-1dbf199-font-family ), Sans-serif;font-weight:var( --e-global-typography-1dbf199-font-weight );color:#F7F3EA;}@media(min-width:768px){.elementor-130 .elementor-element.elementor-element-6c3a19d{--content-width:1180px;}.elementor-130 .elementor-element.elementor-element-e07e0c7{--width:60%;}.elementor-130 .elementor-element.elementor-element-d8bde7d{--width:35%;}.elementor-130 .elementor-element.elementor-element-a3cf26f{--content-width:1400px;}.elementor-130 .elementor-element.elementor-element-2b540a9{--content-width:1600px;}}/* Start custom CSS *//* ============================================================================
   OFFSET SOLAR — ROUNDUP, SHARED CHROME
   Tokens + header/hero/subnav/matrix/methodology/comparison/faq/bottom/footer
   + shared atoms (buttons, ilink, spec sheet, callouts, alt cards).
   Each VARIATION file adds only its own segment-layout CSS on top.
   ============================================================================ */
.osr{
  --bg:#F7F3EA;--bg-warm:#F2ECD9;--card:#FFFDF7;--bg3:#EDE5CE;--bg4:#E5DBC0;
  --line:#E2DAC5;--line2:#D6CCB2;
  --ink:#1F1E1A;--ink2:#4B4638;--ink3:#6B6553;--ink4:#8A826E;--ink5:#A99F86;
  --amber:#E4A21A;--amber-d:#C98A12;--amber-ink:#2A2610;
  --olive:#444D0A;--olive-d:#353C08;--rust:#8B3A2B;--tan:#F7F3EA;
  --head:'Rubik',-apple-system,system-ui,sans-serif;--body:'Nunito',-apple-system,system-ui,sans-serif;
  background:transparent;color:var(--ink2);font-family:var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.osr,.osr *{box-sizing:border-box}
.osr ::selection{background:var(--amber);color:var(--amber-ink)}
.osr a{color:inherit;text-decoration:none}
.osr h1,.osr h2,.osr h3,.osr h4{font-family:var(--head);margin:0;color:var(--ink);font-weight:700}
.osr p{margin:0}
.osr .shell{max-width:1180px;margin:0 auto;padding:0 32px}
.osr .shell-narrow{max-width:900px;margin:0 auto;padding:0 32px}
.osr .ilink{color:var(--olive);font-weight:600;border-bottom:1.5px solid rgba(74,90,42,.28);transition:border-color .15s,color .15s}
.osr .ilink:hover{color:var(--amber-d);border-color:var(--amber)}

/* variation switcher */
.osr-vary{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:6px;background:rgba(31,30,26,.92);color:#E7E1D2;border-radius:999px;padding:6px 8px 6px 14px;font-family:'Rubik',sans-serif;font-size:12px;box-shadow:0 14px 36px -14px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.osr-vary b{font-weight:600;opacity:.7;margin-right:4px;letter-spacing:.04em}
.osr-vary a{font-weight:600;color:#E7E1D2;padding:6px 12px;border-radius:999px;transition:background .15s,color .15s}
.osr-vary a:hover{background:rgba(247,243,234,.14)}
.osr-vary a.on{background:var(--amber);color:var(--amber-ink)}

/* header */
.osr-top{background:var(--olive);color:#E8DFC8;font-size:12.5px;padding:9px 0}
.osr-top .in{display:flex;justify-content:space-between;align-items:center;gap:20px}
.osr-top a{color:var(--amber)}
.osr-brandbar{background:var(--bg);border-bottom:1px solid var(--line)}
.osr-brandbar .in{display:flex;align-items:center;gap:36px;padding:15px 0}
.osr-logo{display:flex;align-items:center;gap:9px;font-family:var(--head);font-weight:700;font-size:22px;color:var(--olive);letter-spacing:-.02em}
.osr-logo b{color:var(--amber)}
.osr-brandnav{display:flex;gap:24px;flex:1;font-family:var(--head);font-weight:500;font-size:14.5px;color:var(--ink)}
.osr-find{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 5px 5px 14px}
.osr-find input{border:0;background:transparent;outline:none;font-family:var(--body);font-size:13px;width:120px;color:var(--ink)}
.osr-find button{background:var(--amber);border:0;border-radius:999px;padding:7px 16px;font-family:var(--head);font-weight:600;font-size:13px;color:var(--amber-ink);cursor:pointer}

/* subnav */
.osr-subnav{position:sticky;top:0;z-index:40;background:rgba(247,243,234,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.osr-subnav .in{display:flex;align-items:center;gap:8px;height:58px;overflow-x:auto;scrollbar-width:none}
.osr-subnav .in::-webkit-scrollbar{display:none}
.osr-subnav .lab{font-family:var(--head);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink4);white-space:nowrap;margin-right:6px}
.osr-subnav a{font-family:var(--head);font-weight:500;font-size:13.5px;color:var(--ink3);padding:7px 13px;border-radius:999px;white-space:nowrap;transition:background .15s,color .15s}
.osr-subnav a:hover{background:var(--olive);color:#F7F3EA}
.osr-subnav a.active{background:var(--olive);color:#F7F3EA}

/* hero */
.osr-hero{background:linear-gradient(180deg,var(--bg) 0%,var(--bg-warm) 100%);border-bottom:1px solid var(--line);padding:54px 0 58px}
.osr-hero-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:54px;align-items:center}
.osr-eyebrow{font-family:var(--head);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);display:inline-flex;align-items:center;gap:9px;margin-bottom:20px}
.osr-eyebrow .pip{width:7px;height:7px;border-radius:999px;background:var(--amber)}
.osr-h1{font-size:clamp(38px,5.4vw,64px);font-weight:800;line-height:1.0;letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.osr-h1 .hl{color:var(--olive)}
.osr-hero .intro p{font-size:clamp(16px,1.7vw,18px);line-height:1.62;color:var(--ink3);margin-top:16px;max-width:60ch}
.osr-hero .intro p .ilink{color:var(--ink3);border-color:rgba(107,101,83,.3)}
.osr-hero .intro p .ilink:hover{color:var(--olive);border-color:var(--olive)}
.osr-herometa{display:flex;gap:30px;flex-wrap:wrap;margin-top:28px}
.osr-hm .n{font-family:var(--head);font-weight:700;font-size:25px;color:var(--olive);line-height:1}
.osr-hm .l{font-size:12.5px;color:var(--ink4);margin-top:5px}
.osr-hero-art{position:relative}
.osr-hero-slot{width:100%;aspect-ratio:4/3;border-radius:18px;border:1px solid var(--line);background:radial-gradient(120% 120% at 50% 25%,var(--card),var(--bg3));overflow:hidden;box-shadow:0 16px 38px -34px rgba(31,30,26,.32)}
.osr-hero-slot image-slot{width:100%;height:100%;display:block}
.osr-hero-tag{position:absolute;left:-14px;bottom:22px;background:var(--amber);color:var(--amber-ink);font-family:var(--head);font-weight:700;font-size:13px;padding:11px 16px;border-radius:11px;box-shadow:0 12px 30px -12px rgba(232,165,60,.8);display:flex;align-items:center;gap:8px}

/* section heading */
.osr-sechead{margin-bottom:30px}
.osr-sec-eyebrow{font-family:var(--head);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);margin-bottom:11px}
.osr-sec-title{font-size:clamp(27px,3.2vw,38px);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.osr-sec-sub{font-size:17px;line-height:1.55;color:var(--ink3);max-width:62ch;margin-top:12px}

/* decision matrix */
.osr-matrix{padding:58px 0}
.osr-mgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.osr-mcard{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1 1 0;min-width:165px;max-width:calc((100% - 64px)/5);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:34px 24px;transition:transform .16s,box-shadow .16s,border-color .16s}
.osr-mcard:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(31,30,26,.4);border-color:var(--amber)}
.osr-mcard .mimg{width:100%;max-width:150px;aspect-ratio:1/1;border-radius:13px;border:none;background:var(--bg3);overflow:hidden;margin-bottom:20px}
.osr-mcard .mimg image-slot{width:100%;height:100%;display:block}
.osr-mcard .mimg img{width:100%;height:100%;display:block;object-fit:cover}
/* featured-image fallback — mirrors Loop Cards .os-img-blank; shows when a pick has no featured image (or the img fails to load and is removed via onerror) */
.osr-img-blank{background:linear-gradient(140deg,#2d3806 0%,#444D0A 55%,#637312 100%)}
.osr-mcard .mimg .osr-pslot-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;font-family:var(--body);font-size:11px;line-height:1.3;color:var(--ink4)}
.osr-mcard .seg{font-family:var(--head);font-weight:700;font-size:15.5px;letter-spacing:0;text-transform:none;color:var(--ink);margin-bottom:9px}
.osr-mcard .if{font-family:var(--body);font-weight:300;font-size:13px;line-height:1.5;color:var(--ink3);flex:1;margin-bottom:18px}
.osr-mcard .pick{font-family:var(--head);font-weight:700;font-size:14px;color:var(--ink);padding-top:16px;border-top:1px solid var(--line);width:100%}

/* shared segment shell */
.osr-seg{padding:56px 0;border-top:1px solid var(--line);scroll-margin-top:116px}
.osr-seg:nth-of-type(even){background:var(--bg-warm)}
.osr-ribbon{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.osr-ribbon .rk{font-family:var(--head);font-weight:800;font-size:26px;color:var(--amber);line-height:1}
.osr-ribbon .lbl{font-family:var(--head);font-weight:700;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive)}
.osr-ribbon .ln{flex:1;height:1px;background:var(--line2)}
.osr-segtitle{font-size:clamp(24px,2.8vw,34px);font-weight:800;line-height:1.05;letter-spacing:-.02em;color:var(--ink);max-width:22ch;text-wrap:balance}
.osr-segintro{margin-top:16px;max-width:760px}
.osr-segintro p{font-size:16.5px;line-height:1.7;color:var(--ink2);margin-bottom:14px}

/* shared atoms */
.osr-peyebrow{font-family:var(--head);font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-d);display:flex;align-items:center;gap:8px;margin-bottom:10px}
.osr-peyebrow .star{width:14px;height:14px;color:var(--amber)}
.osr-pname{font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.05}
.osr-pname .ilink{color:var(--ink);border:none}
.osr-pname .ilink:hover{color:var(--olive)}
.osr-pricetag{font-family:var(--head);font-weight:700;color:var(--ink)}

.osr-specsheet table{width:100%;border-collapse:collapse;font-family:var(--body);font-size:13.5px}
.osr-specsheet thead{display:none}
.osr-specsheet td{padding:8px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.osr-specsheet tr:last-child td{border-bottom:none}
.osr-specsheet td:first-child{font-family:var(--head);font-weight:500;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink4);width:44%;white-space:nowrap}
.osr-specsheet td:last-child{font-weight:700;color:var(--ink);font-family:var(--head)}

.osr-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--head);font-weight:600;font-size:14px;padding:12px 20px;border-radius:10px;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;border:1px solid transparent}
.osr-btn-amazon{background:var(--amber);color:var(--amber-ink)}
.osr-btn-amazon:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(232,165,60,.8)}
.osr-btn-ghost{background:transparent;color:var(--ink);border-color:var(--line2)}
.osr-btn-ghost:hover{background:var(--bg3);border-color:var(--ink4)}
.osr-btn svg{width:17px;height:17px;flex:none}
.osr-btn-sm{display:inline-flex;align-items:center;gap:7px;font-family:var(--head);font-weight:600;font-size:13px;padding:9px 15px;border-radius:9px;background:var(--bg3);color:var(--ink);transition:background .15s,color .15s}
.osr-btn-sm:hover{background:var(--amber);color:var(--amber-ink)}
.osr-btn-sm svg{width:14px;height:14px}

.osr-prose p{font-size:16px;line-height:1.72;color:var(--ink2);margin-bottom:15px}
.osr-prose p:last-child{margin-bottom:0}

.osr-skipif{display:flex;gap:10px;background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;padding:14px 0 0;margin-top:18px}
.osr-skipif .ico{color:var(--ink4);flex:none;margin-top:1px;opacity:.75}
.osr-skipif p{font-size:13.5px;line-height:1.55;color:var(--ink3)}
.osr-skipif strong{color:var(--ink2);font-family:var(--head);font-weight:600}

.osr-alt-tag{font-family:var(--head);font-weight:700;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink4)}
.osr-alt-name{font-family:var(--head);font-weight:700;font-size:16px;color:var(--ink);line-height:1.25;margin-top:3px}
.osr-alt-name .ilink{color:var(--ink);border:none}
.osr-alt-name .ilink:hover{color:var(--olive)}
.osr-alt-body p{font-size:14px;line-height:1.6;color:var(--ink3);margin-bottom:9px}
.osr-alt-body p:last-child{margin-bottom:0}
.osr-alt-slot{flex:none;border-radius:10px;border:1px solid var(--line);background:radial-gradient(120% 110% at 50% 20%,var(--bg),var(--bg3));overflow:hidden}
.osr-alt-slot image-slot{width:100%;height:100%;display:block}

.osr-note{display:flex;gap:13px;background:var(--bg3);border:1px dashed var(--line2);border-radius:12px;padding:16px 20px;max-width:880px}
.osr-note .ico{color:var(--ink4);flex:none;margin-top:1px}
.osr-note p{font-size:14px;line-height:1.62;color:var(--ink3)}
.osr-note strong{color:var(--ink2);font-family:var(--head);font-weight:700}

/* methodology */
.osr-method{background:var(--olive);color:#E4DCC6;padding:66px 0}
.osr-method .osr-sec-eyebrow{color:var(--amber)}
.osr-method .osr-sec-title{color:#F7F3EA}
.osr-method-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:start}
.osr-method-prose p{font-size:15.5px;line-height:1.72;color:#D5CDB6;margin-bottom:15px}
.osr-method-prose p:last-child{margin-bottom:0}
.osr-method-prose .ilink{color:#F3E4C4;border-color:rgba(232,165,60,.5)}
.osr-method-prose .ilink:hover{color:#fff;border-color:var(--amber)}
.osr-axes{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.osr-axis{display:flex;gap:16px;background:rgba(247,243,234,.07);border:1px solid rgba(247,243,234,.16);border-radius:13px;padding:18px 20px}
.osr-axis .n{font-family:var(--head);font-weight:800;font-size:20px;color:var(--amber);line-height:1;flex:none;width:34px}
.osr-axis h4{color:#F7F3EA;font-size:16px;font-weight:700;margin-bottom:4px}
.osr-axis p{font-size:13.5px;color:#CBC3AC;line-height:1.5;margin:0}

/* comparison */
.osr-compare{padding:64px 0}
.osr-tablewrap{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.osr-tscroll{overflow-x:auto}
.osr-compare table{width:100%;border-collapse:collapse;border-spacing:0;font-size:14.5px;min-width:780px}
.osr-compare th,.osr-compare thead td{background:var(--bg3);font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);text-align:left;padding:15px 16px;border:none;border-bottom:1px solid var(--line);white-space:nowrap}
.osr-compare td{padding:14px 16px;border:none;border-bottom:1px solid var(--line);color:var(--ink2);white-space:nowrap}
.osr-compare tr:last-child td{border-bottom:none}
.osr-compare tbody tr:hover td,.osr-compare tr:hover td{background:var(--bg-warm)}
.osr-compare td:first-child{font-family:var(--head);font-weight:700;color:var(--ink)}
.osr-compare .ilink{border:none;color:var(--ink)}
.osr-compare .ilink:hover{color:var(--olive)}
.osr-tnote{font-size:13px;color:var(--ink4);margin-top:14px;line-height:1.5}
.osr-tnote p{margin:0}

/* faq */
.osr-faq{padding:12px 0 68px}
.osr-faqlist{display:flex;flex-direction:column;gap:12px;counter-reset:faq}
.osr-fq{background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:border-color .18s,box-shadow .18s}
.osr-fq[open]{border-color:var(--line2);box-shadow:0 16px 40px -30px rgba(31,30,26,.4)}
.osr-fq summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:14px;padding:20px 24px;font-family:var(--head);font-weight:600;font-size:16.5px;line-height:1.4;color:var(--ink)}
.osr-fq summary::-webkit-details-marker{display:none}
.osr-fq summary::before{counter-increment:faq;content:"Q"counter(faq);flex:none;font-family:var(--head);font-weight:700;font-size:11px;color:var(--olive);background:var(--bg3);border-radius:6px;padding:5px 8px;margin-top:1px}
.osr-fq summary .chev{flex:none;margin-left:auto;color:var(--ink4);transition:transform .2s;margin-top:4px;width:18px;height:18px}
.osr-fq[open] summary .chev{transform:rotate(180deg)}
.osr-fq[open] summary{color:var(--olive)}
.osr-fq .a{padding:0 24px 22px 62px}
.osr-fq .a p{font-size:15.5px;line-height:1.7;color:var(--ink2)}

/* bottom line */
.osr-bottom{background:var(--ink);color:#E7E1D2;padding:60px 0}
.osr-bottom .osr-sec-eyebrow{color:var(--amber)}
.osr-bottom h2{color:#FBF7EE;font-size:clamp(26px,3vw,34px);font-weight:800;letter-spacing:-.02em;max-width:22ch;margin-bottom:18px}
.osr-bottom-prose p{font-size:15.5px;line-height:1.72;color:#C7C0B0;max-width:80ch}
.osr-bottom-prose .ilink{color:#F3E4C4;border-color:rgba(232,165,60,.45)}
.osr-bottom-prose .ilink:hover{color:#fff;border-color:var(--amber)}
.osr-bquick{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:32px}
.osr-bq{flex:1 1 0;min-width:150px;max-width:calc((100% - 40px)/5);background:rgba(247,243,234,.06);border:1px solid rgba(247,243,234,.14);border-radius:12px;padding:16px;transition:background .15s,border-color .15s}
.osr-bq:hover{background:rgba(247,243,234,.1);border-color:var(--amber)}
.osr-bq .seg{font-family:var(--head);font-weight:600;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--amber);margin-bottom:7px}
.osr-bq .nm{font-family:var(--head);font-weight:700;font-size:15px;color:#FBF7EE;line-height:1.2}
.osr-bq .pr{font-size:13px;color:#A89F8C;margin-top:5px}

/* footer */
.osr-foot{background:var(--bg);padding:32px 0;border-top:1px solid var(--line)}
.osr-foot p{font-size:13.5px;line-height:1.6;color:var(--ink4);max-width:84ch}
.osr-foot b{color:var(--ink3)}

@media (max-width:1000px){
  .osr-hero-grid{grid-template-columns:1fr;gap:34px}
  .osr-mcard{max-width:calc((100% - 16px)/2)}
  .osr-method-grid{grid-template-columns:1fr;gap:30px}
  .osr-bq{max-width:calc((100% - 10px)/2)}
  .osr-brandnav{display:none}
}
@media (max-width:600px){
  .osr .shell,.osr .shell-narrow{padding:0 20px}
  .osr-mcard{max-width:100%}
  .osr-bq{max-width:100%}
  .osr-find{display:none}
}

/* ============================================================================
   OffSet Solar — Roundup "Spec Rail" (Variation A) styles
   Load this AFTER roundup-common.css. Together they style every section the
   shortcodes emit (os_subnav, os_matrix, os_roundup, os_compare).
   roundup-common.css carries the design tokens (--amber, --olive, --tan, type,
   colors) that the rules below depend on — it MUST load first.
   ============================================================================ */

/* page — required: overflow-x hidden lets the matrix shape divider run full-bleed;
   scroll-padding keeps jump-link anchors clear of the sticky subnav. */
html{scroll-behavior:smooth;scroll-padding-top:128px}
body{overflow-x:hidden}
/* If your theme doesn't already set the page background, uncomment: */
/* body{background:#F2ECD9} */

/* ---- hero ---- */
.osr-hero{border-bottom:0;background:var(--tan);padding:125px 0}
.osr-h1{font-size:clamp(34px,6vw,55px)}
.osr-hero .intro p{font-size:16px}
.osr-hero-slot img{width:100%;height:100%;display:block;object-fit:cover} /* featured image = Cover */
.osr-subnav .lab{color:var(--ink);font-weight:900}

/* ---- decision matrix: wide, on warm tan, white shape divider cutting in halfway ---- */
.osr-matrix.shell{max-width:1600px;position:relative}
.osr-matrix::before{content:"";position:absolute;inset:0;left:50%;transform:translateX(-50%);width:100vw;background:var(--bg);z-index:0;pointer-events:none}
.osr-matrix .osr-mgrid{position:relative;z-index:1}
.osr-matrix::after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100vw;height:320px;background:#fff;clip-path:polygon(0 100%,100% 100%,100% 42%,0 58%);z-index:0;pointer-events:none}
.osr-mcard{background:#fff}
/* bare matrix (bottom-line reuse): centered 1600px grid, NO section bg, NO shape divider */
.osr-matrix-plain.shell{max-width:1600px}

/* ---- segment header: green ribbon bar + 2-column title/intro ---- */
.osr-seg,.osr-seg:nth-of-type(even){background:#fff;border-top:0}
.osr-seg{padding:72px 0}
.osr-seghead{margin:0 0 75px;border-bottom:1px solid var(--line)}
.osr-ribbon{background:var(--olive);border-radius:16px;padding:15px 24px;margin-bottom:24px}
.osr-ribbon .rk{color:#EB9D17}
.osr-ribbon .lbl{color:#F7F3EA;font-size:20px;font-weight:900}
.osr-ribbon .ln{display:none}
.osr-segpill{display:grid;grid-template-columns:24% 1fr;gap:36px;align-items:center;max-width:none;margin:18px 0;background:none;border:none;border-radius:0;padding:0;text-align:left}
.osr-segpill .osr-segtitle{font-size:clamp(17px,1.7vw,21px);max-width:none;margin:0;font-weight:800;line-height:1.2}
.osr-segpill .osr-segintro{margin-top:0;max-width:none}
.osr-segpill .osr-segintro p{font-size:15px;line-height:1.65;color:var(--ink2);font-style:italic;font-weight:300;margin-bottom:10px}
.osr-segpill .osr-segintro p:last-child{margin-bottom:0}

/* ---- the pick: rail + reading column, centered against each other ---- */
.osr-seg .body{display:grid;grid-template-columns:300px minmax(0,640px);justify-content:center;gap:48px;align-items:center;margin-top:0}
.osr-rail{display:flex;flex-direction:column;gap:16px}
.osr-rail .pslot{position:relative;width:100%;aspect-ratio:1/1;border-radius:14px;border:none;background:var(--bg3);overflow:hidden}
.osr-rail .pslot img{width:100%;height:100%;display:block;object-fit:cover}
.osr-rail .pslot .osr-pslot-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:18px;font-family:var(--body);font-size:12px;line-height:1.4;color:var(--ink4)}
.osr-rail .pricetag{position:absolute;top:12px;right:12px;background:var(--ink);color:var(--bg);font-family:var(--head);font-weight:700;font-size:17px;padding:8px 12px;border-radius:10px;text-align:right}
.osr-rail .pricetag small{display:block;font-family:var(--body);font-weight:400;font-size:9px;color:var(--ink5);letter-spacing:.05em;text-transform:uppercase;margin-top:1px}
.osr-rail .osr-specsheet{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card);width:100%}
.osr .osr-rail .osr-specsheet table{font-size:14px;width:100% !important;max-width:none !important;margin:0 !important;border-collapse:collapse !important;border-spacing:0}
.osr .osr-rail .osr-specsheet td{padding:13px 16px;border:none !important;border-bottom:1px solid var(--line) !important;vertical-align:top}
.osr .osr-rail .osr-specsheet tr:last-child td{border-bottom:none !important}
.osr-rail .osr-specsheet td:first-child{background:var(--bg3);font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);width:1%;white-space:nowrap}
.osr-rail .osr-specsheet td:last-child{font-family:var(--head);font-weight:600;color:var(--ink2)}
.osr-rail .pcta{display:flex}
.osr-rail .pcta .osr-btn{justify-content:center;width:100%;background:var(--olive);color:#fff}
.osr-rail .pcta .osr-btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(68,77,10,.5)}
.osr-rail .pcta .osr-btn svg{width:17px;height:17px;flex:none}
.osr-read .osr-pname{font-size:clamp(26px,2.7vw,34px);font-weight:900;margin-bottom:18px}
.osr-read .osr-prose{max-width:none}

/* ---- runner-up: image column left (full height), text right ---- */
.osr-extras{margin-top:0}
.osr-altpill{display:grid;grid-template-columns:220px 1fr;gap:38px;align-items:center;background:var(--tan);border:1px solid rgba(31,30,26,.07);border-radius:24px;padding:34px 40px;margin-top:75px}
.osr-altpill-img{border-radius:14px;border:none;background:var(--bg3);overflow:hidden;min-height:190px;align-self:stretch}
.osr-altpill-img img{width:100%;height:100%;display:block;object-fit:cover}
.osr-altpill-body{align-self:center;padding:4px 0}
.osr-altpill-body .osr-alt-tag{margin-bottom:6px}
.osr-altpill-body .osr-alt-name{font-size:20px;margin-top:2px;margin-bottom:12px;line-height:1.25}
.osr-altpill-body .osr-alt-prose p{font-size:14.5px;line-height:1.68;color:var(--ink2);margin-bottom:11px}
.osr-altpill-body .osr-alt-prose p:last-child{margin-bottom:0}
.osr-altpill-body .osr-btn-sm{margin-top:20px}
.osr-altpill .osr-btn-sm{background:var(--olive);color:#fff}
.osr-altpill .osr-btn-sm:hover{background:var(--olive-d);color:#fff}

/* ---- "A note on…" callout — matches Skip-it-if, full container width ---- */
.osr-note{display:flex;gap:10px;background:transparent;border:none;border-top:1px solid var(--line);border-radius:0;padding:14px 0 0;margin-top:26px;max-width:none}
.osr-note .ico{color:var(--ink4);flex:none;margin-top:1px;opacity:.75}
.osr-note p{font-size:13.5px;line-height:1.55;color:var(--ink3)}
.osr-note strong{color:var(--ink2);font-family:var(--head);font-weight:600}

/* ---- how we picked: numbered criteria straight from the ACF prose ---- */
.osr-method{padding:72px 0}
.osr-method-grid{grid-template-columns:1fr;gap:0}
.osr-method .osr-sec-title{max-width:24ch}
.osr-method-prose{counter-reset:crit;margin-top:34px}
/* the 2-col grid goes on whichever element actually holds the <p> criteria:
   the mock has them as direct children; Elementor's Text Editor wraps them in
   .elementor-widget-container. :has() targets the right one in both. */
.osr-method-prose:has(> p),
.osr-method-prose > .elementor-widget-container{display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.osr-method-prose p{margin:0;padding:24px 0 26px 58px;border-top:1px solid rgba(247,243,234,.16);position:relative}
.osr-method-prose p::before{counter-increment:crit;content:counter(crit,decimal-leading-zero);position:absolute;left:0;top:23px;font-family:var(--head);font-weight:800;font-size:21px;color:var(--amber);line-height:1}

/* ---- comparison: widen to fit the full table (no scroll) + generated Buy column ---- */
.osr-compare.shell{max-width:1400px;padding-top:64px;padding-bottom:64px}

/* Full table styling targets a class stamped on the <table> itself by os_compare
   (.osr-ctable), so it never depends on ancestor wrappers. The .osr scope + !important
   beat any theme table CSS (e.g. \`.elementor table td{border:1px}\`) regardless of
   stylesheet load order. Works with <thead>/<tbody> or a plain <table><tr><td>. */
.osr table.osr-ctable{width:100%;border-collapse:collapse !important;border-spacing:0;font-size:14.5px;background:var(--card)}
.osr table.osr-ctable td,
.osr table.osr-ctable th{border:none !important;border-bottom:1px solid var(--line) !important;padding:14px 16px;color:var(--ink2);text-align:left !important;white-space:nowrap;vertical-align:middle}
.osr table.osr-ctable thead th,
.osr table.osr-ctable thead td,
.osr table.osr-ctable:not(:has(thead)) tr:first-child th,
.osr table.osr-ctable:not(:has(thead)) tr:first-child td{
  background:var(--bg3) !important;font-family:var(--head);font-weight:600;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink3) !important}
.osr table.osr-ctable tbody tr:last-child td,
.osr table.osr-ctable:not(:has(thead)) tr:last-child td{border-bottom:none !important}
.osr table.osr-ctable tbody tr:hover td{background:var(--bg-warm)}
.osr table.osr-ctable tbody td:first-child,
.osr table.osr-ctable:not(:has(thead)) tr:not(:first-child) td:first-child{font-family:var(--head);font-weight:700;color:var(--ink) !important}

.osr table.osr-ctable td.cmp-cta{white-space:nowrap;text-align:right !important}
.osr-compare .cmp-cta .osr-btn-sm{background:var(--olive);color:#fff}
.osr-compare .cmp-cta .osr-btn-sm:hover{background:var(--olive-d);color:#fff}

/* ---- faq: minimal look (hairline rows). CSS draws the chevron — no svg needed ---- */
#osr-faq{max-width:1400px}
.osr-faq.shell-narrow{padding-top:0;padding-bottom:72px}
.osr-faqlist.mode-min{gap:0}
.osr-faqlist.mode-min .osr-fq{border:none;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent}
.osr-faqlist.mode-min .osr-fq summary{padding:18px 30px 18px 2px;position:relative}
.osr-faqlist.mode-min .osr-fq summary::after{content:"";position:absolute;right:8px;top:23px;width:9px;height:9px;border-right:2px solid var(--ink4);border-bottom:2px solid var(--ink4);transform:rotate(45deg);transition:transform .2s}
.osr-faqlist.mode-min .osr-fq[open] summary::after{transform:rotate(225deg)}
.osr-faqlist.mode-min .osr-fq .a{padding:0 2px 20px 40px}

/* ---- bottom line: 1600 like the top cards, everything centered ---- */
.osr-bottom{padding:72px 0 80px}
.osr-bottom .shell{max-width:1600px;text-align:center}
.osr-bottom h2{margin-left:auto;margin-right:auto}
.osr-bottom-prose p{margin-left:auto;margin-right:auto;max-width:1180px}
.osr-bottom .osr-mgrid{margin-top:38px}

/* ---- hyperlinks, per section ----------------------------------------------
   A global \`.osr a{color:inherit;text-decoration:none}\` reset means links are
   invisible until styled. These target plain <a> AND the [ilink] class, so they
   work whether or not your shortcode adds a class. Light sections → brand green
   with a hairline underline (amber on hover); dark sections (How-we-picked,
   bottom line) → cream; the comparison table → bold ink product names. */

/* light-background prose: hero, segment intro, the pick, runner-up, skip-if, note, FAQ */
.osr-hero .intro a,.osr-hero .intro .ilink,
.osr-segpill .osr-segintro a,.osr-segpill .osr-segintro .ilink,
.osr-read .osr-prose a,.osr-read .osr-prose .ilink,
.osr-skipif a,.osr-skipif .ilink,
.osr-note a,.osr-note .ilink,
.osr-altpill-body a,.osr-altpill-body .ilink,
.osr-faqlist .osr-fq .a a,.osr-faqlist .osr-fq .a .ilink{
  color:var(--olive);font-weight:600;text-decoration:none;
  border-bottom:1.5px solid rgba(68,77,10,.32);transition:color .15s,border-color .15s}
.osr-hero .intro a:hover,.osr-hero .intro .ilink:hover,
.osr-segpill .osr-segintro a:hover,.osr-segpill .osr-segintro .ilink:hover,
.osr-read .osr-prose a:hover,.osr-read .osr-prose .ilink:hover,
.osr-skipif a:hover,.osr-skipif .ilink:hover,
.osr-note a:hover,.osr-note .ilink:hover,
.osr-altpill-body a:hover,.osr-altpill-body .ilink:hover,
.osr-faqlist .osr-fq .a a:hover,.osr-faqlist .osr-fq .a .ilink:hover{
  color:var(--amber-d);border-bottom-color:var(--amber)}

/* dark-background prose: How we picked (green) + bottom line (near-black) */
.osr-method-prose a,.osr-method-prose .ilink,
.osr-bottom-prose a,.osr-bottom-prose .ilink{
  color:#F3E4C4;font-weight:600;text-decoration:none;
  border-bottom:1.5px solid rgba(228,162,26,.45);transition:color .15s,border-color .15s}
.osr-method-prose a:hover,.osr-method-prose .ilink:hover,
.osr-bottom-prose a:hover,.osr-bottom-prose .ilink:hover{
  color:#fff;border-bottom-color:var(--amber)}

/* comparison table: product-name links are the bold first column — no underline */
.osr table.osr-ctable a,.osr table.osr-ctable .ilink{
  color:var(--ink);font-weight:700;text-decoration:none;border-bottom:none;transition:color .15s}
.osr table.osr-ctable a:hover,.osr table.osr-ctable .ilink:hover{color:var(--olive)}

/* UTILITY link classes — drop on ANY Elementor Text Editor that contains links.
   Hardcoded brand hex + !important so they style links even when the widget isn't
   inside an .osr wrapper and regardless of theme/Elementor link-color settings.
   • osr-prose      → light backgrounds (hero, etc.): brand green, amber on hover
   • osr-prose-dark → dark backgrounds (bottom line, How we picked): cream */
.osr-prose a,.osr-prose .ilink{
  color:#444D0A !important;font-weight:600;text-decoration:none !important;
  border-bottom:1.5px solid rgba(68,77,10,.32);transition:color .15s,border-color .15s}
.osr-prose a:hover,.osr-prose .ilink:hover{color:#C98A12 !important;border-bottom-color:#E4A21A}
.osr-prose-dark a,.osr-prose-dark .ilink{
  color:#F3E4C4 !important;font-weight:600;text-decoration:none !important;
  border-bottom:1.5px solid rgba(228,162,26,.45);transition:color .15s,border-color .15s}
.osr-prose-dark a:hover,.osr-prose-dark .ilink:hover{color:#fff !important;border-bottom-color:#E4A21A}

/* ---- responsive ---- */
@media (max-width:1100px){.osr-matrix.shell{max-width:1180px}}
@media (max-width:1000px){
  .osr-seg .body{grid-template-columns:1fr;gap:24px;align-items:start}
  .osr-rail{flex-direction:row;flex-wrap:wrap;align-items:flex-start}
  .osr-rail .pslot{width:180px;aspect-ratio:1/1}
  .osr-rail .osr-specsheet{flex:1;min-width:220px}
  .osr-altpill{grid-template-columns:1fr}
  .osr-segpill{grid-template-columns:1fr;gap:12px}
  .osr-method-prose{grid-template-columns:1fr}
}
@media (max-width:760px){
  .osr-hero{padding:64px 0}
  .osr-method{padding:56px 0}
  .osr-seg{padding:52px 0}
  .osr-seghead{margin:0 0 48px}
  .osr-altpill{margin-top:48px}
  .osr-compare.shell{padding-top:64px;padding-bottom:64px}
  .osr-faq.shell-narrow{padding-bottom:84px}
  .osr-bottom{padding:56px 0 64px}
  .osr-segpill .osr-segtitle{font-size:20px}
}
@media (max-width:600px){.osr-rail .pslot{width:100%}.osr-rail{flex-direction:column}}/* End custom CSS */