/* Second pass: responsive public content. CMS panels and CKEditor remain outside these rules. */
#package.spy-site { width: 100%; max-width: 980px; min-width: 0; font-size: 16px; line-height: 1.55; }
#package.spy-site, #package.spy-site :not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { box-sizing: border-box; }
#package.spy-site :is(p,li,td,div,span,blockquote):not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { font-size: inherit; }
#package.spy-site :is(main,section,aside,.content,.column):not(:where(.ccm-ui,.ccm-ui *)) { min-width: 0; overflow-wrap: anywhere; }
#package.spy-site img:not(:where(.ccm-ui,.ccm-ui *)) { max-width: 100%; height: auto; }
#package.spy-site :is(iframe,object,embed):not(:where(.ccm-ui,.ccm-ui *)) { max-width: 100%; }
#package.spy-site iframe:is([src*="youtube.com"],[src*="youtube-nocookie.com"],[src*="vimeo.com"]) { width: 100%; height: auto; aspect-ratio: 16 / 9; }
#package.spy-site p:not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { line-height: 1.55; margin-bottom: 1em; }
#package.spy-site h2:not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { font-size: 1.5rem; line-height: 1.25; }
#package.spy-site h3:not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { font-size: 1.25rem; line-height: 1.3; }
#package.spy-site h4:not(:where(.ccm-ui,.ccm-ui *,.cke,.cke *)) { font-size: 1.125rem; line-height: 1.35; }
#package.spy-site:not(.spy-is-edit-mode) #spy-main { max-width: 100%; overflow-x: auto; }
#package.spy-site input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=image]):not([type=hidden]):not(:where(.ccm-ui,.ccm-ui *)),
#package.spy-site :is(textarea,select):not(:where(.ccm-ui,.ccm-ui *)) { max-width: 100%; width: 100%; min-height: 44px; font: inherit; font-size: 16px; padding: 8px; }
#package.spy-site :is(button,input[type=submit],input[type=button]):not(:where(.ccm-ui,.ccm-ui *)) { min-height: 44px; padding: 8px 14px; font-size: 16px; white-space: normal; }
#package.spy-site .spy-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; margin-bottom: 1em; }
#package.spy-site .spy-table-scroll > table { margin-bottom: 0; }
#package.spy-site .schedule_table { width: 881px; min-width: 720px; max-width: none; table-layout: auto; }
#package.spy-site .schedule_table td select { width: 206px; }
#package.spy-site #footer { width: auto; padding: 16px; }
#package.spy-site #footer p { font-size: 14px; line-height: 1.5; }
@media (prefers-reduced-motion: reduce) {
    #package.spy-site { scroll-behavior: auto; }
}

#package.spy-site #header { width: 100%; height: auto; min-height: 144px; padding: 12px 16px 0; }
#package.spy-site #logo { display: inline-block; width: min(580px,100%); height: auto; padding: 0; }
#package.spy-site #top_navigation { position: static; width: 100%; margin-top: 16px; }
#package.spy-site #top_navigation ul.nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; }
#package.spy-site #top_navigation ul li { float: none; padding: 0; margin: 0; }
#package.spy-site #top_navigation ul a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; color: #3f2447; font-size: 16px; }
#package.spy-site .spy-layout { display: grid; gap: 20px; padding: 20px; }
#package.spy-site .spy-layout-two { grid-template-columns: 180px minmax(0,1fr); }
#package.spy-site .spy-layout-three { grid-template-columns: 180px minmax(0,1fr) 220px; }
#package.spy-site .spy-layout-one { display: block; }
#package.spy-site :is(#content,#content.full,#content_3col,#left,#right_side) { float: none; width: auto; margin: 0; min-width: 0; }
#package.spy-site #navigation { width: auto; margin: 0 0 20px; }
#package.spy-site #navigation ul a { margin: 0; min-height: 44px; padding: 10px 0; color: #98590b; font-size: 16px; }
#package.spy-site #navigation ul ul { margin-left: 12px; }
#package.spy-site #right_side h3 { width: auto; padding: 10px 16px; }
#package.spy-site :is(#left,#right_side) p { font-size: 16px; line-height: 1.5; }
#package.spy-site #home_images img { display: block; }
#package.spy-site #footer ul.nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
#package.spy-site #footer li { margin: 0; padding: 0; }
#package.spy-site #footer a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; }
#package.spy-site .spy-layout > .clear { display: none; }
@media (max-width: 980px) {
    #package.spy-site .spy-layout-three { grid-template-columns: 160px minmax(0,1fr); }
    #package.spy-site .spy-layout-three #right_side { grid-column: 2; }
}
@media (max-width: 760px) {
    #package.spy-site #header { min-height: 0; padding: 12px 12px 0; }
    #package.spy-site #top_navigation ul li { flex: 1 1 calc(50% - 8px); }
    #package.spy-site #top_navigation ul a { padding: 10px 8px; }
    #package.spy-site :is(.spy-layout-two,.spy-layout-three) { grid-template-columns: minmax(0,1fr); padding: 16px; }
    #package.spy-site .spy-layout > main { order: 1; }
    #package.spy-site .spy-layout > #left { order: 2; }
    #package.spy-site .spy-layout > #right_side { order: 3; grid-column: auto; }
    #package.spy-site #navigation ul.nav { display: flex; flex-wrap: wrap; gap: 8px 16px; }
    #package.spy-site #navigation li { padding: 0; margin: 0; }
    #package.spy-site #navigation ul a { padding: 10px 4px; }
}

#package.spy-site .spy-layout > .spy-main { display: block; }
