/* One RIPAC site, deliberately composed for desktop, tablet, and phone. */

@media (max-width:1050px){
  body.public-mode #public-view{padding-top:76px}
  body.public-mode .public-header{padding-right:clamp(18px,4vw,40px);padding-left:clamp(18px,4vw,40px)}
  .public-page{min-height:calc(100vh - 76px);padding:clamp(2.75rem,6vw,4.75rem) clamp(18px,5vw,54px)}
  .home-page{background:linear-gradient(140deg,#fff 0,#fff 72%,#f1f5f8 72%,#f1f5f8 100%)}
  .home-intro{max-width:720px;padding:clamp(.6rem,3vw,2rem) 0}
  .home-intro h1{max-width:690px;font-size:clamp(3rem,7.4vw,4.85rem)}
  .registration-layout,.forum-layout{gap:2rem;max-width:920px}
  .speaker-record{grid-template-columns:240px minmax(0,1fr);gap:2.25rem}
  .speaker-photo,.speaker-monogram{width:220px;height:220px}
  .schedule-day{grid-template-columns:180px minmax(0,1fr);gap:1.5rem}
  .admin-shell{padding:2rem clamp(18px,4vw,44px) 4rem}
  .admin-heading{gap:1rem}
}

@media (max-width:800px){
  .details-band{gap:1.25rem}
  .details-band p{font-size:.91rem}
  .page-heading{margin-bottom:2.25rem}
  .page-heading h1{font-size:clamp(2.55rem,9vw,4rem)}
  .registration-heading h1{font-size:clamp(2.65rem,9.5vw,4rem)}
  .registration-information{padding:0}
  .registration-information h2{font-size:1.65rem}
  .registration-form{padding:1.35rem}
  .registration-form>.form-section-heading h2{font-size:1.62rem}
  .form-section-heading{align-items:flex-start;flex-direction:column;gap:.45rem}
  .form-grid,.address-grid{grid-template-columns:1fr 1fr}
  .address-grid{grid-template-columns:1fr 1fr}
  .address-grid label:last-child{grid-column:1/-1}
  .speaker-record{grid-template-columns:170px minmax(0,1fr);gap:1.5rem;padding:1.8rem 0}
  .speaker-photo,.speaker-monogram{width:160px;height:160px;font-size:2rem}
  .speaker-record h2{font-size:1.9rem}
  .speaker-record p:last-child{font-size:.94rem;line-height:1.65}
  .schedule-day{grid-template-columns:1fr;gap:.7rem}
  .schedule-day-header{display:flex;align-items:baseline;gap:.8rem}
  .schedule-day-header h2{margin:0;font-size:1.45rem}
  .schedule-item{grid-template-columns:112px minmax(0,1fr);gap:1rem}
  .session-details{grid-template-columns:1fr}
  .admin-heading{align-items:flex-start;flex-direction:column}
  .admin-summary{grid-template-columns:repeat(2,1fr)}
  .admin-workspace-nav{margin-bottom:1rem}
}

@media (max-width:620px){
  body.public-mode #public-view{padding-top:72px}
  body.public-mode .public-header{min-height:72px;padding-right:18px;padding-left:18px}
  .public-page{min-height:calc(100vh - 72px);padding:2.5rem 18px 3rem}
  .home-page{background:linear-gradient(155deg,#fff 0,#fff 82%,#f1f5f8 82%,#f1f5f8 100%)}
  .home-intro h1{margin:.7rem 0 1.1rem;font-size:clamp(2.7rem,13vw,3.8rem);line-height:.98}
  .home-intro>p:not(.page-kicker):not(.venue-line){font-size:1.02rem;line-height:1.6}
  .venue-line{font-size:.98rem}
  .home-actions{gap:.8rem;margin-top:1.5rem}
  .home-actions .navy-button{width:100%;text-align:center}
  .details-band{grid-template-columns:1fr;gap:1.15rem;margin-top:2.2rem;padding-top:1.15rem}
  .details-band div{padding-bottom:1rem;border-bottom:1px solid var(--line)}
  .details-band div:last-child{padding-bottom:0;border-bottom:0}
  .program-heading h1{font-size:clamp(2.65rem,13vw,3.65rem)}
  .program-heading>p:last-child{font-size:.95rem}
  .program-heading-rule{margin-top:1.5rem}
  .schedule-day-header{display:block}
  .schedule-day-header h2{margin-top:.4rem}
  .schedule-item{grid-template-columns:1fr;gap:.45rem;padding:1.15rem 0}
  .schedule-time{display:flex;align-items:baseline;gap:.55rem;padding:0}
  .schedule-time strong,.schedule-time span{display:inline;margin:0}
  .schedule-content h3{font-size:1.28rem}
  .schedule-content p{font-size:.91rem}
  .registration-heading{margin-bottom:1.9rem}
  .registration-heading h1{font-size:clamp(2.45rem,12vw,3.35rem)}
  .registration-heading>p:last-child{font-size:.96rem}
  .registration-form{gap:1rem;padding:1.1rem}
  .registration-step{padding:1rem}
  .registration-step-header{grid-template-columns:2rem minmax(0,1fr);gap:.7rem}
  .registration-step-header h2{font-size:1.14rem}
  .registration-step-header p{font-size:.86rem}
  .form-grid,.address-grid{grid-template-columns:1fr}
  .address-grid label:last-child{grid-column:auto}
  input,select,textarea{min-height:46px;font-size:16px}
  textarea{min-height:100px}
  .additional-attendees{padding:.9rem}
  .additional-attendee-row{padding:.85rem}
  .additional-attendee-title{align-items:flex-start;flex-direction:column;gap:.25rem}
  .order-summary{gap:1rem;padding:1.05rem}
  .order-summary h2{font-size:1.25rem}
  .order-summary-line,.order-summary-total{font-size:.88rem}
  .speaker-record{grid-template-columns:1fr;gap:1rem;padding:1.65rem 0;text-align:left}
  .speaker-photo,.speaker-monogram{width:128px;height:128px}
  .speaker-record h2{font-size:1.7rem}
  .speaker-role{font-size:.67rem}
  .speaker-record p:last-child{font-size:.92rem}
  .venue-links{align-items:flex-start;flex-direction:column;gap:.7rem}
  .local-area-section{margin-top:2rem}
  .local-area-section>h2{font-size:1.6rem}
  .forum-form{padding:1.1rem}
  .forum-topic h2{font-size:1.22rem}
  .forum-reply{margin-left:.45rem}
  footer{padding:1.1rem 18px;font-size:.72rem}
  .admin-shell{padding:1.5rem 14px 3rem}
  .admin-heading h1{font-size:2.25rem}
  .admin-summary{grid-template-columns:1fr 1fr;gap:.65rem}
  .admin-summary article{padding:1rem}
  .admin-summary strong{font-size:1.65rem}
  .admin-workspace-nav{position:sticky;top:76px;z-index:20;margin-right:-14px;margin-left:-14px;padding:.45rem 14px;border-right:0;border-left:0;border-radius:0}
  .admin-list-panel,.admin-editor-panel{padding:1rem;border-radius:8px}
  .admin-table{min-width:640px;font-size:.82rem}
}

@media (max-width:360px){
  .conference-mark{font-size:1.03rem}
  .nav-toggle{padding:.55rem .62rem;font-size:.68rem}
  .public-page{padding-right:14px;padding-left:14px}
  .home-intro h1{font-size:2.55rem}
  .registration-form{padding:.85rem}
}

/* Coalition responsive layout */
@media (max-width:900px){
  .conference-brand .conference-logo{width:48px;height:48px}
  .coalition-about{grid-template-columns:1fr;gap:3.25rem}
  .coalition-seal-frame{width:min(76vw,390px);margin:0 auto}
  .executive-board-heading{grid-template-columns:1fr;gap:1rem}
  .executive-board-list{grid-template-columns:1fr}
  .executive-card-featured{grid-template-columns:1fr;min-height:0}
  .executive-card-featured .board-portrait{aspect-ratio:4/3;min-height:0}
}
@media (max-width:560px){
  .coalition-mission{padding-top:3.75rem;padding-bottom:4.25rem}
  .coalition-mission h1{font-size:clamp(2.5rem,14vw,4rem)}
  .coalition-about,.executive-board{padding-top:3.5rem;padding-bottom:3.5rem}
  .executive-card-copy,.executive-card-featured .executive-card-copy{padding:1.55rem}
  .executive-card-featured h3{font-size:2.45rem}
}
/* Bounded About layout keeps the seal, heading and body together on wide screens. */
.coalition-page .coalition-about{max-width:1180px;margin-inline:auto;grid-template-columns:220px minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:start;padding-block:clamp(2.5rem,4vw,4rem)}
.coalition-page .coalition-seal-frame{width:100%;max-width:220px;margin:2.5rem 0 0}
.coalition-page .coalition-about-copy{min-width:0}
.coalition-page .coalition-about-copy h2{max-width:none;font-size:clamp(2rem,3vw,2.75rem);line-height:1.12;letter-spacing:-.035em;margin:.4rem 0 1.5rem;text-wrap:balance}
.coalition-page .coalition-about-copy>p:not(.page-kicker):not(.coalition-signature){max-width:none;font-size:1.125rem;line-height:1.7;overflow-wrap:anywhere}
.coalition-page .coalition-signature{margin-top:1.5rem;padding-top:1rem;font-size:.875rem}
@media(max-width:900px){
  .coalition-page .coalition-about{grid-template-columns:1fr;gap:1.5rem;padding-block:2.5rem}
  .coalition-page .coalition-seal-frame{width:160px;max-width:100%;margin:0}
  .coalition-page .coalition-about-copy h2{font-size:clamp(1.85rem,4.5vw,2.75rem);text-wrap:initial}
}
@media(max-width:560px){
  .coalition-page .coalition-about{gap:1.25rem;padding-block:2rem}
  .coalition-page .coalition-seal-frame{width:132px}
  .coalition-page .coalition-about-copy>p:not(.page-kicker):not(.coalition-signature){font-size:1.0625rem;line-height:1.7}
}
