/*
Theme Name: King Machine
Theme URI: https://www.kingmachine.net/
Author: King Machine
Description: Custom theme migrated from the King Machine static site.
Version: 1.0.0
Text Domain: kingmachine
*/

.km-screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
.km-blog { max-width: 1120px; margin: 0 auto; padding: 150px 24px 100px; }
.km-blog__title { font-size: clamp(32px, 5vw, 56px); margin-bottom: 48px; }
.km-post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.km-post-card { background: #fff; box-shadow: 0 4px 22px rgba(0,0,0,.1); }
.km-post-card a { color: inherit; display: block; text-decoration: none; }
.km-post-card img { display: block; width: 100%; height: auto; }
.km-post-card__body { padding: 20px; }
.km-post-card__meta { color: #777; font-size: 13px; }
.km-blog__intro { max-width: 700px; margin: 0 auto 38px; text-align: center; }
.km-blog__eyebrow { color: #e1007e; font-family: Orbitron, sans-serif; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.km-blog__title { color: #363435; font-family: "Noto Sans JP", sans-serif; font-size: clamp(28px, 4vw, 44px); font-weight: 700; line-height: 1.4; margin: 12px 0; }
.km-blog__lead { color: #646464; line-height: 1.9; }
.km-blog__categories { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 0 auto 46px; }
.km-blog__categories a { border: 1px solid #c8c8c8; color: #363435; font-size: 14px; padding: 8px 16px; text-decoration: none; transition: .2s ease; }
.km-blog__categories a:hover, .km-blog__categories .is-current { background: #363435; border-color: #363435; color: #fff; }
.km-post-grid--single { grid-template-columns: minmax(0, 760px); justify-content: center; }
.km-post-card--featured { background: #363435; margin: 0 0 52px; max-width: none; width: 100%; }
.km-post-card--featured .km-post-card__link { display: grid; grid-template-columns: 1.12fr .88fr; }
.km-post-card--featured .km-post-card__media { aspect-ratio: auto; min-height: 360px; }
.km-post-card--featured .km-post-card__body { align-content: center; color: #fff; display: grid; padding: 48px; }
.km-post-card--featured .km-post-card__label { color: #e1007e; font: 700 13px/1 Orbitron, sans-serif; letter-spacing: .12em; margin-bottom: 16px; text-transform: uppercase; }
.km-post-card--featured .km-post-card__meta, .km-post-card--featured .km-post-card__excerpt { color: rgba(255,255,255,.72); }
.km-post-card--featured .km-post-card__title { color: #fff; font-size: clamp(25px, 3vw, 36px); }
.km-post-grid--secondary { margin-top: 0; }
.km-post-card { overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.km-post-card:hover { box-shadow: 0 10px 32px rgba(0,0,0,.16); transform: translateY(-4px); }
.km-post-card__link { height: 100%; }
.km-post-card__media { aspect-ratio: 16 / 8; background: linear-gradient(135deg, #e1007e, #0009b5); overflow: hidden; }
.km-post-card__media img { height: 100%; object-fit: cover; }
.km-post-card__fallback { align-items: center; color: #fff; display: flex; font: 700 clamp(28px, 5vw, 54px)/.9 Orbitron, sans-serif; height: 100%; justify-content: center; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.km-post-card__body { padding: 26px 28px 28px; }
.km-post-card__meta { display: flex; gap: 12px; margin-bottom: 13px; }
.km-post-card__meta span { color: #e1007e; }
.km-post-card__title { font-family: "Noto Sans JP", sans-serif; font-size: 21px; font-weight: 700; line-height: 1.6; }
.km-post-card__excerpt { color: #646464; line-height: 1.8; margin-top: 12px; }
.km-post-card__more { color: #e1007e; display: inline-block; font-size: 14px; font-weight: 700; margin-top: 22px; }
.km-post-card__more::after { content: " →"; }
.km-blog__empty { background: #fff; color: #646464; padding: 70px 20px; text-align: center; }
.km-blog .pagination { margin-top: 52px; }
.km-blog .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.km-blog .page-numbers { align-items: center; border: 1px solid #d0d0d0; box-sizing: border-box; color: #363435; display: inline-flex; font-size: 14px; font-weight: 700; height: 44px; justify-content: center; min-width: 44px; padding: 0 15px; text-decoration: none; transition: .2s ease; }
.km-blog a.page-numbers:hover { background: #e1007e; border-color: #e1007e; color: #fff; }
.km-blog .page-numbers.current { background: #363435; border-color: #363435; color: #fff; }
.km-blog .page-numbers.prev, .km-blog .page-numbers.next { min-width: 84px; }
.km-article { max-width: 820px; margin: 0 auto; padding: 150px 24px 100px; }
.km-article__title { font-size: clamp(30px, 5vw, 52px); line-height: 1.35; }
.km-article__content { font-size: 17px; line-height: 2; }
.km-article__content img { height: auto; max-width: 100%; }
.km-article__author { color: #646464; font-size: 14px; margin: 18px 0 34px; }
.km-article__eyecatch { margin: 0 0 42px; }
.km-article__eyecatch img { display: block; height: auto; width: 100%; }
.km-related-posts { background: #f3f3f3; padding: 88px 24px 110px; }
.km-related-posts__inner { margin: 0 auto; max-width: 1120px; }
.km-related-posts__eyebrow { color: #e1007e; font-size: 13px; font-weight: 700; letter-spacing: .12em; margin: 0; text-transform: uppercase; }
.km-related-posts h2 { font-family: "Noto Sans JP", sans-serif; font-size: clamp(28px, 4vw, 42px); margin: 9px 0 35px; }
.km-product-detail { max-width: 1120px; margin: 0 auto; padding: 140px 24px 100px; }
.km-product-detail__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .85fr); gap: 56px; }
.km-product-detail__image { width: 100%; height: auto; }
.km-product-detail__spec { border-collapse: collapse; width: 100%; }
.km-product-detail__spec th, .km-product-detail__spec td { border-bottom: 1px solid #ddd; padding: 14px 8px; text-align: left; }
.km-product-detail__spec th { width: 38%; }
.km-item-pickup { background: #29272a; color: #fff; margin: 0 auto 96px; max-width: 1280px; padding: clamp(32px, 6vw, 80px); }
.km-item-pickup__inner { align-items: center; display: grid; gap: clamp(30px, 6vw, 86px); grid-template-columns: minmax(0, 1fr) minmax(280px, .82fr); }
.km-item-pickup__label { color: #ff4ca6; font-size: 13px; font-weight: 700; letter-spacing: .14em; margin: 0 0 15px; }
.km-item-pickup h2 { color: #fff; font-family: "Noto Sans JP", sans-serif; font-size: clamp(30px, 4.2vw, 52px); line-height: 1.35; margin: 0 0 30px; }
.km-item-pickup__model { color: #ff4ca6; font-size: 15px; font-weight: 700; margin: 0; }
.km-item-pickup h3 { color: #fff; font-size: clamp(20px, 2.5vw, 30px); margin: 4px 0 20px; }
.km-item-pickup__text { color: #e4e4e4; line-height: 1.9; }
.km-item-pickup__price { font-size: 18px; font-weight: 700; margin: 26px 0; }
.km-item-pickup__link { border-bottom: 1px solid #ff4ca6; color: #fff; display: inline-block; font-weight: 700; padding-bottom: 7px; text-decoration: none; }
.km-item-pickup__image { align-items: center; background: #fff; display: flex; min-height: 340px; }
.km-item-pickup__image img { height: auto; width: 100%; }
.km-product-detail__availability { border: 1px solid #e1007e; color: #e1007e; display: inline-block; font-size: 14px; font-weight: 700; margin: 4px 0 18px; padding: 5px 12px; }
.km-product-detail__gallery { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); margin-top: 16px; }
.km-product-detail__gallery-button { appearance: none; background: #fff; border: 1px solid #dedede; cursor: pointer; display: block; padding: 0; transition: border-color .2s ease, box-shadow .2s ease; }
.km-product-detail__gallery-button:hover, .km-product-detail__gallery-button:focus-visible, .km-product-detail__gallery-button[aria-pressed="true"] { border-color: #e1007e; box-shadow: 0 0 0 2px rgba(225, 0, 126, .18); outline: 0; }
.km-product-detail__gallery-button img { display: block; height: auto; width: 100%; }
.km-product-detail__pdf { margin-top: 30px; }
.km-product-detail__pdf a { border-bottom: 1px solid #e1007e; color: #363435; font-weight: 700; padding-bottom: 5px; text-decoration: none; }
.km-product-detail__cta { margin: 48px 0 0; }
.km-product-detail__cta-link { align-items: center; background: #363435; box-shadow: inset 4px 0 0 #e1007e; box-sizing: border-box; color: #fff; display: flex; font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 700; justify-content: space-between; letter-spacing: .06em; min-height: 66px; padding: 18px 22px 18px 27px; text-decoration: none; transition: background .25s ease, box-shadow .25s ease, transform .25s ease; width: min(100%, 360px); }
.km-product-detail__cta-link:hover { background: #e1007e; box-shadow: inset 4px 0 0 #363435; color: #fff; transform: translateX(5px); }
.km-product-detail__cta-arrow { font-family: Arial, sans-serif; font-size: 24px; font-weight: 400; line-height: 1; }
.wpcf7 form .wpcf7-response-output { border: 0; margin: 24px 0; padding: 16px; background: #eef8ed; }
.item-MachineList_Title { margin-bottom: 32px; }
.home-Item_List a { color: inherit; text-decoration: none; }
.home-Item_List a:hover .st-ItemList_Title_Text { text-decoration: underline; }
.is-contact .km-article { max-width: 720px; padding-bottom: 150px; }
.is-contact .wpcf7 { margin-top: 48px; }
.is-contact .wpcf7-form > p { margin-top: 28px; }
.is-contact .wpcf7-form > p:first-of-type { margin-top: 0; }
.is-contact .wpcf7-form label { color: #363435; display: block; font-family: "Noto Sans JP", sans-serif; font-size: 16px; font-weight: 700; line-height: 1.7; }
.is-contact .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.is-contact .wpcf7-form-control-wrap .wpcf7-form-control:not(.wpcf7-radio):not(.wpcf7-acceptance),
.is-contact .wpcf7-form-control.wpcf7-text,
.is-contact .wpcf7-form-control.wpcf7-email,
.is-contact .wpcf7-form-control.wpcf7-tel,
.is-contact .wpcf7-form-control.wpcf7-textarea { box-sizing: border-box; color: #363435; width: 100%; background: #fff; border: 1px solid #646464; border-radius: 0; box-shadow: none; font: 16px/1.6 "Helvetica Neue", Arial, "Hiragino Sans", Meiryo, sans-serif; outline: none; padding: 14px 15px; transition: border-color .2s ease, box-shadow .2s ease; }
.is-contact .wpcf7-form-control.wpcf7-textarea { display: block; min-height: 180px; resize: vertical; }
.is-contact .wpcf7-form-control.wpcf7-text:focus,
.is-contact .wpcf7-form-control.wpcf7-email:focus,
.is-contact .wpcf7-form-control.wpcf7-tel:focus,
.is-contact .wpcf7-form-control.wpcf7-textarea:focus { border-color: #e1007e; box-shadow: 0 0 0 2px rgba(225, 0, 126, .15); }
.is-contact .wpcf7-radio { display: flex; flex-direction: column; gap: 10px; }
.is-contact .wpcf7-list-item { display: block; margin: 0; }
.is-contact .wpcf7-radio label, .is-contact .wpcf7-acceptance label { align-items: center; cursor: pointer; display: inline-flex; font-size: 15px; font-weight: 400; gap: 9px; }
.is-contact .wpcf7-radio input, .is-contact .wpcf7-acceptance input { accent-color: #e1007e; height: 18px; margin: 0; width: 18px; }
.is-contact .wpcf7-acceptance { display: block; }
.is-contact .wpcf7-submit { color: #fff; width: 100%; background: linear-gradient(to right, #e1007e 0%, #c200b5 27%, #0009b5 100%); border: 0; border-radius: 0; cursor: pointer; font: 700 17px/1.5 "Noto Sans JP", sans-serif; margin-top: 24px; padding: 20px 44px 20px 20px; position: relative; transition: opacity .2s ease; }
.is-contact .wpcf7-submit:hover { opacity: .84; }
.is-contact .wpcf7-not-valid { border-color: #b41428 !important; border-width: 2px !important; }
.is-contact .wpcf7-not-valid-tip { color: #b41428; font-size: 14px; margin-top: 6px; }
.is-contact .wpcf7 form .wpcf7-response-output { line-height: 1.7; margin: 28px 0 0; }
.km-contact-complete { background: #363435; color: #fff; margin-top: 44px; padding: 52px clamp(24px, 6vw, 68px); }
.km-contact-complete__eyebrow { color: #ff4ca6; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.km-contact-complete h2 { color: #fff; font-family: "Noto Sans JP", sans-serif; font-size: clamp(24px, 4vw, 34px); line-height: 1.5; margin: 12px 0 16px; }
.km-contact-complete p { line-height: 1.9; }
.km-contact-complete a { border-bottom: 1px solid #ff4ca6; color: #fff; display: inline-block; font-weight: 700; margin-top: 24px; padding-bottom: 6px; text-decoration: none; }
@media (min-width: 600px) { .item-MachineList_Title { margin-bottom: 48px; } }
@media (min-width: 600px) { .is-contact .wpcf7-radio { flex-direction: row; flex-wrap: wrap; column-gap: 26px; row-gap: 12px; } }
@media (max-width: 767px) { .km-post-grid, .km-product-detail__grid, .km-item-pickup__inner { grid-template-columns: 1fr; } .km-post-card--featured .km-post-card__link { grid-template-columns: 1fr; } .km-post-card--featured .km-post-card__media { min-height: 220px; } .km-post-card--featured .km-post-card__body { padding: 30px 24px; } .km-blog, .km-article, .km-product-detail { padding-top: 100px; } .km-product-detail__cta { margin-top: 38px; } .km-product-detail__cta-link { width: 100%; } .km-item-pickup { margin-bottom: 64px; } .km-item-pickup__image { min-height: 0; } }
