/* My Trip budget estimator: contained visual module, no changes to the site layout. */
.trip-budget{
    margin:27px 0 36px;padding:clamp(18px,2.4vw,30px);
    border:1px solid rgb(var(--brand-green-rgb) / .2);
    border-radius:25px;
    background:linear-gradient(145deg,#fff,rgb(var(--brand-yellow-rgb) / .045) 65%,rgb(var(--brand-green-rgb) / .065));
    box-shadow:0 16px 40px rgb(var(--ink-rgb) / .055);
    scroll-margin-top:95px;
}
.trip-budget__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}
.trip-budget__heading .eyebrow{margin:0 0 7px}
.trip-budget__heading h2{margin:0;color:var(--forest);font-size:clamp(1.65rem,2.7vw,2.4rem);line-height:1.17}
.trip-budget__heading p:not(.eyebrow){margin:8px 0 0;max-width:750px;color:var(--muted);font-size:.95rem;line-height:1.65}
.trip-budget__base{flex:0 0 auto;border:1px solid rgb(var(--brand-green-rgb) / .18);padding:6px 11px;border-radius:999px;color:var(--forest);font-size:.78rem;font-weight:850;background:var(--paper)}
.trip-budget__controls{display:grid;grid-template-columns:minmax(95px,.62fr) minmax(105px,.74fr) minmax(155px,1.14fr) minmax(180px,1.25fr) auto;gap:12px;align-items:end;padding:18px;border-radius:18px;background:rgb(var(--brand-green-rgb) / .065)}
.trip-budget__field{min-width:0}
.trip-budget__field label{display:block;margin-bottom:6px;color:var(--forest);font-weight:800;font-size:.85rem;line-height:1.35}
.trip-budget__field input,.trip-budget__field select{display:block;width:100%;min-width:0;min-height:46px;padding:9px 11px;border:1px solid #c9d9d0;border-radius:11px;background:var(--paper);color:var(--forest);font:inherit;font-size:.92rem}
.trip-budget__field input:focus-visible,.trip-budget__field select:focus-visible,.trip-budget__update:focus-visible{outline:3px solid rgb(var(--brand-yellow-rgb) / .65);outline-offset:2px}
.trip-budget__update{min-height:46px;padding:10px 18px;white-space:nowrap;border:0;border-radius:11px;background:var(--green);color:#fff;cursor:pointer;font-weight:850;font-size:.88rem;transition:background .16s ease}
.trip-budget__update:hover{background:var(--forest)}
.trip-budget__overview{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,.5fr);gap:13px;margin:19px 0 23px}
.trip-budget__total,.trip-budget__stat{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:18px;border:1px solid rgb(var(--brand-green-rgb) / .12);border-radius:17px;background:var(--paper)}
.trip-budget__total{background:var(--forest);color:white}
.trip-budget__total>span,.trip-budget__stat>span{font-size:.8rem;font-weight:750;line-height:1.4}
.trip-budget__total strong{display:block;margin:8px 0;font-size:clamp(1.32rem,2.25vw,2.2rem);line-height:1.27;overflow-wrap:anywhere}
.trip-budget__total strong span{opacity:.58;font-weight:500}
.trip-budget__total small{color:rgb(255 255 255 / .82);font-size:.77rem;line-height:1.5}
.trip-budget__stat{gap:10px}
.trip-budget__stat>span{color:var(--muted)}
.trip-budget__stat strong{color:var(--forest);font-size:clamp(1.1rem,1.6vw,1.4rem);line-height:1.35;overflow-wrap:anywhere}
.trip-budget h3{margin:0 0 10px;color:var(--forest);font-size:1.18rem}
.trip-budget__categories{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}
.trip-budget__category{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-width:0;padding:14px 15px;border:1px solid rgb(var(--ink-rgb) / .085);border-radius:13px;background:var(--paper)}
.trip-budget__category dt{font-size:.8rem;color:var(--muted)}
.trip-budget__category dd{margin:0;font-size:.96rem;font-weight:850;color:var(--forest);overflow-wrap:anywhere}
.trip-budget__notes{margin-top:17px;color:var(--muted);font-size:.77rem;line-height:1.65}
.trip-budget__notes p{margin:.4rem 0}
.trip-budget__notes a{color:var(--green);font-weight:800;text-decoration:underline;text-underline-offset:2px}
.trip-budget__warning{padding:9px 12px;border-left:3px solid #c58445;border-radius:0 7px 7px 0;background:rgb(var(--brand-yellow-rgb) / .12);color:#785322}
@media(max-width:1100px){
    .trip-budget__controls{grid-template-columns:repeat(4,minmax(0,1fr))}
    .trip-budget__update{grid-column:1/-1;justify-self:start}
}
@media(max-width:760px){
    .trip-budget__controls{grid-template-columns:repeat(2,minmax(0,1fr))}
    .trip-budget__overview{grid-template-columns:repeat(2,minmax(0,1fr))}
    .trip-budget__total{grid-column:1/-1}
    .trip-budget__categories{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
    .trip-budget__heading{display:block}
    .trip-budget__base{display:inline-flex;margin-top:12px}
    .trip-budget__controls{padding:12px;gap:10px}
    .trip-budget__field label{font-size:.79rem}
    .trip-budget__categories{grid-template-columns:minmax(0,1fr)}
    .trip-budget__overview{gap:9px}
    .trip-budget__total,.trip-budget__stat{padding:14px}
}

.trip-budget__validation{grid-column:1/-1;margin:0;padding:10px 13px;border:1px solid #d9ac88;border-radius:11px;background:#fff6ee;color:#8b4227;font-size:.88rem;font-weight:700;line-height:1.5}
