@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600&display=swap');
:root{--ink:#18352f;--green:#1b5143;--lime:#e5ef85;--muted:#66746d;--line:#d9e1db;--paper:#f6f8f4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:16px;line-height:1.9;background:#fff}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline:3px solid #75a48f;outline-offset:5px}header{height:100px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;background:#fff}.brand{display:flex;gap:13px;align-items:center;font-size:20px;font-weight:600;white-space:nowrap;line-height:1.4}.brand small{display:block;font:12px sans-serif;letter-spacing:1.5px;margin-top:5px}.brandmark{border:1px solid var(--ink);border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font:26px 'Noto Serif JP',serif}nav{display:flex;gap:30px;align-items:center;font-size:14px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:35px;background:var(--green);color:white;padding:18px 26px;font-size:15px;border-radius:4px;transition:background .2s,transform .2s}.button:hover{background:#296b58;transform:translateY(-2px)}.button span{font-size:22px}.button.small{padding:12px 19px;gap:18px;font-size:14px}.hero{display:grid;grid-template-columns:1.03fr 1fr;min-height:680px;padding-left:8%;padding-bottom:56px}.hero-copy{padding:68px 20px 0 0}.eyebrow{font-size:13px;letter-spacing:.14em;font-weight:600;margin:0 0 26px;color:var(--green)}h1,h2{font-family:'Noto Serif JP',serif;font-weight:500;letter-spacing:.035em;line-height:1.6;margin:0}h1{font-size:clamp(34px,3.5vw,56px);line-height:1.55}h1 em,h2 em{font-style:normal;color:#467259}.lead{margin:26px 0;font-size:17px;line-height:2}.sub{font-size:12px;color:var(--muted);margin-top:14px}.hero-photo{position:relative;min-width:0;margin-top:10px;min-height:640px;border-radius:100px 0 0 0;isolation:isolate}.hero-photo img{width:100%;height:100%;position:absolute;object-fit:cover;border-radius:100px 0 0 0;object-position:57% center}.photo-label{position:absolute;right:20px;top:35px;color:white;writing-mode:vertical-rl;font-size:11px;letter-spacing:.15em;text-shadow:0 1px 7px #111}.photo-card{position:absolute;left:-42px;bottom:30px;background:#f4f8f0f5;padding:25px 35px;width:365px;border-left:3px solid var(--green);box-shadow:0 8px 35px #173d2412}.photo-card>span{font-size:12px;color:var(--muted)}.photo-card strong{font:500 25px/1.65 'Noto Serif JP',serif;display:block;margin:10px 0}.photo-card p{font-size:12px;margin:0}.area-strip{display:flex;align-items:center;justify-content:space-between;padding:24px 8%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.area-strip p{margin:0;letter-spacing:.12em}.area-strip i{color:#a7b6ac;margin:0 16px;font-style:normal}.section{padding:100px 8%}h2{font-size:36px}.challenges{display:grid;grid-template-columns:1fr 1fr;gap:70px}.challenge-list p{border-bottom:1px solid var(--line);margin:0;padding:17px 0;font-size:15px}.challenge-list span{font-size:12px;color:#72907e;margin-right:16px}.approach{background:var(--paper);display:grid;grid-template-columns:1.05fr 1fr;gap:80px}.section-intro>p:last-child{color:var(--muted);font-size:15px;margin-top:28px}.principles article{padding:0 0 25px;border-bottom:1px solid #cfdad0;margin-bottom:25px}.principles article:last-child{margin-bottom:0}.principles span,.steps span{font:12px sans-serif;letter-spacing:.12em;color:#557b61}.principles h3{font-size:21px;font-weight:500;margin:6px 0}.principles p{font-size:15px;color:var(--muted);margin:7px 0 0;line-height:1.85}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}.section-heading>p{color:var(--muted);font-size:15px;margin:0 0 8px}.solution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.solution{border:1px solid var(--line);padding:28px;position:relative;min-height:270px;border-radius:5px}.solution.featured{grid-column:span 2;background:var(--green);color:white;border-color:var(--green)}.number{position:absolute;right:25px;top:16px;font:42px Georgia,serif;color:#d9e2db}.featured .number{color:#75a18d}.tag{font-size:12px;border-bottom:1px solid #cad6ce;padding-bottom:5px}.featured .tag{color:var(--lime);border-color:#73927f}.solution h3{font-size:23px;font-weight:500;margin:22px 0 12px}.solution p{font-size:15px;line-height:1.9;margin:0;color:var(--muted)}.featured p{color:#e2eae4;max-width:95%}.mini-flow{display:flex;align-items:center;gap:18px;font-size:13px;margin-top:24px}.mini-flow span{padding:5px 16px;background:#ffffff12;border:1px solid #ffffff30;border-radius:2px}.mini-flow b{font-weight:400}.note{font-size:12px;color:var(--muted);margin-top:20px}.report{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center;background:#edf2eb}.report-example{background:#fff;max-width:490px;padding:32px;border-radius:10px;box-shadow:0 20px 60px #243c2210;transform:rotate(-2deg)}.report-top{display:flex;justify-content:space-between;font-size:13px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px}.sample{font-size:12px;background:#eef2ea;border-radius:4px;padding:2px 8px}.report-example h3{font-size:18px;font-weight:500;margin:20px 0}.metrics{display:flex;border-bottom:1px solid var(--line);padding-bottom:17px;gap:18px}.metrics>div{flex:1;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics small{font-size:12px;color:var(--muted)}.metrics strong{display:block;font:40px Georgia,serif;margin-top:10px}.metrics em{font:13px sans-serif;margin-left:5px}.report-item{background:#f5f8f3;margin-top:15px;padding:12px 16px;border-radius:4px;font-size:14px}.report-item b{font-size:13px;font-weight:500}.report-item p{margin:5px 0 0;font-size:13px;color:var(--muted)}.report-example>.note{display:block}.report-copy p:not(.eyebrow){color:var(--muted);margin-top:25px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px}.steps article{border-top:2px solid #b4c6b5;padding-top:18px}.steps h3{font-size:21px;font-weight:500;margin:13px 0}.steps p{font-size:14px;color:var(--muted)}.pricing{margin-top:65px;padding:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:35px}.pricing .eyebrow{font-size:11px}.pricing h3{font-size:17px;font-weight:500;margin:10px 0 0}.pricing p{font-size:14px;margin:0}.pricing small{font-size:12px;color:var(--muted)}.faq{padding-top:15px;max-width:1150px;margin:auto}.faq h2{margin-bottom:32px}details{border-bottom:1px solid var(--line)}summary{padding:23px 30px 23px 0;cursor:pointer;list-style:none;position:relative;font-size:16px}summary::-webkit-details-marker{display:none}summary:after{content:'＋';position:absolute;right:0;color:var(--green)}details[open] summary:after{content:'−'}details p{font-size:15px;color:var(--muted);margin:0 35px 24px 0}.consult{background:var(--green);color:white;margin:0 3%;padding:70px 5.3%;display:flex;align-items:center;justify-content:space-between;gap:50px;border-radius:6px}.consult .eyebrow{color:var(--lime);font-size:12px}.consult p:not(.eyebrow){font-size:15px;color:#d4e2d7;margin-bottom:0}.button.light{background:var(--lime);color:var(--ink)}.button.light:hover{background:#f0f8ae}.consult-action p{font-size:12px!important}footer{padding:50px 8%;display:flex;align-items:center;justify-content:space-between;gap:20px}footer .brand{font-size:17px}footer p,footer>small{font-size:12px;color:var(--muted)}.mobile{display:none}@media(min-width:1600px){body{max-width:1800px;margin:auto}}@media(max-width:1050px){nav>a:not(.button){display:none}.hero{padding-left:5%}.hero-copy{padding-top:55px}h1{font-size:39px}.hero-photo{min-height:615px}.photo-card{width:300px;left:-20px;padding:22px}.photo-card strong{font-size:22px}.section{padding:75px 6%}.challenges,.approach,.report{gap:40px}h2{font-size:30px}.section-heading{display:block}.section-heading>p{margin-top:20px}.area-strip{padding:20px 5%;font-size:12px}.area-strip i{margin:0 7px}.solution{padding:24px}.solution h3{font-size:21px}.pricing{display:block}.pricing p{margin-top:20px}.consult h2{font-size:28px}.consult{gap:25px}.button{gap:20px}}@media(max-width:700px){header{height:80px;padding:0 5%}.brand{font-size:16px;gap:8px}.brandmark{width:34px;height:34px;font-size:22px}.brand small{font-size:10px}.button.small{font-size:12px;padding:9px 12px;gap:8px}.button.small span{display:none}.hero{display:flex;flex-direction:column;padding:0 0 0;min-height:0}.hero-copy{padding:35px 7% 45px}.eyebrow{font-size:11px;margin-bottom:22px}h1{font-size:36px;line-height:1.6}.mobile{display:block}.lead{font-size:15px;margin:22px 0}.hero-photo{margin:0 0 0 7%;min-height:400px;border-radius:65px 0 0 0}.hero-photo img{border-radius:65px 0 0 0}.photo-card{bottom:20px;left:-12px;width:280px;padding:18px 24px}.photo-card strong{font-size:21px;margin:7px 0}.photo-card p{font-size:10px}.area-strip{display:block;padding:25px 7%}.area-strip p{margin-top:6px;font-size:11px}.area-strip i{margin:0 6px}.section{padding:60px 7%}h2{font-size:28px;line-height:1.65}.challenges,.approach,.report{display:block}.challenge-list{margin-top:25px}.challenge-list p{font-size:14px}.challenge-list span{margin-right:10px}.section-intro>p:last-child br{display:none}.principles{margin-top:40px}.section-heading{margin-bottom:30px}.solution-grid{display:block}.solution{margin-bottom:15px;min-height:0;padding:25px}.solution h3{margin-top:18px}.mini-flow{gap:9px;font-size:11px}.mini-flow span{padding:5px 9px}.report{display:flex;flex-direction:column-reverse;gap:35px;align-items:stretch}.report-copy p:not(.eyebrow){font-size:15px}.report-example{transform:rotate(-1deg);padding:24px}.steps{grid-template-columns:1fr 1fr;gap:25px 20px;margin-top:35px}.steps h3{font-size:19px}.steps p{font-size:14px}.pricing{margin-top:35px}.faq{padding-top:15px}summary{font-size:14px}.consult{margin:0 4%;padding:45px 7%;display:block}.consult h2{font-size:27px}.consult-action{margin-top:30px}.consult-action .button{font-size:14px;gap:18px}footer{padding:35px 7%;flex-wrap:wrap}footer p{width:100%;order:3;margin:0}.photo-label{font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

/* Refined typographic brand */
.brand .brand-wordmark{display:block;border-left:2px solid #47735f;padding-left:16px}.brand .brand-name{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:500;letter-spacing:.065em;line-height:1.5}.brand .brand-no{font-size:.72em;margin:0 .14em}.brand .brand-ai{font-family:Arial,sans-serif;font-weight:400;letter-spacing:-.04em;margin-right:.15em}.brand .brand-wordmark small{font-family:Arial,sans-serif;font-size:10px;letter-spacing:.14em;font-weight:400;color:#5f7569;margin-top:7px}footer .brand .brand-name{font-size:21px}@media(max-width:700px){.brand .brand-wordmark{padding-left:10px}.brand .brand-name,footer .brand .brand-name{font-size:16px;letter-spacing:.025em}.brand .brand-wordmark small{font-size:8px;letter-spacing:.07em;margin-top:5px}}

/* Hospitality + AI icon lockup */
.brand{gap:12px}.brand-symbol{display:block;position:relative;flex:none;width:65px;height:44px;overflow:hidden}.brand-symbol img{position:absolute;max-width:none;width:96px;height:96px;left:-16px;top:-26px}.brand .brand-wordmark{border-left:0;padding-left:0}.brand .brand-name{font-size:21px}.brand .brand-wordmark small{font-size:9px;letter-spacing:.11em}@media(max-width:700px){.brand{gap:7px}.brand-symbol{width:40px;height:29px}.brand-symbol img{width:62px;height:62px;left:-11px;top:-17px}.brand .brand-wordmark{padding-left:0}.brand .brand-name,footer .brand .brand-name{font-size:15px;letter-spacing:0}.brand .brand-wordmark small{font-size:7px;letter-spacing:.04em}header .button.small{padding:9px 10px;font-size:11px}}

/* Contact form and company navigation */
header nav{gap:22px}.company-link{white-space:nowrap}.company-link span{font-size:13px;margin-left:4px}.contact-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start;background:#f7f9f5;margin-top:65px}.contact-intro{position:sticky;top:35px}.contact-intro>p:not(.eyebrow){font-size:15px;color:var(--muted);margin-top:25px}.contact-email{margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.contact-email span{display:block;font-size:13px;color:var(--muted)}.contact-email a{font-size:18px;border-bottom:1px solid #a9bcad;overflow-wrap:anywhere}.contact-form{padding:35px;background:#fff;border:1px solid var(--line);border-radius:6px}.form-guidance{font-size:13px;color:var(--muted);margin:0 0 22px}.field{margin:0 0 24px}.field label{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:500;margin-bottom:9px}.field label span{font-size:12px;background:#e8efe7;color:var(--green);padding:0 7px;border-radius:2px;font-weight:400}.field label span.optional{background:#f1f2f0;color:#69766c}.field input,.field textarea{width:100%;font:400 16px/1.7 'Noto Sans JP',sans-serif;color:var(--ink);background:#fcfdfb;border:1px solid #cbd6cc;border-radius:4px;padding:12px 14px;outline-offset:3px}.field textarea{resize:vertical;min-height:160px}.field input:focus,.field textarea:focus{outline:2px solid #62947d;border-color:var(--green)}.field input::placeholder,.field textarea::placeholder{color:#7b857e;opacity:1}.form-privacy{font-size:13px;color:var(--muted);margin:10px 0 25px;line-height:1.9}.form-privacy a{text-decoration:underline;text-underline-offset:3px}.submit-button{border:0;font-family:inherit;width:100%;cursor:pointer;justify-content:center;gap:25px}.form-note{font-size:12px;color:var(--muted);margin:13px 0 0}.thankyou{max-width:850px;margin:0 auto;min-height:70vh;padding:100px 7%}.thankyou>p:not(.eyebrow){color:var(--muted);margin:25px 0}.thankyou .button{margin-top:10px}@media(max-width:1050px){header nav>.company-link{display:inline-flex}.contact-section{gap:35px}.contact-form{padding:25px}}@media(max-width:700px){header{height:auto;min-height:90px;flex-wrap:wrap;row-gap:15px;padding-top:18px;padding-bottom:15px}header nav{gap:20px;width:100%;justify-content:flex-end}header nav>.company-link{font-size:13px}header .button.small{font-size:13px;padding:9px 17px}.contact-section{display:block;margin-top:40px}.contact-intro{position:static}.contact-intro>p br{display:none}.contact-email{margin:25px 0 35px}.contact-form{padding:24px 20px}.field label{font-size:14px}.thankyou{padding:70px 7%}.thankyou h1{font-size:30px}}
