/*
Theme Name: KEITTY&MO Brand Site
Author: KEITTY&MO
Description: 地域の原石を、世界の価値へ。KEITTY&MO専用のブランドプロデュース・コーポレートサイト。完全なオリジナルデザインを実装したクラシックテーマです。
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: keittymo-brand
*/

:root{--forest:#15251b;--forest2:#101e16;--ink:#222b23;--muted:#6d746d;--paper:#f5f3eb;--ivory:#fbfaf5;--mid:#e8e7de;--line:#d9dad1;--accent:#8f9d88;--gold:#c8bca6;--serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;--latin:Georgia,"Times New Roman",serif;--sans:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:86px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.9;-webkit-font-smoothing:antialiased}body.nav-open{overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid #b9c9a0;outline-offset:4px}::selection{background:#d4dfc4;color:#1b2b20}.skip{position:absolute;left:16px;top:-80px;z-index:1100;background:#fff;color:#222;padding:10px 18px}.skip:focus{top:14px}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.21em;text-transform:uppercase}.s-head{font-family:var(--serif);font-weight:400;letter-spacing:.035em;line-height:1.7}.s-en{font-family:var(--latin);font-weight:400;line-height:1}.section{padding:140px 0}.anchor{scroll-margin-top:84px}.arrow{display:inline-flex;gap:58px;align-items:center;justify-content:space-between;border-bottom:1px solid currentColor;padding-bottom:12px;font-size:11px;letter-spacing:.11em;font-weight:700;transition:gap .25s ease}.arrow:hover{gap:75px}.arrow svg{width:19px;height:19px;flex:none}
/* Navigation */
.header{height:90px;position:fixed;top:0;left:0;z-index:100;width:100%;color:#fff;border-bottom:1px solid #ffffff42;transition:background .3s,color .3s,height .3s,border-color .3s}.header.is-scrolled,.header.is-open{background:#f8f7f0ed;color:var(--forest);height:74px;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:36px}.brand{display:block;white-space:nowrap;font-size:23px;letter-spacing:.12em;font-weight:500;line-height:1}.brand span{font-weight:300;letter-spacing:0}.brand small{display:block;letter-spacing:.23em;font-size:8px;font-weight:500;margin-top:11px}.nav{display:flex;gap:31px;align-items:center}.nav a{font-size:10px;letter-spacing:.11em;font-weight:700;transition:opacity .18s}.nav a:hover{opacity:.65}.nav .nav-cta{border:1px solid currentColor;padding:10px 16px}.menu{display:none;background:transparent;color:inherit;border:0;cursor:pointer;width:46px;height:45px;align-items:center;justify-content:center}.menu i,.menu i:before,.menu i:after{height:1px;width:24px;background:currentColor;position:relative;display:block;transition:transform .2s}.menu i:before,.menu i:after{content:"";position:absolute;left:0}.menu i:before{top:-7px}.menu i:after{top:7px}.header.is-open .menu i{background:transparent}.header.is-open .menu i:before{transform:translateY(7px) rotate(45deg)}.header.is-open .menu i:after{transform:translateY(-7px) rotate(-45deg)}
/* Hero */
.hero{position:relative;height:100svh;min-height:750px;max-height:1100px;background:var(--forest2);color:#fff;display:flex;justify-content:center;align-items:center;overflow:hidden;isolation:isolate}.hero-image{position:absolute;z-index:-3;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;filter:saturate(.6) contrast(1.05)}.hero:before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(180deg,#09170f91 0%,#0c211684 32%,#07130eaa 73%,#07130eda 100%)}.hero:after{content:"";z-index:-1;position:absolute;inset:0;opacity:.4;background:radial-gradient(ellipse at center,transparent 30%,#0e1a14 100%)}.hero-content{text-align:center;padding:80px 24px 55px;width:min(1130px,100%)}.hero-kicker{font-size:10px;letter-spacing:.36em;margin:0 0 37px;font-weight:700}.hero h1{font:400 clamp(47px,6vw,91px)/1.58 var(--serif);letter-spacing:.09em;margin:0 0 29px;text-shadow:0 3px 32px #07150d55}.hero h1 em{font-style:normal;white-space:nowrap}.hero-lead{font-size:13px;line-height:2.4;letter-spacing:.17em;font-weight:450;margin:0;opacity:.95}.hero-en{font:400 15px/1.8 var(--latin);letter-spacing:.3em;margin:44px 0 0}.hero-bottom{position:absolute;left:0;right:0;bottom:0;padding:26px 56px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #ffffff47;font-size:9px;letter-spacing:.19em}.hero-bottom .scroll{display:flex;align-items:center;gap:15px}.hero-bottom .scroll:before{content:"";height:1px;width:44px;background:#fff}
/* Philosophy */
.philosophy{background:var(--ivory)}.split-philosophy{display:grid;grid-template-columns:.64fr 1.36fr;column-gap:8%;align-items:start}.tiny-index{display:flex;align-items:center;gap:18px;color:#7f8980}.tiny-index:after{content:"";width:55px;height:1px;background:currentColor}.philosophy h2{font-size:clamp(36px,4.6vw,66px);margin:0 0 35px}.philosophy p{font-size:15px;color:#626e62;max-width:700px;line-height:2.5;margin:0 0 22px}.philosophy .seal{border-top:1px solid var(--line);padding-top:26px;margin-top:46px;display:flex;justify-content:space-between;color:#8a948a;font-size:10px;letter-spacing:.16em;gap:20px}
/* Bridge line */
.bridge{background:var(--forest);padding:54px 0;color:#e5e7dd}.bridge-grid{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:20px;align-items:center}.bridge-label{font:400 clamp(23px,2.7vw,41px)/1.1 var(--latin);letter-spacing:.06em;text-align:center}.bridge-label small{display:block;font:500 9px/1.7 var(--sans);letter-spacing:.2em;color:#bec7b9;margin-top:14px}.bridge svg{width:62px;color:#b1bfae}.bridge .bridge-note{font:500 10px/1.4 var(--sans);letter-spacing:.25em;color:#bbc5b9;text-align:center;margin-top:36px}
/* Model */
.model{background:var(--paper)}.section-title{display:flex;align-items:end;justify-content:space-between;gap:35px;padding-bottom:25px;border-bottom:1px solid var(--line);margin-bottom:59px}.section-title h2{font:400 clamp(64px,6.5vw,98px)/1 var(--latin);letter-spacing:-.055em;margin:11px 0 0}.section-title .jp{font:400 14px/1.9 var(--serif);letter-spacing:.08em;text-align:right;color:#747d72;margin-bottom:5px}.model-grid{display:grid;grid-template-columns:repeat(4,1fr)}.model-item{padding:10px 29px 5px;border-left:1px solid var(--line);min-height:310px}.model-item:first-child{padding-left:0;border-left:0}.model-num{font:400 36px/1 var(--latin);color:#a3aaa0}.model-item h3{font:400 clamp(34px,3.2vw,51px)/1.12 var(--latin);margin:55px 0 18px}.model-item h4{font:400 17px/1.7 var(--serif);margin:0 0 14px;letter-spacing:.04em}.model-item p{font-size:12px;color:#6c766a;line-height:2.35;margin:0;max-width:270px}
/* Vision */
.vision{background:#e9e7dd}.vision-intro{display:grid;grid-template-columns:1fr 1fr;gap:13%;margin-bottom:75px;align-items:end}.vision-intro h3{font:400 clamp(29px,3.7vw,53px)/1.65 var(--serif);letter-spacing:.035em;margin:0}.vision-intro p{font-size:13px;color:#637064;line-height:2.5;margin:0}.vision-list{border-top:1px solid #babdb0}.vision-row{display:grid;grid-template-columns:105px 1fr 1.2fr;gap:30px;align-items:center;padding:37px 0;border-bottom:1px solid #babdb0}.vision-row .n{font:400 37px/1 var(--latin);color:#a1a69a}.vision-row h4{font:400 clamp(29px,3vw,47px)/1.12 var(--latin);margin:0 0 6px;letter-spacing:-.025em}.vision-row h4 span{display:block;font:400 13px/1.9 var(--serif);letter-spacing:.06em;color:#536455;margin-top:7px}.vision-row p{font-size:12px;line-height:2.3;max-width:440px;margin:0;color:#677168}.vision-disclaimer{font-size:11px;color:#727a70;line-height:2.1;margin:25px 0 0}
/* Statement */
.statement{background:#1b3023;color:#f7f4e9;padding:105px 0}.statement-inner{display:flex;justify-content:space-between;align-items:end;gap:80px}.statement h2{font:400 clamp(29px,3.4vw,53px)/1.75 var(--serif);letter-spacing:.08em;margin:0}.statement p{font-size:10px;letter-spacing:.19em;line-height:2.4;max-width:240px;color:#bdc7b9;margin:0}
/* Projects */
.project{background:var(--ivory)}.project-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(45px,7vw,105px);align-items:center}.project-visual{min-width:0;position:relative;background:#557b0c;min-height:605px;padding:65px 60px;display:grid;place-items:center}.project-visual:after{content:"";position:absolute;inset:17px;border:1px solid #ffffff4d;pointer-events:none}.project-visual img{width:min(100%,350px);height:auto;max-height:490px;object-fit:contain}.project-visual .mark{position:absolute;left:42px;top:42px;font-size:10px;letter-spacing:.2em;color:#fff}.project-visual .bottom{position:absolute;right:43px;bottom:40px;font-size:9px;letter-spacing:.25em;color:#fff}.project-copy{min-width:0}.project-copy .small{display:flex;gap:18px;align-items:center;color:#8b9684;font-size:10px;letter-spacing:.19em}.project-copy .small:after{content:"";width:44px;height:1px;background:currentColor}.project-copy h3{font:400 clamp(83px,9vw,139px)/.95 var(--latin);letter-spacing:-.065em;margin:36px 0 9px}.project-copy .subtitle{font:400 23px/1.5 var(--latin);letter-spacing:.08em;color:#818b78;margin:0 0 34px}.project-copy h4{font:400 clamp(23px,2.2vw,31px)/1.85 var(--serif);letter-spacing:.02em;margin:0 0 22px}.project-copy .desc{font-size:13px;line-height:2.6;color:#677268;max-width:485px;margin:0 0 28px}.pillset{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:43px}.pillset span{font-size:9px;letter-spacing:.1em;color:#677369;border:1px solid #ccd0c5;padding:7px 10px}
/* Company */
.company{background:var(--paper)}.company-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:12%}.company h2{font:400 clamp(28px,3vw,43px)/1.85 var(--serif);margin:27px 0 0}.company dl{margin:0}.company dl>div{display:grid;grid-template-columns:115px 1fr;gap:20px;border-top:1px solid var(--line);padding:20px 0;font-size:13px}.company dl>div:last-child{border-bottom:1px solid var(--line)}.company dt{color:#8a9286}.company dd{margin:0}.company small{display:block;color:#939b8e;margin-top:5px;font-size:10px;line-height:1.8}
/* Contact */
.contact{background:var(--forest2);color:#f5f3e9;padding:115px 0 105px}.contact-grid{display:flex;justify-content:space-between;align-items:end;gap:55px}.contact h2{font:400 clamp(85px,10vw,157px)/1 var(--latin);letter-spacing:-.06em;margin:15px 0 30px}.contact .lead{font:400 clamp(19px,2vw,27px)/2 var(--serif);margin:0;letter-spacing:.05em}.contact-side{max-width:305px;border-top:1px solid #728377;padding-top:24px}.contact-side p{margin:0 0 18px;font-size:12px;line-height:2.3;color:#c0cabd}.contact-side .note{font-size:10px;color:#93a094}.footer{background:#0b160f;color:#aeb8aa;padding:29px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.footer-logo{font-size:17px;letter-spacing:.15em;color:#fff}.footer-right{text-align:right;font-size:10px;line-height:2;letter-spacing:.05em}.footer a:last-child{text-decoration:underline;text-underline-offset:3px}html,body{max-width:100%;overflow-x:clip}
@media(max-width:1100px){.wrap{width:calc(100% - 78px)}.nav{gap:18px}.nav a{font-size:9px}.section{padding:109px 0}.model-item{padding-inline:20px}.project-visual{min-height:550px}.hero h1{font-size:clamp(45px,6.3vw,76px)}}
@media(max-width:780px){html{scroll-padding-top:64px}.wrap{width:calc(100% - 42px)}.section{padding:84px 0}.header,.header.is-scrolled,.header.is-open{height:66px}.brand{font-size:17px;letter-spacing:.085em}.brand small{font-size:7px;margin-top:8px}.menu{display:flex}.nav{position:fixed;left:0;top:66px;width:100%;height:calc(100dvh - 66px);background:#f6f5ee;color:var(--forest);display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:36px 11vw;gap:27px;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .2s,visibility .2s}.nav.is-open{visibility:visible;opacity:1;pointer-events:auto}.nav a{font-size:18px;letter-spacing:.13em}.hero{min-height:615px;max-height:none;height:94svh}.hero-image{object-position:52% center}.hero-content{padding-top:50px}.hero-kicker{font-size:9px;letter-spacing:.20em;margin-bottom:27px}.hero h1{font-size:clamp(36px,8vw,58px);line-height:1.68;letter-spacing:.04em;margin-bottom:22px}.hero-lead{font-size:11px;letter-spacing:.055em;line-height:2.3}.hero-en{font-size:11px;letter-spacing:.15em;margin-top:39px}.hero-bottom{padding:19px 21px;font-size:8px}.hero-bottom>span:last-child{display:none}.split-philosophy{grid-template-columns:1fr;row-gap:38px}.philosophy h2{font-size:clamp(30px,7.4vw,47px)}.philosophy p{font-size:13px}.philosophy .seal{margin-top:36px;display:block}.philosophy .seal span{display:block;margin-top:7px}.bridge{padding:40px 0}.bridge-grid{grid-template-columns:1fr auto 1fr auto 1fr;gap:7px}.bridge svg{width:20px}.bridge-label{font-size:19px}.bridge-label small{font-size:7px;letter-spacing:.06em}.bridge .bridge-note{font-size:8px;letter-spacing:.13em;margin-top:21px}.section-title{align-items:end;margin-bottom:45px}.section-title h2{font-size:57px}.section-title .jp{font-size:11px}.model-grid{grid-template-columns:1fr 1fr;gap:30px 20px}.model-item,.model-item:first-child{border-left:0;border-top:1px solid var(--line);min-height:0;padding:19px 0 10px}.model-item h3{margin:24px 0 11px;font-size:39px}.model-item h4{font-size:14px}.model-item p{font-size:11px}.vision-intro{grid-template-columns:1fr;gap:24px;margin-bottom:45px}.vision-intro h3{font-size:34px}.vision-intro p{font-size:12px}.vision-row{grid-template-columns:50px 1fr;gap:13px;padding:25px 0}.vision-row .n{font-size:29px}.vision-row h4{font-size:32px}.vision-row h4 span{font-size:12px}.vision-row p{grid-column:2;max-width:none}.statement{padding:66px 0}.statement-inner{display:block}.statement h2{font-size:29px}.statement p{margin-top:28px}.project-grid{grid-template-columns:minmax(0,1fr);gap:45px}.project-visual{min-height:420px;padding:58px 45px}.project-visual img{max-width:258px;max-height:320px}.project-visual .mark{left:25px;top:27px}.project-visual .bottom{right:26px;bottom:25px}.project-copy h3{font-size:90px;margin:21px 0 9px}.project-copy .subtitle{margin-bottom:18px}.project-copy h4{font-size:23px}.project-copy .desc{font-size:12px}.company-grid{grid-template-columns:1fr;gap:45px}.company dl>div{grid-template-columns:95px 1fr;font-size:12px}.contact{padding:85px 0 73px}.contact-grid{display:block}.contact h2{font-size:97px}.contact-side{margin-top:45px;max-width:none}.footer-inner{align-items:start}.footer-right{font-size:9px}}
@media(max-width:420px){.hero h1{font-size:clamp(31px,8.4vw,39px)}.hero-en{font-size:9px;letter-spacing:.07em}.section-title h2{font-size:46px}.hero-kicker{font-size:8px}.section-title h2{font-size:50px}.model-grid{gap:21px 14px}.model-item h3{font-size:33px}.model-item h4{font-size:13px}.vision-row h4{font-size:28px}.bridge-label{font-size:17px}.project-visual{min-height:370px}.project-visual img{max-height:270px}.project-copy h3{font-size:74px}.contact h2{font-size:80px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* WordPress administrator toolbar compatibility and fallback content */
body.admin-bar .header { top: 32px; }
.wp-content-fallback { background: var(--paper); min-height: 60vh; padding: 145px 0 110px; }
.wp-content-fallback .wp-article { max-width: 900px; margin: 0 auto 70px; }
.wp-content-fallback .wp-article h1 { font: 400 clamp(33px,4.2vw,64px)/1.5 var(--serif); margin: 0 0 36px; }
.wp-content-fallback .wp-entry { color: var(--ink); line-height: 2; }
.wp-content-fallback a { text-decoration: underline; text-underline-offset: 4px; }
.wp-content-fallback img { max-width: 100%; height: auto; }
@media(max-width: 782px) { body.admin-bar .header { top: 46px; } }
@media(max-width: 600px) { body.admin-bar .header { top: 0; } }

/* v1.1 — contact form; scoped to avoid affecting the rest of the brand site. */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,570px);gap:clamp(40px,6vw,108px);align-items:start}
.contact .contact-heading{min-width:0}
.contact .contact-support{font-size:12px;color:#bac7ba;line-height:2.5;margin:30px 0 0;letter-spacing:.025em}
.contact .contact-side{min-width:0;width:100%;max-width:none;border-top:1px solid #708075;padding-top:26px}
.contact .contact-intro{color:#d0d8cd;font-size:12px;line-height:2.25;margin:0 0 32px}
.contact-form{display:block;width:100%}
.contact-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;row-gap:24px}
.contact-field{min-width:0}
.contact-field--wide{grid-column:1/-1}
.contact-field label{display:flex;align-items:baseline;gap:11px;color:#f5f4ee;font-size:12px;font-weight:600;letter-spacing:.065em;margin-bottom:10px}
.contact-field label .required,.contact-field label .optional{font-size:10px;font-weight:400;letter-spacing:.06em}
.contact-field label .required{color:#d9cfaa}.contact-field label .optional{color:#a9b9aa}
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea{display:block;width:100%;max-width:100%;border:1px solid #6d8170;border-radius:2px;background:rgba(244,247,239,.045);color:#fbfaf5;font:400 14px/1.6 var(--sans);padding:14px 15px;outline:none;transition:background .2s,border-color .2s;appearance:none;-webkit-appearance:none}
.contact-form textarea{min-height:150px;resize:vertical}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#a0ae9f;opacity:1}
.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{border-color:#dbd8c2;background:rgba(255,255,255,.095);outline:2px solid #8fa693;outline-offset:2px}
.contact-form select{padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d0d9cf' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
.contact-form select option{background:#15251b;color:#fff}
.contact-consent{display:flex;align-items:flex-start;gap:12px;font-size:11px;line-height:1.9;color:#d1d8cf;margin:28px 0 24px;cursor:pointer}
.contact-consent input{appearance:auto;-webkit-appearance:checkbox;accent-color:#cad5ba;flex:none;margin:5px 0 0;width:16px;height:16px;cursor:pointer}
.contact-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 21px;width:100%;border:1px solid #e4e5d6;color:#142218;background:#f0efe4;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.10em;transition:background .2s,transform .2s}
.contact-submit:hover{background:#dce4d5;transform:translateY(-2px)}
.contact-submit:focus-visible{outline:2px solid #fff;outline-offset:3px}
.contact-submit span:last-child{font-size:22px;font-weight:400;line-height:1}
.contact .contact-note{color:#9fae9e;font-size:10px;line-height:2;margin:17px 0 0}
.contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;left:-9999px!important}
.form-feedback{font-size:12px;line-height:1.9;margin:0 0 25px;padding:15px 18px;border:1px solid #9db09b;background:#283f2e;color:#f2f5ea}
.form-feedback--error{border-color:#c9a69a;background:#432d29;color:#fff2ef}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:42px}.contact .contact-side{max-width:720px}.contact .contact-heading h2{margin-bottom:19px}}
@media(max-width:580px){.contact-form-grid{grid-template-columns:1fr;gap:19px}.contact-field--wide{grid-column:auto}.contact .contact-intro{margin-bottom:28px}.contact .contact-support{margin-top:24px;font-size:11px}.contact{padding-bottom:78px}.contact-submit{padding:16px 18px}}

/* Keep the display headline from crowding fields on medium laptops. */
@media(min-width:901px) and (max-width:1100px){.contact-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:42px}.contact h2{font-size:clamp(74px,8.2vw,100px)}}
