/* Kinoha identity: bright orange, graphite and white. Shared website chrome and pages. */
#wrapwrap .k-site { --k-orange:#ff7018; --k-orange-dark:#a83c0a; --k-orange-soft:#fff0e8; --k-cream:#f5f6f7; --k-ink:#292d32; --k-ink-soft:#626970; --k-line:#e4e7ea; --k-shadow:0 16px 40px #2024280a; background:#fff; color:var(--k-ink); font-family:'Plus Jakarta Sans',system-ui,sans-serif; line-height:1.7; }
.k-site .k-wrap { max-width:1280px; padding-inline:40px; }
.k-site h1,.k-site h2,.k-site h3 { font-family:'Plus Jakarta Sans',system-ui,sans-serif; font-weight:800; }
.k-site .k-sec { padding-block:88px; }
.k-site .k-head { text-align:left; max-width:none; margin-bottom:36px; }
.k-site .k-head .k-lede { max-width:650px; }
.k-site .k-title { font-size:clamp(2rem,3.8vw,3.2rem); line-height:1.12; letter-spacing:-.045em; font-weight:800; }
.k-site .k-head .k-title::after,.k-site .k-tag::before,.k-site .k-tag::after { display:none; }
.k-site .k-tag { letter-spacing:.14em; font-size:.72rem; color:var(--k-orange-dark); margin-bottom:14px; }
.k-site .k-eyebrow { border:0; background:transparent; padding:0; border-radius:0; letter-spacing:.12em; font-size:.7rem; font-weight:800; color:var(--k-ink-soft); }
.k-site .k-eyebrow::before { content:""; width:9px; height:9px; background:var(--k-orange); border-radius:2px; }
.k-site .k-btn { border-radius:10px; padding:15px 23px; min-height:52px; font-size:.88rem; gap:18px; font-weight:800; }
.k-site .k-btn-primary { background:var(--k-orange); color:#202428; box-shadow:none; }
.k-site .k-btn-primary:hover { background:#292d32; color:white; }
.k-site .k-btn-ghost { background:white; color:var(--k-ink); border:1px solid #cbd0d5; }
.k-site a:focus-visible,.k-site button:focus-visible,.k-site summary:focus-visible { outline:3px solid #a83c0a; outline-offset:5px; }
.k-site .k-home-hero { padding:58px 0 64px; background:#f5f6f7; border-bottom:1px solid var(--k-line); }
.k-site .k-hero-grid { grid-template-columns:1.05fr 1fr; gap:52px; align-items:center; }
.k-site .k-home-hero h1 { font-size:clamp(3rem,5vw,4.75rem); line-height:1.07; letter-spacing:-.055em; max-width:690px; margin:20px 0 24px; font-weight:800; }
.k-site .k-home-hero h1 em { color:var(--k-orange-dark); font-style:normal; text-decoration:none; }
.k-site .k-home-hero .lede { font-size:1rem; line-height:1.85; max-width:520px; color:var(--k-ink-soft); margin-bottom:28px; }
.k-hero-note { display:flex; gap:16px; flex-wrap:wrap; font-size:.7rem; color:var(--k-ink-soft); margin-top:27px; }
.k-hero-note span { display:flex; gap:7px; align-items:center; }
.k-hero-note span::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--k-orange); }
.k-hero-visual { position:relative; min-width:0; }
.k-food-frame { aspect-ratio:1.12; border-radius:18px 18px 0 0; overflow:hidden; background:#e4e7ea; }
.k-food-frame>img { width:100%; height:100%; object-fit:cover; object-position:44% center; display:block; }
.k-visual-label { display:flex; gap:16px; align-items:center; background:#292d32; color:white; padding:22px; border-radius:0 0 18px 18px; }
.k-visual-label>span { color:#ff7018; font-size:2rem; line-height:1; }
.k-visual-label strong { display:block; font-size:.9rem; }
.k-visual-label small { color:#c7cdd3; font-size:.75rem; }
.k-visual-caption { display:block; margin-top:15px; font-size:.59rem; letter-spacing:.16em; color:var(--k-ink-soft); }
.k-image-credit { display:block; font-size:.65rem; color:var(--k-ink-soft); margin-top:4px; }
.k-promise { background:#fff; border-bottom:1px solid var(--k-line); }
.k-promise-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.k-promise-grid>div { padding:27px 26px; border-right:1px solid var(--k-line); }
.k-promise-grid>div:first-child { padding-left:0; }
.k-promise-grid>div:last-child { border:0; }
.k-promise strong { display:block; font-size:1.1rem; font-weight:800; }
.k-promise span { font-size:.78rem; color:var(--k-ink-soft); }
.k-site .k-grid { gap:18px; }
.k-service-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:65px; align-items:center; margin-bottom:36px; }
.k-service-intro .k-head { margin-bottom:0; }
.k-service-photo { margin:0; min-width:0; }
.k-service-photo img { display:block; width:100%; height:auto; aspect-ratio:1.8; object-fit:cover; border-radius:14px; }
.k-site .k-srv { padding:25px; border:1px solid var(--k-line); border-radius:12px; background:#fff; }
.k-site .k-srv:hover { transform:translateY(-3px); box-shadow:var(--k-shadow); border-color:#ff7018; }
.k-site .k-srv .ic { background:#f5f6f7; width:48px; height:48px; border-radius:10px; font-size:1.5rem; margin-bottom:20px; }
.k-site .k-srv h3 { font-weight:800; font-size:1.12rem; letter-spacing:-.02em; }
.k-site .k-srv p { font-size:.86rem; line-height:1.85; }
.k-site .k-sectors { background:#f5f6f7; }
.k-site .k-sector { background:white; border:1px solid var(--k-line); border-radius:12px; padding:24px; }
.k-site .k-sector .em { font-size:1.5rem; }
.k-site .k-dark { background:#292d32; }
.k-site .k-dark .k-tag { color:#ffab7d; }
.k-site .k-dark .k-title { color:#fff; }
.k-site .k-dark .k-lede,.k-site .k-diff p { color:#c7cdd3; }
.k-site .k-diff { border-radius:12px; background:#ffffff06; border:1px solid #ffffff20; padding:22px; display:block; }
.k-site .k-diff .ic { background:#ffffff0c; margin-bottom:18px; }
.k-site .k-step { background:#f5f6f7; border:1px solid var(--k-line); border-radius:12px; padding:25px; }
.k-site .k-step .n { background:#ff7018; color:#202428; width:42px; height:42px; border-radius:8px; box-shadow:none; }
.k-site .k-cover { background:#f5f6f7; }
.k-site .k-cover h2 { font-weight:800; letter-spacing:-.035em; }
.k-site .k-cover .pin { box-shadow:none; border:1px solid var(--k-line); }
.k-site .k-hero-card { box-shadow:none; border-radius:12px; }
.k-site .k-gal-item { border-radius:14px; box-shadow:none; }
.k-site .k-gal-cap { opacity:1; }
.k-site .k-tcard { box-shadow:none; border-radius:12px; }
.k-site .k-band { background:#292d32; border-radius:18px; box-shadow:none; padding:56px; text-align:left; border-left:8px solid #ff7018; }
.k-site .k-band .k-tag { color:#ffab7d; }
.k-site .k-band h2 { font-size:clamp(2rem,3.8vw,3rem); letter-spacing:-.045em; font-weight:800; }
.k-site .k-band p { max-width:600px; margin-block:22px 30px; color:#c7cdd3; font-size:1rem; }
.k-site .k-band .k-btn-primary { background:#ff7018; color:#202428; }
.k-faq-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; }
.k-faq details { border-bottom:1px solid var(--k-line); padding:22px 0; }
.k-faq details:first-child { border-top:1px solid var(--k-line); }
.k-faq summary { cursor:pointer; font-weight:700; font-size:.95rem; padding-right:22px; }
.k-faq p { color:var(--k-ink-soft); margin:18px 0 0; font-size:.9rem; }
.k-site .k-text-link { display:inline-block; margin-top:24px; color:var(--k-orange-dark); text-decoration:underline; text-underline-offset:5px; font-weight:800; }
.k-lightbox-close { position:absolute; top:20px; right:20px; width:48px; height:48px; background:white; border:0; border-radius:10px; font-size:2rem; cursor:pointer; }
.k-site .k-reveal { opacity:1; transform:none; }
#wrapwrap .k-site-header { background:white; color:#292d32; border-bottom:1px solid #e4e7ea; }
.k-nav-shell { max-width:1280px; margin:auto; padding:16px 40px; display:flex; gap:24px; align-items:center; flex-wrap:wrap; }
.k-nav-brand { margin:0; padding:0; }
.k-nav-brand img { width:148px; height:58px; object-fit:contain; }
.k-nav-links,.k-nav-access { display:flex; align-items:center; gap:24px; }
.k-nav-links { margin-left:auto; }
.k-nav-shell a { color:#292d32; font:700 .85rem system-ui,sans-serif; text-decoration:none; }
.k-nav-shell a:hover { color:#a83c0a; }
.k-nav-access .k-nav-business { background:#ff7018; color:#202428; border-radius:8px; padding:13px 22px; }
.k-nav-access .k-nav-business:hover { background:#292d32; color:white; }
.k-nav-shell a:focus-visible,.k-site-footer a:focus-visible { outline:3px solid #ff7018; outline-offset:5px; }
#wrapwrap .k-site-footer { background:#202428; color:#fff; font-family:system-ui,sans-serif; }
.k-footer-grid { max-width:1280px; margin:auto; padding:60px 40px 40px; display:grid; grid-template-columns:1.2fr 1fr 1fr 1.2fr; gap:36px; }
.k-site-footer a { color:white; text-decoration:none; overflow-wrap:anywhere; }
.k-site-footer a:hover { color:#ffab7d; }
.k-footer-grid .k-footer-brand { font:800 36px system-ui,sans-serif; letter-spacing:-1.5px; }
.k-footer-grid h2 { font:700 .8rem system-ui,sans-serif; color:#ffab7d; margin:10px 0 20px; }
.k-footer-grid p,.k-footer-grid>div>a:not(.k-footer-brand) { font-size:.84rem; line-height:1.8; display:block; margin:10px 0; }
.k-footer-grid p { color:#c7cdd3; }
.k-footer-bottom { max-width:1200px; margin:auto; border-top:1px solid #ffffff25; padding:22px 0; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:.75rem; }
@media(min-width:1050px) { .k-site .k-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1000px) { .k-site .k-hero-grid { gap:32px; } .k-site .k-home-hero h1 { font-size:3.5rem; } .k-nav-shell { gap:16px; padding-inline:24px; } .k-nav-links,.k-nav-access { gap:16px; } .k-footer-grid { grid-template-columns:1fr 1fr; } .k-footer-bottom { margin-inline:24px; } }
@media(max-width:880px) { .k-site .k-wrap { padding-inline:24px; } .k-site .k-home-hero { padding:36px 0 40px; } .k-site .k-hero-grid { grid-template-columns:1fr; gap:32px; } .k-hero-visual { width:100%; max-width:600px; } .k-site .k-home-hero h1 { font-size:clamp(2.9rem,8vw,4.3rem); max-width:650px; } .k-site .k-sec { padding-block:56px; } .k-faq-grid,.k-service-intro { grid-template-columns:1fr; gap:28px; } .k-service-intro { margin-bottom:28px; } .k-promise-grid { grid-template-columns:1fr; } .k-promise-grid>div,.k-promise-grid>div:first-child { padding:18px 0; border-right:0; border-bottom:1px solid var(--k-line); } .k-site .k-band { padding:32px 24px; } }
@media(max-width:700px) { .k-nav-shell { padding:14px 20px; } .k-nav-brand img { width:116px; height:46px; } .k-nav-links { order:3; width:100%; margin:0; justify-content:space-between; gap:12px; padding-top:12px; border-top:1px solid #e4e7ea; } .k-nav-access { margin-left:auto; gap:12px; } .k-nav-shell a { font-size:.8rem; } .k-nav-access .k-nav-business { padding:11px 14px; } .k-footer-grid { padding:40px 24px; gap:28px; } }
@media(max-width:420px) { .k-footer-grid { grid-template-columns:1fr; } .k-nav-shell { padding-inline:16px; gap:12px; } .k-nav-brand img { width:100px; } .k-site .k-wrap { padding-inline:20px; } .k-site .k-home-hero h1 { font-size:2.85rem; } .k-site .k-btn { padding-inline:18px; } .k-site .k-tgrid { grid-template-columns:1fr; } .k-visual-label { padding:18px; } }
@media(prefers-reduced-motion:reduce) { .k-site *, .k-site *::before, .k-site *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
