/* BUTIGAL OCEAN V12 — responsive and accessible finishing pass. Ocean-only. */
/* Focus and tap targets: improve keyboard/mobile reachability without changing desktop composition. */
.oc-ocean-site-header a:focus-visible,
.oc-ocean-site-header summary:focus-visible,
.oc-shell .oc-btn:focus-visible,
.oc-shell .oc-service-foot:focus-visible,
.oc-shell .oc-hh-face:focus-visible,
.oc-shell .oc-form button:focus-visible,
.oc-shell .oc-form select:focus-visible,
.oc-shell .oc-form input:focus-visible,
.oc-shell .oc-form textarea:focus-visible {
  outline: 3px solid #f5c829 !important;
  outline-offset: 3px !important;
}
.oc-shell .oc-form input:not([type="checkbox"]):not([type="radio"]),
.oc-shell .oc-form select,
.oc-shell .oc-form textarea { min-height: 44px; max-width:100%; }
.oc-shell .oc-form textarea { min-height: 90px; }
.oc-shell .oc-form-card,
.oc-shell .oc-form-title-row,
.oc-shell .oc-grid-2,
.oc-shell .oc-grid-3,
.oc-shell .oc-item-row,
.oc-shell .oc-quote-total { min-width: 0; }
.oc-shell .oc-quote-total { box-sizing:border-box; max-width:100%; }
.oc-shell .oc-table-card { max-width:100%; overflow-x:auto; }
.oc-shell .oc-table-card:focus-within { outline-color:#f5c829; }
.oc-ocean-site-header__mobile nav a,
.oc-ocean-site-header__mobile summary { -webkit-tap-highlight-color:transparent; }
.oc-ocean-site-header__mobile nav a { min-height:44px; display:flex !important; align-items:center; }
.oc-v8-home .oc-service-photo--lcl img,
.oc-v8-home .oc-service-photo--fcl img { object-fit:cover !important; }
/* Long French wording may wrap on tablets; preserve the approved single-line desktop heading. */
@media (max-width:1099px) {
  .oc-v8-home .oc-journey #oc-journey-title {
    white-space:normal !important;
    overflow-wrap:normal !important;
  }
}
@media (max-width:900px) {
  .oc-shell .oc-form-card { padding:18px; }
  .oc-shell .oc-form-title-row { flex-wrap:wrap; }
  .oc-shell .oc-form-title-row > button { min-height:44px; }
  .oc-shell .oc-quote-total { position:static; }
}
@media (max-width:650px) {
  .oc-shell .oc-page-head h1 { font-size:clamp(30px,8vw,42px); line-height:1.14; }
  .oc-shell .oc-page-head p { font-size:15px; line-height:1.6; }
  .oc-shell .oc-form-card { padding:16px; }
  .oc-shell .oc-grid-3,
  .oc-shell .oc-grid-2,
  .oc-shell .oc-item-row { grid-template-columns:minmax(0,1fr) !important; }
  .oc-shell .oc-form input,
  .oc-shell .oc-form select,
  .oc-shell .oc-form textarea { font-size:16px; }
  .oc-shell .oc-quote-total { flex-direction:column; align-items:stretch; gap:12px; }
  .oc-shell .oc-quote-total .oc-actions,
  .oc-shell .oc-form-title-row .oc-actions { flex-wrap:wrap; }
  .oc-shell .oc-quote-total button { min-height:44px; }
  .oc-ocean-site-header__mobile summary { min-height:44px !important; min-width:44px !important; justify-content:center; }
  .oc-ocean-site-header__mobile nav { max-height:min(75vh,540px); overflow-y:auto; overscroll-behavior:contain; }
  .oc-v8-home .oc-v8-hero .oc-actions { flex-wrap:wrap !important; }
  .oc-v8-home .oc-bottom-cta h2 { overflow-wrap:normal; }
}
@media (prefers-reduced-motion:reduce) {
  .oc-v8-home .oc-service-card,
  .oc-ocean-site-header a,
  .oc-shell .oc-btn { transition:none !important; animation:none !important; }
}
