/* Oloropa O28 — concierge split-pane containment and overlap recovery.
   Scope: contact.php, services.php, about.php and booking.php. */

:root{
  --ol-o28-shell-max:90rem;
  --ol-o28-shell-gutter:clamp(1.5rem,4vw,4rem);
  --ol-o28-split-gap:clamp(2rem,4vw,4.5rem);
  --ol-o28-card-gap:clamp(.9rem,1.4vw,1.25rem);
  --ol-o28-sticky-top:clamp(7.5rem,10vw,9rem);
}

body[data-ol-o28-concierge-split="active"]{
  min-width:0;
  overflow-x:clip!important;
}

body[data-ol-o28-concierge-split="active"] #main-content,
body[data-ol-o28-concierge-split="active"] #main-content > section,
body[data-ol-o28-concierge-split="active"] #main-content > section > *{
  min-width:0;
  box-sizing:border-box;
}

/* Shared full-width shell. */
body[data-ol-o28-concierge-split="active"] #main-content > .cct-hero > .cct-hero-grid,
body[data-ol-o28-concierge-split="active"] #support-framework > .sp-inner,
body[data-ol-o28-concierge-split="active"] #support-framework > .cct-inner{
  width:100%!important;
  max-width:var(--ol-o28-shell-max)!important;
  margin-inline:auto!important;
  padding-inline:var(--ol-o28-shell-gutter)!important;
}

/* Hero split: a clear seven/five editorial ratio rather than a compressed centre stack. */
body[data-ol-o28-concierge-split="active"] #main-content > .cct-hero > .cct-hero-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:var(--ol-o28-split-gap)!important;
  align-items:end!important;
}

body[data-ol-o28-concierge-split="active"] .cct-hero-grid > .cct-hero-copy{
  grid-column:1 / span 7!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

body[data-ol-o28-concierge-split="active"] .cct-hero-grid > .cct-trust-card{
  grid-column:8 / -1!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  justify-self:stretch!important;
}

/* Stage-two shell must never clip a sticky sidebar or permit transformed reveal layers to overlap it. */
body[data-ol-o28-concierge-split="active"] #support-framework{
  position:relative!important;
  isolation:isolate!important;
  overflow:visible!important;
  padding-block:clamp(5rem,8vw,8rem)!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework :is(
  .ol-concierge-split,
  .ol-concierge-primary,
  .ol-concierge-sidebar,
  .phase7-tool-panel,
  .phase7-channel-stack,
  .phase7-result-card,
  .phase7-method-note,
  .ol-booking-calendar,
  .ol-phase2-canonical-brief-handoff
){
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Explicit twelve-column split: left columns 1–7, right columns 8–12. */
body[data-ol-o28-concierge-split="active"] .ol-concierge-split{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:var(--ol-o28-split-gap)!important;
  align-items:start!important;
  width:100%!important;
  max-width:100%!important;
  position:relative!important;
  transform:none!important;
}

body[data-ol-o28-concierge-split="active"] .ol-concierge-split > .ol-concierge-primary{
  grid-column:1 / span 7!important;
  grid-row:1!important;
  width:100%!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  z-index:1!important;
}

body[data-ol-o28-concierge-split="active"] .ol-concierge-split > .ol-concierge-sidebar{
  grid-column:8 / -1!important;
  grid-row:1!important;
  align-self:start!important;
  width:100%!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:var(--ol-o28-card-gap)!important;
  position:sticky!important;
  top:var(--ol-o28-sticky-top)!important;
  inset-inline:auto!important;
  bottom:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:2!important;
}

/* Reassert the split against legacy phase-seven declarations. */
body[data-ol-o28-concierge-split="active"] :is(
  .phase7-router-layout,
  .phase7-service-layout,
  .phase7-method-layout
){
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:var(--ol-o28-split-gap)!important;
  align-items:start!important;
}

body[data-ol-o28-concierge-split="active"] :is(
  .phase7-router-layout,
  .phase7-service-layout,
  .phase7-method-layout
) > .phase7-tool-panel{
  grid-column:1 / span 7!important;
  grid-row:1!important;
}

body[data-ol-o28-concierge-split="active"] .phase7-router-layout > .phase7-channel-stack,
body[data-ol-o28-concierge-split="active"] .phase7-service-layout > .phase7-result-card,
body[data-ol-o28-concierge-split="active"] .phase7-method-layout > .phase7-method-note{
  grid-column:8 / -1!important;
  grid-row:1!important;
}

/* Remove every legacy absolute/translated card coordinate that can create visual clumping. */
body[data-ol-o28-concierge-split="active"] #support-framework :is(
  .phase7-channel-card,
  .phase7-result-card,
  .phase7-method-note,
  .ol-phase2-canonical-brief-handoff,
  .ol-phase2-canonical-brief-card
){
  position:relative!important;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  transform:none!important;
  translate:none!important;
  float:none!important;
  clear:both!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-channel-stack{
  align-content:start!important;
}

/* Decompress the left workspace and prevent nested headings from becoming narrow columns. */
body[data-ol-o28-concierge-split="active"] #support-framework .ol-concierge-primary{
  padding:clamp(1.25rem,2.2vw,2rem)!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .ol-concierge-primary > .sp-head,
body[data-ol-o28-concierge-split="active"] #support-framework .phase7-tool-panel > .sp-head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:1rem!important;
  width:100%!important;
  margin-bottom:clamp(1.5rem,2.5vw,2.5rem)!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .ol-concierge-primary > .sp-head > *,
body[data-ol-o28-concierge-split="active"] #support-framework .phase7-tool-panel > .sp-head > *{
  grid-column:1 / -1!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-inline:0!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-tool-panel > .sp-head h2{
  max-width:15ch!important;
  text-wrap:balance;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-tool-panel > .sp-head p{
  max-width:58ch!important;
  text-wrap:pretty;
}

/* Usable card and field matrices inside the seven-column workspace. */
body[data-ol-o28-concierge-split="active"] #support-framework :is(
  .phase7-reason-grid,
  .phase7-service-grid,
  .phase7-method-grid,
  .phase7-field-row
){
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(.9rem,1.5vw,1.25rem)!important;
  width:100%!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework :is(
  .phase7-reason-grid,
  .phase7-service-grid,
  .phase7-method-grid,
  .phase7-field-row
) > *{
  grid-column:auto!important;
  min-width:0!important;
  width:100%!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-field-row > label:last-child,
body[data-ol-o28-concierge-split="active"] #support-framework .phase7-field-row > label:has(textarea){
  grid-column:1 / -1!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework :is(input,select,textarea,button,a){
  max-width:100%;
  box-sizing:border-box;
}

body[data-ol-o28-concierge-split="active"] #support-framework :is(.phase7-reason-card,.phase7-service-card,.phase7-method-card){
  height:100%!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-utility-row{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:.65rem!important;
}

body[data-ol-o28-concierge-split="active"] #support-framework .phase7-utility-row > *{
  flex:1 1 10rem!important;
  min-width:0!important;
}

/* Booking route: calendar left, canonical handoff right. */
body[data-ol-o28-concierge-split="active"][data-oloropa-page="booking.php"] .ol-concierge-split--booking > .ol-booking-calendar{
  grid-column:1 / span 7!important;
  grid-row:1!important;
  width:100%!important;
  margin:0!important;
  position:relative!important;
  transform:none!important;
}

body[data-ol-o28-concierge-split="active"][data-oloropa-page="booking.php"] .ol-concierge-split--booking > .ol-phase2-canonical-brief-handoff{
  grid-column:8 / -1!important;
  grid-row:1!important;
  align-self:start!important;
  position:sticky!important;
  top:var(--ol-o28-sticky-top)!important;
}

body[data-ol-o28-concierge-split="active"][data-oloropa-page="booking.php"] .ol-cal-head,
body[data-ol-o28-concierge-split="active"][data-oloropa-page="booking.php"] .ol-cal-body{
  min-width:0!important;
}

@media (max-width:1100px){
  :root{
    --ol-o28-shell-gutter:clamp(1.25rem,3vw,2rem);
    --ol-o28-split-gap:clamp(1.5rem,3vw,2.5rem);
  }

  body[data-ol-o28-concierge-split="active"] #support-framework .phase7-service-grid,
  body[data-ol-o28-concierge-split="active"] #support-framework .phase7-method-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

@media (max-width:960px){
  body[data-ol-o28-concierge-split="active"] #main-content > .cct-hero > .cct-hero-grid,
  body[data-ol-o28-concierge-split="active"] .ol-concierge-split,
  body[data-ol-o28-concierge-split="active"] :is(.phase7-router-layout,.phase7-service-layout,.phase7-method-layout){
    grid-template-columns:minmax(0,1fr)!important;
  }

  body[data-ol-o28-concierge-split="active"] :is(
    .cct-hero-grid > .cct-hero-copy,
    .cct-hero-grid > .cct-trust-card,
    .ol-concierge-split > .ol-concierge-primary,
    .ol-concierge-split > .ol-concierge-sidebar,
    .phase7-router-layout > .phase7-tool-panel,
    .phase7-service-layout > .phase7-tool-panel,
    .phase7-method-layout > .phase7-tool-panel,
    .phase7-router-layout > .phase7-channel-stack,
    .phase7-service-layout > .phase7-result-card,
    .phase7-method-layout > .phase7-method-note,
    .ol-concierge-split--booking > .ol-booking-calendar,
    .ol-concierge-split--booking > .ol-phase2-canonical-brief-handoff
  ){
    grid-column:1 / -1!important;
    grid-row:auto!important;
  }

  body[data-ol-o28-concierge-split="active"] .ol-concierge-split > .ol-concierge-sidebar,
  body[data-ol-o28-concierge-split="active"] .phase7-router-layout > .phase7-channel-stack,
  body[data-ol-o28-concierge-split="active"] .phase7-service-layout > .phase7-result-card,
  body[data-ol-o28-concierge-split="active"] .phase7-method-layout > .phase7-method-note,
  body[data-ol-o28-concierge-split="active"][data-oloropa-page="booking.php"] .ol-concierge-split--booking > .ol-phase2-canonical-brief-handoff{
    position:relative!important;
    top:auto!important;
  }
}

@media (max-width:680px){
  :root{
    --ol-o28-shell-gutter:1rem;
    --ol-o28-split-gap:1.25rem;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework{
    padding-block:clamp(3.75rem,14vw,5rem)!important;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework .ol-concierge-primary{
    padding:1rem!important;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework :is(
    .phase7-reason-grid,
    .phase7-service-grid,
    .phase7-method-grid,
    .phase7-field-row
  ){
    grid-template-columns:minmax(0,1fr)!important;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework .phase7-field-row > *{
    grid-column:1 / -1!important;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework .phase7-utility-row{
    align-items:stretch!important;
  }

  body[data-ol-o28-concierge-split="active"] #support-framework .phase7-utility-row > *{
    flex-basis:100%!important;
    width:100%!important;
  }
}
