/* =========================================================================
   Astrolabe project estimator
   Lives in the Astrolabe world: indigo ground, silver line-work, and one
   accent hue per step drawn from the enamels and brass of the instrument.
   ========================================================================= */

.est-body{background:var(--astro-deep);color:var(--astro-light)}
.est-body .foot{background:var(--astro-deep);border-block-start:1px solid rgb(159 180 208/.2)}
.est-body .foot,.est-body .foot a{color:var(--astro-silver)}
.est-body .foot__addr strong{color:var(--astro-light)}

/* ---------------------------------------------------------------- opening */
.est-hero{padding-block:clamp(2.5rem,6vw,5rem) clamp(2rem,5vw,4rem);
  background:radial-gradient(120% 85% at 50% 0%, #22355C, var(--astro-indigo) 55%, var(--astro-deep) 100%)}
.est-hero__in{max-width:70ch;margin-inline:auto;text-align:center}
.est-hero .eyebrow{color:var(--astro-silver);justify-content:center}
.est-hero .eyebrow::before{background:var(--astro-silver)}
.est-hero .backlink{color:var(--astro-silver)}
.est-hero h1{color:#fff;font-size:clamp(1.8rem,1.2rem+2.4vw,3.1rem);margin-block:.5rem .9rem;line-height:1.15}
.est-hero__lede{font-size:var(--step-1);line-height:1.85;color:#C7D3E6}

.est-floor{margin-block-start:clamp(1.8rem,4vw,2.8rem);text-align:start;
  border:1px solid rgb(159 180 208/.32);padding:clamp(1.2rem,3vw,1.9rem);
  background:rgb(18 32 59/.55)}
.est-floor h2{font-size:clamp(1.05rem,.95rem+.5vw,1.3rem);color:var(--astro-light);
  margin-block-end:.9rem;letter-spacing:.01em}
.est-floor ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.est-floor li{position:relative;padding-inline-start:1.5rem;color:#C7D3E6;
  font-size:.96rem;line-height:1.65}
.est-floor li::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:.6em;
  width:7px;height:7px;background:#C9A227;transform:rotate(45deg)}

.est-begin{margin-block-start:clamp(1.6rem,3.5vw,2.4rem);
  font-family:"Body",system-ui,sans-serif;font-size:.86rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
  background:#C9A227;color:#12203B;border:1px solid #C9A227;
  padding:1rem 2.2rem;transition:background .25s ease,transform .25s ease}
[dir=rtl] .est-begin{letter-spacing:0;text-transform:none;font-size:1rem}
.est-begin:hover{background:#E0BC4A;transform:translateY(-2px)}

/* ------------------------------------------------------------ the wizard */
.est-wrap{padding-block:clamp(2rem,5vw,3.5rem) clamp(3rem,7vw,5rem);
  background:var(--astro-deep);scroll-margin-block-start:80px}
.est-grid{display:grid;gap:clamp(1.5rem,4vw,2.6rem);align-items:start}
@media (min-width:960px){.est-grid{grid-template-columns:minmax(0,1fr) 310px}}

/* progress rail: one pip per step, filled as you pass it */
.est-rail{display:flex;flex-wrap:wrap;gap:.4rem;margin-block-end:clamp(1.2rem,3vw,1.8rem)}
.est-pip{flex:1 1 0;min-width:16px;height:4px;background:rgb(159 180 208/.24);
  border:0;padding:0;cursor:pointer;transition:background .3s ease,transform .3s ease}
.est-pip:hover{transform:scaleY(2)}
.est-pip.is-done{background:var(--astro-silver)}
.est-pip.is-now{background:var(--pip,#C9A227);transform:scaleY(2.4)}
.est-pip:focus-visible{outline:2px solid #fff;outline-offset:3px}

.est-step__no{font-family:"Body",system-ui,sans-serif;font-size:.74rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--acc,#C9A227)}
[dir=rtl] .est-step__no{letter-spacing:0;text-transform:none;font-size:.9rem}
.est-step h2{font-family:"Display",Georgia,serif;color:#fff;
  font-size:clamp(1.35rem,1.1rem+1.1vw,2rem);margin-block:.35rem .6rem;line-height:1.2}
.est-step__blurb{color:#C7D3E6;font-size:1rem;line-height:1.8;max-width:60ch;
  margin-block-end:clamp(1.1rem,2.5vw,1.6rem)}

.est-opts{display:grid;gap:.6rem}
@media (min-width:620px){.est-opts{grid-template-columns:1fr 1fr}}

.est-opt{display:flex;gap:.85rem;align-items:flex-start;text-align:start;
  border:1px solid rgb(159 180 208/.26);background:rgb(27 42 74/.5);
  padding:.9rem 1rem;cursor:pointer;font:inherit;color:inherit;width:100%;
  transition:border-color .2s ease,background .2s ease,transform .2s ease}
.est-opt:hover{border-color:var(--acc,#C9A227);transform:translateY(-1px)}
.est-opt:focus-visible{outline:2px solid #fff;outline-offset:2px}
.est-opt.is-on{border-color:var(--acc,#C9A227);background:rgb(27 42 74/.95);
  box-shadow:inset 3px 0 0 var(--acc,#C9A227)}
[dir=rtl] .est-opt.is-on{box-shadow:inset -3px 0 0 var(--acc,#C9A227)}
.est-opt.is-locked{cursor:default;opacity:.9}
.est-opt.is-locked:hover{transform:none;border-color:rgb(159 180 208/.26)}

.est-box{flex:none;width:19px;height:19px;margin-block-start:.15rem;
  border:1.5px solid var(--astro-silver);display:grid;place-items:center;
  transition:background .2s ease,border-color .2s ease}
.est-opt.is-on .est-box{background:var(--acc,#C9A227);border-color:var(--acc,#C9A227)}
.est-box svg{width:12px;height:12px;opacity:0;transition:opacity .2s ease}
.est-opt.is-on .est-box svg{opacity:1}

.est-opt__body{flex:1;min-width:0}
.est-opt__label{display:block;color:#fff;font-size:.97rem;line-height:1.45;font-weight:500}
.est-opt__note{display:block;color:#9FB4D0;font-size:.83rem;line-height:1.5;margin-block-start:.25rem}
.est-opt__price{flex:none;font-family:"Display",Georgia,serif;font-size:1rem;
  color:var(--acc,#C9A227);white-space:nowrap;margin-inline-start:auto;
  display:flex;align-items:center;gap:.1rem}
.est-opt__price--free{color:var(--astro-silver);font-family:"Body",system-ui,sans-serif;
  font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
[dir=rtl] .est-opt__price--free{letter-spacing:0;text-transform:none;font-size:.85rem}

.est-nav{display:flex;align-items:center;gap:1rem;
  margin-block-start:clamp(1.4rem,3vw,2rem);padding-block-start:1.2rem;
  border-block-start:1px solid rgb(159 180 208/.2)}
.est-count{color:var(--astro-silver);font-size:.85rem;margin-inline:auto}
.est-btn{font-family:"Body",system-ui,sans-serif;font-size:.8rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:none;
  background:#C9A227;color:#12203B;border:1px solid #C9A227;padding:.85rem 1.7rem;
  display:inline-flex;align-items:center;gap:.5rem;
  transition:background .2s ease,color .2s ease}
[dir=rtl] .est-btn{letter-spacing:0;text-transform:none;font-size:.95rem}
.est-btn:hover{background:#E0BC4A}
.est-btn--ghost{background:transparent;color:var(--astro-light);border-color:rgb(159 180 208/.45)}
.est-btn--ghost:hover{background:rgb(159 180 208/.14);color:#fff}
.est-btn[disabled]{opacity:.35;cursor:not-allowed}
.est-btn--wa{background:#1FA855;border-color:#1FA855;color:#fff}
.est-btn--wa:hover{background:#25C063}

/* ---------------------------------------------------- the reckoning panel */
.est-reckon__in{border:1px solid rgb(159 180 208/.3);background:rgb(27 42 74/.6);
  padding:1.4rem 1.25rem}
@media (min-width:960px){.est-reckon{position:sticky;top:88px}}

.est-dial{position:relative;width:104px;margin-inline:auto;margin-block-end:1rem}
.est-dial img{width:100%;height:auto;display:block;opacity:.55}
.est-dial__alidade{position:absolute;left:50%;top:47%;width:80%;height:2px;
  background:linear-gradient(90deg,transparent,#C9A227 18%,#C9A227 82%,transparent);
  transform-origin:50% 50%;transform:translate(-50%,-50%) rotate(-27deg);
  transition:transform .7s cubic-bezier(.2,.7,.3,1)}

.est-reckon__label{font-family:"Body",system-ui,sans-serif;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--astro-silver);text-align:center}
[dir=rtl] .est-reckon__label{letter-spacing:0;text-transform:none;font-size:.88rem}
.est-reckon__total{font-family:"Display",Georgia,serif;font-size:clamp(1.9rem,1.4rem+1.6vw,2.5rem);
  color:#fff;text-align:center;margin-block:.2rem .1rem;
  display:flex;align-items:center;justify-content:center;gap:.12em;line-height:1.1}
.est-reckon__total .rial-inline{filter:brightness(0) invert(1)}
.est-reckon__days{text-align:center;color:var(--astro-silver);font-size:.85rem;
  padding-block-end:.9rem;border-block-end:1px solid rgb(159 180 208/.2)}

.est-chosen{list-style:none;margin:.9rem 0 0;padding:0;display:grid;gap:.45rem;
  max-height:230px;overflow:auto}
.est-chosen li{display:flex;gap:.6rem;font-size:.83rem;line-height:1.4;color:#C7D3E6}
.est-chosen li span:last-child{margin-inline-start:auto;color:#fff;white-space:nowrap}
.est-chosen__none{color:var(--astro-silver);font-size:.85rem;line-height:1.6}
.est-chosen__grp{font-family:"Body",system-ui,sans-serif;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--astro-silver);margin-block-start:.5rem;display:block}
[dir=rtl] .est-chosen__grp{letter-spacing:0;text-transform:none;font-size:.82rem}

/* ------------------------------------------------------------- the sheet */
.est-summary{padding-block:clamp(2.5rem,6vw,4.5rem);
  background:radial-gradient(110% 80% at 50% 0%, #22355C, var(--astro-deep) 70%);
  scroll-margin-block-start:80px}
.est-summary__in{max-width:74ch;margin-inline:auto}
.est-summary h2{font-family:"Display",Georgia,serif;color:#fff;
  font-size:clamp(1.6rem,1.2rem+1.6vw,2.5rem);margin-block-end:.7rem}
.est-summary__lede{color:#C7D3E6;font-size:var(--step-1);line-height:1.8;
  margin-block-end:clamp(1.4rem,3vw,2.2rem)}

.est-sheet{border:1px solid rgb(159 180 208/.3);background:rgb(18 32 59/.75);
  padding:clamp(1.1rem,3vw,1.8rem)}
.est-sheet h3{font-family:"Body",system-ui,sans-serif;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--astro-silver);
  margin-block:1.3rem .55rem;padding-block-end:.4rem;
  border-block-end:1px solid rgb(159 180 208/.2)}
[dir=rtl] .est-sheet h3{letter-spacing:0;text-transform:none;font-size:.9rem}
.est-sheet h3:first-child{margin-block-start:0}
.est-sheet__row{display:flex;gap:1rem;padding-block:.4rem;
  font-size:.94rem;line-height:1.5;color:#C7D3E6}
.est-sheet__row b{margin-inline-start:auto;color:#fff;font-weight:500;white-space:nowrap}
.est-sheet__tot{display:flex;gap:1rem;align-items:baseline;margin-block-start:1.4rem;
  padding-block-start:1rem;border-block-start:1px solid rgb(159 180 208/.35)}
.est-sheet__tot span{font-family:"Body",system-ui,sans-serif;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--astro-silver)}
[dir=rtl] .est-sheet__tot span{letter-spacing:0;text-transform:none;font-size:.92rem}
.est-sheet__tot b{margin-inline-start:auto;font-family:"Display",Georgia,serif;
  font-size:clamp(1.5rem,1.2rem+1.2vw,2.1rem);color:#C9A227;font-weight:400;
  display:flex;align-items:center;gap:.12em}
.est-sheet__tot .rial-inline{filter:brightness(0) saturate(100%) invert(72%) sepia(38%) saturate(900%) hue-rotate(2deg) brightness(92%)}

.est-caveat{color:#9FB4D0;font-size:.9rem;line-height:1.75;margin-block:1.4rem;
  padding-inline-start:1rem;border-inline-start:2px solid rgb(201 162 39/.6)}
.est-actions{display:flex;flex-wrap:wrap;gap:.7rem}

/* -------------------------------------------------------------- mobile bar */
@media (max-width:959px){
  .est-reckon{position:fixed;inset-inline:0;bottom:0;z-index:40;
    background:rgb(18 32 59/.97);border-block-start:1px solid rgb(159 180 208/.35);
    backdrop-filter:blur(8px)}
  .est-reckon__in{border:0;background:none;padding:.65rem 1rem;
    display:flex;align-items:center;gap:.9rem}
  .est-dial{width:40px;margin:0;flex:none}
  .est-reckon__label{text-align:start;font-size:.65rem}
  .est-reckon__total{font-size:1.5rem;justify-content:flex-start;margin:0}
  .est-reckon__days{border:0;padding:0;margin-inline-start:auto;text-align:end;font-size:.78rem}
  .est-chosen{display:none}
  .est-wrap{padding-block-end:6rem}
  .wa-float{bottom:5.5rem}
}

@media (prefers-reduced-motion:reduce){
  .est-opt,.est-begin,.est-pip,.est-dial__alidade{transition:none}
  .est-opt:hover,.est-begin:hover{transform:none}
}

@media print{
  .est-body{background:#fff;color:#000}
  .nav,.est-hero,.est-wrap,.est-actions,.wa-float,.foot{display:none !important}
  .est-summary{background:#fff;padding:0}
  .est-summary h2,.est-sheet__row b,.est-sheet__tot b{color:#000}
  .est-summary__lede,.est-sheet__row,.est-caveat{color:#333}
  .est-sheet{border:1px solid #999;background:#fff}
  .est-sheet h3,.est-sheet__tot span{color:#555}
}

/* ---- second pass: presets, disclosure, and the build/yearly split ---- */
.est-box--round{border-radius:50%}
.est-opts--more{margin-block-start:.6rem}
.est-more{margin-block-start:.9rem;background:none;border:0;cursor:pointer;
  font-family:"Body",system-ui,sans-serif;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acc,#C9A227);padding:.5rem 0;
  border-block-end:1px solid currentColor}
[dir=rtl] .est-more{letter-spacing:0;text-transform:none;font-size:.9rem}
.est-more:hover{color:#fff}
.est-more:focus-visible{outline:2px solid #fff;outline-offset:3px}

.est-reckon__rec{text-align:center;color:#C9A227;font-size:.95rem;
  display:flex;align-items:center;justify-content:center;gap:.15em;
  padding-block:.7rem;border-block-end:1px solid rgb(159 180 208/.2)}
.est-reckon__rec span{color:var(--astro-silver);font-size:.78rem}
.est-reckon__rec .rial-inline{height:.9em;
  filter:brightness(0) saturate(100%) invert(72%) sepia(38%) saturate(900%) hue-rotate(2deg) brightness(92%)}

.est-sheet__rec{margin-block-start:1.8rem;padding-block-start:1.2rem;
  border-block-start:1px dashed rgb(159 180 208/.35)}
.est-sheet__tot--rec b{font-size:clamp(1.2rem,1rem+.8vw,1.6rem)}

@media (max-width:959px){
  .est-reckon__rec{border:0;padding:0;font-size:.8rem;flex:none;
    margin-inline-start:auto;white-space:nowrap}
  .est-reckon__rec span{display:none}
  .est-reckon__days{margin-inline-start:.6rem}
}

/* a range to steady the nerves before anyone starts choosing */
.est-anchor{margin-block-start:clamp(1.6rem,4vw,2.4rem);text-align:start;
  border:1px solid rgb(201 162 39/.42);background:rgb(201 162 39/.07);
  padding:clamp(1.1rem,3vw,1.7rem)}
.est-anchor h2{font-family:"Body",system-ui,sans-serif;font-size:.74rem;letter-spacing:.16em;
  text-transform:uppercase;color:#C9A227;margin-block-end:.7rem}
[dir=rtl] .est-anchor h2{letter-spacing:0;text-transform:none;font-size:.92rem}
.est-anchor p{color:#D8E1EE;font-size:1rem;line-height:1.8;margin:0}
.est-anchor b{color:#fff;font-weight:600;white-space:nowrap}
.est-anchor__n{margin-block-start:.7rem !important;color:var(--astro-silver) !important;
  font-size:.88rem !important}
