
/* V9 Wedding Budget Builder */
.hero-budget{background:radial-gradient(circle at 88% 10%,rgba(226,199,143,.32),transparent 30%),linear-gradient(135deg,#fffaf4,#f5e4e1)}
.budget-hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:52px;align-items:center}.budget-hero-panel{background:var(--wine-deep);color:#fff;padding:34px;border-radius:28px;display:grid;gap:12px;box-shadow:0 24px 60px rgba(57,10,29,.18)}.budget-hero-panel b{font-family:Georgia,serif;font-size:1.45rem;color:#f2d9bd}.budget-hero-panel span{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.14)}
.calculator-principles,.budget-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.calculator-principles article,.budget-feature-grid article{background:#fff;border:1px solid #eadfd8;border-radius:22px;padding:24px}.calculator-principles b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--wine);color:#fff;margin-bottom:16px}
.budget-builder-shell{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}.budget-builder-main{min-width:0}.budget-profile{background:#fff;border:1px solid #eadfd8;border-radius:24px;padding:22px;margin-bottom:18px}.budget-profile>div:first-child{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.budget-profile label{display:grid;gap:7px;font-weight:800;color:#311c23}.budget-profile input,.budget-profile select,.budget-toolbar input,.budget-toolbar select,.category-budget-box input,.service-controls input,.service-controls select{width:100%;border:1px solid #d9c9c1;border-radius:12px;background:#fff;color:#2c2024;padding:11px 12px;font:inherit}.profile-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.budget-toolbar{display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:center;margin:16px 0}.budget-toolbar span{font-weight:900;color:var(--wine)}
.budget-category{background:#fff;border:1px solid #eadfd8;border-radius:22px;margin-bottom:14px;overflow:hidden}.budget-category>summary{list-style:none;display:grid;grid-template-columns:48px 1fr auto;gap:16px;align-items:center;padding:18px 20px;cursor:pointer}.budget-category>summary::-webkit-details-marker{display:none}.category-no{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#f0d79f;color:#3e1623;font-weight:900}.category-title b{display:block;font-family:Georgia,serif;font-size:1.1rem}.category-title small{display:block;color:#705d63;margin-top:3px}.category-summary-money{text-align:right}.category-summary-money b{display:block;color:var(--wine)}.category-body{border-top:1px solid #eee0d8;padding:18px;background:#fffaf7}.category-budget-box{display:grid;grid-template-columns:1fr 220px 180px;gap:14px;align-items:end;padding:16px;border-radius:16px;background:#f8efea;margin-bottom:16px}.category-budget-box label{display:grid;gap:7px;font-weight:800}.service-option{display:grid;grid-template-columns:28px minmax(0,1fr) 350px;gap:14px;align-items:start;padding:15px 0;border-bottom:1px solid #eee3dc}.service-option:last-child{border-bottom:0}.service-option input[type=checkbox]{margin-top:7px;width:18px;height:18px;accent-color:var(--wine)}.service-copy h4{font-family:Georgia,serif;font-size:1.02rem;margin:0 0 5px;color:#2e1d23}.service-copy p{font-size:.87rem;line-height:1.5;color:#66545a;margin:0}.market-range{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}.market-range span{background:#f7eee9;border-radius:999px;padding:5px 9px;font-size:.76rem;color:#5c4149}.service-controls{display:grid;grid-template-columns:1fr 120px;gap:8px}.service-controls label{font-size:.76rem;font-weight:800;color:#5b424a}.service-controls .lock-line{grid-column:1/-1;display:flex;align-items:center;gap:8px;font-size:.78rem}.service-controls .lock-line input{width:auto}.service-status{grid-column:1/-1;font-size:.78rem;font-weight:800}.status-low{color:#a34c21}.status-fit{color:#14733f}.status-high{color:#67518b}
.budget-summary{position:relative}.summary-sticky{position:sticky;top:96px;background:var(--wine-deep);color:#fff;padding:26px;border-radius:26px;box-shadow:0 24px 60px rgba(57,10,29,.2)}.summary-sticky h2{color:#fff;font-size:1.65rem}.summary-kpis{display:grid;gap:8px;margin:18px 0}.summary-kpis>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.13)}.summary-kpis small{color:#e3cfd4}.summary-kpis strong{color:#fff;text-align:right}.summary-sticky .btn{width:100%;margin-top:9px}.summary-sticky .pricing-disclaimer{color:#dfcbd0}.budget-alerts{display:grid;gap:8px}.budget-alert{padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.09);font-size:.84rem}.budget-alert.warn{background:#5e351d}.budget-alert.good{background:#174d37}
.v9-service-budget .budget-intro-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:start}.budget-note{background:var(--wine-deep);color:#fff;padding:26px;border-radius:24px}.budget-note b{font-family:Georgia,serif;font-size:1.25rem;color:#fff}.budget-note p{color:#ead7dc}.budget-option-list{display:grid;gap:14px;margin-top:26px}.budget-option-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid #e9dcd6;border-radius:20px;padding:18px}.budget-option-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f2dba8;color:var(--wine)}.budget-option-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.budget-option-copy h3{margin:0 0 7px}.budget-option-copy p{margin:0;color:#655259;font-size:.9rem;line-height:1.5}.budget-range-row{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;margin-top:12px}.budget-range-row span{background:#fbf5f1;padding:9px 10px;border-radius:12px}.budget-range-row small{display:block;color:#7b656b;font-size:.7rem}.budget-range-row b{font-size:.85rem;color:#3b2029}.btn-small{padding:9px 12px;font-size:.8rem;white-space:nowrap}.pricing-disclaimer{font-size:.78rem;color:#765f67;margin-top:18px}
@media(max-width:1100px){.budget-builder-shell{grid-template-columns:1fr}.summary-sticky{position:static}.budget-profile>div:first-child{grid-template-columns:repeat(2,1fr)}.calculator-principles,.budget-feature-grid{grid-template-columns:repeat(2,1fr)}.service-option{grid-template-columns:28px 1fr}.service-controls{grid-column:2}.budget-hero-grid,.v9-service-budget .budget-intro-grid{grid-template-columns:1fr}.budget-range-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.budget-profile>div:first-child,.calculator-principles,.budget-feature-grid{grid-template-columns:1fr}.budget-toolbar{grid-template-columns:1fr}.category-budget-box{grid-template-columns:1fr}.budget-category>summary{grid-template-columns:42px 1fr}.category-summary-money{grid-column:2;text-align:left}.service-option{grid-template-columns:24px 1fr}.service-controls{grid-column:1/-1}.budget-option-card{grid-template-columns:42px 1fr}.budget-option-card>.btn{grid-column:2}.budget-range-row{grid-template-columns:1fr 1fr}}

/* V9.1 calculator start-state choice */
.budget-start-dialog{width:min(760px,calc(100% - 28px));max-height:calc(100vh - 36px);padding:0;border:0;border-radius:28px;background:transparent;color:var(--ink);box-shadow:0 28px 90px rgba(38,18,25,.32)}
.budget-start-dialog::backdrop{background:rgba(31,17,22,.72);backdrop-filter:blur(7px)}
.budget-start-card{background:#fffaf6;border:1px solid #e4d4cc;border-top:5px solid var(--maroon);border-radius:28px;padding:32px;overflow:auto;max-height:calc(100vh - 36px)}
.budget-start-card h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:.15em 0 .35em}.budget-start-card>p:not(.eyebrow){color:#66545a}
.budget-start-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.budget-start-summary>div{background:#f6ebe5;border:1px solid #ead9d0;border-radius:16px;padding:16px}.budget-start-summary small{display:block;color:#755e65}.budget-start-summary strong{display:block;font-family:Georgia,serif;font-size:1.35rem;color:var(--wine-deep,#3d0d1d);margin-top:3px}
.budget-start-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.budget-start-actions .btn{width:100%;min-height:50px}.budget-reset-link{grid-column:1/-1;border:0;background:transparent;color:#8b1538;text-decoration:underline;font:inherit;font-weight:800;padding:10px;cursor:pointer}.budget-start-actions [hidden]{display:none!important}
@media(max-width:650px){.budget-start-card{padding:24px 18px}.budget-start-summary,.budget-start-actions{grid-template-columns:1fr}.budget-reset-link{grid-column:auto}}


/* V9.2: true floating live estimate while customers select services. */
#calculator.creative-band{overflow:visible}
#calculator .budget-builder-shell{position:relative}
#calculator .budget-summary{position:relative;align-self:stretch;min-width:0}
#calculator .summary-sticky{position:sticky;top:104px;z-index:18;max-height:calc(100vh - 124px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent;border:1px solid rgba(255,255,255,.08)}
#calculator .summary-sticky::-webkit-scrollbar{width:7px}
#calculator .summary-sticky::-webkit-scrollbar-track{background:transparent}
#calculator .summary-sticky::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:999px}
#calculator .summary-kpis strong{font-variant-numeric:tabular-nums}
#calculator .budget-summary:before{content:'LIVE';position:absolute;top:14px;right:14px;z-index:19;padding:5px 8px;border-radius:999px;background:#f0d79f;color:#3e1623;font-size:.66rem;font-weight:900;letter-spacing:.08em;pointer-events:none}
@media(max-width:1100px){#calculator.creative-band{overflow:hidden}#calculator .budget-summary{position:static}#calculator .summary-sticky{position:static;max-height:none;overflow:visible}#calculator .budget-summary:before{top:14px;right:14px}}

/* V9.3 service thumbnail cards */
.v9-service-budget{scroll-margin-top:98px}.v9-service-budget .container{max-width:1380px}.budget-option-card{grid-template-columns:96px minmax(0,1fr) auto!important;align-items:center}.budget-option-media{width:96px;height:96px;margin:0;border-radius:18px;overflow:hidden;border:1px solid #eadbd4;background:#f7eee6;box-shadow:0 10px 24px rgba(60,22,35,.07)}.budget-option-media img{display:block;width:100%;height:100%;object-fit:cover}.budget-option-copy{min-width:0}.budget-option-copy h3{font-size:1.08rem}.budget-option-card>.btn{align-self:center}.summary-kpis>div:first-child strong,#kpiSelectedAmount{color:#f2d79f!important}.summary-kpis small{font-size:.78rem}.summary-kpis strong{font-size:.92rem}
@media(max-width:760px){.budget-option-card{grid-template-columns:76px minmax(0,1fr)!important}.budget-option-media{width:76px;height:76px;border-radius:15px}.budget-option-card>.btn{grid-column:2!important;justify-self:start}.budget-range-row{grid-column:1/-1}}
/* END V9.3 service thumbnail cards */
/* Compact bespoke calculator thumbnails */
.service-option{grid-template-columns:28px 112px minmax(0,1fr) 350px}
.service-option-image{width:112px;height:84px;object-fit:cover;border-radius:12px;align-self:start;background:#f4ebe5}
@media(max-width:1100px){.service-option{grid-template-columns:28px 96px minmax(0,1fr)}.service-option-image{width:96px;height:72px}.service-controls{grid-column:2/-1}}
@media(max-width:700px){.service-option{grid-template-columns:24px 88px minmax(0,1fr)}.service-option-image{width:88px;height:66px}.service-controls{grid-column:2/-1}}

/* V9.5 service-card reading layout: visual and full-width scope first,
   commercial inputs only after the description and market range. */
.service-option{
  grid-template-columns:28px 180px minmax(0,1fr);
  column-gap:18px;
  row-gap:16px;
  padding:22px 0;
}
.service-option-image{
  width:180px;
  height:135px;
  border-radius:16px;
}
.service-copy{min-width:0;padding-right:4px}
.service-copy h4{font-size:1.18rem;margin-bottom:9px}
.service-copy p{font-size:.94rem;line-height:1.65}
.market-range{margin-top:14px}
.market-range span{font-size:.82rem;padding:7px 11px}
.service-controls{
  grid-column:2/-1;
  display:grid;
  grid-template-columns:minmax(120px,.7fr) minmax(180px,1fr) minmax(180px,1fr);
  gap:12px 14px;
  align-items:end;
  padding:16px;
  border-radius:16px;
  background:#fbf5f1;
}
.service-controls label{font-size:.82rem}
.service-controls .lock-line{grid-column:1/3;margin-top:2px}
.service-status{grid-column:3;align-self:center;text-align:right}

@media(max-width:1100px){
  .service-option{grid-template-columns:28px 170px minmax(0,1fr)}
  .service-option-image{width:170px;height:128px}
  .service-controls{grid-column:2/-1}
}
@media(max-width:700px){
  .service-option{grid-template-columns:24px 120px minmax(0,1fr);column-gap:12px;padding:18px 0}
  .service-option-image{width:120px;height:90px;border-radius:13px}
  .service-copy h4{font-size:1.05rem}
  .service-copy p{font-size:.88rem;line-height:1.55}
  .service-controls{grid-column:1/-1;grid-template-columns:1fr 1fr;padding:13px}
  .service-controls label:nth-of-type(3){grid-column:1/-1}
  .service-controls .lock-line{grid-column:1/-1}
  .service-status{grid-column:1/-1;text-align:left}
}
@media(max-width:480px){
  .service-option{grid-template-columns:24px 104px minmax(0,1fr)}
  .service-option-image{width:104px;height:78px}
  .service-controls{grid-template-columns:1fr}
  .service-controls label:nth-of-type(3),.service-controls .lock-line,.service-status{grid-column:1}
}

/* Mobile live-budget pill. Desktop keeps the existing navbar and sticky
   summary; on the calculator page this replaces the crowded bottom action bar. */
.mobile-budget-float{display:none}
@media(max-width:1000px){
  .budget-page .mobile-actions{display:none!important}
  .mobile-budget-float{
    position:fixed;
    right:14px;
    bottom:14px;
    z-index:90;
    display:flex;
    align-items:center;
    gap:10px;
    min-height:54px;
    padding:9px 14px 9px 17px;
    border:2px solid #f0d79f;
    border-radius:999px;
    background:var(--wine,#7b1836);
    color:#fff;
    text-decoration:none;
    box-shadow:0 14px 34px rgba(61,13,29,.30);
    font-weight:900;
    font-variant-numeric:tabular-nums;
  }
  .mobile-budget-float-title{font-size:.96rem}
  .mobile-budget-float-live{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    font-size:.74rem;
    white-space:nowrap;
  }
  .mobile-budget-float:hover,.mobile-budget-float:focus-visible{background:#3d0d1d;color:#fff}
  .budget-page .backtop{right:18px;bottom:80px}
}
@media(max-width:420px){
  .mobile-budget-float{right:10px;bottom:10px;min-height:50px;padding:7px 10px 7px 14px}
  .mobile-budget-float-title{font-size:.88rem}
  .mobile-budget-float-live{font-size:.68rem;padding:5px 7px}
}

/* Make the category disclosure action unmistakable across all 29 services. */
.budget-category>summary{
  grid-template-columns:48px minmax(220px,1fr) minmax(230px,280px) auto;
}
.category-expand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-height:72px;
  padding:10px 16px;
  border:2px solid var(--wine);
  border-radius:18px;
  background:#fff7f3;
  color:var(--wine);
  text-align:center;
  box-shadow:0 8px 22px rgba(111,14,51,.10);
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.category-expand b{font-size:1.05rem;line-height:1.1}
.category-expand small{font-size:.75rem;font-weight:800;line-height:1.25}
.category-expand-icon{
  display:inline-grid;
  place-items:center;
  width:30px;
  height:30px;
  margin-right:6px;
  border-radius:50%;
  background:var(--wine);
  color:#fff;
  font-size:1.35rem;
  line-height:1;
}
.budget-category>summary:hover .category-expand,
.budget-category>summary:focus-visible .category-expand{
  background:var(--wine);
  color:#fff;
  transform:translateY(-1px);
}
.budget-category>summary:hover .category-expand-icon,
.budget-category>summary:focus-visible .category-expand-icon{background:#fff;color:var(--wine)}
.budget-category[open] .category-expand{background:var(--wine);color:#fff}
.budget-category[open] .category-expand-icon{background:#fff;color:var(--wine)}

@media(max-width:900px){
  .budget-category>summary{grid-template-columns:44px minmax(0,1fr) auto}
  .category-expand{grid-column:2;align-items:flex-start;min-height:auto;margin-top:8px;text-align:left}
  .category-summary-money{grid-column:3;grid-row:1/3}
}
@media(max-width:560px){
  .budget-category>summary{grid-template-columns:42px minmax(0,1fr);padding:15px}
  .category-expand{grid-column:1/-1;align-items:center;text-align:center}
  .category-summary-money{grid-column:2;grid-row:auto;text-align:left}
}

/* Compact service cards on phones: image/title first, then let long scope copy
   use the entire viewport width instead of a narrow column beside the image. */
@media(max-width:700px){
  .service-option{
    grid-template-columns:24px 132px minmax(0,1fr);
    column-gap:12px;
    row-gap:10px;
    padding:16px 0;
  }
  .service-option-image{width:132px;height:99px}
  .service-copy{display:contents}
  .service-copy h4{
    grid-column:3;
    align-self:center;
    margin:0;
    font-size:1.08rem;
    line-height:1.25;
  }
  .service-copy p{
    grid-column:2/-1;
    margin:0;
    font-size:.84rem;
    line-height:1.45;
  }
  .service-copy .linked-service-note{grid-column:2/-1}
  .market-range{
    grid-column:2/-1;
    margin-top:2px;
    gap:6px;
  }
  .market-range span{font-size:.72rem;padding:5px 8px}
  .service-controls{
    grid-column:2/-1;
    grid-template-columns:minmax(90px,.7fr) minmax(120px,1fr) minmax(120px,1fr);
    gap:9px;
    padding:11px;
  }
  .service-controls input,.service-controls select{padding:9px 10px}
  .service-controls label:nth-of-type(3){grid-column:3}
  .service-controls .lock-line{grid-column:1/3;font-size:.72rem}
  .service-status{grid-column:3;text-align:right;font-size:.72rem}
}
@media(max-width:480px){
  .service-option{grid-template-columns:22px 108px minmax(0,1fr)}
  .service-option-image{width:108px;height:81px}
  .service-copy h4{font-size:1rem}
  .service-copy p{grid-column:1/-1;font-size:.82rem;line-height:1.42}
  .service-copy .linked-service-note,.market-range{grid-column:1/-1}
  .service-controls{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .service-controls label:nth-of-type(3){grid-column:1/-1}
  .service-controls .lock-line{grid-column:1/-1}
  .service-status{grid-column:1/-1;text-align:left}
}
.linked-service-note{margin-top:10px;padding:10px 12px;border-left:3px solid var(--wine);border-radius:8px;background:#fff4dc;color:#5d3d21;font-size:.78rem;line-height:1.45}.linked-service-note b{color:var(--wine-deep)}
