/* Desktop keeps one composition; tablets and phones adapt to their viewport. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
#site-nav button,#site-nav a,.region-tabs button,.region-tabs button.active{font-family:"NanumSquareRoundExtraBold",var(--font);font-weight:800}
html.desktop-layout body{min-width:1280px}

  html.desktop-layout .wrap{width:1240px;max-width:none;margin-left:auto;margin-right:auto}
  html.desktop-layout .header-main{height:98px;gap:32px}
  html.desktop-layout .banner-stage{height:400px}
  html.desktop-layout .banner-title{font-size:46px}
  html.desktop-layout .program-detail-page .program-page{width:1080px;max-width:none;margin-left:auto;margin-right:auto}


  html.touch-layout .wrap{width:calc(100% - max(24px,env(safe-area-inset-left)) - max(24px,env(safe-area-inset-right)));max-width:1240px;margin-left:auto;margin-right:auto}
  html.touch-layout .program-detail-page .program-page{width:calc(100% - 48px);max-width:1080px;margin-left:auto;margin-right:auto}
  html.touch-layout .header-main>*{min-width:0}
  html.touch-layout .header-main .brand{flex-shrink:0}
  html.touch-layout .site-search{min-width:0}
  html.touch-layout .program-section-nav{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
  html.touch-layout input:not([type=checkbox]):not([type=radio]),html.touch-layout select,html.touch-layout textarea,html.touch-layout .site-search input,html.touch-layout #camp-form input:not([type=checkbox]),html.touch-layout #camp-form select,html.touch-layout #camp-form textarea{font-size:16px}
  html.touch-layout .header-main #search-input{font-size:16px}
  html.touch-layout input[type=search],html.touch-layout input[type=text],html.touch-layout input[type=email],html.touch-layout input[type=tel],html.touch-layout textarea{-webkit-appearance:none;appearance:none;border-radius:0}
  html.touch-layout dialog{max-height:90vh;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}

@media(min-width:761px) and (max-width:1279px){
  html.touch-layout .header-main{gap:24px}
  html.touch-layout .header-phone strong{font-size:20px;white-space:nowrap}
  html.touch-layout .header-phone svg{display:none}
  html.touch-layout .program-order-layout{gap:28px}
  html.touch-layout .program-page .program-section-nav{justify-content:flex-start;gap:26px}
}
@media(min-width:761px) and (max-width:1023px){
  html.touch-layout .header-main{display:grid;grid-template-columns:auto minmax(0,1fr);height:auto;padding-top:22px;padding-bottom:20px;gap:20px}
  html.touch-layout .header-main .site-search{width:100%}
  html.touch-layout .header-phone{display:none}
  html.touch-layout .nav-line nav{gap:24px;overflow-x:auto;overflow-y:hidden;white-space:nowrap}
  html.touch-layout .nav-spacer,html.touch-layout .nav-spacer~a{display:none}
}
@media(max-width:760px){
  html.touch-layout .wrap{width:auto;margin-left:max(20px,env(safe-area-inset-left));margin-right:max(20px,env(safe-area-inset-right))}
  html.touch-layout .nav-line nav{margin:0;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  html.touch-layout .header-main{gap:14px}
  html.touch-layout .site-search{width:100%}
  html.touch-layout .floating-contact{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom))}
  html.touch-layout .footer-main{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
  html.touch-layout .program-order-layout,html.touch-layout .program-topic,html.touch-layout .camp-fields{min-width:0}
  html.touch-layout .program-detail-page .program-page{width:calc(100% - max(20px,env(safe-area-inset-left)) - max(20px,env(safe-area-inset-right)))}
  html.touch-layout .program-hero-picture,html.touch-layout .program-photo-frame{overflow:hidden}
  html.touch-layout .program-schedule-scroll{max-width:100%;-webkit-overflow-scrolling:touch}
  html.touch-layout .camp-controls button{min-height:44px}
}
@media(max-width:380px){html.touch-layout .wrap{margin-left:max(16px,env(safe-area-inset-left));margin-right:max(16px,env(safe-area-inset-right))}html.touch-layout .program-detail-page .program-page{width:calc(100% - max(16px,env(safe-area-inset-left)) - max(16px,env(safe-area-inset-right)))}}
