/* Functional bridge. Palette, typography and motion remain in visual/. */
[hidden]{display:none!important}button:disabled{opacity:.5;cursor:not-allowed}.local-status{padding:.6rem 5%;font-size:.85rem;border-bottom:1px solid var(--line);background:var(--paper)}.ui-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin:1.2rem 0}.api-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;margin:1.5rem 0}.api-days .day{display:flex;flex-direction:column;align-items:flex-start;padding:.65rem;min-width:0}.api-days small{font-size:.7rem}.api-days .active{outline:2px solid currentColor;outline-offset:1px}.api-slots{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:1rem}.calendar-nav .button{padding:.6rem}.session-detail{padding:1.4rem 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.session-detail label,#profile-form label,#access-form label,#otp-form label,#notice-form label,#late-notice-form label{display:grid;gap:.45rem;margin:1rem 0}.session-detail input,.session-detail select,.session-detail textarea,form input,form select{max-width:100%;min-width:0;width:100%;padding:.75rem;border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:4px;font:inherit}.session-detail textarea{min-height:7rem;width:100%;resize:vertical}.session-detail [aria-invalid=true]{border-color:#a33025}.check{display:flex!important;align-items:flex-start;gap:.7rem!important}.check input{width:auto;flex:none;margin-top:.3rem}.note-count{font-size:.8rem}.booking-progress{margin-bottom:1.8rem}.booking-progress [aria-current]{font-weight:700}.booking-summary .button{margin:.35rem .2rem .35rem 0}.notice,.form-message{padding:.9rem;border-left:3px solid var(--copper,currentColor);overflow-wrap:anywhere}.notice:empty,.form-message:empty{display:none}.account-access{max-width:42rem;margin:2rem auto;overflow-wrap:anywhere}.operation-content{max-width:54rem;margin:0 auto}.operation-content dd{margin:0 0 .8rem;overflow-wrap:anywhere}.operation-content dt{font-weight:600}.student-note{white-space:pre-wrap}.panel-layout>*,.booking-grid>*{min-width:0}.session-detail .button{margin:.3rem}.booking-grid aside p{overflow-wrap:anywhere}#page-message{scroll-margin-top:8rem}.session-detail h3{font-size:1.35rem}.month-days{max-height:26rem;overflow:auto}#profile-form{max-width:42rem}
@media(max-width:760px){.api-days{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-nav{flex-wrap:wrap}.calendar-nav strong{font-size:.85rem}.booking-grid,.panel-layout{grid-template-columns:1fr!important}.ui-actions .button{max-width:100%}.operation-content{padding:0 .2rem}.local-status{font-size:.75rem}.api-days .day{font-size:.8rem}.site-header nav.menu-open{display:flex}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

.operation-content form{margin:1.3rem 0;padding:1rem;border:1px solid var(--line)}.operation-content form label{display:grid;gap:.45rem;margin:.8rem 0}.operation-content textarea{width:100%;min-height:6rem;resize:vertical;padding:.7rem;color:inherit;background:var(--paper);border:1px solid var(--line);font:inherit}.operation-content details{margin:1rem 0}.operation-content p{overflow-wrap:anywhere}#ops-incident select{width:100%}#ops-receipt input[type=number],#ops-incident input[type=number]{max-width:18rem}#operation-pending .button{margin:.6rem 0}

.ops-workspace{border:0;padding:0;margin:0;min-width:0}
.followup-content>.ops-workspace{margin:1.5rem 0;padding:1rem 0;border-bottom:1px solid var(--line)}.followup-content>.ops-workspace>legend{font-weight:700}.followup-levels{border:0;margin:0;padding:0;min-width:0}.followup-levels label{display:flex!important;align-items:center;gap:.6rem!important}.followup-levels input[type=radio]{width:auto;flex:none}.followup-content textarea{min-height:9rem}.followup-content .published-feedback{padding:1rem;background:var(--soft,var(--paper))}.followup-content .ui-actions{align-items:stretch}

/* Connected account has content + account aside; prototype used nav + content. */
.panel-layout.api-account,.variant-c .panel-layout.api-account{grid-template-columns:minmax(0,1fr) minmax(230px,.38fr);align-items:start}.api-account .session-detail{max-width:42rem}.api-account .ops-workspace{width:100%}
@media(max-width:760px){.panel-layout.api-account,.variant-c .panel-layout.api-account{grid-template-columns:minmax(0,1fr)}}

/* Administrative agenda uses the accepted typography and palette variables. */
.agenda-content{max-width:66rem}.agenda-range{display:flex;flex-wrap:wrap;gap:1rem;align-items:end}.agenda-range label{display:grid;gap:.4rem;min-width:0}.agenda-range input,.agenda-range select{width:auto;max-width:100%}.agenda-days{display:grid;gap:1.5rem}.agenda-day{min-width:0;padding:1rem;border:1px solid var(--line)}.agenda-day h3{font-size:1.25rem}.agenda-slot h4{font-size:1.05rem;overflow-wrap:anywhere}.agenda-editor{max-width:42rem}.agenda-editor label{display:grid;gap:.4rem;margin:1rem 0}.agenda-editor textarea{width:100%;min-height:6rem}.agenda-weekdays{border:1px solid var(--line);padding:.7rem}.agenda-weekdays label{margin:.5rem}.agenda-content .button{max-width:100%;white-space:normal}.agenda-content p{overflow-wrap:anywhere}@media(max-width:760px){.agenda-range{display:grid;grid-template-columns:minmax(0,1fr)}.agenda-range input,.agenda-range select{width:100%}.agenda-day{padding:.7rem}.agenda-content{padding:0 .2rem}}

.admin-recovery{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}.admin-recovery label{display:grid;gap:.5rem;margin:1rem 0}.admin-recovery input{width:100%;min-width:0;max-width:100%;padding:.75rem;background:var(--paper);color:inherit;border:1px solid var(--line);font:inherit}.admin-recovery p{overflow-wrap:anywhere}.admin-recovery .button{max-width:100%;white-space:normal}

.access-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;pointer-events:none}
.access-challenge-note{font-size:.9rem}#access-challenge{max-width:100%;min-width:0}

.session-detail{overflow-wrap:anywhere}

.configuration-label .required-star{display:inline}

/* Keyboard orientation and required-field help within the accepted palette. */
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--ink,#20333a);outline-offset:3px}.required-legend,.form-requirements{font-size:.9rem;overflow-wrap:anywhere}.required-star{color:#a33025}.form-requirements{margin:.8rem 0}.today-content h2{scroll-margin-top:2rem}

.required-label-text .required-star{display:inline}

.admin-more{width:100%}.admin-more>summary{cursor:pointer;padding:.8rem 0}.admin-more-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.7rem}@media(min-width:761px){.admin-more[open]{display:contents}.admin-more-actions{display:flex;margin-top:0}.admin-more>summary{display:none}}

/* Allow enlarged text to reflow without replacing the accepted typography. */
.site-header,.site-header nav,.page-head{flex-wrap:wrap}
.site-header nav,.page-head>*{min-width:0;max-width:100%}
.page-head h1,.wordmark strong{overflow-wrap:anywhere}
.api-days .day>*{min-width:0;max-width:100%;overflow-wrap:anywhere}

/* Guided booking: the next action remains visible when the desktop columns collapse. */
.booking-mobile-actions{display:none}
body[data-view=calendar]{overflow-anchor:none}
.booking-stage [id$="title"]{scroll-margin-top:1rem}
.booking-stage-back{margin-bottom:1.2rem;border-bottom:1px solid var(--line);padding-bottom:.6rem}
.booking-stage-back p,.booking-help{font-size:.95rem}
.booking-stage .account-access{margin:0}
.booking-repeat,.access-other{margin:1rem 0}
.booking-repeat>summary,.access-other>summary{cursor:pointer;padding:.8rem 0;min-height:44px}
.booking-progress{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.95rem}
@media(max-width:959px){
 body[data-view=calendar] .summary-controls{position:static}
 body[data-view=calendar] .page-head{padding:22px 0 16px}
 body[data-view=calendar] .page-head h1{font-size:32px;line-height:1.12;margin:.4rem 0}
 body[data-view=calendar] .page-head .eyebrow{display:none}
 body[data-view=calendar] .page-head p:last-child{font-size:15px;margin:.6rem 0}
 .booking-progress{margin-bottom:.7rem;font-size:.85rem;line-height:1.8}
 .booking-progress [aria-current]{border-bottom:2px solid var(--accent)}
 .booking-stage h2{font-size:26px;line-height:1.2}
 .booking-stage .api-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin:1rem 0}
 .booking-stage .api-days .day{min-height:70px;padding:.55rem;font-size:.85rem;line-height:1.3;justify-content:center}
 .booking-stage .api-days .day small{font-size:.7rem}
 .booking-stage .api-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
 .booking-stage .api-slots .button{padding:.7rem .3rem;min-height:48px}
 .booking-stage .api-slots .button[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px;font-weight:700}
 .booking-stage :is(input,select,textarea){font-size:16px}
 .booking-stage .ui-actions .button{flex:1 1 auto}
 .booking-stage .account-access .ui-actions{align-items:stretch;flex-direction:column}
 .booking-stage :is(#otp-form,#profile-form)>.button{width:100%}
 .booking-stage .calendar-nav .button{font-size:14px;min-height:44px}
 .booking-mobile-actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem;position:fixed;inset:auto 0 0;z-index:20;padding:12px max(16px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--paper);color:var(--ink);border-top:2px solid var(--accent);box-shadow:0 -4px 18px #00000012}
 .booking-mobile-actions p{margin:0;font-size:14px;line-height:1.4;min-width:0}
 .booking-mobile-actions small{display:block;font-size:12px;font-weight:400;margin-top:.25rem}
 .booking-mobile-actions .button{flex:0 1 auto;min-height:48px;padding:.65rem 1rem;font-size:15px;white-space:normal;max-width:60%}
 body.booking-has-actions{padding-bottom:calc(var(--booking-bar-height,100px) + 20px)}
 html:has(body.booking-has-actions){scroll-padding-bottom:calc(var(--booking-bar-height,100px) + 16px)}
 body[data-view=calendar] :is(button,input,select,textarea,summary,a){scroll-margin-bottom:calc(var(--booking-bar-height,100px) + 16px)}
 body[data-view=calendar]:has(.summary-open) .booking-mobile-actions,body[data-view=calendar]:has(nav.open) .booking-mobile-actions{visibility:hidden}
 /* With a keyboard open or short landscape screen, use normal flow to preserve editing space. */
 @media(max-height:450px){.booking-mobile-actions{position:static;margin-top:1rem;max-width:100%}body.booking-has-actions{padding-bottom:0}}
}
@media(max-width:359px){.booking-stage .api-days{grid-template-columns:repeat(3,minmax(0,1fr))}.booking-stage .api-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-mobile-actions{gap:.5rem}.booking-mobile-actions .button{padding:.65rem .7rem}}


.about-years{white-space:nowrap}

/* Portada: franja de ventajas y recorrido de preparación. */
.variant-c .practice-strip {
  border-block: 1px solid var(--line);
  border-top-color: var(--c-805d3b, #805d3b);
  gap: 0;
}
.practice-strip .practice-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  align-items: center;
  gap: .9rem;
  padding-inline: clamp(.8rem, 2vw, 1.8rem);
}
.practice-strip .practice-item + .practice-item { border-inline-start: 1px solid var(--line); }
.practice-strip .practice-item b { display: block; margin: 0; font-size: 1.125rem; color: var(--ink); }
.practice-strip .practice-item p { margin: .18rem 0 0; font-size: 1rem; line-height: 1.4; }
.practice-icon { width: 100%; height: auto; color: var(--c-805d3b, #805d3b); }
.variant-c .editorial-method { align-items: start; }
.variant-c .method-intro h2 { font-size: clamp(2.35rem, 5.5vw, 5rem); }
.variant-c .method-intro .law-motto {
  margin: 0 0 1.6rem;
  padding-inline-start: 1.25rem;
  font: 600 clamp(1.2rem, 2.2vw, 1.8rem)/1.45 "Source Serif", Georgia, serif;
}
.variant-c .method-book { border-radius: 2rem; min-height: 48px; gap: .6rem; }
.variant-c .method-list li {
  position: relative;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.1rem 0 1.65rem;
  border: 0;
}
.variant-c .method-list li:not(:last-child)::after {
  content: "";
  position: absolute;
  inset: 4.25rem auto .25rem 1.4rem;
  border-inline-start: 1px solid var(--c-805d3b, #805d3b);
}
.variant-c .method-list h3 { display: flex; align-items: center; gap: .65rem; }
.method-list .practice-icon { flex: 0 0 1.5rem; width: 1.5rem; }
@media (max-width: 639px) {
  .variant-c .practice-strip { gap: 0; padding-block: .7rem; }
  .practice-strip .practice-item { padding: .8rem 0; }
  .practice-strip .practice-item + .practice-item { border-inline-start: 0; border-top: 1px solid var(--line); }
  .variant-c .editorial-method { gap: 1.6rem; padding-block: 3rem; }
  .variant-c .method-book { display: flex; width: 100%; justify-content: center; }
  .variant-c .method-list li { grid-template-columns: 2.45rem minmax(0, 1fr); gap: .65rem; }
  .variant-c .method-list li:not(:last-child)::after { inset-inline-start: 1rem; }
}
