/* Osturu / CastCalc website (W-1). Plain CSS, no framework, no external requests.
   Brand: cream #f8f5ef, charcoal #1e1c18, gold #9a7b3f; Playfair Display headings, Source Sans 3 body (self-hosted). */
@font-face{font-family:"Playfair Display";src:url(fonts/PlayfairDisplay-Regular.woff2?v=9595e91efb) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Playfair Display";src:url(fonts/PlayfairDisplay-Bold.woff2?v=7c59892ebf) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/SourceSans3-Regular.woff2?v=661385d942) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/SourceSans3-It.woff2?v=f398f20052) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(fonts/SourceSans3-Semibold.woff2?v=82a903e3fa) format("woff2");font-weight:600 700;font-display:swap}

:root{
  --cream:#f8f5ef; --paper:#fffdf9; --charcoal:#1e1c18; --ink:#2b2822; --muted:#5f584c; --line:#e4dccd;
  --gold:#9a7b3f; --gold-dark:#6f5626; --gold-text:#7a5f2a; --gold-light:#d9b871; --tint:#fbf6ea;
  --serif:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
  --wrap:1120px; --radius:12px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.6 var(--sans);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold-dark);text-underline-offset:3px}
a:hover{color:var(--charcoal)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--charcoal);line-height:1.15;margin:0 0 .6em}
h1{font-size:clamp(2.1rem,5.2vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.kicker{font:600 .78rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);margin:0 0 .9rem}
.lead{font-size:clamp(1.1rem,2.2vw,1.3rem);color:var(--muted);max-width:44rem}
.skip{position:absolute;left:-9999px;top:0;background:var(--charcoal);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:10px;top:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(248,245,239,.94);backdrop-filter:saturate(1.2) blur(6px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--charcoal)}
.brand img{width:30px;height:30px}
.brand b{font:400 1.25rem/1 var(--serif)}
.brand small{display:block;font:600 .62rem/1.2 var(--sans);letter-spacing:.2em;color:var(--gold-text);text-transform:uppercase;margin-top:3px}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:var(--ink);text-decoration:none;font-weight:600;font-size:.98rem}
.nav a:hover,.nav a[aria-current="page"]{color:var(--gold-dark)}
.nav .btn{color:#fff}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;cursor:pointer;color:var(--charcoal);font:600 .95rem var(--sans)}
@media (max-width:860px){
  .menu-btn{display:inline-flex;align-items:center;gap:6px}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);
       border-bottom:1px solid var(--line);padding:8px 20px 16px;box-shadow:0 10px 24px rgba(30,28,24,.08)}
  .nav.open{display:flex}
  .nav a{padding:12px 0;border-bottom:1px solid var(--line)}
  .nav .btn{margin-top:12px;text-align:center;border-bottom:0}
}

/* ---------- buttons ---------- */
.btn{display:inline-block;background:var(--gold-text);color:#fff;text-decoration:none;font:600 1rem/1.2 var(--sans);padding:.85rem 1.35rem;
     border-radius:10px;border:2px solid var(--gold-text);text-align:center;transition:background .15s,border-color .15s}
.btn:hover{background:var(--gold-dark);border-color:var(--gold-dark);color:#fff}
.btn-dark{background:var(--charcoal);border-color:var(--charcoal)}
.btn-dark:hover{background:#000;border-color:#000}
.btn-ghost{background:transparent;color:var(--charcoal);border-color:var(--charcoal)}
.btn-ghost:hover{background:var(--charcoal);color:#fff}
.btn-sm{padding:.55rem 1rem;font-size:.95rem}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.6rem}
@media (max-width:480px){.btn-row .btn{flex:1 1 100%}}

/* ---------- sections ---------- */
section{padding:clamp(56px,8vw,96px) 0}
.section-alt{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-dark{background:var(--charcoal);color:#e9e4da}
.section-dark h2,.section-dark h3{color:#fff}
.section-dark .kicker{color:var(--gold-light)}
.section-head{max-width:46rem;margin-bottom:2.4rem}

.hero{padding:clamp(48px,8vw,104px) 0 clamp(48px,7vw,88px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center}
.hero-note{font-size:.92rem;color:var(--muted);margin-top:.9rem}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;gap:32px}}

/* result card in the hero (an illustration built from text, no screenshot) */
.demo{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 18px 40px rgba(30,28,24,.08)}
.demo-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.demo-price{font:400 2.4rem/1.1 var(--serif);color:var(--charcoal);margin:.4rem 0 .1rem}
.demo-verdict{background:var(--tint);border-left:4px solid var(--gold);border-radius:8px;padding:.6rem .8rem;font-size:.95rem;margin:.9rem 0}
.bars{display:grid;gap:7px;margin-top:.6rem}
.bar{display:grid;grid-template-columns:8.5rem minmax(0,1fr) 3.4rem;gap:10px;align-items:center;font-size:.86rem}
.bar i{display:block;height:8px;border-radius:4px;background:var(--charcoal)}
.bar:nth-child(even) i{background:var(--gold)}
.bar span:last-child{text-align:right;color:var(--muted)}
@media (max-width:420px){.bar{grid-template-columns:6.8rem minmax(0,1fr) 3rem;font-size:.8rem}}

/* ---------- grids ---------- */
.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card h3{margin-bottom:.4em}
.card p{color:var(--muted);margin:0}
.icon{width:38px;height:38px;border-radius:10px;background:var(--tint);color:var(--gold-dark);display:grid;place-items:center;margin-bottom:12px}
.icon svg{width:20px;height:20px}
.steps{counter-reset:s;display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}
.steps li{list-style:none;counter-increment:s;padding-top:6px}
.steps li::before{content:counter(s,decimal-leading-zero);display:block;font:400 2rem/1 var(--serif);color:var(--gold);margin-bottom:.5rem}
.steps{padding:0;margin:0}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.blocks{display:flex;flex-wrap:wrap;gap:8px;margin:1rem 0 0;padding:0;list-style:none}
.blocks li{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:.3rem .8rem;font-size:.92rem}

/* ---------- pricing ---------- */
.toggle{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:4px;gap:4px;margin:0 0 1.8rem}
.toggle button{border:0;background:transparent;border-radius:999px;padding:.55rem 1.1rem;font:600 .95rem var(--sans);color:var(--ink);cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--charcoal);color:#fff}
.toggle .save{font-weight:600;font-size:.75rem;color:var(--gold-dark);background:var(--tint);border-radius:999px;padding:.1rem .5rem;margin-left:.35rem}
.toggle button[aria-pressed="true"] .save{background:var(--gold-light);color:var(--charcoal)}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
@media (max-width:960px){.plans{grid-template-columns:1fr;max-width:520px}}
.plan{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:26px 24px;display:flex;flex-direction:column}
.plan.hl{border:2px solid var(--gold);box-shadow:0 18px 40px rgba(154,123,63,.14);position:relative}
.plan .badge{position:absolute;top:-13px;left:24px;background:var(--gold-text);color:#fff;font:600 .72rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:.45rem .7rem;border-radius:999px}
.plan h3{font-size:1.5rem;margin:0 0 .2rem}
.plan .who{color:var(--muted);font-size:.96rem;min-height:3em}
.price{display:flex;align-items:baseline;gap:6px;margin:.6rem 0 .1rem}
.price b{font:400 2.6rem/1 var(--serif);color:var(--charcoal)}
.price span{color:var(--muted)}
.bill{font-size:.9rem;color:var(--muted);min-height:2.8em}
.plan .btn{margin:1rem 0 .5rem;width:100%}
.plan .alt{font-size:.92rem;text-align:center;min-height:1.5em}
.plan ul{list-style:none;padding:1rem 0 0;margin:1rem 0 0;border-top:1px solid var(--line);display:grid;gap:.5rem}
.plan li{padding-left:1.6rem;position:relative;font-size:.97rem}
.plan li::before{content:"";position:absolute;left:0;top:.42em;width:.95rem;height:.55rem;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.plan li.no{color:#6e675a}
.plan li.no::before{border:0;width:.8rem;height:2px;background:#c9c0b0;transform:none;top:.75em}
.plan li.strong{font-weight:600}
[data-period="monthly"] .annual-only,[data-period="annual"] .monthly-only{display:none}
.pricing-foot{font-size:.9rem;color:var(--muted);margin-top:1.4rem}

.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);-webkit-overflow-scrolling:touch}
table.cmp{width:100%;border-collapse:collapse;min-width:560px;font-size:.95rem}
.cmp th,.cmp td{padding:.65rem .9rem;border-bottom:1px solid var(--line);text-align:center}
.cmp th:first-child,.cmp td:first-child{text-align:left}
.cmp thead th{font:600 .78rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--gold)}
.cmp tbody th{font-weight:600;background:var(--cream);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark)}
.cmp .y{color:var(--gold-dark);font-weight:600}
.cmp .n{color:#6e675a}

/* ---------- service / audit ---------- */
.service{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:32px;align-items:center}
.service .card{background:var(--charcoal);border-color:var(--charcoal);color:#e9e4da}
.service .card b{font:400 2.4rem/1.1 var(--serif);color:var(--gold-light);display:block;margin:.3rem 0 .6rem}
@media (max-width:860px){.service{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:52rem}
.faq details{border-bottom:1px solid var(--line);padding:1rem 0}
.faq summary{cursor:pointer;font-weight:600;font-size:1.06rem;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 1.4rem/1 var(--serif);color:var(--gold)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:.7rem 0 0;color:var(--muted)}

/* ---------- legal pages ---------- */
.legal{max-width:48rem;padding-top:clamp(40px,6vw,72px)}
.legal h1{font-size:clamp(2rem,4.5vw,2.8rem)}
.legal h2{font-size:1.45rem;margin-top:2.2rem}
.legal h3{font-size:1.1rem;font-family:var(--sans);font-weight:600;margin-top:1.4rem}
.legal li{margin-bottom:.4rem}
.legal table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1rem 0}
.legal td,.legal th{border:1px solid var(--line);padding:.5rem .7rem;text-align:left;vertical-align:top}
.legal th{background:var(--paper)}
.legal .table-wrap{margin:1rem 0}
.legal .table-wrap table{margin:0;min-width:520px}
.draft{background:#fff4d6;border:1px solid #e3c46b;border-left:6px solid #c99a1d;border-radius:10px;padding:.9rem 1.1rem;margin:0 0 2rem;font-size:.97rem}
.meta{color:var(--muted);font-size:.95rem}

/* ---------- footer ---------- */
.site-footer{background:var(--charcoal);color:#cfc8ba;padding:56px 0 32px;font-size:.96rem}
.site-footer a{color:#e9e4da;text-decoration:none}
.site-footer a:hover{color:var(--gold-light);text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:28px}
.foot-grid h2{font:600 .78rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);margin:0 0 .8rem}
.foot-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot-brand{display:flex;gap:10px;align-items:center;margin-bottom:.8rem}
.foot-brand img{width:34px;height:34px}
.foot-brand b{font:400 1.2rem var(--serif);color:#fff}
.foot-bottom{border-top:1px solid #3a362f;margin-top:36px;padding-top:20px;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;font-size:.88rem}
@media (max-width:860px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.foot-grid{grid-template-columns:1fr}}
.service .card .kicker{color:var(--gold-light)}

/* W-1 additions: proof strip, testimonial, app screenshots, header demo link */
.proof{padding:0 0 clamp(40px,6vw,64px)}
.proof-list{list-style:none;margin:0;padding:22px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.proof-list b{display:block;font:400 1.35rem/1.2 var(--serif);color:var(--charcoal);margin-bottom:.25rem}
.proof-list span{color:var(--muted);font-size:.97rem}
.proof-note{font-size:.88rem;color:var(--muted);margin:1.2rem 0 0}
@media (max-width:760px){.proof-list{grid-template-columns:1fr}}
.quote{margin:0;max-width:46rem}
.quote blockquote{margin:0;font:400 clamp(1.3rem,2.6vw,1.75rem)/1.4 var(--serif);color:var(--charcoal)}
.quote figcaption{margin-top:1rem;font-weight:600;color:var(--gold-text)}
.shots{display:grid;gap:28px}
.shot{margin:0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:center}
.shot:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.shot:nth-child(even) img{order:2}
.shot img{border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(30,28,24,.10);background:#fff}
.shot figcaption h3{margin-bottom:.3rem}
.shot figcaption p{color:var(--muted);margin:0}
.shot small{display:block;margin-top:.5rem;color:var(--muted);font-size:.85rem}
@media (max-width:860px){.shot,.shot:nth-child(even){grid-template-columns:1fr}.shot:nth-child(even) img{order:0}}
.nav .demo-link{font-weight:600}

/* ---------- W-1 homepage ---------- */
.home-hero h1{max-width:20ch}
.home-hero h1 .soft{color:var(--gold-text);font-style:italic}
.home-proof{margin-top:2.4rem;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.home-proof{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.home-proof{grid-template-columns:1fr}}
.stat-card{background:var(--charcoal);border-color:var(--charcoal);color:#e9e4da;align-self:center}
.stat-card b{display:block;font:400 3rem/1 var(--serif);color:var(--gold-light);margin-bottom:.6rem}
.stat-card p{color:#cfc8ba}
.home-sub{margin:2.6rem 0 1rem}
.pains{counter-reset:p;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pains li{counter-increment:p;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;color:var(--ink)}
.pains li::before{content:counter(p,decimal-leading-zero);display:block;font:400 1.4rem/1 var(--serif);color:var(--gold);margin-bottom:.5rem}
@media (max-width:900px){.pains{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.pains{grid-template-columns:1fr}}
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:48px;align-items:start}
.about-photo{margin:0}
.about-photo img{border-radius:14px;width:100%;max-width:360px}
.about-photo figcaption{margin-top:.8rem;color:var(--muted);font-size:.95rem}
.about-photo figcaption b{display:block;color:var(--charcoal);font:400 1.2rem var(--serif)}
@media (max-width:820px){.about{grid-template-columns:1fr;gap:24px}.about-photo img{max-width:240px}}
.timeline{list-style:none;padding:0;margin:1.4rem 0;display:grid;gap:.7rem;border-left:2px solid var(--gold);padding-left:1rem}
.timeline b{display:block;color:var(--charcoal)}
.timeline span{color:var(--muted);font-size:.95rem}
.insight b{display:block;font:400 2.4rem/1.1 var(--serif);color:var(--gold-light);margin-bottom:.4rem;overflow-wrap:anywhere}
.insight p{color:#cfc8ba}
.services{align-items:stretch}
.svc{display:flex;flex-direction:column}
.svc h3{font-size:1.7rem;margin-bottom:.4rem}
.svc h4{font:600 .78rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin:1.2rem 0 .6rem}
.svc-hl{border:2px solid var(--gold)}
.svc .btn{align-self:flex-start}
.svc-price{margin:1.2rem 0;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline}
.svc-price b{font:400 2rem/1 var(--serif);color:var(--charcoal)}
.svc-price span{color:var(--muted);font-size:.9rem}
.ticks{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.45rem}
.ticks li{padding-left:1.6rem;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:.95rem;height:.55rem;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.mini-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:1rem 0 .2rem}
.mini-plans div{background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:.7rem .75rem}
.mini-plans b{display:block;font-size:.95rem}
.mini-plans span{display:block;font:400 1.5rem/1.2 var(--serif);color:var(--charcoal)}
.mini-plans span small{font:400 .85rem var(--sans);color:var(--muted)}
.mini-plans div > small{display:block;font-size:.8rem;color:var(--muted);line-height:1.35}
@media (max-width:480px){.mini-plans{grid-template-columns:1fr}}
.svc-foot{font-size:.9rem;color:var(--muted);margin-top:1.6rem}
.shot-img{border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px rgba(30,28,24,.10);background:#fff}
.art-card{text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:border-color .15s}
.art-card:hover{border-color:var(--gold)}
.art-card h3{font-size:1.2rem;margin:.4rem 0}
.art-card .more{margin-top:auto;padding-top:.8rem;color:var(--gold-text);font-weight:600}
.art-tag{font:600 .72rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text)}
.webinar{align-items:start}
.notify form{display:grid;gap:.35rem;margin-top:.6rem}
.notify label{font-weight:600;font-size:.92rem;margin-top:.4rem}
.notify input{font:inherit;padding:.7rem .8rem;border:1px solid #cbbf9f;border-radius:8px;background:#fff;color:var(--ink);width:100%}
.notify .btn{margin-top:.9rem;width:100%}
.steps-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.steps-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps-4{grid-template-columns:1fr}}

/* ---------- W-1 articles ---------- */
.art-wrap{max-width:46rem;margin:0 auto;padding:0 20px}
.art-head{padding:clamp(40px,6vw,72px) 0 28px;border-bottom:1px solid var(--line)}
.art-head h1{font-size:clamp(1.9rem,4.4vw,2.8rem)}
.art-meta{font-size:.9rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.byline{display:flex;gap:12px;align-items:center;margin-top:1.4rem}
.byline img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.byline b{display:block;color:var(--charcoal)}
.byline span{font-size:.9rem;color:var(--muted)}
.art-body{padding-top:32px;padding-bottom:24px;font-size:1.08rem}
.art-body h2{font-size:1.6rem;margin-top:2.2rem}
.art-body h3{font-size:1.25rem;margin-top:1.6rem}
.art-body ul,.art-body ol{padding-left:1.3rem}
.art-body li{margin-bottom:.5rem}
.pull-quote{border-left:4px solid var(--gold);margin:2rem 0;padding:.2rem 0 .2rem 1.2rem}
.pull-quote p{font:400 1.35rem/1.45 var(--serif);color:var(--charcoal);margin:0}
.data-callout{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:18px;align-items:center;background:var(--charcoal);color:#e9e4da;border-radius:12px;padding:20px 22px;margin:1.8rem 0}
.data-callout__num{font:400 1.7rem/1.1 var(--serif);color:var(--gold-light)}
.data-callout__label strong{color:#fff}
@media (max-width:560px){.data-callout{grid-template-columns:1fr;gap:8px}}
.article-list{padding-left:1.3rem}
.article-list--labeled li .li-content strong{color:var(--charcoal)}
.compare-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:560px}
.compare-table th,.compare-table td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.compare-table thead th{font:600 .78rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--gold)}
.compare-table .td-highlight{font-weight:600;color:var(--charcoal)}
.art-body .table-wrap{margin:1.4rem 0}
.article-cta{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:12px;padding:24px;margin:2.4rem 0 1rem}
.article-cta h2{font-size:1.6rem;margin:0 0 .5rem}
.article-cta .btn-row{margin-top:1rem}
.related{padding:32px 0 64px}
.related-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.related-card{display:block;text-decoration:none;color:inherit;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.related-card:hover{border-color:var(--gold)}
.related-card__tag{font:600 .72rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text);margin-bottom:.3rem}
.related-card__title{font:400 1.15rem/1.3 var(--serif);color:var(--charcoal)}
@media (max-width:560px){.related-grid{grid-template-columns:1fr}}
.art-list{list-style:none;padding:0;margin:0 0 2rem;border-top:1px solid var(--line)}
.art-row{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;gap:16px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.art-row:hover .art-title{color:var(--gold-text)}
.art-num{font:400 1.5rem/1 var(--serif);color:var(--gold)}
.art-title{display:block;font:400 1.35rem/1.3 var(--serif);color:var(--charcoal);margin:.3rem 0}
.art-excerpt{display:block;color:var(--muted)}
.art-read{font-size:.88rem;color:var(--muted);white-space:nowrap}
@media (max-width:640px){.art-row{grid-template-columns:2.2rem minmax(0,1fr)}.art-read{grid-column:2}}
.served{padding:0 0 clamp(40px,6vw,64px)}
.served p{max-width:52rem;color:var(--muted);margin:0}
.service .card .btn{margin-top:1rem}

/* W-1 final: how the should-cost is built, worked example */
.built td:first-child{font-weight:600;color:var(--charcoal);white-space:nowrap}
.built td{text-align:left;vertical-align:top}
.cmp.built{min-width:520px}
.steps-3x{grid-template-columns:repeat(3,minmax(0,1fr))}
.steps-3x .table-wrap{margin-top:.6rem}
.cmp.ex{min-width:0;font-size:.9rem}
.cmp.ex td,.cmp.ex th{padding:.45rem .55rem}
.cmp.ex tr.hot td{background:#fbeee9;color:#8a2f1d;font-weight:600}
@media (max-width:960px){.steps-3x{grid-template-columns:1fr}}
.insight h3 small{font:400 .8rem var(--sans);color:#cfc8ba;letter-spacing:.04em}
/* W-2 castcalc.eu: merged homepage */
.proof-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:960px){.proof-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.proof-4{grid-template-columns:1fr}}
.insight-light{margin-top:2.4rem}
.insight-light > div{background:var(--charcoal);color:#e9e3d6;border-radius:var(--radius);padding:22px}
.insight-light h3{color:#fff}
.value{align-items:stretch}
.value-card{display:flex;flex-direction:column;gap:.5rem}
.value-card .kicker{margin-bottom:.3rem}
.value-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--line);padding:.35rem 0}
.value-row span{color:var(--muted)}
.value-row b{font:400 1.5rem/1.1 var(--serif);color:var(--charcoal);white-space:nowrap}
.value-row b small{font:400 .85rem var(--sans);color:var(--muted)}
.value-row.big{border-bottom:0;border-top:2px solid var(--gold);margin-top:.4rem;padding-top:.7rem}
.value-row.big span{color:var(--charcoal);font-weight:600}
.value-row.big b{font-size:clamp(1.7rem,4vw,2.3rem);color:var(--gold-dark)}
details.method{margin:2.2rem 0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:4px 22px}
details.method[open]{padding-bottom:22px}
details.method summary{cursor:pointer;list-style:none;padding:18px 32px 18px 0;position:relative;display:flex;flex-direction:column;gap:.2rem}
details.method summary::-webkit-details-marker{display:none}
details.method summary .kicker{margin:0}
details.method summary b{font:400 1.35rem/1.25 var(--serif);color:var(--charcoal)}
details.method summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font:400 1.8rem/1 var(--serif);color:var(--gold-dark)}
details.method[open] summary::after{content:"−"}
.method-hint{color:var(--muted);font-size:.95rem}
section .quote{margin-top:2.4rem}
.features{margin-top:.4rem}
.features .card h3{font-size:1.15rem}
#screens .served{padding:0;margin-top:1.8rem}
#webinar{margin-top:clamp(36px,5vw,56px);padding-top:clamp(28px,4vw,40px);border-top:1px solid var(--line)}
.webinar-h{font-size:clamp(1.4rem,2.6vw,1.8rem)}
.foot-formerly{color:#a39b8b;font-size:.85rem;margin-top:.6rem}
/* W-3: free-account homepage */
section{padding:clamp(44px,6vw,72px) 0}
.hero-free{padding:clamp(36px,6vw,64px) 0 clamp(32px,5vw,48px)}
.hero-free .hero-grid{align-items:start}
.hero-free .lead{margin-bottom:1rem}
.offer{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.8rem}
.offer li{border-left:3px solid var(--gold);background:var(--paper);border-radius:0 10px 10px 0;padding:.7rem .9rem}
.offer b{display:block;font:400 1.15rem/1.3 var(--serif);color:var(--charcoal)}
.offer span{color:var(--muted);font-size:.98rem}
.previews{display:grid;gap:14px}
.preview{padding:16px 18px;margin:0}
.preview figcaption{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.3rem}
.preview .kicker{margin:0 0 .2rem;font-size:.7rem}
.preview figcaption b{font:400 1.1rem var(--serif);color:var(--charcoal)}
.mi-legend{list-style:none;margin:.2rem 0 .3rem;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.85rem;color:var(--muted)}
.mi-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.mi-chart{display:block;width:100%;height:auto}
.mi-chart .g{stroke:#ece6da;stroke-width:1}
.mi-chart .base{stroke:#cbbf9f;stroke-width:1}
.mi-chart .ax{fill:#6b6455;font:400 11px var(--sans)}
.mi-chart .lab{fill:var(--ink);font:600 11px var(--sans)}
.mi-chart .pt{stroke:var(--paper);stroke-width:2}
.mi-note{font-size:.8rem;color:var(--muted);margin:.3rem 0 0}
.fd-count{margin:0;color:var(--muted)}
.fd-count b{font:400 1.6rem var(--serif);color:var(--charcoal)}
.fd-count span{margin:0 .3rem}
.fd-text{margin:.3rem 0 0;font-size:.9rem;color:var(--muted)}
.fd-list{list-style:none;margin:.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;font-size:.92rem}
.fd-list li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding:.2rem 0}
.fd-list small{color:var(--muted)}
@media (max-width:480px){.fd-list{grid-template-columns:1fr}}
.quote-strip{padding:clamp(28px,4vw,44px) 0;border-top:1px solid var(--line)}
.quote-strip .quote{max-width:54rem;margin:0 auto;text-align:center}
.quote-strip blockquote{font-size:clamp(1.15rem,2.2vw,1.5rem)}
.problem{align-items:center}
.problem h2{margin-bottom:.6rem}
.pains-short{margin:.8rem 0}
.typical{font-size:.95rem;color:var(--muted);margin:0}
.value-card p:last-child{color:var(--muted);font-size:.95rem;margin:.3rem 0 0}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin-top:1.4rem}
.cta-row span{color:var(--muted)}
@media (max-width:480px){.cta-row .btn{flex:1 1 100%}}
.section-head{margin-bottom:1.6rem}
.steps-3x .table-wrap{margin-top:.4rem}
.method-data{color:var(--muted);font-size:.95rem;margin:1rem 0 0}
.shots3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.shots3 figure{margin:0}
.shots3 a.zoom{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;cursor:zoom-in;aspect-ratio:4/3}
.shots3 img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .2s}
.shots3 a.zoom:hover img{transform:scale(1.02)}
.shots3 figcaption{font-size:.92rem;color:var(--muted);margin-top:.6rem}
.shots3 figcaption b{color:var(--charcoal)}
@media (max-width:760px){.shots3{grid-template-columns:1fr}}
.lightbox{border:0;padding:0;background:transparent;max-width:min(96vw,1200px);max-height:94vh}
.lightbox::backdrop{background:rgba(30,28,24,.82)}
.lightbox img{display:block;max-width:100%;max-height:90vh;border-radius:10px;background:#fff}
.lightbox form{position:absolute;top:6px;right:6px;margin:0}
.lb-close{width:40px;height:40px;border-radius:50%;border:0;background:var(--charcoal);color:#fff;font:400 1.5rem/1 var(--sans);cursor:pointer}
.plan.hl .badge{background:var(--gold-text)}
.audit-line{margin:1rem 0 0;padding:.9rem 1.1rem;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.about-short{grid-template-columns:200px minmax(0,1fr);align-items:center;gap:36px}
.about-short img{width:200px;height:auto;border-radius:14px}
@media (max-width:640px){.about-short{grid-template-columns:1fr}.about-short img{width:160px}}
.page-head{padding-top:clamp(40px,6vw,72px)}
.page-head + section{padding-top:clamp(20px,3vw,32px)}
.faq details[open] summary{color:var(--charcoal)}
section{padding:clamp(40px,5vw,60px) 0}
.section-head{margin-bottom:1.3rem}
.shots3 a.zoom{aspect-ratio:16/10}
.steps{gap:24px}
/* W-4: freemium homepage + subpages */
.hero-w4{padding:clamp(36px,6vw,72px) 0 clamp(32px,5vw,56px)}
.hero-w4 .hero-grid{align-items:center}
.hero-w4 h1{font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.12}
.hero-w4 h1 .soft{display:block;color:var(--gold-text)}
.hero-w4 .lead{margin:1rem 0 1.4rem}
.hero-cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.btn-lg{font-size:1.1rem;padding:1rem 1.7rem}
.text-link{font-weight:600;color:var(--gold-dark)}
.reassure{margin:.9rem 0 0;font-size:.95rem;color:var(--muted)}
@media (max-width:480px){.hero-cta .btn{flex:1 1 100%}}
.proof-w4{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.proof-grid{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 32px}
.proof-w4 .quote{max-width:40rem}
.proof-w4 blockquote{font-size:clamp(1.05rem,1.8vw,1.3rem)}
.proof-w4 figcaption{margin-top:.3rem;font-size:.9rem}
.facts{margin:0;font-weight:600;color:var(--charcoal)}
.facts span{color:var(--gold);margin:0 .3rem}
section h2{margin-bottom:1.2rem}
.get .card h3{font-size:1.25rem;margin:.6rem 0 .4rem}
.tag{display:inline-block;font:600 .72rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);
     background:var(--tint);border-radius:999px;padding:.4rem .65rem}
.tag-free{background:var(--charcoal);color:#fff}
.value-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:28px 32px}
.value-box > div{flex:1 1 30rem}
.value-box h2{margin-bottom:.6rem}
.value-box p{margin:.3rem 0}
.plans-short{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.plan-s{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:.4rem;position:relative}
.plan-s.hl{border:2px solid var(--gold)}
.plan-s .badge{position:absolute;top:-12px;left:20px;background:var(--gold-text);color:#fff;font:600 .7rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:.4rem .65rem;border-radius:999px}
.plan-s h3{margin:0}
.plan-s > b{font:400 2rem/1.1 var(--serif);color:var(--charcoal)}
.plan-s > b small{font:400 .85rem var(--sans);color:var(--muted);margin-left:.3rem}
.plan-s p{color:var(--muted);margin:0 0 .6rem;flex:1}
.plan-s .btn{align-self:stretch}
@media (max-width:860px){.plans-short{grid-template-columns:1fr;max-width:520px}}
.more-link{margin:1.2rem 0 0;font-weight:600}
.final-cta{text-align:center}
.final-cta h2 span{display:block;color:var(--gold-light)}
.final-cta .reassure{color:#cfc8ba}
.page-top{padding-top:clamp(40px,6vw,72px)}
.page-top h1{margin-bottom:1rem}
.compare-h{margin-top:2.6rem}
.md{align-items:start;gap:40px}
.nav .login-link{font-weight:600}
.hero-w4 ~ section{padding:clamp(48px,7vw,84px) 0}
.hero-w4 ~ section.proof-w4{padding:24px 0}
.plan-s .mini{list-style:none;margin:.2rem 0 .8rem;padding:0;display:grid;gap:.35rem;color:var(--muted);font-size:.95rem;flex:1}
.plan-s .mini li::before{content:"✓";color:var(--gold);font-weight:700;margin-right:.45rem}
.plans-note{margin:1rem 0 0;font-size:.9rem;color:var(--muted)}
.hero-w4 ~ section .steps h3{font-size:1.3rem}
.hero-w4{padding:clamp(48px,8vw,112px) 0 clamp(44px,7vw,96px)}
.hero-w4 ~ section{padding:clamp(56px,8vw,104px) 0}
.hero-w4 ~ section.proof-w4{padding:clamp(28px,4vw,40px) 0}
.proof-w4 blockquote{font-size:clamp(1.15rem,2vw,1.45rem)}
.get .card{padding:26px}
.about-short{grid-template-columns:240px minmax(0,1fr)}
.about-short img{width:240px}
@media (max-width:640px){.about-short{grid-template-columns:1fr}.about-short img{width:160px}}
/* W-4 fix: chart text sized in viewBox units per variant (>= 12 px rendered at 1440 and at 360) */
.mi-chart .ax{font-size:var(--fs)}
.mi-chart .lab{font-size:var(--fs)}
.mi-chart.mi-m{display:none}
@media (max-width:480px){.mi-chart.mi-d{display:none}.mi-chart.mi-m{display:block}}
.mi-legend{font-size:.85rem}
.mi-legend svg.est{vertical-align:middle;margin-right:6px}
.preview{max-width:560px}
/* W-4 fix: the portrait is framed on purpose (rounded corners, soft shadow), so its light background reads as a card */
.about-short img{border-radius:18px;border:1px solid var(--line);box-shadow:0 14px 34px rgba(30,28,24,.14),0 2px 6px rgba(30,28,24,.06);background:var(--paper)}
/* W-5: product hero (real app screenshot in a browser frame + floating cards) */
.hero-w4 .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:56px}
.hero-shot{position:relative;margin:0;padding:22px 0 26px}
.browser{background:#fff;border:1px solid #e2d9c6;border-radius:14px;overflow:hidden;
  box-shadow:0 30px 60px -18px rgba(30,28,24,.32),0 12px 24px -12px rgba(30,28,24,.18)}
.browser-bar{display:flex;align-items:center;gap:14px;height:30px;padding:0 12px;background:#efe9dd;border-bottom:1px solid #e2d9c6}
.browser-bar .dots{display:flex;gap:6px}
.browser-bar .dots i{width:9px;height:9px;border-radius:50%;background:#cfc5b2}
.browser-bar .url{flex:1;max-width:260px;margin:0 auto;text-align:center;font:500 .72rem/1 var(--sans);color:#6b6455;
  background:#fbf8f2;border-radius:6px;padding:.32rem .6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.browser img{display:block;width:100%;height:auto}
.float{position:absolute;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 16px;
  box-shadow:0 18px 36px -12px rgba(30,28,24,.28);display:flex;flex-direction:column;gap:2px;min-width:200px}
.float .kicker{margin:0;font-size:.68rem}
.float b{font:400 1.25rem/1.2 var(--serif);color:var(--charcoal)}
.float small{font-size:.82rem;color:var(--muted)}
.float small strong{color:var(--charcoal)}
.float .up{color:#a4301f;font-weight:600}
.f-quote{left:-36px;bottom:0;border-left:4px solid var(--gold)}
.f-market{right:-24px;top:0}
.shot-note{margin:.5rem 0 0;font-size:.8rem;color:var(--muted);text-align:right}
@media (max-width:1180px){.f-quote{left:-12px}.f-market{right:-8px}}
@media (max-width:900px){
  .hero-w4 .hero-grid{grid-template-columns:1fr;gap:28px}
  .hero-shot{padding:0;max-width:640px}
  .floats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
  .float{position:static;min-width:0}
  .shot-note{text-align:left}
}
@media (max-width:480px){.floats{grid-template-columns:1fr}}
@media (max-width:900px){.md{grid-template-columns:1fr}}
