:root{
  --navy:#062f4a;--navy2:#08283d;--ink:#152b36;--gold:#a88742;--gold2:#c4a459;
  --paper:#faf8f2;--paper2:#f1ede3;--mist:#e9f0f2;--green:#6f8768;--line:rgba(25,48,59,.16);
  --max:1220px;--serif:"Noto Serif JP","Playfair Display",serif;--sans:"Noto Sans JP","Noto Sans",sans-serif;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.85}a{color:inherit}img{max-width:100%}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;z-index:100;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}
.site-header{height:94px;padding:0 max(28px,calc((100vw - var(--max))/2));display:flex;align-items:center;gap:30px;position:sticky;top:0;z-index:50;background:rgba(250,248,242,.95);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;min-width:285px}.brand-mark{width:52px;height:52px;color:var(--navy)}.brand-mark svg{display:block;width:100%;height:100%}.brand-type{display:block;line-height:1.15}.brand-type small,.brand-type b,.brand-type em{display:block}.brand-type small{font-family:var(--serif);font-size:10px;margin-bottom:5px}.brand-type b{font-family:var(--serif);font-size:19px;letter-spacing:.05em}.brand-type em{font-family:"Playfair Display",serif;font-size:9px;letter-spacing:.16em;font-style:normal;margin-top:5px}
nav{display:flex;gap:25px;margin-left:auto;align-items:center}nav a{text-decoration:none;font-family:var(--serif);font-size:12px;white-space:nowrap;position:relative}nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;border-bottom:1px solid var(--gold);transition:.25s}nav a:hover:after{right:0}.lang-wrap{display:flex;align-items:center;gap:7px;font-size:8px;letter-spacing:.15em;font-weight:700}.lang-wrap select{border:1px solid var(--line);padding:9px 25px 9px 10px;background:white;color:var(--ink);max-width:118px;font:inherit}
.hero{min-height:720px;position:relative;overflow:hidden;background:var(--paper);display:grid;grid-template-columns:52% 48%}.hero-paper{position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,248,242,1) 0 48%,rgba(250,248,242,.88) 59%,rgba(250,248,242,.1) 76%);z-index:2}.hero-art{grid-column:2;background:url('hero-watercolor.png') center/cover no-repeat;min-height:720px;filter:saturate(.88) contrast(.98)}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper),transparent 32%),linear-gradient(0deg,rgba(250,248,242,.15),transparent 40%)}
.hero-copy{position:absolute;z-index:4;left:max(28px,calc((100vw - var(--max))/2));top:50%;transform:translateY(-50%);width:min(735px,56vw);padding-right:0}.eyebrow,.kicker{font-size:10px;font-weight:700;letter-spacing:.22em;color:var(--gold);margin:0 0 20px}.hero h1{font-family:var(--serif);font-size:clamp(44px,4.2vw,60px);line-height:1.35;letter-spacing:.03em;margin:0 0 25px;font-weight:600}.hero-lead{font-family:var(--serif);font-size:18px;line-height:2;max-width:610px;margin:0}.hero-sub{max-width:620px;font-size:13px;color:#52636b;margin:17px 0 0}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:35px}.btn.gold{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;min-width:270px;padding:15px 20px;background:var(--gold);color:white;text-decoration:none;font-weight:600;font-size:13px;box-shadow:0 15px 35px rgba(81,63,24,.16)}.btn.gold i,.text-link i{font-style:normal}.text-link{font-size:12px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:4px;display:flex;gap:12px}.hero-seal{position:absolute;z-index:5;right:max(18px,calc((100vw - var(--max))/2 - 30px));bottom:70px;width:190px;height:190px;border-radius:50%;background:rgba(126,97,36,.9);color:white;border:1px solid rgba(255,255,255,.55);box-shadow:0 0 0 8px rgba(126,97,36,.12);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.hero-seal small{font-size:9px}.hero-seal b{font-family:var(--serif);font-size:19px;line-height:1.7;margin:7px 0}.hero-seal span{font-size:8px;letter-spacing:.2em}
.section{max-width:var(--max);margin:auto;padding:120px 28px}.section-title{max-width:840px}.section-title.center{text-align:center;margin:0 auto 70px}.section-title h2,.why-survey h2,.survey-intro h2,.company-brand h2{font-family:var(--serif);font-weight:600;font-size:clamp(34px,4vw,55px);line-height:1.5;letter-spacing:.04em;margin:0 0 22px}.section-lead{font-size:15px;color:#5b686d;margin:0}
.story-section{padding-bottom:135px}.manifesto{display:grid;grid-template-columns:170px 1fr;gap:65px;align-items:start;padding:52px 0;border-top:1px solid var(--line)}.manifesto.reverse{margin-left:12%}.manifesto-number{font-family:"Playfair Display",serif;font-size:58px;color:rgba(168,135,66,.45);line-height:1}.manifesto h3{font-family:var(--serif);font-size:28px;line-height:1.65;margin:0 0 18px;font-weight:600}.manifesto p{font-size:15px;margin:0;max-width:850px}.mission-quote{max-width:930px;margin:70px auto 0;padding:50px 60px;text-align:center;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);font-family:var(--serif);font-size:28px;line-height:1.8;color:var(--navy)}
.connections-section{background:#eef2ef;padding:120px 28px}.connections-inner{max-width:var(--max);margin:auto}.connection-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:start;margin-top:60px}.connection-list article{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:28px 0;border-top:1px solid var(--line)}.connection-list article:last-child{border-bottom:1px solid var(--line)}.connection-list article>span{font-family:"Playfair Display",serif;color:var(--gold);font-size:20px}.connection-list h3{font-family:var(--serif);font-size:22px;margin:0 0 9px}.connection-list p{margin:0;font-size:13px;color:#5b686d}.map-figure{margin:0;background:rgba(255,255,255,.62);padding:25px;border:1px solid rgba(25,48,59,.09)}.map-figure img{display:block;width:100%}.map-figure figcaption{font-size:12px;color:#59676e;border-top:1px solid var(--line);padding-top:16px;margin-top:10px}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.product-card{padding:35px 34px 40px;border-right:1px solid var(--line)}.product-card:last-child{border-right:0}.product-index{font-size:9px;letter-spacing:.18em;color:var(--gold);font-weight:700}.product-image{height:180px;display:flex;align-items:center;justify-content:center;margin:15px 0 24px}.product-image img{width:100%;max-height:150px;object-fit:cover;mix-blend-mode:multiply}.product-card h3{font-family:var(--serif);font-size:27px;margin:0 0 14px}.product-card p{font-size:13px;margin:0;color:#52636b}.preparation-note{display:grid;grid-template-columns:280px 1fr;gap:40px;margin-top:45px;padding:28px 34px;background:var(--paper2);border-left:3px solid var(--gold)}.preparation-note strong{font-family:var(--serif)}.preparation-note p{margin:0;font-size:13px}
.why-survey{background:var(--navy);color:white;padding:90px 28px}.why-survey-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:90px}.why-survey .kicker{color:#d2b56a}.why-survey p{color:rgba(255,255,255,.75);font-size:14px;margin-top:0}.why-survey .survey-emphasis{font-family:var(--serif);color:white;font-size:20px;border-left:2px solid var(--gold2);padding-left:23px;margin-top:28px}
.survey-section{background:#f4f0e6;padding:120px 28px}.survey-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.survey-intro{position:sticky;top:125px;align-self:start}.survey-intro p{font-size:14px;color:#5b686d}.survey-intro ul{list-style:none;padding:0;margin:40px 0 0;border-top:1px solid var(--line)}.survey-intro li{display:flex;gap:18px;padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}.survey-intro li b{font-family:"Playfair Display",serif;color:var(--gold);font-size:15px}
.survey-form{background:white;border:1px solid rgba(25,48,59,.12);padding:42px;box-shadow:0 30px 70px rgba(13,40,57,.08)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .full{grid-column:1/-1}.form-grid label>span,.survey-form legend{font-size:11px;font-weight:700;display:block;margin-bottom:8px}.survey-form input,.survey-form select,.survey-form textarea{width:100%;font:inherit;font-size:13px;padding:13px 14px;border:1px solid rgba(25,48,59,.2);background:#fbfaf6;border-radius:0;color:var(--ink)}.survey-form fieldset{border:0;padding:0;margin:30px 0}.checks,.radios{display:flex;flex-wrap:wrap;gap:9px}.checks label,.radios label{display:flex;align-items:center;gap:7px;padding:10px 12px;border:1px solid var(--line);font-size:11px;background:#fbfaf6}.checks input,.radios input,.consent input{width:auto}.sample-field{background:#f5f0e4;padding:22px!important;border-left:2px solid var(--gold)!important}.sample-note{font-size:11px;color:#677279;margin:-2px 0 14px}.consent{display:flex;gap:10px;align-items:flex-start;font-size:10px;margin:20px 0}.submit-button{width:100%;border:0;background:var(--navy);color:white;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.submit-button i{font-style:normal}.privacy{font-size:9px;text-align:center;color:#748087;margin:12px 0 0}.form-status{padding:13px 15px;margin-bottom:20px;background:#e8f1ec;border-left:3px solid #6f8768;font-size:12px}.form-status.error{background:#f5e8e5;border-color:#9f645a}
.company-section{background:#082c43;color:white;padding:105px 28px}.company-inner{max-width:var(--max);margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.company-brand .kicker{color:#d5b76b}.company-brand p{font-size:13px;color:rgba(255,255,255,.7)}
.company-brand .company-legal-name{font-family:var(--serif);font-size:16px;letter-spacing:.08em;color:white;margin:-12px 0 22px}.company-brand>a{display:inline-block;color:white;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.5);font-size:12px;margin-top:18px}.company-inner dl{margin:0}.company-inner dl div{display:grid;grid-template-columns:130px 1fr;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.16)}.company-inner dt{font-size:9px;letter-spacing:.15em;color:#d5b76b;font-weight:700}.company-inner dd{margin:0;font-size:12px}.company-inner dd a{text-decoration:none}
footer{padding:38px max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:#061f30;color:white;border-top:1px solid rgba(255,255,255,.12)}.footer-logo b,.footer-logo small{display:block}.footer-logo b{font-family:var(--serif);font-size:17px}.footer-logo small,footer>small,footer>p{font-size:8px;letter-spacing:.13em;color:rgba(255,255,255,.58);margin:0}.footer-logo small{margin-top:4px}
@media(max-width:1050px){nav{display:none}.brand{min-width:0}.hero-copy{width:60vw}.hero-seal{display:none}}
@media(max-width:820px){
 .site-header{height:76px;padding:0 18px}.brand-mark{width:42px;height:42px}.brand-type small{display:none}.brand-type b{font-size:15px}.brand-type em{font-size:7px}.lang-wrap span{display:none}
 .hero{display:block;min-height:790px}.hero-art{position:absolute;inset:0 0 45% 25%;min-height:0;background-position:65% center}.hero-paper{background:linear-gradient(0deg,var(--paper) 0 48%,rgba(250,248,242,.78) 72%,rgba(250,248,242,.15) 100%)}.hero-copy{left:22px;right:22px;top:auto;bottom:48px;transform:none;width:auto;padding:0}.hero h1{font-size:43px}.hero-lead{font-size:15px}.hero-sub{font-size:11px}.hero-actions{align-items:flex-start;flex-direction:column;gap:17px}.btn.gold{width:100%;min-width:0}
 .section{padding:85px 22px}.manifesto,.manifesto.reverse{grid-template-columns:60px 1fr;gap:20px;margin-left:0;padding:38px 0}.manifesto-number{font-size:35px}.manifesto h3{font-size:21px}.manifesto p{font-size:13px}.mission-quote{font-size:20px;padding:35px 20px}
 .connections-section,.survey-section,.company-section,.why-survey{padding:85px 22px}.connection-layout,.survey-inner,.company-inner,.why-survey-inner{grid-template-columns:1fr;gap:45px}.product-grid{grid-template-columns:1fr}.product-card{border-right:0;border-bottom:1px solid var(--line)}.preparation-note{grid-template-columns:1fr;gap:8px}.survey-intro{position:static}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.survey-form{padding:25px}.company-inner dl div{grid-template-columns:95px 1fr}footer{grid-template-columns:1fr}
}


/* === v2.2 Typography & line-break refinement === */
:where(h1,h2,h3,p,blockquote,figcaption,dd){
  line-break: strict;
}
:where(h1,h2,h3,blockquote){
  text-wrap: balance;
  word-break: normal;
  overflow-wrap: normal;
  font-feature-settings: "palt" 1;
}
:where(p,figcaption,dd,li){
  text-wrap: pretty;
  overflow-wrap: break-word;
}
/* Chrome supports phrase-aware wrapping for CJK; other browsers use the fallback above. */
@supports (word-break: auto-phrase){
  html:where([lang="ja"],[lang="zh-TW"],[lang="zh-CN"],[lang="ko"]) :where(h1,h2,h3,p,blockquote){
    word-break: auto-phrase;
  }
}
.hero-copy{
  width:min(760px,57vw);
}
.hero h1{
  max-width:12.8em;
  margin-inline:0;
}
.hero-lead,.hero-sub{
  max-width:48em;
}
.section-title h2,
.why-survey h2,
.survey-intro h2,
.company-brand h2{
  max-width:18em;
}
.section-title.center h2{
  margin-left:auto;
  margin-right:auto;
}
.section-title.center .section-lead{
  max-width:50em;
  margin-left:auto;
  margin-right:auto;
}
.manifesto h3,
.connection-list h3,
.product-card h3{
  text-wrap: balance;
}

/* Latin-language headings need tighter, less Japanese-style tracking. */
html:where([lang="en"],[lang="fr"],[lang="de"],[lang="es"],[lang="it"]) .hero h1{
  max-width:13ch;
  line-height:1.14;
  letter-spacing:-.018em;
}
html:where([lang="en"],[lang="fr"],[lang="de"],[lang="es"],[lang="it"]) :where(.section-title h2,.why-survey h2,.survey-intro h2,.company-brand h2){
  line-height:1.22;
  letter-spacing:-.01em;
}

/* CJK typography: keep punctuation and phrases together cleanly. */
html:where([lang="ja"],[lang="zh-TW"],[lang="zh-CN"],[lang="ko"]) .hero h1{
  max-width:12.5em;
  letter-spacing:.02em;
}
html[lang="ja"] .hero-lead,
html[lang="ja"] .hero-sub{
  max-width:42em;
}

@media(max-width:1050px){
  .hero-copy{width:min(690px,62vw)}
}
@media(max-width:820px){
  .hero-copy{width:auto}
  .hero h1{
    max-width:none!important;
    font-size:clamp(34px,9.4vw,42px);
    line-height:1.42;
    letter-spacing:.015em;
    text-wrap:balance;
  }
  .hero-lead{
    font-size:14px;
    line-height:1.95;
  }
  .hero-sub{
    font-size:11px;
    line-height:1.9;
  }
  .section-title h2,
  .why-survey h2,
  .survey-intro h2,
  .company-brand h2{
    max-width:none;
    font-size:clamp(30px,8.2vw,40px);
    line-height:1.45;
    letter-spacing:.02em;
  }
  .manifesto h3{
    font-size:clamp(19px,5.4vw,22px);
    line-height:1.65;
  }
  .mission-quote{
    text-wrap:pretty;
  }
}
@media(max-width:430px){
  .hero h1{font-size:clamp(32px,9.1vw,38px)}
  .brand-type b{font-size:14px}
  .section-title h2,
  .why-survey h2,
  .survey-intro h2,
  .company-brand h2{font-size:clamp(28px,8vw,36px)}
}


/* === v2.3 Heritage / social mission section === */
.heritage-section{
  position:relative;
  padding:120px 28px;
  background:
    radial-gradient(circle at 12% 15%,rgba(177,138,67,.09),transparent 27%),
    linear-gradient(180deg,#082d45 0%,#061f31 100%);
  color:white;
  overflow:hidden;
}
.heritage-section::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.07;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px);
  background-size:80px 80px;
  mask-image:linear-gradient(180deg,transparent,black 25%,black 75%,transparent);
}
.heritage-inner{position:relative;z-index:1;max-width:var(--max);margin:auto}
.heritage-heading .kicker{color:#d3b66d}
.heritage-heading h2{max-width:15em;color:white}
.heritage-heading .section-lead{color:rgba(255,255,255,.72);max-width:52em}
.heritage-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin:72px 0 88px;
  border-top:1px solid rgba(255,255,255,.2);
  border-bottom:1px solid rgba(255,255,255,.2);
}
.heritage-stats article{
  min-height:210px;
  padding:38px 32px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid rgba(255,255,255,.2);
}
.heritage-stats article:last-child{border-right:0}
.heritage-stats strong{
  display:block;
  font-family:"Playfair Display",var(--serif),serif;
  font-size:clamp(42px,5.1vw,72px);
  line-height:1;
  color:#d7b86a;
  letter-spacing:-.035em;
  white-space:nowrap;
}
.heritage-stats span{
  display:block;
  max-width:25em;
  margin-top:18px;
  color:rgba(255,255,255,.68);
  font-size:11px;
  line-height:1.8;
}
.heritage-narrative{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.15);
}
.heritage-copy{
  min-height:430px;
  padding:42px 38px;
  background:#0b344c;
}
.heritage-copy:nth-child(2){background:#0a3047}
.heritage-copy.heritage-promise{background:#f1ebde;color:var(--ink)}
.heritage-number{
  margin:0 0 75px;
  font-family:"Playfair Display",serif;
  font-size:14px;
  color:#d1b368;
  letter-spacing:.16em;
}
.heritage-copy h3{
  min-height:3.4em;
  margin:0 0 24px;
  font-family:var(--serif);
  font-size:clamp(22px,2.25vw,30px);
  line-height:1.55;
  color:white;
}
.heritage-copy>p:last-child{
  margin:0;
  font-size:13px;
  line-height:2.05;
  color:rgba(255,255,255,.72);
}
.heritage-promise h3{color:var(--navy)}
.heritage-promise>p:last-child{color:#52636b}
.heritage-quote{
  max-width:900px;
  margin:88px auto 42px;
  padding:0;
  border:0;
  text-align:center;
  font-family:var(--serif);
  font-size:clamp(25px,3.2vw,42px);
  line-height:1.75;
  color:white;
}
.heritage-quote::before{
  content:"";
  display:block;
  width:46px;
  height:1px;
  margin:0 auto 34px;
  background:#d1b368;
}
.heritage-source{
  margin:0;
  text-align:center;
  color:rgba(255,255,255,.42);
  font-size:9px;
  line-height:1.8;
}
.heritage-source a{color:rgba(255,255,255,.58);text-underline-offset:3px}

@media(max-width:900px){
  .heritage-section{padding:88px 22px}
  .heritage-stats{grid-template-columns:1fr;margin:55px 0 60px}
  .heritage-stats article{
    min-height:auto;
    padding:30px 22px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.18);
  }
  .heritage-stats article:last-child{border-bottom:0}
  .heritage-stats strong{font-size:clamp(40px,12vw,58px)}
  .heritage-narrative{grid-template-columns:1fr}
  .heritage-copy{min-height:auto;padding:36px 26px 42px}
  .heritage-number{margin-bottom:36px}
  .heritage-copy h3{min-height:0;font-size:24px}
  .heritage-quote{margin-top:65px;font-size:clamp(24px,7vw,34px);text-align:left}
  .heritage-quote::before{margin-left:0}
  .heritage-source{text-align:left}
}
