.sabe-modalities .modality-intro { text-align:center; }
.sabe-modalities .modality-intro .kicker { margin:0 auto 1rem; }
.sabe-modalities .modality-intro h2 { margin:0 auto; font:400 clamp(2rem,4vw,3.8rem)/1.06 NewYork,Georgia,serif; }
.sabe-modalities .sabe-modalities-grid { margin:clamp(2rem,4vw,3.5rem) auto 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-block:1px solid #a7805460; }
.sabe-modalities-grid article { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.65rem; padding:1.5rem .75rem; border:0; }
.sabe-modalities-grid article + article { border-inline-start:1px solid #a7805440; }
.sabe-modalities-grid h3.modality-logo { width:min(100%,10rem); aspect-ratio:1; margin:0; background-image:url("assets/sabe-luxury-logo-collection.png"); background-size:300% 100%; background-repeat:no-repeat; }
.modality-logo--essentials { background-position:left center; }
.modality-logo--premium { background-position:right center; }
.modality-logo--vip { background-position:center; }
.modality-logo span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.sabe-modalities-grid article > .kicker { text-align:center; font-size:.72rem; letter-spacing:.12em; }
.sabe-modalities-grid article > a.modality-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  min-height: 44px;
  margin: 0;
  padding: .5rem 1.25rem;
  border: 1px solid #79505a;
  background: transparent;
  color: #491d28;
  font-size: .94rem;
  text-decoration: none;
}
.sabe-modalities-grid article > a.modality-link:is(:hover, :focus-visible, :active) {
  background: #491d28;
  color: #fff9ee;
}
.sabe-modalities-grid a.modality-link:focus-visible { outline: 2px solid #491d28; outline-offset: 3px; }
@media(max-width:650px) {
  .sabe-modalities .sabe-modalities-grid { grid-template-columns:1fr; }
  .sabe-modalities-grid article { display:grid; grid-template-columns:minmax(6rem,35%) 1fr; gap:.15rem 1rem; align-items:end; padding:1rem 0; }
  .sabe-modalities-grid article + article { border-inline-start:0; border-top:1px solid #a7805440; }
  .sabe-modalities-grid h3.modality-logo { grid-row:span 2; width:min(100%,8rem); justify-self:center; }
  .sabe-modalities-grid article > .kicker { text-align:left; }
  .sabe-modalities-grid article > a.modality-link { justify-self:start; align-self:start; }
}

/* A service chapter is selected with the native radio group. */
.modality-fees { margin-top: clamp(3rem, 6vw, 6rem); scroll-margin-top: 6rem; }
.modality-fees #fees-title { font: 400 clamp(1.8rem, 3vw, 2.8rem)/1.1 NewYork, Georgia, serif; text-transform: none; letter-spacing: -.025em; margin: 0 0 1.5rem; }
.fee-book { min-width: 0; margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.fee-book > input { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
.fee-book > label { cursor: pointer; padding: .85rem .6rem; border-bottom: 1px solid #aa947a; color: #57493f; font-size: 1rem; }
.fee-book > input:checked + label { color: #491d28; border-bottom: 3px solid currentColor; }
.fee-book > input:focus-visible + label { outline: 2px solid currentColor; outline-offset: -2px; }
.fee-page { grid-column: 1/-1; display: none; gap: clamp(1.6rem,3vw,3.5rem); padding: 2rem 0 1rem; }
#fee-1:checked ~ #fee-page-1, #fee-2:checked ~ #fee-page-2, #fee-3:checked ~ #fee-page-3 { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,17rem),1fr)); }
.fee-entry { max-width: 62ch; }
.fee-entry header { position: static; display: flex; align-items: baseline; flex-wrap: wrap; gap: .4rem 1rem; justify-content: space-between; }
.fee-entry h4 { font: 400 clamp(1.25rem,1.6vw,1.55rem)/1.15 NewYork,Georgia,serif; margin: 0; }
.fee-entry header span { font-size: .94rem; white-space: nowrap; }
.fee-entry em { display:block; color:#68523e; margin: .65rem 0 1rem; font: italic 1rem Georgia,serif; }
.fee-entry p { font-size: 1rem; line-height: 1.65; margin: .7rem 0 0; }

@media(max-width:600px) { .fee-book { grid-template-columns:1fr; } .fee-page { padding-top:1.5rem; } .fee-entry + .fee-entry { padding-top:1.25rem; border-top:1px solid #aa947a55; } }
