/* s74 rhythm (patch_s74_spacing.py): one spacing scale for the three pages; see the patch for the table */
:root{--r-sec:clamp(48px,6vw,88px);--r-head:clamp(28px,3vw,40px);--r-block:clamp(40px,4.5vw,64px);--r-grid:clamp(16px,1.7vw,24px)}

/* sections */
html[data-ns-contract] .sB .b-sec,html[data-ns-contract] .sB .b-sec.b-tight,html[data-ns-contract] .sB .b-event,html[data-ns-contract] .sB .mk-band{padding-block:var(--r-sec)!important}
html[data-ns-contract] .sB .b-sec[data-ns-id="home.next-event"],
html[data-ns-contract] .sB .b-sec.b-tight[data-ns-id="festival.explanation"],html[data-ns-contract] .sB .b-sec[data-ns-id="festival.features"]{padding-top:0!important}

/* heading blocks */
html[data-ns-contract] .sB .b-sechead,html[data-ns-contract] .sB .vb-prog-head{margin-bottom:var(--r-head)!important}
html[data-ns-contract] .sB .b-sechead > :last-child,html[data-ns-contract] .sB .vb-prog-head > :last-child{margin-bottom:0!important}
html[data-ns-contract] .sB .b-h2{margin-top:0!important}
html[data-ns-contract] .sB .b-h2:not(:last-child){margin-bottom:16px!important}
html[data-ns-contract] .sB .b-det:has(+ .b-h2),html[data-ns-contract] .sB .b-det:has(+ h1){margin-bottom:8px!important}

/* blocks inside a section */
html[data-ns-contract] .sB .vb-rubros,html[data-ns-contract] .sB .mk-mosaic{margin-top:0!important}
html[data-ns-contract] .sB .vb-scenes,html[data-ns-contract] .sB .vb-porque{margin-top:var(--r-head)!important}
html[data-ns-contract] .sB .vb-menu-head{margin-bottom:var(--r-head)!important}
html[data-ns-contract] .sB .vb-expo2,html[data-ns-contract] .sB .mk-mosaic + .b-det{margin-top:var(--r-block)!important}
html[data-ns-contract] .sB .mk-mosaic + .b-det{margin-bottom:16px!important}
html[data-ns-contract] .sB .mk-who{margin-top:0!important}

/* widths: a component fills the content width it sits in */
html[data-ns-contract] .sB .vb-visit .vb-map{max-width:none!important}
html[data-ns-contract] .sB .vb-scn figcaption{padding-inline:0!important}
@media (max-width:759px){html[data-ns-contract] .sB .mk-row-phone{margin-inline:calc(-1 * clamp(16px,5vw,80px))!important;padding-inline:clamp(16px,5vw,80px)!important;scroll-padding-inline:clamp(16px,5vw,80px)}}

/* card grids */
html[data-ns-contract] .sB .b-five,html[data-ns-contract] .sB .vb-four,html[data-ns-contract] .sB .vb-scn-grid{column-gap:var(--r-grid)!important;row-gap:var(--r-head)!important}
html[data-ns-contract] .sB .vb-menu-cards{gap:var(--r-grid)!important}

/* subheadings: one size (s73 type scale) */
html[data-ns-contract] .sB main h3{font-size:20px!important;font-weight:700!important;letter-spacing:0!important}
@media (max-width:759px){html[data-ns-contract] .sB main h3{font-size:18px!important}}

/* body text: one size (s73 type scale) */
html[data-ns-contract] .sB .mk-band .mk-txt{font-size:19px!important;line-height:1.55!important}
@media (max-width:759px){html[data-ns-contract] .sB .mk-band .mk-txt{font-size:17px!important}}

/* buttons: one height */
html[data-ns-contract] .sB main .b-btn{min-height:52px!important;box-sizing:border-box}
html[data-ns-contract] .sB .vb-web-btn{text-decoration:none!important;margin-top:12px}
html[data-ns-contract] .sB .vb-web-btn .vb-ig-mark{margin-left:8px}

/* Vivero: Cómo llegar and Preguntas frecuentes as one orange section (operator, round 5); text on orange is her black */
html[data-ns-contract] .sB .b-sec[data-ns-id="nursery.faq"]{background:#F66428!important;color:#151413!important;padding-top:0!important}
html[data-ns-contract] .sB [data-ns-id="nursery.faq"] .b-h2,html[data-ns-contract] .sB [data-ns-id="nursery.faq"] dt,html[data-ns-contract] .sB [data-ns-id="nursery.faq"] dd{color:#151413!important}

/* motion (operator, round 5): nothing rises in from below; the photos zoom and the buttons nudge on hover */
html[data-ns-contract] .rv{opacity:1!important;transform:none!important;transition:none!important}

/* footer: the Vivero Boutique strip, on every page; cream with plum like the header, with the same 1 px plum rule */
html[data-ns-contract] .sB .b-foot{padding-block:24px!important;background:#E8EDCA!important;color:#942E66!important;border-top:1px solid #942E66}
html[data-ns-contract] .sB .b-foot a,html[data-ns-contract] .sB .b-foot p{color:#942E66!important}
html[data-ns-contract] .sB .vb-foot .b-soc{color:#942E66!important;border-color:#942E66!important}
html[data-ns-contract] .sB .b-foot [data-pair]{background-color:transparent!important}
html[data-ns-contract] .sB .b-foot-row.vb-foot{display:grid!important;grid-template-columns:1fr auto!important;align-items:center;gap:12px 24px!important}
html[data-ns-contract] .sB .vb-foot-l{display:flex;flex-direction:column;gap:6px}
html[data-ns-contract] .sB .vb-foot .b-foot-grid{display:flex!important;flex-wrap:wrap;gap:6px 24px!important}
html[data-ns-contract] .sB .vb-foot .b-foot-grid a{padding:0!important;min-height:0!important;font-size:19px!important;font-weight:700!important;letter-spacing:.04em}
html[data-ns-contract] .sB .vb-foot-c{margin:0!important;font-size:19px!important;font-weight:700!important;opacity:1!important}
html[data-ns-contract] .sB .vb-foot .b-socs{display:flex!important;gap:10px!important;margin:0!important}
html[data-ns-contract] .sB .vb-foot .b-soc{width:40px!important;height:40px!important}
html[data-ns-contract] .sB .vb-foot .b-soc{transition:background-color .2s,color .2s}
html[data-ns-contract] .sB .vb-foot .b-soc:hover,html[data-ns-contract] .sB .vb-foot .b-soc:focus-visible{background:#942E66!important;color:#E8EDCA!important}
html[data-ns-contract] .sB .b-foot a:focus-visible{outline:3px solid #942E66!important;outline-offset:3px}  /* plum on her cream (review: the cream ring was invisible) */
@media (max-width:759px){
  html[data-ns-contract] .sB .b-foot-row.vb-foot{grid-template-columns:1fr!important;gap:16px!important}
  html[data-ns-contract] .sB .vb-foot .b-foot-grid{gap:4px 24px!important}
  html[data-ns-contract] .sB .vb-foot .b-socs{gap:6px!important}
  html[data-ns-contract] .sB .vb-foot .b-soc{width:36px!important;height:36px!important}
}
