/* Cast catalog controls and inline profile details. */
.cast-sortbar{
  display:grid;
  grid-template-columns:minmax(240px,340px) minmax(0,1fr);
  align-items:end;
  gap:12px 24px;
  margin:14px 0 9px;
  padding:13px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.cast-sortbar label{display:flex;flex-direction:column;gap:6px;min-width:0}
.cast-sortbar label>span{font-size:12px;letter-spacing:.08em;color:#45525e}
.cast-sortbar select{width:100%;min-height:44px;padding:8px 42px 8px 13px;font-size:14px}
.cast-sortbar option:disabled{color:#7b858e}
#cast-sort-note{margin:0;font-size:12px;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
.cast-review{
  margin:9px 0 0;
  color:#45525e;
  font-size:12px;
  line-height:1.7;
  font-variant-numeric:tabular-nums;
}
.cast-profile-intro{margin:0 0 18px;color:var(--ink);font-size:14px;line-height:1.95}
.cast-detail-title{margin:20px 0 9px;color:var(--ink);font-size:12px;letter-spacing:.07em;font-weight:600}
.cast-profile-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 16px;
  margin:0;
  border-top:1px solid var(--line);
}
.cast-profile-facts>div{min-width:0;padding:9px 0;border-bottom:1px solid var(--line)}
.cast-profile-facts dt{color:var(--muted);font-size:11px}
.cast-profile-facts dd{margin:3px 0 0;color:var(--ink);font-size:13px;overflow-wrap:anywhere}
.cast-trait-group{margin:0}
.cast-traits{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}
.cast-traits li{padding:5px 9px;background:var(--ice);color:#35434e;font-size:11px;line-height:1.5}
.cast-profile-questions{margin:0;border-top:1px solid var(--line)}
.cast-profile-questions>div{padding:11px 0;border-bottom:1px solid var(--line)}
.cast-profile-questions dt{color:#45525e;font-size:11px}
.cast-profile-questions dd{margin:5px 0 0;color:var(--ink);font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.cast-official-more{margin-top:22px;padding-top:15px;border-top:1px solid var(--line)}

@media(max-width:680px){
  .cast-sortbar{grid-template-columns:1fr;align-items:start;gap:7px;margin:10px 0 7px;padding:10px 0}
  .cast-sortbar label{gap:5px}
  .cast-sortbar select{min-height:44px;font-size:16px}
  #cast-sort-note{font-size:10px;line-height:1.5}
  .cast-profile-facts{grid-template-columns:1fr}
  .cast-profile-intro{font-size:14px}
  .cast-profile-questions dd{font-size:14px}
}

@media print{
  .cast-sortbar{display:none}
  .cast-review{color:#202124}
}

/* Text-only opening: the reservation route starts before the cast portraits. */
.brand-title{max-width:none;white-space:nowrap}
.hero.hero-text-only{
  display:grid;
  grid-template-columns:minmax(0,760px);
  justify-content:center;
  min-height:0;
  padding-top:48px;
  padding-bottom:46px;
}
.hero-text-only .hero-copy{
  display:flex;
  width:100%;
  max-width:760px;
  align-items:center;
  text-align:center;
  padding:0;
}
.hero-text-only .hero-copy>.eyebrow{margin-bottom:12px}
.hero-text-only .hero-copy>h1{margin-bottom:14px}
.hero-text-only .hero-copy>h2{font-size:clamp(40px,4vw,56px);line-height:1.3;margin-bottom:18px}
.hero-text-only .hero-copy>h2 br{display:none}
.hero-text-only .hero-lead{max-width:520px;line-height:1.75;margin-bottom:20px}
.hero-text-only .hero-actions{gap:7px;margin-inline:auto}
.hero-text-only .hero-consult{text-align:left}
.hero-text-only .hero-aside{width:100%;margin-top:8px;text-align:center}

@media(max-width:900px){
  .hero.hero-text-only{grid-template-columns:minmax(0,620px);padding:42px 30px 40px}
}

@media(max-width:600px){
  .header{padding-inline:16px;gap:8px}
  .brand{gap:8px}
  .brand .official-logo{width:124px}
  .brand-title{max-width:none;padding-left:10px;font-size:10px;line-height:1.4;white-space:nowrap}
  .header nav{gap:8px;flex-shrink:0}
  .header nav>a{font-size:11px}
  .hero.hero-text-only{display:block;padding:24px 20px}
  .hero-text-only .hero-copy{max-width:none}
  .hero-text-only .hero-copy>h1{margin-bottom:10px}
  .hero-text-only .hero-copy>h2{font-size:34px;line-height:1.35;margin-bottom:10px}
  .hero-text-only .hero-copy>h2 br{display:none}
  .hero-text-only .hero-copy>h2>span{display:block}
  .hero-text-only .hero-lead{margin-bottom:12px}
  .hero-text-only .hero-aside{margin-top:4px}
}

/* Compact one-column cast catalog: small portrait, details beside it, full profile below. */
.cast-grid{
  grid-template-columns:minmax(0,1fr);
  grid-auto-flow:row;
  grid-auto-columns:auto;
  gap:0;
  align-items:start;
  width:100%;
  margin:16px 0 0;
  padding:0;
  overflow:visible;
  scroll-snap-type:none;
  scroll-padding:0;
  overscroll-behavior:auto;
  scrollbar-width:auto;
}
.cast-card{
  display:grid;
  grid-template-columns:184px minmax(0,1fr);
  column-gap:24px;
  align-items:start;
  min-width:0;
  padding:24px 0;
  border-top:1px solid var(--line);
  scroll-snap-align:none;
}
.cast-card:last-child{border-bottom:1px solid var(--line)}
.cast-portrait{grid-column:1;grid-row:1;aspect-ratio:3/4}
.cast-copy{grid-column:2;grid-row:1;padding:0;min-width:0}
.cast-copy h3{font-size:26px;line-height:1.35}
.cast-description{font-size:14px;line-height:1.7;margin-top:4px}
.cast-price{margin-top:10px;padding-top:9px}
.cast-price strong{font-size:28px;line-height:1.3}
.cast-price small{font-size:11px;line-height:1.55;margin-top:2px}
.cast-review{margin-top:5px;font-size:11px;line-height:1.55}
.cast-schedule{font-size:13px;line-height:1.65;margin:7px 0}
.cast-select{max-width:380px;min-height:46px;margin-top:8px}
.cast-next{max-width:380px;min-height:46px;margin-top:5px}
.cast-card>.accordion{grid-column:1/-1;margin-top:12px}
.cast-card>.accordion .accordion-toggle{font-size:13px;min-height:50px;padding:13px 1px}
.cast-card>.accordion .accordion-panel{font-size:14px;padding:3px 6px 22px}

@media(max-width:900px){
  .cast-card{grid-template-columns:160px minmax(0,1fr);column-gap:20px;padding:21px 0}
  .cast-copy h3{font-size:24px}
  .cast-price strong{font-size:26px}
}

@media(max-width:600px){
  .cast-grid{grid-template-columns:minmax(0,1fr);margin-top:10px}
  .cast-card{grid-template-columns:100px minmax(0,1fr);column-gap:10px;padding:14px 0}
  .cast-portrait{aspect-ratio:3/4}
  .cast-portrait .selected-tag{right:4px;bottom:4px;padding:3px 6px;font-size:9px}
  .cast-copy{padding:0}
  .cast-copy h3{font-size:20px;line-height:1.3;letter-spacing:.035em}
  .cast-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.45;margin-top:2px}
  .cast-price{display:block;margin-top:6px;padding-top:6px}
  .cast-price strong{font-size:23px;line-height:1.25;white-space:normal}
  .cast-price small{font-size:11px;line-height:1.4;margin-top:1px}
  .cast-review{font-size:11px;line-height:1.45;margin-top:3px}
  .cast-schedule{font-size:12px;line-height:1.5;margin:4px 0}
  .cast-select{min-height:44px;margin-top:6px;padding:7px 6px;font-size:12px;line-height:1.4}
  .cast-next{min-height:44px;margin-top:4px;padding-inline:6px;font-size:11px;line-height:1.4}
  .cast-card>.accordion{margin-top:8px}
  .cast-card>.accordion .accordion-toggle{font-size:12px;line-height:1.5;min-height:44px;padding:9px 1px}
  .cast-card>.accordion .accordion-panel{font-size:14px;line-height:1.9;padding:2px 2px 20px}
}

@media(max-width:360px){
  .header{padding-inline:14px;gap:7px}
  .brand .official-logo{width:110px}
  .brand-title{font-size:9.5px;padding-left:8px}
  .header nav{gap:7px}
  .hero-text-only .hero-copy>h2{font-size:32px}
  .cast-card{grid-template-columns:94px minmax(0,1fr);column-gap:9px}
  .cast-copy h3{font-size:19px}
  .cast-price strong{font-size:22px}
  .cast-schedule{font-size:11.5px}
}

@media print{
  .cast-grid{grid-template-columns:minmax(0,1fr);gap:0}
  .cast-card{grid-template-columns:170px minmax(0,1fr);column-gap:24px;break-inside:avoid}
}
