/* Cashbook Finance — premium refinement layer v2.3.0
   Loaded after the existing styles. Focuses on hierarchy, depth, motion and clarity
   without changing the site's content or behaviour. */

:root{
  --premium-blue:#0b84d8;
  --premium-sky:#67bdf3;
  --premium-ink:#061b30;
  --premium-border:rgba(164,190,213,.56);
  --premium-glow:0 24px 65px -44px rgba(2,48,86,.52);
  --premium-card:linear-gradient(155deg,rgba(255,255,255,.99),rgba(248,252,255,.98));
}

::selection{background:rgba(31,149,226,.22);color:#061a2e}
html{scroll-behavior:smooth}
body{overflow-x:hidden}

/* ------------------------- Global composition ------------------------- */
main{position:relative}
.section{position:relative}
.section:not(.ink-bg):not(.deep):not(.tint){background:rgba(255,255,255,.34)}
.section>.wrap{position:relative;z-index:2}
.section+.section:not(.ink-bg):not(.deep)::before{
  content:"";position:absolute;left:50%;top:0;width:min(1180px,calc(100% - 40px));height:1px;
  transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(155,183,208,.5),transparent)
}
.h2{max-width:18ch}
.center .h2,.subhero.center h1{margin-inline:auto}
.lead{max-width:68ch}
.sky,.sky2{position:relative}
.sky2::after{
  content:"";position:absolute;left:0;right:0;bottom:-.08em;height:.12em;border-radius:999px;
  background:linear-gradient(90deg,rgba(11,132,216,.28),rgba(103,189,243,.08));transform:scaleX(.92);transform-origin:left
}

/* ------------------------------ Header ------------------------------- */
header.nav .nav-in{transition:background .28s,border-color .28s,box-shadow .28s,transform .28s}
header.nav nav.links a{position:relative;isolation:isolate}
header.nav nav.links a::before{
  content:"";position:absolute;inset:5px 1px;border-radius:9px;z-index:-1;
  background:linear-gradient(135deg,rgba(74,168,236,.13),rgba(74,168,236,.035));opacity:0;transform:scale(.92);
  transition:opacity .2s,transform .2s
}
header.nav nav.links a:hover::before,header.nav nav.links a.active::before{opacity:1;transform:scale(1)}
header.nav .portal-nav-link,header.nav .nav-apply,header.nav .nav-phone{box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
header.nav .nav-apply{position:relative;overflow:hidden}
header.nav .nav-apply::after{
  content:"";position:absolute;inset:-60% auto -60% -45%;width:36%;transform:skewX(-18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .55s ease
}
header.nav .nav-apply:hover::after{left:125%}

/* ------------------------------ Buttons ------------------------------ */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn .arr{display:inline-block;transition:transform .22s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn:not(.nav-apply)::after{
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:0;
  background:radial-gradient(120px 70px at 50% 0,rgba(255,255,255,.2),transparent 70%);transition:opacity .25s
}
.btn:not(.nav-apply):hover::after{opacity:1}

/* ------------------------------- Hero -------------------------------- */
.hero,.subhero{overflow:hidden}
.hero::after,.subhero::after{
  content:"";position:absolute;pointer-events:none;right:-7%;top:7%;width:clamp(260px,34vw,620px);aspect-ratio:1;
  border-radius:50%;border:1px solid rgba(129,201,249,.09);box-shadow:0 0 0 52px rgba(129,201,249,.025),0 0 0 112px rgba(129,201,249,.018)
}
.hero .eyebrow,.subhero .eyebrow{color:#a9d9fb}
.hero h1,.subhero h1{filter:drop-shadow(0 16px 28px rgba(0,0,0,.16))}
.hero-cta .btn,.subhero .btn{min-width:150px}
.pill{transition:background .2s,border-color .2s,transform .2s}
.pill:hover{background:rgba(255,255,255,.115);border-color:rgba(142,207,250,.34);transform:translateY(-2px)}
.subhero{padding-block:clamp(148px,12vw,188px) clamp(74px,7vw,104px)}
.subhero .wrap{position:relative}
.subhero .lead{font-size:clamp(16.5px,1.35vw,19px)}

/* ------------------------- Premium card system ----------------------- */
.icard,.panel-card,.zrow,.fitbox,.sector,.tcard,.bcard,.qa,.gterm,.form-card,.apply-card,.spec,.profile-card,.worked,.define,.analogy{
  position:relative;overflow:hidden
}
.icard::after,.panel-card::after,.zrow::after,.fitbox::after,.sector::after,.tcard::after,.bcard::after,.gterm::after,.form-card::after,.profile-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.72),transparent 38%,rgba(84,171,232,.07));opacity:.45
}
.icard:hover,.panel-card:hover,.zrow:hover,.fitbox:hover,.sector:hover,.tcard:hover,.bcard:hover,.gterm:hover{
  transform:translateY(-5px);border-color:rgba(105,172,221,.55);box-shadow:0 30px 68px -44px rgba(7,40,69,.55)
}
.icard h3,.panel-card h3,.sector b,.bcard h3,.tcard h3{letter-spacing:-.025em}
.ic,.si{transition:transform .25s var(--ease),box-shadow .25s,background .25s}
.icard:hover .ic,.sector:hover .si{transform:translateY(-2px) scale(1.04);box-shadow:0 15px 30px -20px rgba(11,132,216,.55)}

/* confidence band */
body[data-page="home"] .ticker{background:rgba(192,211,228,.75);backdrop-filter:blur(18px)}
body[data-page="home"] .ticker .ti{position:relative;overflow:hidden}
body[data-page="home"] .ticker .ti::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--premium-blue),rgba(103,189,243,.18))
}
body[data-page="home"] .ticker .ti b{letter-spacing:-.035em}

/* -------------------------- Home sector area ------------------------- */
body[data-page="home"] .sectors{gap:20px}
body[data-page="home"] .sector{min-height:226px;padding:30px;border-radius:26px}
body[data-page="home"] .sector::after{background:linear-gradient(145deg,rgba(255,255,255,.76),transparent 45%,rgba(11,132,216,.065))}
body[data-page="home"] .sector-note{font-size:14.25px;line-height:1.58}
body[data-page="home"] .constr{border-radius:24px;box-shadow:var(--premium-glow)}
body[data-page="home"] .constr .ccta{min-width:154px}

/* ------------------------ Quote / contact panel ---------------------- */
.quote-layout{align-items:stretch;gap:clamp(42px,5.5vw,76px)}
.quote-copy-column{display:flex;flex-direction:column;justify-content:center;padding-block:12px}
.quote-form-column{display:flex}
.quote-form-card{
  width:100%;align-self:stretch;padding:clamp(28px,3vw,38px)!important;border:1px solid rgba(169,208,236,.68)!important;
  background:linear-gradient(160deg,#fff 0%,#f8fcff 100%)!important;box-shadow:0 36px 80px -42px rgba(0,0,0,.7)!important
}
.quote-form-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,#0a7fd1,#49acf0,#8dd4ff)
}
.quote-form-card h3{font-size:clamp(23px,2vw,28px);letter-spacing:-.035em}
.quote-assurance{display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:100%;padding:7px 10px;border-radius:999px;background:#eef7fd;color:#326482!important;border:1px solid #d4e8f5;margin-top:8px}
.quote-assurance::before{content:"✓";display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#dff2e9;color:#178154;font-size:11px;font-weight:900}
.quote-form-card .fld{margin-bottom:15px}
.quote-form-card .fld-2{gap:13px}
.quote-form-card textarea{min-height:92px}
.quote-form-card .seg{padding:4px;border-radius:14px;background:#edf3f8}
.quote-form-card .seg .opt{border:0;background:transparent}
.quote-form-card .seg input:checked+.opt{background:#fff;box-shadow:0 8px 22px -16px rgba(7,40,69,.5);color:var(--blue)}
.quote-form-card .btn{margin-top:4px;min-height:54px}
.nsteps{position:relative}
.nsteps::before{content:"";position:absolute;left:18px;top:22px;bottom:22px;width:1px;background:linear-gradient(180deg,rgba(121,199,249,.7),rgba(121,199,249,.08))}
.nstep{position:relative}
.nstep .nn{z-index:1;box-shadow:0 10px 24px -14px rgba(49,165,235,.75);border:1px solid rgba(147,210,249,.3)}
.contact-lines{display:flex;flex-wrap:wrap;gap:7px}
.contact-lines a{margin:0!important;border:1px solid rgba(150,205,242,.15);background:rgba(255,255,255,.035)}

/* -------------------------- FAQ / tabs / specs ----------------------- */
.qa{background:linear-gradient(160deg,#fff,#fbfdff)}
.qa>button{font-weight:760;letter-spacing:-.015em}
.qa .plus{box-shadow:inset 0 0 0 1px rgba(105,171,219,.25)}
.qa[aria-expanded="true"]{background:#fff}
.tabs{border:1px solid rgba(184,204,222,.78);box-shadow:inset 0 1px 2px rgba(7,40,69,.045)}
.tab{font-weight:720}
.spec{box-shadow:var(--shadow-xs)}
.spec .row:nth-child(even){background:#f8fbfd}
.oneliner span,.profile-tags span,.chip{box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}

/* --------------------------- Blog / article -------------------------- */
.bcard .bcover{overflow:hidden}
.bcard .bcover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,23,40,.28));pointer-events:none}
.bcard .bcover-art{transition:transform .5s var(--ease),opacity .5s}
.bcard:hover .bcover-art{transform:scale(1.035);opacity:.96}
.bcard .more{font-weight:760}
.article{max-width:800px}
.article-head{max-width:790px}
.article h1{font-size:clamp(34px,4.6vw,54px);line-height:1.035;letter-spacing:-.048em;text-wrap:balance}
.article-cover{border-radius:26px;box-shadow:0 38px 90px -48px rgba(5,32,58,.62)}
.prose{font-size:17px}
.prose>p:first-of-type{font-size:20px;line-height:1.7;color:#263e57}
.prose h2{font-size:clamp(25px,3vw,31px);margin-top:46px;letter-spacing:-.035em}
.prose h2::before{content:"";display:block;width:40px;height:3px;margin-bottom:15px;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--blue-light))}
.prose p,.prose li{line-height:1.82}
.prose blockquote{margin:30px 0;padding:24px 26px;border-left:4px solid var(--blue);border-radius:0 16px 16px 0;background:#eef6fc;color:#29465f}
.prose-cta{border:1px solid rgba(126,197,244,.18);box-shadow:0 34px 70px -46px rgba(0,0,0,.72)}
.article-progress{position:fixed;left:0;top:0;height:3px;width:0;z-index:10000;background:linear-gradient(90deg,#087fd0,#73c7f8);box-shadow:0 1px 8px rgba(8,127,208,.45);transition:width .08s linear}

/* --------------------------- Portal polish --------------------------- */
body[data-page="portal"]{background:linear-gradient(180deg,#eef4fa 0%,#f6f9fc 36%,#eef4f9 100%)}
body[data-page="portal"] .portal-shell{padding-block:clamp(56px,6vw,88px)}
body[data-page="portal"] .portal-intro{align-items:stretch}
body[data-page="portal"] .portal-alert{border-radius:18px;border-left:0;padding:24px;box-shadow:var(--premium-glow);position:relative;overflow:hidden}
body[data-page="portal"] .portal-alert::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#0b84d8,#7cc9f7)}
body[data-page="portal"] .portal-steps{position:sticky;top:92px;z-index:8;padding:10px;border-radius:18px;background:rgba(238,244,250,.88);border:1px solid rgba(190,207,223,.78);backdrop-filter:blur(16px);box-shadow:0 18px 44px -38px rgba(6,31,55,.5)}
body[data-page="portal"] .portal-step{border-radius:13px;transition:transform .2s,border-color .2s,box-shadow .2s,color .2s}
body[data-page="portal"] .portal-step:hover{transform:translateY(-2px);border-color:#a9cce6;box-shadow:0 12px 24px -20px rgba(6,31,55,.5);color:var(--ink)}
body[data-page="portal"] .portal-card{border-radius:28px;border-color:rgba(177,199,218,.76);box-shadow:0 32px 80px -58px rgba(6,31,55,.62);background:linear-gradient(160deg,#fff,#fbfdff)}
body[data-page="portal"] .portal-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:linear-gradient(90deg,#0a7fd1,#5db8ef,transparent 82%)}
body[data-page="portal"] .portal-card-head{align-items:center}
body[data-page="portal"] .portal-card-head h2{letter-spacing:-.042em}
body[data-page="portal"] .pdf-link{border-radius:12px;box-shadow:0 8px 20px -18px rgba(6,31,55,.45)}
body[data-page="portal"] .portal-field input,body[data-page="portal"] .portal-field select,body[data-page="portal"] .portal-field textarea{min-height:50px;border-radius:13px;background:#f6f9fc;border-color:#cbd9e6}
body[data-page="portal"] .portal-field textarea{min-height:106px}
body[data-page="portal"] .portal-field input:hover,body[data-page="portal"] .portal-field select:hover,body[data-page="portal"] .portal-field textarea:hover{border-color:#9fbdd5;background:#fff}
body[data-page="portal"] .upload-box{border-radius:20px;padding:24px;background:linear-gradient(160deg,#f8fbfd,#f2f7fb)}
body[data-page="portal"] .upload-box::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(220px 120px at 100% 0,rgba(62,166,235,.09),transparent 70%)}
body[data-page="portal"] .upload-box:hover{transform:translateY(-2px);box-shadow:0 18px 38px -30px rgba(6,31,55,.45)}
body[data-page="portal"] .upload-meter{border-radius:14px}
body[data-page="portal"] .send-panel{border-radius:26px;background:radial-gradient(70% 130% at 100% 0,rgba(58,168,238,.22),transparent 68%),linear-gradient(135deg,#061a2e,#0a2c4c);box-shadow:0 34px 75px -48px rgba(1,17,31,.9)}
body[data-page="portal"] .send-panel .btn{min-height:54px}
body[data-page="portal"] .portal-footer{border-top:1px solid rgba(174,196,215,.55)}

/* -------------------------- Apply/contact cards ---------------------- */
.apply-card{border:1px solid rgba(178,203,224,.78);background:linear-gradient(155deg,#fff,#f8fbfe)}
.wprogress{border-bottom:1px solid rgba(190,208,224,.8)}
.wstepdot .num{box-shadow:0 8px 20px -15px rgba(8,127,208,.6)}
.profile-card{background:linear-gradient(155deg,#fff,#f8fbfe);border-color:rgba(178,203,224,.8);box-shadow:var(--premium-glow)}

/* ------------------------------ Footer ------------------------------- */
footer.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(115,199,248,.55),transparent)}
.ft-col h2{letter-spacing:.09em}
.ft-col a{position:relative;width:max-content;max-width:100%}
.ft-col a::after{content:"";position:absolute;left:0;bottom:3px;width:0;height:1px;background:#75c5f5;transition:width .22s}
.ft-col a:hover::after{width:100%}
.ft-soc a{transition:transform .2s,background .2s,border-color .2s}
.ft-soc a:hover{transform:translateY(-3px);background:rgba(89,180,239,.14);border-color:rgba(113,199,248,.28)}

/* ------------------------------ Mobile ------------------------------- */
@media(max-width:1100px){
  .quote-layout{gap:36px}
  body[data-page="portal"] .portal-steps{position:static}
}
@media(max-width:760px){
  :root{--r:19px}
  .section{padding-block:clamp(62px,16vw,82px)}
  .hero::after,.subhero::after{right:-46%;top:9%;opacity:.7}
  .hero h1{font-size:clamp(40px,12vw,58px)}
  .subhero{padding-block:126px 70px}
  .grid3,.grid2{gap:16px;margin-top:36px}
  .icard,.panel-card{padding:24px}
  body[data-page="home"] .sector{min-height:auto;padding:24px;border-radius:21px}
  body[data-page="home"] .constr{padding:20px;border-radius:20px}
  .quote-copy-column{padding-block:0}
  .quote-form-card{padding:25px 19px!important;border-radius:21px!important}
  .quote-assurance{width:100%;border-radius:13px;line-height:1.4}
  .contact-lines{display:grid}
  .contact-lines a{width:100%}
  .article h1{font-size:clamp(34px,10vw,46px)}
  .article-cover{border-radius:20px;margin-block:28px}
  .prose>p:first-of-type{font-size:18px}
  body[data-page="portal"] .portal-card{border-radius:21px}
  body[data-page="portal"] .portal-card::before{height:3px}
  body[data-page="portal"] .send-panel{border-radius:21px}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .icard:hover,.panel-card:hover,.zrow:hover,.fitbox:hover,.sector:hover,.tcard:hover,.bcard:hover,.gterm:hover,.pill:hover{transform:none}
  header.nav .nav-apply::after{display:none}
}

/* v2.5.2 — ensure the homepage reassurance pill always contains its full copy. */
body[data-page="home"] #contact .quote-form-card .quote-assurance{
  display:flex;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  white-space:normal;
  line-height:1.4;
  overflow-wrap:anywhere;
}
body[data-page="home"] #contact .quote-form-card .quote-assurance::before{
  flex:0 0 18px;
}
@media (min-width:1180px){
  body[data-page="home"] #contact .quote-form-card .quote-assurance{
    font-size:13.25px;
    letter-spacing:-.005em;
  }
}

/* v2.5.3 — keep the homepage reassurance message on one line at every width. */
body[data-page="home"] #contact .quote-form-card .quote-assurance{
  display:flex;
  align-items:center;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:normal;
  padding:7px 9px;
  gap:6px;
  font-size:clamp(9px,2.9vw,13.25px);
  letter-spacing:-.015em;
  line-height:1.2;
}
body[data-page="home"] #contact .quote-form-card .quote-assurance::before{
  flex:0 0 16px;
  width:16px;
  height:16px;
  font-size:10px;
}
@media (min-width:520px){
  body[data-page="home"] #contact .quote-form-card .quote-assurance{
    font-size:13.25px;
    padding:8px 11px;
    gap:8px;
  }
  body[data-page="home"] #contact .quote-form-card .quote-assurance::before{
    flex-basis:18px;
    width:18px;
    height:18px;
  }
}

/* Footer address: deliberate three-line rhythm instead of browser-dependent wrapping. */
.ft-col address a{
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
}
.ft-col address a .address-line{display:block;white-space:nowrap}
