/* /johannesburg/ — extends aquila.css (same layout system). Navy #1B1C36, orange #EA8337. */
.seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:4px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px #DCDCE4}
.seg button{height:42px;border:0;border-radius:9px;background:transparent;font:inherit;font-size:13px;font-weight:700;color:#5E6080;cursor:pointer;transition:background-color .15s ease,color .15s ease}
.seg button:hover{color:#1B1C36}
.seg button[aria-pressed="true"]{background:#1B1C36;color:#fff}
.seg2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0;background:none;box-shadow:none}
.seg2 button{height:auto;min-height:72px;padding:12px;text-align:left;background:#fff;box-shadow:inset 0 0 0 1px #DCDCE4;color:#1B1C36}
.seg2 button[aria-pressed="true"]{background:#fff;color:#1B1C36;box-shadow:inset 0 0 0 2px #1B1C36}
.seg2 b{display:block;font-size:14px}
.seg2 span{display:block;font-size:12px;font-weight:500;color:#5E6080;margin-top:2px}

/* area / day slot: both blocks stack in one cell so the card never changes height */
.slot{display:grid}
.slot>*{grid-area:1/1}
.slot>.off{visibility:hidden}
.daybox{display:flex;flex-direction:column;justify-content:center;gap:2px;min-height:72px;padding:12px 14px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px #DCDCE4}
.daybox b{font-size:14px}
.daybox span{font-size:12px;color:#5E6080}

/* price table */
.ptable{border-top:1px solid #DCDCE4}
.prow{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid #DCDCE4}
.prow b{display:block;font-size:16px;font-weight:700}
.prow small{display:block;font-size:13px;color:#5E6080;margin-top:2px;font-weight:500}
.prow .n{text-align:right;font-weight:700;font-size:17px;font-variant-numeric:tabular-nums}
.phead{padding:12px 0;font-size:13px;font-weight:700;color:#5E6080}
.phead .n{font-size:14px;color:#1B1C36}

/* more day ideas under the timeline */
.more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:56px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}
.more b{display:block;font-size:17px;font-weight:700}
.more span{display:block;font-size:14px;color:rgba(255,255,255,.72);margin-top:4px}

/* per-person comparison */
.cmp2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.cmp2-rows{border-top:1px solid #DCDCE4}
.cmp2-rows .row{padding:16px 0;border-bottom:1px solid #DCDCE4;font-size:15px}
.cmp2-rows .row span{color:#5E6080}
.cmp2-rows .row b{font-size:22px;font-weight:800;letter-spacing:-0.01em;font-variant-numeric:tabular-nums}
.cmp2-rows .row:first-child b{color:#B05316}
.qa a{color:#B05316;font-weight:700}

@media (max-width:900px){
.seg{grid-template-columns:repeat(2,minmax(0,1fr))}
.seg2{grid-template-columns:minmax(0,1fr)}
.seg2 button{min-height:0}
.prow{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px;padding:14px 0}
.prow>span:first-child{grid-column:1 / -1;margin-bottom:6px}
.phead>span:first-child{display:none}
.prow .n{text-align:left;font-size:16px}
.phead .n{font-size:12px}
.prow small{font-size:12px}
.more{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:32px}
.cmp2{grid-template-columns:minmax(0,1fr);gap:20px}
.cmp2-rows .row b{font-size:19px}
}
@media (prefers-reduced-motion:reduce){.seg button{transition:none}}
.b-media picture{position:absolute;inset:0}
