/* Small preserves the original sizes; large has a 12pt (16px) minimum. */
:root{--text-scale:1.1;--text-min:12px}
:root[data-text-size="small"]{--text-scale:1;--text-min:0px}
:root[data-text-size="large"]{--text-scale:1.25;--text-min:16px}
:root{--ink:#183c31;--green:#183c31;--paper:#f8f7f2;--muted:#626d65;--line:#d9ded5;--accent:#d5bb7d;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:max(var(--text-min), calc((15px) * var(--text-scale)));line-height:1.9}a{color:inherit;text-decoration:none}a:focus-visible,summary:focus-visible{outline:3px solid #b28432;outline-offset:6px}a:hover{text-decoration:underline;text-underline-offset:5px}img{display:block;width:100%;height:auto}p,h1,h2,h3,figure{margin:0}h2{font-family:var(--serif);font-size:max(var(--text-min), calc((clamp(28px,3.5vw,43px)) * var(--text-scale)));font-weight:500;line-height:1.65;letter-spacing:.06em}h3{font-size:max(var(--text-min), calc((21px) * var(--text-scale)));font-weight:600;letter-spacing:.04em}.wrap{max-width:1160px;margin-inline:auto;width:calc(100% - 96px)}.section{padding-block:105px}.eyebrow{font-family:var(--sans);font-size:max(var(--text-min), calc((11px) * var(--text-scale)));font-weight:600;letter-spacing:.16em;margin-bottom:23px}.text-link{display:inline-flex;align-items:center;gap:40px;border-bottom:1px solid var(--ink);padding-block:14px;font-size:max(var(--text-min), calc((13px) * var(--text-scale)))}.text-link span[aria-hidden]{font-size:max(var(--text-min), calc((20px) * var(--text-scale)))}.muted{color:var(--muted)}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{position:fixed;z-index:5;top:10px;left:10px;padding:12px;background:white}
.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;padding-inline:4%;gap:25px;background:var(--paper);position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0;font-weight:700;font-size:max(var(--text-min), calc((21px) * var(--text-scale)));letter-spacing:.08em;line-height:1.4}/* Vector trace of the original Funaba leaf mark. */
.brand-mark{display:block;flex:0 0 auto;width:42px;height:auto}
.brand small{display:block;font-weight:400;font-size:max(var(--text-min), calc((10px) * var(--text-scale)));letter-spacing:.2em;margin-bottom:3px}.site-header nav{display:flex;align-items:center;gap:28px;font-size:max(var(--text-min), calc((12px) * var(--text-scale)));font-weight:600}.nav-contact{background:var(--green);color:white;padding:14px 22px}.nav-contact span{margin-left:20px}
.hero{background:var(--green);color:var(--paper);overflow:hidden}.hero-inner{max-width:1260px;margin:auto;display:grid;grid-template-columns:1fr 1fr;min-height:650px;padding:64px 50px 60px;gap:30px}.hero-copy{position:relative;z-index:1}.hero .eyebrow{color:#d2d9c4}.hero .eyebrow span{padding-inline:12px}.hero h1{font-family:var(--serif);font-size:max(var(--text-min), calc((clamp(40px,4.6vw,62px)) * var(--text-scale)));font-weight:500;letter-spacing:.075em;line-height:1.55}.hero h1 em{font-style:normal;color:var(--accent)}.hero-description{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));line-height:2.2;margin-top:24px;color:#e0e7df}.light{border-color:#83988b;margin-top:16px}.hero-visual{position:relative;align-self:center;padding:0 24px 100px 5px}.photo-frame{position:relative;border:1px solid #809087;padding:12px;transform:rotate(-3deg);background:#214739}.photo-frame img{height:310px;object-fit:cover;filter:saturate(.65)}.photo-label{display:block;padding:10px 4px 0;font-size:max(var(--text-min), calc((9px) * var(--text-scale)));letter-spacing:.21em}.craft-photo{position:absolute;width:225px;bottom:0;right:0;background:var(--paper);color:var(--ink);padding:9px 9px 13px;transform:rotate(5deg);box-shadow:0 5px 25px #10291e40}.craft-photo img{height:155px;object-fit:cover;filter:saturate(.7)}.craft-photo span{font-size:max(var(--text-min), calc((9px) * var(--text-scale)));display:block;margin-top:9px;text-align:center;letter-spacing:.06em}.vertical-note{position:absolute;left:-20px;bottom:70px;writing-mode:vertical-rl;font-size:max(var(--text-min), calc((9px) * var(--text-scale)));letter-spacing:.2em;color:#a8b8a9}.hero-bottom{max-width:1160px;margin:0 auto;border-top:1px solid #4b6759;display:flex;justify-content:space-between;gap:15px;padding:20px 0;font-size:max(var(--text-min), calc((10px) * var(--text-scale)));letter-spacing:.12em;color:#d1dbd0}.hero-bottom a{font-size:max(var(--text-min), calc((9px) * var(--text-scale)))}.hero-bottom a span{margin-left:25px}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:60px}.intro-body{padding-top:35px}.intro-body p+p{margin-top:20px}.intro-body .text-link{margin-top:20px}.business{background:#eeeee5}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:50px;margin-bottom:50px}.section-heading>p{font-size:max(var(--text-min), calc((14px) * var(--text-scale)));color:var(--muted);padding-bottom:8px}.business-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #bcc8ba;border-bottom:1px solid #bcc8ba}.business-item{position:relative;padding:28px 30px 35px;border-right:1px solid #bcc8ba}.business-item:first-child{padding-left:0}.business-item:last-child{border-right:0;padding-right:0}.item-number{font-size:max(var(--text-min), calc((12px) * var(--text-scale)));letter-spacing:.1em}.business-item svg{display:block;width:100%;height:145px;margin:14px 0 25px;color:#62745c}.business-item .eyebrow{font-size:max(var(--text-min), calc((9px) * var(--text-scale)));margin-bottom:5px}.business-item h3{margin-bottom:16px}.business-item>p:last-child{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));color:#4e5f51}.business-note{font-size:max(var(--text-min), calc((12px) * var(--text-scale)));margin-top:24px}.business-note span{display:inline-block;margin-right:22px;font-weight:700}
.process{display:grid;grid-template-columns:repeat(3,1fr);margin:35px 0 40px;gap:36px}.process article{border-top:1px solid #8e9d8c;padding-top:18px}.process span{font-size:max(var(--text-min), calc((10px) * var(--text-scale)));letter-spacing:.12em;color:#61755e}.process h3{margin:9px 0}.process p{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));color:var(--muted)}.factory-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.factory-gallery img{height:230px;object-fit:cover;filter:saturate(.65)}.factory-gallery figure:first-child img{object-position:center 45%}.factory-gallery figcaption{font-size:max(var(--text-min), calc((11px) * var(--text-scale)));padding-top:10px;color:var(--muted)}
.company{background:#e8ece3}.company-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:90px}.company-lead{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));color:var(--muted);margin-top:25px}.history{list-style:none;margin:45px 0 0;padding:0}.history li{display:flex;align-items:baseline;gap:27px;padding:0 0 22px}.history time{font-family:Georgia,serif;font-size:max(var(--text-min), calc((27px) * var(--text-scale)))}.history span{font-size:max(var(--text-min), calc((12px) * var(--text-scale)))}.company-table{margin:0}.company-table>div{display:grid;grid-template-columns:105px 1fr;gap:15px;border-bottom:1px solid #bdc8ba;padding:19px 0;font-size:max(var(--text-min), calc((12px) * var(--text-scale)))}.company-table>div:first-child{border-top:1px solid #bdc8ba}.company-table dt{color:#586a53}.company-table dd{margin:0}.partners{border-bottom:1px solid #bdc8ba;font-size:max(var(--text-min), calc((12px) * var(--text-scale)));padding-block:18px}.partners summary,details summary{cursor:pointer}.partners h3{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));margin-top:20px}.partners p{margin-top:8px}
.access{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.access h2{margin-bottom:25px}.access .muted{font-size:max(var(--text-min), calc((12px) * var(--text-scale)));margin-top:20px}.access .text-link{margin-top:15px;gap:20px}.access-panel{min-height:310px;position:relative;padding:37px;background:#e6e9df;border:1px solid var(--line);background-image:linear-gradient(30deg,transparent 49.5%,#ccd5c5 50%,transparent 50.5%),linear-gradient(130deg,transparent 49.5%,#ccd5c5 50%,transparent 50.5%);overflow:hidden}.access-panel p{position:relative;z-index:1;display:inline-block;background:#e6e9df;padding:15px 15px 15px 0;font-size:max(var(--text-min), calc((13px) * var(--text-scale)))}.access-panel strong{font-family:var(--serif);font-size:max(var(--text-min), calc((26px) * var(--text-scale)));font-weight:500}.location-dot{position:absolute;right:18%;top:45%;width:18px;height:18px;border:4px solid var(--green);border-radius:50%;box-shadow:0 0 0 13px #183c3110}.access-coordinate{position:absolute;left:37px;bottom:25px;font-size:max(var(--text-min), calc((9px) * var(--text-scale)));letter-spacing:.15em}.recruit{padding:32px 0 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:30px}.recruit .eyebrow{margin-bottom:5px}.recruit h2{font-size:max(var(--text-min), calc((24px) * var(--text-scale)))}.recruit p{font-size:max(var(--text-min), calc((13px) * var(--text-scale)));color:var(--muted)}
.contact{background:var(--green);color:var(--paper);padding-block:75px}.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact .eyebrow{color:var(--accent)}.contact h2{font-size:max(var(--text-min), calc((30px) * var(--text-scale)))}.contact h2+p{font-size:max(var(--text-min), calc((12px) * var(--text-scale)));color:#d3ded2;margin-top:20px}.contact-details{border-left:1px solid #5f7867;padding-left:50px}.contact-details>span{font-size:max(var(--text-min), calc((12px) * var(--text-scale)))}.phone{display:block;font-family:Georgia,serif;font-size:max(var(--text-min), calc((clamp(27px,3.3vw,42px)) * var(--text-scale)));white-space:nowrap;line-height:1.7}.phone span{font-size:max(var(--text-min), calc((25px) * var(--text-scale)))}.contact-details>p{font-size:max(var(--text-min), calc((12px) * var(--text-scale)));margin-top:6px}.contact-details>p strong{font-size:max(var(--text-min), calc((18px) * var(--text-scale)));font-weight:400;margin-left:12px}.contact-details small{display:block;font-size:max(var(--text-min), calc((10px) * var(--text-scale)));color:#cfdbce;margin-top:20px}.contact-details details{font-size:max(var(--text-min), calc((11px) * var(--text-scale)));border-top:1px solid #5f7867;padding-top:14px;margin-top:18px}.contact-details details p{margin-top:12px}.contact-details details a{text-decoration:underline}.footer{padding-block:30px;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer .brand{font-size:max(var(--text-min), calc((17px) * var(--text-scale)))}.footer p,.footer>small{font-size:max(var(--text-min), calc((10px) * var(--text-scale)));color:var(--muted)}.footer>a:last-child{font-size:max(var(--text-min), calc((24px) * var(--text-scale)))}
@media(min-width:1440px){.hero-inner{padding-block:75px}.hero h1{font-size:max(var(--text-min), calc((65px) * var(--text-scale)))}}
@media(max-width:1000px){.site-header nav{gap:18px}.site-header nav>a:nth-child(4){display:none}.wrap{width:calc(100% - 64px)}.hero-inner{padding-inline:35px}.hero-bottom{margin-inline:35px}.hero h1{font-size:max(var(--text-min), calc((46px) * var(--text-scale)))}.photo-frame img{height:280px}.company-grid{gap:40px}.contact-inner{gap:35px}.contact-details{padding-left:30px}.brand{font-size:max(var(--text-min), calc((19px) * var(--text-scale)))}.nav-contact{padding:13px}.factory-gallery img{height:200px}}
@media(max-width:720px){html{scroll-padding-top:125px}.site-header{height:auto;min-height:104px;padding:15px 20px 0;flex-wrap:wrap;gap:12px}.brand{font-size:max(var(--text-min), calc((18px) * var(--text-scale)))}.brand-mark{width:35px;height:auto}.site-header nav{width:100%;justify-content:space-between;gap:10px;font-size:max(var(--text-min), calc((11px) * var(--text-scale)));padding-bottom:10px}.site-header nav>a:nth-child(4){display:none}.nav-contact{padding:6px 10px}.nav-contact span{display:none}.wrap{width:calc(100% - 40px)}.section{padding-block:65px}.hero-inner{grid-template-columns:1fr;padding:38px 25px 30px;gap:40px}.hero h1{font-size:max(var(--text-min), calc((clamp(38px,9vw,55px)) * var(--text-scale)));line-height:1.55}.hero-description{font-size:max(var(--text-min), calc((12px) * var(--text-scale)))}.hero .eyebrow{font-size:max(var(--text-min), calc((9px) * var(--text-scale)))}.hero-visual{width:100%;max-width:450px;justify-self:center;padding:0 45px 65px 10px}.photo-frame img{height:220px}.craft-photo{width:170px;right:6px}.craft-photo img{height:118px}.craft-photo span{font-size:max(var(--text-min), calc((7px) * var(--text-scale)))}.vertical-note{left:-10px;bottom:25px;font-size:max(var(--text-min), calc((8px) * var(--text-scale)))}.hero-bottom{margin-inline:20px;padding-block:17px;font-size:max(var(--text-min), calc((8px) * var(--text-scale)))}.hero-bottom>a{display:none}.intro{grid-template-columns:1fr;gap:24px}.intro-body{padding-top:0;font-size:max(var(--text-min), calc((14px) * var(--text-scale)))}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:20px;font-size:max(var(--text-min), calc((13px) * var(--text-scale)))}.business-grid{grid-template-columns:1fr}.business-item,.business-item:first-child,.business-item:last-child{padding:25px 0 30px;border-right:0;border-bottom:1px solid #bcc8ba}.business-item:last-child{border-bottom:0}.business-item svg{height:110px;width:160px;float:right;margin:0 0 10px 16px}.business-item .item-number{display:block;margin-bottom:18px}.business-item .eyebrow{font-size:max(var(--text-min), calc((8px) * var(--text-scale)))}.business-item h3{font-size:max(var(--text-min), calc((19px) * var(--text-scale)))}.business-item>p:last-child{clear:both;padding-top:10px}.business-note span{display:block;margin-bottom:5px}.process{grid-template-columns:1fr;gap:20px}.process article{padding-top:14px}.process h3{font-size:max(var(--text-min), calc((19px) * var(--text-scale)))}.factory-gallery{grid-template-columns:1fr 1fr;gap:20px 12px}.factory-gallery figure:last-child{grid-column:1/-1}.factory-gallery img{height:180px}.factory-gallery figure:last-child img{height:220px}.factory-gallery figcaption{font-size:max(var(--text-min), calc((10px) * var(--text-scale)))}.company-grid{grid-template-columns:1fr;gap:35px}.history{margin-top:30px}.company-table>div{grid-template-columns:85px 1fr;gap:10px}.access{grid-template-columns:1fr;gap:35px}.access-panel{min-height:260px;padding:25px}.access-coordinate{left:25px}.recruit{flex-wrap:wrap;gap:20px;padding-block:28px 38px}.recruit p{font-size:max(var(--text-min), calc((12px) * var(--text-scale)))}.recruit .text-link{padding-top:0}.contact{padding-block:50px}.contact-inner{grid-template-columns:1fr;gap:30px}.contact h2{font-size:max(var(--text-min), calc((25px) * var(--text-scale)))}.contact-details{padding:25px 0 0;border-left:0;border-top:1px solid #5f7867}.phone{font-size:max(var(--text-min), calc((36px) * var(--text-scale)))}.footer{flex-wrap:wrap;gap:18px}.footer p{width:100%;order:1}.footer>small{margin-left:auto}.desktop-break{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep the size selector at the upper right, with room for enlarged navigation. */
.site-header{height:auto;min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 25px;padding-block:10px}
.site-header>.brand{grid-column:1;grid-row:1 / 3}
.site-header nav{grid-column:2;justify-content:flex-end;flex-wrap:wrap}
.text-size-control{grid-column:2;justify-self:end;display:flex;align-items:center;gap:6px;font-size:16px;line-height:1.5}
.text-size-control[hidden]{display:none}
.text-size-control>span{margin-right:6px}
.text-size-control button{font:inherit;min-width:44px;min-height:44px;padding:6px 10px;border:1px solid var(--green);border-radius:4px;background:var(--paper);color:var(--ink);cursor:pointer}
.text-size-control button[aria-pressed="true"]{background:var(--green);color:white;font-weight:700}
.text-size-control button:hover{box-shadow:inset 0 0 0 2px var(--green)}
button:focus-visible{outline:3px solid #b28432;outline-offset:3px}
html{scroll-padding-top:var(--header-offset,160px)}
.hero-inner>*{min-width:0}
body{overflow-wrap:anywhere}
.phone{white-space:normal}
@media(max-width:1000px){
  .site-header>.brand{grid-row:1}
  .site-header nav{grid-column:1 / -1;justify-content:space-between}
}
@media(max-width:600px){
  .site-header{position:relative;grid-template-columns:minmax(0,1fr);padding:10px 20px;gap:12px}
  .text-size-control{grid-column:1;grid-row:1}
  .site-header>.brand{grid-column:1;grid-row:2}
  .site-header nav{grid-column:1;gap:12px;padding:0;justify-content:flex-start}
  .hero-bottom{flex-wrap:wrap}
  .hero h1{font-size:max(var(--text-min),calc(clamp(28px,8vw,44px) * var(--text-scale)))}
  .footer>small{margin-left:0}
}
.history time{flex-shrink:0}
@media(max-width:720px){
  :root[data-text-size="large"] .business-item svg{float:none;margin:10px 0 20px}
}
/* The hero headline is already large; retain its intended line breaks. */
@media(min-width:601px){.hero h1{font-size:clamp(38px,4.6vw,65px)}}

.contact-email{display:block;width:fit-content;margin-top:12px;font-size:max(var(--text-min),calc(clamp(20px,2.3vw,30px) * var(--text-scale)));font-weight:600;line-height:1.6;text-decoration:underline;text-underline-offset:6px;overflow-wrap:anywhere}
