/* ==========================================================================
   Breakpoint: max-width 1199px
   ========================================================================== */
@media screen and (max-width: 1199px) {
    /* Base Layout / Structure / Header / Common */
    :root {
        --font-size-xxl: 180%;
        --font-size-xl: 170%;
        --font-size-l: 160%;
        --font-size-m: 140%;
       
        --mb-section: 10%;
        --mb-container: 8%;
        --mb-case: 6%;
        --mb-pack: 4%;
        --mb-item: 2%;
       
    }
    
    
    /* Base Layout and Header */
    .box,
    .box_full {
        width: min(92%, 1040px);
        min-width: 0;
    }
    #h_box {
        height: 108px;
    }
    #h_left img {
        width: 160px;
    }
    .header-links {
        gap: 20px;
    }
    .utility-nav {
        gap: 15px;
    }
    .header-message {
        font-size: 12px;
    }
    #mainNav li a {
        padding: 0 16px;
        font-size: 14px;
    }
    .content-panel {
        padding: 36px;
    }

    /* Page: Index */
    #page_index .hero {
        min-height: 630px;
    }
    #page_index .hero-bg {
        height: 580px;
    }
    #page_index .hero-inner {
        height: 630px;
    }
    #page_index .hero-copy {
        left: 70px;
        top: 102px;
    }
    #page_index .hero-copy h2 {
        font-size: 52px;
    }
    #page_index .hero-badge {
        right: 52px;
        width: 192px;
        height: 192px;
        padding-top: 24px;
    }
    #page_index .hero-product img {
        width: 216px;
        height: 180px;
    }
    #page_index .hero-product p {
        width: 400px;
        padding: 40px 32px 26px;
    }
    #page_index .link-grid {
        gap: 25px;
        margin-bottom: 110px;
    }

    /* Page: Item */
    #page_item .item-intro {
        padding: 32px 38px 32px 48px;
    }
    #page_item .item-anchor {
        gap: 14px;
    }
    #page_item .product-detail,
    #page_item .cap-layout {
        gap: 32px;
    }
}

/* ==========================================================================
   Breakpoint: max-width 991px
   ========================================================================== */
@media screen and (max-width: 991px) {
    /* Base Layout / Structure / Header */
    /* Variables and Container */
    :root {
        --font-size-xxl: 180%;
        --font-size-xl: 160%;
        --font-size-l: 140%;
        --font-size-m: 120%;
    }
    .box,
    .box_full {
        width: min(92%, 760px);
    }
    
    /* Display Switch */
    .pc {
        display: none;
    }
    .sp {
        display: block;
    }
    #h_box {
        height: 92px;
    }
    #h_left img {
        width: 150px;
    }
    
    /* Mobile Header Controls */
    #h_right .sp {
        display: flex;
        align-items: center;
        gap: 14px;
    }
    .contact-mini {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        display: grid;
        place-items: center;
        background: var(--c-main);
        transition: transform .2s ease, background-color .2s ease, opacity .2s ease;
    }
    .contact-mini:hover {
        opacity: 1;
        background: var(--c-main-light);
        transform: scale(1.06);
    }
    .contact-mini:focus-visible {
        outline: 3px solid #efc620;
        outline-offset: 3px;
    }
    .contact-mini img {
        width: 22px;
    }
    .menu-toggle {
        position: relative;
        z-index: 1004;
        display: flex;
        width: 32px;
        height: 23px;
        flex-direction: column;
        justify-content: space-between;
    }
    .menu-toggle span {
        display: block;
        width: 32px;
        height: 3px;
        background: var(--c-main);
        border-radius: 2px;
        transition: all .4s ease;
    }
    .menu-toggle input {
        position: absolute;
        inset: -8px;
        opacity: 0;
        cursor: pointer;
        z-index: 2;
    }
    .no-scroll .menu-toggle span {
        background: #fff;
    }
    .menu-toggle input:checked ~ span:nth-child(2) {
        transform: translateY(10px) rotate(45deg);
    }
    .menu-toggle input:checked ~ span:nth-child(3) {
        opacity: 0;
    }
    .menu-toggle input:checked ~ span:nth-child(4) {
        transform: translateY(-10px) rotate(-45deg);
    }
    .no-scroll {
        height: 100vh;
        overflow: hidden;
    }
    
    /* Drawer Navigation */
    .menu-overlay {
        position: fixed;
        inset: 0;
        visibility: hidden;
        opacity: 0;
        background: rgba(0, 0, 0, .55);
        transition: .3s;
        z-index: 998;
    }
    .menu-overlay.open {
        visibility: visible;
        opacity: 1;
    }
    #mainNav {
        border: 0;
    }
    #mainNav .panel {
        position: fixed;
        top: 0;
        right: 0;
        z-index: 999;
        width: min(78%, 360px);
        height: 100vh;
        padding-top: 85px;
        overflow-y: auto;
        background: var(--c-main);
        transform: translateX(100%);
        transition: transform .35s ease;
    }
    #mainNav .panel.open {
        transform: translateX(0);
    }
    #mainNav ul {
        display: block;
        height: auto;
    }
    #mainNav li,
    #mainNav li:last-child {
        border: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .18);
    }
    #mainNav li a {
        padding: 13px 30px;
        color: #fff;
    }
	#mainNav li a:hover {
		color: #fff;
		opacity: 1;
	}
    #mainNav li a::after {
        display: none;
    }
    
    /* Sub Page Main Visual */
    #main_img_sub {
    background-size: cover;
        min-height: 180px;
    }
    
    /* Headings */
    .title_main {        
        padding-top: 90px;
    }

    /* Common */
    .section {
        margin-bottom: 10%;
    }
    .container {
        margin-bottom: 8%;
    }
    .case {
        margin-bottom: 6%;
    }
    .pack {
        margin-bottom: 4%;
    }
    .item {
        margin-bottom: 2%;
    }
    .pad_sty {
        padding: 8% 0;
    }
    .box_sty {
        padding: 4%;
    }
    .content-panel {
        padding: 30px;
        border-radius: 22px;
    }

    /* Page: Index */
    #page_index .hero {
        min-height: 598px;
    }
    #page_index .hero-bg {
        height: 525px;
    }
    #page_index .hero-inner {
        height: 598px;
    }
    #page_index .hero-copy {
        left: 5%;
        top: 72px;
    }
    #page_index .hero-copy p {
        font-size: 16px;
    }
    #page_index .hero-copy h2 {
        font-size: clamp(38px, 7vw, 50px);
    }
    #page_index .hero-copy strong {
        font-size: 16px;
    }
    #page_index .hero-badge {
        width: 170px;
        height: 170px;
        right: 5%;
        top: 284px;
        padding-top: 19px;
        font-size: 12px;
    }
    #page_index .hero-badge img {
        width: 45px;
    }
    #page_index .hero-badge b {
        font-size: 17px;
    }
    #page_index .hero-product {
        left: 5%;
    }
    #page_index .hero-product img {
        width: 180px;
        height: 146px;
    }
    #page_index .hero-product p {
        width: min(360px, 46vw);
        padding: 28px 25px;
        font-size: 11px;
    }
    #page_index #information {
        
    }
    #page_index #information h2 {
        font-size: 36px;
    }
    #page_index .link-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
        margin-bottom: 88px;
    }

    /* Page: Item */
    #page_item .item-anchor {
        grid-template-columns: repeat(3, 1fr);
    }
    #page_item .item-anchor a:nth-last-child(-n+3) {
        transform: none;
    }
    #page_item .item-anchor a:hover,
    #page_item .item-anchor a:nth-last-child(-n+3):hover {
        transform: translateY(-3px);
    }
    #page_item .product-detail,
    #page_item .cap-layout {
        grid-template-columns: 1fr 1fr;
        gap: 25px;
    }
    #page_item .cap-info {
        padding-top: 10px;
    }
    #page_item .cap-info .pdf-list {
        margin: 20px 0 28px;
    }

    /* Page: Equipment */
    #page_equipment .inspection-device {
        gap: 28px;
    }

    /* Page: Voice */
    #page_voice .voice-pair > * {
        width: 100%;
        margin-bottom: var(--mb-pack);
    }
    #page_voice .voice-pair > *:last-child {
        margin-bottom: 0;
    }

    /* Page: Flow */
    #page_flow .flow-process {
        padding-left: 76px;
    }
    #page_flow .flow-process::before {
        top: 54px;
        bottom: 54px;
        left: 25px;
    }
    #page_flow .flow-step {
        margin-bottom: 26px;
    }
    #page_flow .flow-step:last-child::before {
        top: 68px;
        left: -53px;
    }
    #page_flow .flow-card {
        padding: 28px;
    }
    #page_flow .flow-index {
        top: 21px;
        left: -76px;
        width: 52px;
        padding-bottom: 19px;
    }
    #page_flow .flow-card::before {
        top: 60px;
        left: -27px;
        width: 27px;
    }

    /* Page: Recruit */
    #page_recruit .recruit-interview {
        padding: 32px;
    }
    #page_recruit .recruit-facts {
        grid-template-columns: repeat(2, 1fr);
    }
    #page_recruit .recruit-message .img,
    #page_recruit .recruit-message .msg {
        flex-basis: auto;
    }

    /* Page: Company */
    #page_company .company-overview-grid {
        display: block;
    }
    #page_company .company-gallery {
        display: flex;
        gap: 3.5%;
        margin-top: 28px;
    }
    #page_company .company-gallery figure {
        width: calc(33.333% - 2.333%);
        margin-bottom: 0;
    }

    /* Page: Greeting */
    #page_greeting .greeting-split {
        display: block;
    }
    #page_greeting .greeting-portrait {
        position: static;
        max-width: 460px;
        margin: 0 auto 32px;
    }
    #page_greeting .greeting-portrait img {
        aspect-ratio: 4 / 4.6;
    }
}

/* ==========================================================================
   Breakpoint: max-width 767px
   ========================================================================== */
@media screen and (max-width: 767px) {
    /* Header */
    #htop {
        display: none;
    }
    #h_box {
        height: 72px;
    }
    #h_left img {
        width: 128px;
    }

    /* Footer */
    .contact-cta {
        min-height: 265px;
        padding-top: 46px;
    }
    .contact-cta p {
        font-size: 14px;
    }
    .contact-cta h2 {
        font-size: 26px;
    }
    
    #footer {
        
    }
    #footer_box {
        padding: 35px 0;
        display: block;
        text-align: center;
    }
    #footer .footer-logo {
        margin-bottom: 20px;
    }
    #footer .address {
        margin-bottom: 22px;
    }
    #footer ul {
        justify-content: center;
        margin-bottom: 18px;
    }
    #copyright {
        margin: 0;
        text-align: center;
    }

    /* Common */
    .content-panel {
        padding: 24px 18px;
        border-radius: 18px;
    }
    .collum3,
    .collum4 {
        gap: 3.5%;
    }
    .collum3 > *,
    .collum4 > * {
        width: calc(50% - 1.75%);
        margin-bottom: 3.5%;
    }
    .collum3 .collum_span2 {
        width: 100%;
    }
    .collum_sp1 > * {
        width: 100%;
    }
    .tb_cell th,
    .tb_cell td {
        width: 100% !important;
        display: block;
    }
    .pic_l,
    .pic_r {
        flex-direction: column;
    }
    .pic_l.img_top,
    .pic_r.img_top {
        flex-direction: column-reverse;
    }
    .container .msg,
    .container .img {
        flex: 0 0 auto;
        width: 100%;
    }
    .container .img {
        margin-bottom: 4%;
    }
    .img_top .img {
        margin-bottom: 4%;
    }
    .img_top .msg {
        margin-bottom: 0;
    }
    .title_num {
        gap: 12px;
        margin-bottom: var(--mb-pack);
        padding-bottom: 12px;
        font-size: 125%;
    }
    .title_num::after {
        width: 58px;
    }
    .title_num em {
        flex-basis: 46px;
        width: 46px;
        height: 46px;
    }
    .flex_box,
    .flex_between {
        display: block;
    }
    .flex_box > *,
    .flex_between > * {
        margin-bottom: var(--mb-pack);
    }
    .flex_box > *:last-child,
    .flex_between > *:last-child {
        margin-bottom: 0;
    }
    
    /* Common Buttons and Scroll */
    .btn_area {
        display: block;
    }
    .btn_sty,
    .btn_line {
        width: 100%;
        min-width: 0;
        margin-bottom: var(--mb-item);
    }
    .btn_area .btn_sty:last-child,
    .btn_area .btn_line:last-child {
        margin-bottom: 0;
    }
    .scroll .tb_scroll {
        min-width: 680px;
    }
    
    
    .qa-item .trigger {
        padding: 16px 38px 16px 45px;
        font-size: 100%;
    }
    .qa-item .trigger::before {
        top: 14px;
        left: 4px;
        width: 27px;
        height: 27px;
    }
    .qa-item .trigger::after {
        top: 15px;
        right: 6px;
    }
    .qa-item .acordion {
        padding: 0 34px 16px 45px;
    }
    .qa-item .acordion::before {
        left: 4px;
        width: 27px;
        height: 27px;
    }

    /* Page: Index */
    #page_index #information {
        
    }
    #page_index #information h2 {
        margin-bottom: 26px;
        font-size: 29px;
    }
    #page_index .news-list li {
        display: block;
        padding: 14px 0;
    }
    #page_index .news-list time {
        display: block;
        margin-bottom: 6px;
    }

    #page_index .link-grid {
        grid-template-columns: 1fr;
        gap: 15px;
        margin-bottom: 52px;
    }
    #page_index .link-grid a {
        height: 94px;
        padding: 21px 24px 18px 84px;
    }
    #page_index .link-grid img {
        left: 25px;
        top: 25px;
    }

    /* Hero */
    #main_img_wrap {
        background-size: 160%;
    }
    #main_img_wrap h2{
        padding: 10% 6% 6% 6%;        
    }

    /* Page: Item */
    #page_item {
        padding-bottom: 30px;
    }
    #page_item .item-intro {
        margin-bottom: 30px;
        padding: 24px 20px 24px 25px;
        font-size: 100%;
    }
    #page_item .item-anchor {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
        padding: 16px;
    }
    #page_item .item-anchor a {
        min-height: 64px;
        padding: 12px 8px;
        font-size: 90%;
    }
    #page_item .product-detail,
    #page_item .cap-layout {
        display: block;
    }
    #page_item .product-detail figure,
    #page_item .cap-photo,
    #page_item .surface-list img {
        margin-bottom: 22px;
    }
    #page_item .press-grid {
        grid-template-columns: 1fr 1fr;
        gap: 22px 14px;
    }
    #page_item .press-grid .featured {
        grid-column: 1 / 3;
        width: 80%;
    }
    #page_item .item-feature img {
        width: 100%;
    }
    #page_item .product-description {
        padding: 22px;
    }

    /* Page: Equipment */
    #page_equipment .inspection-device {
        display: block;
        margin-top: 30px;
    }
    #page_equipment .inspection-device img {
        margin-bottom: 22px;
    }
    #page_equipment .equipment-table th,
    #page_equipment .equipment-table td {
        padding: 9px 11px;
        white-space: nowrap;
    }

    /* Page: Voice */
    #page_voice .voice-answer {
        padding: 20px 18px;
    }
    #page_voice .voice-points li {
        margin-bottom: 8px;
        line-height: 1.65;
    }

    /* Page: Recruit */
    #page_recruit .recruit-voices .title_sub{ margin-bottom: 0;}
    #page_recruit .recruit-voices .container{ margin-bottom: 4%;}
    
    
    
    #page_recruit .recruit-interview {
        padding: 22px 18px;
    }
    
    #page_recruit .recruit-facts div {
        min-height: 0;
        margin-bottom: 10px;
        padding: 14px;
    }
    
    #page_recruit .recruit-facts dd {
        text-align: center;
    }
    #page_recruit .recruit-table th {
        width: 100%;
    }
    #page_recruit .recruit-signature {
        margin-top: 25px;
    }

    /* Page: Company */
    #page_company .company-table th,
    #page_company .company-history-table th {
        width: 100%;
    }
    #page_company .company-gallery {
        display: block;
    }
    #page_company .company-gallery figure {
        width: 100%;
        margin-bottom: 18px;
    }
    #page_company .company-philosophy ol {
        margin-bottom: 22px;
    }
    #page_company .company-map-list p {
        min-height: 0;
    }
    #page_company .company-map-sample {
        min-height: 150px;
    }
    #page_company .company-team {
        margin-top: 18px;
    }

    /* Page: Greeting */
    #page_greeting .greeting-portrait figure {
        padding: 12px;
        border-radius: 5px 26px 5px 5px;
    }
    #page_greeting .greeting-portrait img {
        aspect-ratio: 4 / 5;
    }
    #page_greeting .greeting-letter {
        padding: 28px 18px;
    }
    #page_greeting .greeting-lead {
        padding-bottom: 20px;
        font-size: 100%;
    }
    #page_greeting .greeting-body {
        line-height: 1.9;
    }
    #page_greeting .greeting-body p {
        margin-bottom: 22px;
    }
    #page_greeting .greeting-body blockquote {
        margin: 28px 0;
        padding: 16px 12px;
    }
    #page_greeting .greeting-body blockquote::before,
    #page_greeting .greeting-body blockquote::after {
        display: none;
    }
    #page_greeting .greeting-signature {
        margin-top: 28px;
    }

    /* Page: Privacy */
    #page_privacy .privacy-document {
        padding: 28px 18px;
    }
    #page_privacy .privacy-intro {
        margin-bottom: 34px;
        padding: 18px;
        font-size: 100%;
        line-height: 1.85;
    }
    #page_privacy .privacy-block {
        margin-bottom: 28px;
        line-height: 1.85;
    }
    #page_privacy .privacy-exceptions {
        margin-left: 0;
        padding: 12px 12px 12px 18px;
    }
    #page_privacy .privacy-contact {
        margin-top: 34px;
        padding: 20px 18px;
    }

    /* Page: Sitemap */
    #page_sitemap .sitemap-list {
        padding: 8px 18px;
    }
}

/* ==========================================================================
   Breakpoint: max-width 575px
   ========================================================================== */
@media screen and (max-width: 575px) {
    /* Base Layout / Header */
    .box,
    .box_full {
        width: 90%;
    }
    #h_left img {
        width: 116px;
    }
    .contact-mini {
        width: 40px;
        height: 40px;
    }

    /* Footer */
    .contact-cta h2 {
        font-size: 23px;
    }

    /* Common */
    .collum2 > *,
    .collum3 > *,
    .collum4 > * {
        width: 100%;
    }

    /* Page: Index */
    #page_index .hero-copy p {
        font-size: 13px;
    }
    #page_index .hero-copy h2 {
        font-size: 29px;
    }
    #page_index .hero-badge {
        top: 226px;
        right: 3%;
    }
    #page_index #information h2 {
        font-size: 26px;
    }
    #page_index .link-grid b {
        font-size: 16px;
    }

    /* Page: Item */
    #page_item .item-anchor {
        grid-template-columns: 1fr;
    }
    #page_item .press-grid {
        display: block;
    }
    #page_item .press-grid figure {
        width: 100%;
        margin-bottom: 24px;
    }
    #page_item .press-grid .featured {
        width: 100%;
    }
}
