:root { --navy:#12364d; --wine:#681040; --ink:#15212a; --paper:#fbfaf7; --mist:#e9edef; --line:#cbd3d7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Yu Gothic UI","Yu Gothic",Meiryo,sans-serif; line-height:1.85; }
a { color:inherit; text-decoration:none; }
.site-header { height:78px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5vw,72px); position:sticky; top:0; z-index:1000; background:rgba(247,247,243,.94); border-bottom:1px solid rgba(18,54,77,.12); box-shadow:0 5px 18px rgba(18,54,77,.07); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }
.brand { display:flex; align-items:baseline; gap:12px; font-weight:700; letter-spacing:.09em; color:var(--navy); }
.brand-mark { color:var(--wine); font-size:12px; letter-spacing:.18em; font-weight:800; }
.brand-name { font-size:19px; }
nav { display:flex; align-items:center; gap:clamp(14px,2vw,28px); font-size:14px; font-weight:700; }
.nav-cta { padding:8px 18px; border-radius:999px; color:#fff; background:var(--wine); }
.mobile-menu { display:none; position:relative; }
.mobile-menu summary { display:flex; align-items:center; gap:8px; padding:8px 13px; color:var(--navy); border:1px solid rgba(18,54,77,.2); border-radius:999px; font-size:13px; font-weight:800; list-style:none; cursor:pointer; }
.mobile-menu summary::-webkit-details-marker { display:none; }
.mobile-menu summary::before { content:"☰"; font-size:17px; line-height:1; }
.mobile-menu[open] summary::before { content:"×"; }
.mobile-menu-panel { position:absolute; top:calc(100% + 12px); right:0; width:min(300px,calc(100vw - 32px)); box-sizing:border-box; padding:10px; display:grid; grid-template-columns:minmax(0,1fr); gap:2px; background:rgba(255,255,255,.98); border:1px solid rgba(18,54,77,.12); border-radius:8px; box-shadow:0 18px 42px rgba(18,54,77,.18); }
.mobile-menu-panel a { display:block; width:100%; box-sizing:border-box; padding:11px 13px; border-radius:5px; font-size:14px; font-weight:700; white-space:nowrap; }
.mobile-menu-panel a:hover { background:#edf1f1; }
.mobile-menu-panel .mobile-menu-cta { margin-top:4px; color:#fff; text-align:center; background:var(--wine); }
.paid-label { display:inline-block; margin-left:8px; padding:3px 8px; color:#fff; background:var(--wine); border-radius:999px; font-size:11px; line-height:1.4; vertical-align:middle; }
.inquiry-type { margin:0 0 26px; padding:0; border:0; }
.inquiry-type legend { margin-bottom:9px; color:var(--navy); font-size:14px; font-weight:700; }
.inquiry-type legend b { margin-left:5px; color:var(--wine); font-size:11px; }
.inquiry-type-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.contact-form .inquiry-choice { display:flex; align-items:flex-start; gap:11px; min-height:92px; box-sizing:border-box; padding:15px; border:1px solid #aebbc2; border-radius:5px; cursor:pointer; }
.contact-form .inquiry-choice:has(input:checked) { border-color:var(--wine); box-shadow:0 0 0 3px rgba(104,16,64,.11); }
.contact-form .inquiry-choice input { flex:0 0 auto; width:18px; height:18px; margin:3px 0 0; accent-color:var(--wine); }
.contact-form .inquiry-choice span { margin:0; }
.contact-form .inquiry-choice strong { display:block; color:var(--navy); font-size:15px; }
.contact-form .inquiry-choice small { display:block; margin-top:5px; color:#5b6870; font-size:12px; font-weight:500; line-height:1.6; }
.contact-button:disabled { cursor:not-allowed; opacity:.62; transform:none; }
.form-result-page { min-height:100vh; display:grid; place-items:center; box-sizing:border-box; padding:28px; background:linear-gradient(145deg,#eef1f0,#f8f7f2); }
.form-result-card { width:min(680px,100%); box-sizing:border-box; padding:clamp(30px,6vw,58px); background:#fff; border-top:5px solid var(--navy); box-shadow:0 24px 60px rgba(18,54,77,.15); }
.form-result-card.is-error { border-top-color:var(--wine); }
.form-result-status { margin-bottom:10px; color:var(--wine); font-size:14px; font-weight:800; }
.form-result-card h1 { margin-bottom:18px; font-size:clamp(27px,4vw,40px); }
.form-result-card > p:not(.section-label):not(.form-result-status) { margin-bottom:28px; }
.form-result-mail { display:inline-block; margin-left:20px; color:var(--wine); font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.hero { min-height:680px; display:grid; grid-template-columns:1.15fr .85fr; gap:35px; align-items:center; padding:80px clamp(24px,10vw,150px) 110px; overflow:hidden; background:linear-gradient(118deg,#f7f7f3 0%,#f7f7f3 53%,#e8eef0 53%,#e8eef0 100%); }
.eyebrow,.section-label { color:var(--wine); font-size:12px; letter-spacing:.17em; font-weight:800; margin:0 0 20px; }
h1,h2,h3,p { margin-top:0; }
h1 { color:var(--navy); font-size:clamp(36px,4.2vw,64px); line-height:1.38; letter-spacing:.04em; margin-bottom:18px; }
.hero-role { color:var(--wine); font-size:clamp(20px,2vw,28px); font-weight:800; letter-spacing:.1em; margin-bottom:28px; }
.lead { max-width:600px; font-size:16px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:36px; }
.button { display:inline-block; padding:15px 25px; border-radius:3px; font-weight:800; transition:.2s; }
.button:hover { transform:translateY(-2px); }
.primary { color:#fff; background:var(--navy); box-shadow:0 10px 22px rgba(18,54,77,.22); }
.hero-visual { position:relative; min-height:440px; display:grid; place-items:center; }
.logo-panel { position:relative; z-index:1; width:min(420px,94%); aspect-ratio:1; display:grid; place-items:center; padding:42px; overflow:hidden; background:#fff; border:1px solid rgba(18,54,77,.08); border-radius:50%; box-shadow:0 24px 50px rgba(18,54,77,.15); }
.logo-panel img { width:100%; height:auto; display:block; }
.orbit { position:absolute; width:410px; height:410px; border:1px solid rgba(104,16,64,.28); border-radius:50%; }.orbit-one { transform:translate(45px,-24px); }.orbit-two { width:300px; height:300px; border-color:rgba(18,54,77,.26); transform:translate(-115px,78px); }
.section { padding:110px clamp(24px,10vw,150px); }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,9vw,145px); }.intro h2,.support h2,.contact h2 { color:var(--navy); font-size:clamp(30px,3.3vw,48px); line-height:1.45; }.intro em { color:var(--wine); font-style:normal; }.intro p { max-width:570px; }
.purpose-photo { position:relative; width:76%; max-width:980px; margin:56px auto 0; overflow:hidden; border-radius:6px; box-shadow:0 18px 38px rgba(18,54,77,.13); }
.purpose-photo img { width:100%; height:auto; aspect-ratio:16/7; display:block; object-fit:cover; object-position:center 42%; }
.purpose-photo figcaption { position:absolute; left:0; bottom:0; margin:0; padding:20px 28px; color:#fff; background:linear-gradient(90deg,rgba(18,54,77,.94),rgba(18,54,77,.18)); font-size:14px; font-weight:700; letter-spacing:.06em; }
.section-tint { background:#e9edef; }.issues h2 { color:var(--navy); font-size:clamp(30px,3.3vw,46px); }.cards { display:grid; gap:18px; margin-top:42px; }.three-columns { grid-template-columns:repeat(3,1fr); }.issue-card { min-height:250px; padding:30px; display:flex; flex-direction:column; background:var(--paper); border-top:4px solid var(--wine); }.issue-card span { color:var(--wine); font-weight:800; letter-spacing:.13em; }.issue-card h3 { color:var(--navy); font-size:20px; line-height:1.55; margin:18px 0 12px; }.issue-card p { flex:1; font-size:14px; }.issue-card img { width:100%; height:auto; aspect-ratio:4/3; display:block; margin-top:18px; object-fit:cover; border-radius:3px; }
.issue-card img { width:82%; aspect-ratio:16/9; margin:16px auto 0; }
.section-lead { max-width:820px; margin-top:24px; }.steps { list-style:none; padding:0; margin:48px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:0; counter-reset:steps; }.steps li { padding:0 32px; border-left:1px solid var(--line); }.steps li:first-child { border-left:0; padding-left:0; }.step-number { color:var(--wine); font-size:12px; letter-spacing:.12em; font-weight:800; }.steps h3 { min-height:80px; color:var(--navy); font-size:22px; margin:17px 0; }.steps h3 small { display:block; margin-top:5px; font-size:13px; font-weight:600; letter-spacing:.02em; }.steps p { font-size:14px; }
.section-navy { background:var(--navy); color:#e9edef; }.section-navy .section-label { color:#dba8c0; }.section-navy h2 { color:#fff; font-size:clamp(30px,3.3vw,48px); line-height:1.45; }.service-lead { max-width:850px; margin:24px 0 0; }.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:38px; margin-top:45px; }.process-grid div { padding-top:19px; border-top:1px solid rgba(255,255,255,.42); }.process-grid b { color:#dba8c0; letter-spacing:.12em; }.process-grid h3 { color:#fff; margin:15px 0 9px; line-height:1.6; }.process-grid p { font-size:14px; }.outputs { margin-top:76px; padding-top:64px; border-top:1px solid rgba(255,255,255,.22); }.outputs-heading { display:grid; grid-template-columns:.65fr 1.35fr; gap:10px 40px; align-items:end; }.outputs-heading .section-label { grid-column:1 / -1; margin-bottom:8px; }.outputs-heading h3 { margin:0; color:#fff; font-size:clamp(24px,2.4vw,34px); }.outputs-heading > p:last-child { margin:0; font-size:14px; }.output-table-wrap { margin-top:30px; overflow-x:auto; border:1px solid rgba(255,255,255,.24); }.output-table { width:100%; min-width:760px; border-collapse:collapse; background:rgba(255,255,255,.04); font-size:14px; line-height:1.65; }.output-table th,.output-table td { padding:16px 18px; text-align:left; vertical-align:top; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }.output-table th:last-child,.output-table td:last-child { border-right:0; }.output-table tbody tr:last-child td { border-bottom:0; }.output-table th { color:#fff; background:rgba(255,255,255,.1); font-size:13px; letter-spacing:.05em; }.output-table td:first-child { width:28%; color:#fff; font-weight:700; }.output-table td:nth-child(2) { width:30%; }.outputs-note { margin:13px 0 0; color:#bdcbd3; font-size:12px; }
.about { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(35px,9vw,145px); }.title-small { color:var(--wine); font-size:21px; font-weight:800; line-height:1.6; }.about h2 { color:var(--navy); font-size:40px; letter-spacing:.16em; }.about-copy { max-width:710px; }.affiliation-note { margin:24px 0 0; padding-top:18px; color:#65727a; border-top:1px solid var(--line); font-size:11px; line-height:1.75; }.local-mission { margin-top:34px; padding:25px 28px; background:#f1f3f2; border-left:4px solid var(--wine); }.local-mission h3 { margin:0 0 9px; color:var(--wine); font-size:17px; letter-spacing:.08em; }.local-mission p { margin:0; color:var(--navy); font-weight:700; }.local-mission p + p { margin-top:12px; }.privacy { background:#f2f4f3; }.privacy h2 { color:var(--navy); font-size:clamp(28px,3vw,40px); }.privacy-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:28px 50px; margin-top:38px; }.privacy-grid h3 { margin-bottom:7px; color:var(--navy); font-size:17px; }.privacy-grid p { margin:0; font-size:13px; }.privacy a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }.consent-field a { color:var(--wine); text-decoration:underline; text-underline-offset:3px; }
.contact { padding:105px clamp(24px,10vw,150px); text-align:center; color:#fff; background:var(--wine); }.contact .section-label { color:#f1cadb; }.contact h2 { color:#fff; margin-bottom:20px; }.contact > p:not(.area):not(.contact-email) { max-width:590px; margin-left:auto; margin-right:auto; }.diagnosis-box { max-width:650px; margin:36px auto 21px; padding:24px 30px; text-align:left; color:var(--navy); background:#fff; border-radius:4px; }.diagnosis-box div { display:flex; align-items:baseline; justify-content:space-between; gap:20px; }.diagnosis-box strong { font-size:21px; }.diagnosis-box p { margin:10px 0 0; font-size:14px; }.area { font-size:13px; color:#f1cadb; }.contact-form { max-width:780px; margin:38px auto 0; padding:34px; text-align:left; color:var(--ink); background:#fff; border-radius:6px; box-shadow:0 20px 45px rgba(33,4,21,.2); }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px 22px; }.contact-form label { display:block; }.contact-form label > span { display:block; margin-bottom:7px; color:var(--navy); font-size:14px; font-weight:700; }.contact-form label b { margin-left:5px; color:var(--wine); font-size:11px; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; padding:12px 13px; color:var(--ink); background:#fff; border:1px solid #aebbc2; border-radius:3px; font:inherit; line-height:1.5; }.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { outline:3px solid rgba(104,16,64,.16); border-color:var(--wine); }.message-field { margin-top:22px; }.contact-form textarea { resize:vertical; }.consent-field { display:flex !important; align-items:flex-start; gap:10px; margin-top:20px; }.consent-field input { width:18px; height:18px; margin-top:3px; accent-color:var(--wine); }.consent-field span { margin:0 !important; font-weight:500 !important; line-height:1.65; }.honey-field { position:absolute !important; left:-9999px !important; }.contact-button { display:block; margin:28px auto 0; border:0; color:#fff; background:var(--wine); cursor:pointer; }.contact-button:hover { background:#4e0c30; }.form-note { margin:12px 0 0; text-align:center; color:#5b6870; font-size:12px; }.contact-email { margin:20px auto 0; font-size:14px; }.contact-email a { color:#fff; text-decoration:underline; text-underline-offset:4px; }
footer { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:26px clamp(24px,5vw,72px); color:#fff; background:#0c2739; font-size:12px; letter-spacing:.07em; }
@media (max-width:800px) { .site-header { height:auto; padding-top:18px; padding-bottom:18px; }.brand-mark { display:none; } nav a:not(.nav-cta) { display:none; }.hero { grid-template-columns:1fr; padding-top:60px; padding-bottom:66px; }.hero-visual { min-height:320px; }.logo-panel { width:280px; padding:30px; }.orbit { width:280px; height:280px; }.orbit-two { width:210px; height:210px; transform:translate(-80px,50px); }.intro-grid,.about,.privacy-grid { grid-template-columns:1fr; }.purpose-photo { width:100%; margin-top:38px; }.purpose-photo img { aspect-ratio:4/3; }.purpose-photo figcaption { width:100%; padding:14px 17px; font-size:12px; }.three-columns,.steps,.process-grid,.outputs-heading { grid-template-columns:1fr; }.steps li,.steps li:first-child { padding:22px 0; border-left:0; border-top:1px solid var(--line); }.steps li:first-child { border-top:0; }.section { padding-top:75px; padding-bottom:75px; }.outputs { margin-top:56px; padding-top:48px; }.outputs-heading { gap:12px; }.output-table-wrap { margin-right:-24px; border-right:0; }.output-table th,.output-table td { padding:14px; }.desktop-only { display:none; }.diagnosis-box div { align-items:flex-start; flex-direction:column; gap:4px; }.contact-form { padding:24px 18px; }.form-grid { grid-template-columns:1fr; gap:17px; } }
@media (max-width:800px) { .site-header .desktop-nav { display:none !important; }.mobile-menu { display:block; } }
@media (max-width:800px) { .concept-hero-copy > p:last-child,.concept-origin-message { text-align:left; }.concept-origin-message { font-size:16px; line-height:1.85; }.form-note { text-align:left; } }
@media (max-width:800px) { .concept-hero,.concept-section-heading,.concept-closing,.contact { text-align:left; }.concept-actions { justify-content:flex-start; }.contact > p:not(.area):not(.contact-email) { margin-left:0; margin-right:0; } }
@media (max-width:800px) { .inquiry-type-grid { grid-template-columns:1fr; }.contact-form .inquiry-choice { min-height:0; } }
@media (max-width:560px) { .form-result-mail { display:block; margin:18px 0 0; }.form-result-card .button { width:100%; box-sizing:border-box; text-align:center; } }

/* Company concept */
.concept-page { color:#485555; background:#eef0ec; }
.concept-header { background:rgba(250,250,246,.94); border-bottom-color:rgba(83,101,99,.13); }
.concept-hero { position:relative; overflow:hidden; padding:95px clamp(24px,8vw,120px) 115px; text-align:center; background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.92),transparent 32%),radial-gradient(circle at 88% 18%,rgba(190,203,198,.34),transparent 26%),linear-gradient(180deg,#eef1ee 0%,#e7ebe7 100%); }
.concept-hero::before { content:""; position:absolute; width:320px; height:320px; top:180px; left:-190px; border:1px solid rgba(118,140,135,.24); border-radius:50%; }
.concept-hero-copy { position:relative; z-index:1; max-width:920px; margin:0 auto; }
.concept-hero h1 { color:#536362; font-size:clamp(38px,5.2vw,70px); font-weight:500; line-height:1.45; letter-spacing:.06em; }
.concept-hero h1 em { color:#7f918b; font-style:normal; font-weight:700; }
.concept-hero-copy > p:last-child { max-width:710px; margin:25px auto 0; font-size:16px; }
.concept-art { position:relative; z-index:1; max-width:1050px; aspect-ratio:903/520; margin:58px auto 0; overflow:hidden; background:#f6f5ef; border:1px solid rgba(82,99,97,.1); box-shadow:0 28px 55px rgba(60,75,73,.18); }
.concept-art img { width:100%; height:100%; display:block; object-fit:cover; object-position:top; }
.concept-section { padding:120px clamp(24px,10vw,150px); }
.concept-section-heading { max-width:900px; margin:0 auto; text-align:center; }
.concept-section-heading .section-label { margin-bottom:14px; }
.concept-section-heading h2 { max-width:780px; margin:0 auto; }
.concept-section h2,.concept-closing h2 { color:#536362; font-size:clamp(31px,3.7vw,50px); line-height:1.55; }
.concept-name-grid { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; gap:24px; max-width:1280px; margin:58px auto 0; }
.concept-name-grid article { min-height:285px; padding:34px; background:rgba(250,250,246,.84); border:1px solid rgba(83,101,99,.13); box-shadow:0 12px 28px rgba(65,80,78,.06); }
.concept-name-grid article:nth-child(1) { border-top:3px solid #9aaaa5; }
.concept-name-grid article:nth-child(3) { border-top:3px solid #728682; }
.concept-name-grid .concept-name-center { color:#fff; background:#6f817d; border-color:#6f817d; }
.concept-name { display:inline-grid; place-items:center; min-width:64px; height:64px; padding:0 13px; color:#61736f; background:#e4e9e5; border-radius:50%; font-family:Arial,sans-serif; font-size:25px; font-weight:700; }
.concept-name-center .concept-name { color:#5f716e; background:#f7f6ef; }
.concept-name-grid h3 { margin:23px 0 10px; color:#536362; font-size:21px; }
.concept-name-center h3 { color:#fff; }
.concept-name-grid p { margin:0; font-size:14px; }
.concept-origin-message { max-width:880px; margin:46px auto 0; text-align:center; color:#536362; font-size:18px; font-weight:700; line-height:2; }
.concept-beliefs { color:#e8edeb; background:#536562; }
.concept-beliefs .section-label { color:#cdd8d3; }
.concept-beliefs h2 { color:#fff; }
.concept-belief-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:55px; background:rgba(255,255,255,.18); }
.concept-belief-grid article { min-height:270px; padding:38px 34px; background:#536562; }
.concept-belief-grid span { color:#cdd8d3; font-weight:800; letter-spacing:.15em; }
.concept-belief-grid h3 { margin:18px 0 12px; color:#fff; font-size:22px; }
.concept-belief-grid p { margin:0; font-size:14px; }
.concept-closing { padding:115px 24px 125px; text-align:center; background:radial-gradient(circle at 50% 10%,rgba(205,216,211,.42),transparent 38%),#f6f5ef; }
.concept-closing h2 { margin-bottom:20px; }
.concept-closing > p:not(.section-label) { margin-bottom:0; }
.concept-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:16px; margin-top:36px; }
.concept-button-secondary { color:#536362; border:1px solid #859792; background:transparent; }
.concept-button-secondary:hover { color:#fff; background:#6f817d; }

@media (max-width:800px) {
  .concept-hero { padding-top:70px; padding-bottom:78px; }
  .concept-hero h1 { font-size:clamp(34px,10vw,46px); }
  .concept-art { margin-top:38px; }
  .concept-section { padding-top:80px; padding-bottom:80px; }
  .concept-section-heading,.concept-name-grid,.concept-belief-grid { grid-template-columns:1fr; }
  .concept-name-grid { gap:16px; margin-top:42px; }
  .concept-name-grid .concept-name-center { transform:none; }
  .concept-name-grid article { min-height:0; }
  .concept-origin-message { margin-top:38px; text-align:left; font-size:16px; }
  .concept-belief-grid article { min-height:0; border-bottom:1px solid rgba(255,255,255,.18); }
  .concept-closing { padding-top:85px; padding-bottom:95px; }
}
