/* Sfida Corporate 2 — native Elementor widgets, isolated from older sites. */
body.sfida-corporate-v2-page { margin:0; background:#FFF3E3; }
.sfv-site.sfv-site {
  --sfv-brown:#592D13; --sfv-cream:#FFF3E3; --sfv-paper:#FBF7F1;
  --sfv-ink:#35271F; --sfv-muted:#716358; --sfv-line:#D9CBBB;
  --sfv-font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;
  width:100%; max-width:none; padding:0!important; margin:0!important;
  font-family:var(--sfv-font); font-size:16px; line-height:1.9;
  color:var(--sfv-ink); background:var(--sfv-paper); position:relative;
  overflow:clip; isolation:isolate; -webkit-font-smoothing:antialiased;
}
.sfv-site.sfv-site, .sfv-site.sfv-site * { box-sizing:border-box; }
.sfv-site.sfv-site .e-con { --container-widget-width:100%; --container-widget-align-self:stretch; --content-width:100%; gap:0; min-width:0; }
.sfv-site.sfv-site .elementor-widget { margin:0; min-width:0; max-width:100%; }
.sfv-site.sfv-site .elementor-widget-container { min-width:0; }
.sfv-site.sfv-site h1,.sfv-site.sfv-site h2,.sfv-site.sfv-site h3,.sfv-site.sfv-site h4,.sfv-site.sfv-site p { margin:0; padding:0; }
.sfv-site.sfv-site .elementor-heading-title { font-family:var(--sfv-font); color:inherit; font-weight:600; line-height:1.7; letter-spacing:.055em; }
.sfv-site.sfv-site .elementor-widget-text-editor { font-family:var(--sfv-font); color:inherit; font-size:inherit; line-height:inherit; }
.sfv-site.sfv-site p+p { margin-top:1em; }
.sfv-site.sfv-site a { color:inherit; text-decoration:none; text-underline-offset:.23em; }
.sfv-site.sfv-site a:hover { color:var(--sfv-brown); }
.sfv-site.sfv-site a:focus-visible,.sfv-site.sfv-site button:focus-visible { outline:3px solid #173B7E; outline-offset:6px; }
.sfv-site.sfv-site img { display:block; max-width:100%; height:auto; vertical-align:middle; }
.sfv-site.sfv-site .elementor-widget-image a { display:block; }
.sfv-site.sfv-site button { font:inherit; }
.sfv-site.sfv-site [id] { scroll-margin-top:120px; }
.sfv-site.sfv-site .sfv-main { width:100%; }
.sfv-site.sfv-site .sfv-inner { width:calc(100% - 160px); max-width:1040px; margin:0 auto; }
.sfv-site.sfv-site .sfv-section { padding:112px 0; }
.sfv-site.sfv-site .sfv-heading .elementor-heading-title { font-size:38px; line-height:1.65; letter-spacing:.055em; }
.sfv-site.sfv-site .sfv-subheading .elementor-heading-title { font-size:28px; line-height:1.65; }
.sfv-site.sfv-site .sfv-body { font-size:16px; line-height:2; letter-spacing:.025em; }
.sfv-site.sfv-site .sfv-label { display:flex!important; flex-direction:row; align-items:center; gap:15px; width:auto; margin-bottom:24px; flex-wrap:wrap; }
.sfv-site.sfv-site .sfv-label-en { width:auto; }
.sfv-site.sfv-site .sfv-label-en .elementor-heading-title { color:var(--sfv-brown); font-size:34px; font-weight:500; line-height:1.3; letter-spacing:.015em; }
.sfv-site.sfv-site .sfv-label-ja { width:auto; font-size:14px; font-weight:500; color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-kicker { font-size:11px; font-weight:600; letter-spacing:.19em; line-height:1.5; color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-sub-en { color:var(--sfv-muted); font-size:13px; letter-spacing:.1em; }
.sfv-site.sfv-site .sfv-heading+.sfv-body { margin-top:26px; }
.sfv-site.sfv-site .sfv-body+.sfv-body { margin-top:20px; }
.sfv-site.sfv-site .sfv-button { width:auto; margin-top:30px; align-self:flex-start; }
.sfv-site.sfv-site .sfv-button .elementor-button {
  display:inline-flex; justify-content:center; align-items:center; min-height:56px;
  padding:15px 30px; min-width:228px; border:1px solid var(--sfv-brown); border-radius:100px;
  background:var(--sfv-brown); color:#fff; font-family:var(--sfv-font);
  font-weight:600; font-size:14px; line-height:1.65; text-decoration:none;
  transition:background .25s,color .25s,transform .25s,box-shadow .25s;
}
.sfv-site.sfv-site .sfv-button .elementor-button-content-wrapper { align-items:center; gap:18px; width:100%; justify-content:space-between; }
.sfv-site.sfv-site .sfv-button .elementor-button-icon { margin:0; display:inline-flex; align-items:center; }
.sfv-site.sfv-site .sfv-button .elementor-button-icon svg { width:20px; height:20px; fill:currentColor; transition:transform .25s; }
.sfv-site.sfv-site .sfv-button .elementor-button:hover { background:#743F20; border-color:#743F20; color:#fff; box-shadow:0 6px 18px #592D1319; }
.sfv-site.sfv-site .sfv-button .elementor-button:hover .elementor-button-icon svg { transform:translateX(4px); }
.sfv-site.sfv-site .sfv-button-light .elementor-button { color:var(--sfv-brown); background:transparent; border-color:#B49A84; }
.sfv-site.sfv-site .sfv-button-light .elementor-button:hover { color:#fff; background:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-textlink .elementor-heading-title { font-size:14px; font-weight:500; line-height:1.8; letter-spacing:.02em; }
.sfv-site.sfv-site .sfv-textlink a:hover { text-decoration:underline; }
.sfv-site.sfv-site .sfv-photo-note { font-size:11px; line-height:1.7; color:var(--sfv-muted); }
.sfv-site.sfv-site .sfv-skip { position:fixed; left:30px; top:-100px; padding:12px 20px; border-radius:5px; z-index:100002; color:#fff; background:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-skip:focus { top:20px; }

/* Floating pill header and keyboard-accessible company navigation. */
.sfv-site.sfv-site .sfv-header {
  position:fixed; z-index:10000; top:16px; left:16px; right:16px; width:auto;
  height:76px; padding:9px 36px; display:flex!important; flex-direction:row;
  justify-content:space-between; align-items:center; border-radius:80px;
  background:#fff; box-shadow:0 3px 6px #39281610; border:1px solid #ffffffb3;
}
body.admin-bar .sfv-site.sfv-site .sfv-header { top:48px; }
.sfv-site.sfv-site .sfv-header.is-scrolled { box-shadow:0 4px 18px #35271F19; }
.sfv-site.sfv-site .sfv-logo { width:119px; flex:0 0 119px; }
.sfv-site.sfv-site .sfv-logo img { width:110px; height:57px; object-fit:contain; }
.sfv-site.sfv-site .sfv-nav { width:auto; display:flex!important; flex-direction:row; align-items:center; gap:30px; margin:0; }
.sfv-site.sfv-site .sfv-nav-group { width:auto; position:relative; }
.sfv-site.sfv-site .sfv-nav-top { width:auto; flex:0 0 auto; }
.sfv-site.sfv-site .sfv-nav-top .elementor-heading-title { font-size:13px; font-weight:700; line-height:1.5; letter-spacing:.04em; }
.sfv-site.sfv-site .sfv-nav-top a { min-height:52px; display:flex; align-items:center; position:relative; }
.sfv-site.sfv-site .sfv-nav-top a:after { content:""; height:2px; background:var(--sfv-brown); position:absolute; bottom:5px; left:0; width:100%; transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.sfv-site.sfv-site .sfv-nav-top a:hover:after,.sfv-site.sfv-site .sfv-nav-top a:focus-visible:after { transform:scaleX(1); }
.sfv-site.sfv-site .sfv-nav-external a:before { content:"↗"; order:2; margin-left:6px; font-weight:400; }
.sfv-site.sfv-site .sfv-subnav {
  position:absolute; top:calc(100% + 3px); left:-24px; width:190px;
  background:var(--sfv-paper); border-top:3px solid #A47D60; border-radius:0 0 12px 12px;
  padding:15px 22px; box-shadow:0 12px 24px #35271F10;
  opacity:0; visibility:hidden; transform:translateY(6px); pointer-events:none;
  transition:opacity .2s,transform .2s,visibility .2s;
}
.sfv-site.sfv-site .sfv-subnav:before { content:""; position:absolute; height:16px; top:-16px; left:0; right:0; }
.sfv-site.sfv-site .sfv-subnav .sfv-textlink a { display:block; padding:9px 0; }
.sfv-site.sfv-site .sfv-subnav .elementor-heading-title { font-size:12px; font-weight:600; }
.sfv-site.sfv-site .sfv-nav-group:hover .sfv-subnav,.sfv-site.sfv-site .sfv-nav-group:focus-within .sfv-subnav { opacity:1; visibility:visible; transform:none; pointer-events:auto; }
.sfv-site.sfv-site .sfv-menu-control,.sfv-site.sfv-site .sfv-close-control { display:none; }
.sfv-site.sfv-site .sfv-menu-backdrop { display:none; }

/* Full-bleed illustrated opening. */
.sfv-site.sfv-site .sfv-hero { position:relative; height:100svh; min-height:680px; max-height:1120px; background:var(--sfv-cream); overflow:hidden; }
.sfv-site.sfv-site .sfv-hero-image { position:absolute; inset:0; width:100%; height:100%; }
.sfv-site.sfv-site .sfv-hero-image .elementor-widget-container,.sfv-site.sfv-site .sfv-hero-image img { width:100%; height:100%; }
.sfv-site.sfv-site .sfv-hero-image img { object-fit:cover; object-position:center center; animation:sfv-hero-arrive 2s ease-out both; }
.sfv-site.sfv-site .sfv-hero-copy { width:56%; max-width:700px; position:absolute; top:22%; left:14.3%; z-index:1; }
.sfv-site.sfv-site .sfv-hero-copy .sfv-kicker { font-size:11px; margin-bottom:18px; }
.sfv-site.sfv-site .sfv-hero-title .elementor-heading-title { font-size:clamp(44px,4.35vw,68px); font-weight:600; line-height:1.63; letter-spacing:.08em; color:#392516; }
.sfv-site.sfv-site .sfv-highlight { background:#fffcf7f0; box-decoration-break:clone; -webkit-box-decoration-break:clone; border-radius:7px; padding:.1em .14em .16em; margin-left:-.14em; }
.sfv-site.sfv-site .sfv-hero-sub { font-size:17px; font-weight:500; letter-spacing:.04em; margin-top:24px; line-height:1.8; }
.sfv-site.sfv-site .sfv-hero-en { font-size:12px; letter-spacing:.03em; margin-top:5px; }
.sfv-site.sfv-site .sfv-hero-banner { position:absolute; width:min(700px,75%); left:50%; transform:translateX(-50%); bottom:34px; height:108px; background:#fff; border-radius:18px; box-shadow:0 5px 15px #4A2E2420; display:flex!important; flex-direction:row; align-items:center; overflow:hidden; }
.sfv-site.sfv-site .sfv-hero-banner-photo { width:156px; flex:0 0 156px; height:100%; }
.sfv-site.sfv-site .sfv-hero-banner-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-hero-banner-photo img { width:100%; height:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-hero-banner-copy { width:auto; flex:1; padding:15px 20px; }
.sfv-site.sfv-site .sfv-hero-banner-copy .sfv-kicker { font-size:9px; letter-spacing:.15em; margin-bottom:3px; }
.sfv-site.sfv-site .sfv-banner-title .elementor-heading-title { font-size:17px; font-weight:700; line-height:1.7; letter-spacing:.025em; }
.sfv-site.sfv-site .sfv-banner-body { font-size:11px; line-height:1.8; margin-top:5px; }
.sfv-site.sfv-site .sfv-banner-button { align-self:center; margin:0 20px 0 0; width:110px; flex:0 0 110px; }
.sfv-site.sfv-site .sfv-banner-button .elementor-button { padding:10px 15px; min-width:0; min-height:46px; font-size:11px; width:100%; }
.sfv-site.sfv-site .sfv-banner-button .elementor-button-content-wrapper { gap:7px; }
.sfv-site.sfv-site .sfv-banner-button .elementor-button-icon svg { width:16px; height:16px; }
.sfv-site.sfv-site .sfv-scroll { position:absolute; right:3.6%; bottom:175px; width:auto; }
.sfv-site.sfv-site .sfv-scroll .elementor-heading-title { font-size:10px; font-weight:400; letter-spacing:.07em; }
.sfv-site.sfv-site .sfv-scroll a { display:block; writing-mode:vertical-rl; padding-bottom:74px; position:relative; }
.sfv-site.sfv-site .sfv-scroll a:after { content:""; position:absolute; width:1px; height:50px; bottom:0; left:50%; background:currentColor; animation:sfv-scroll-line 2s ease-in-out infinite; }

/* Generous mission panel and unboxed asymmetrical business area. */
.sfv-site.sfv-site .sfv-mission-section { position:relative; padding:120px 0 138px; background:var(--sfv-paper); }
.sfv-site.sfv-site .sfv-mission-section:before,.sfv-site.sfv-site .sfv-business-home:before { content:""; pointer-events:none; position:absolute; width:420px; height:360px; background:#EBDAC440; border-radius:45% 55% 59% 41% / 50% 37% 63% 50%; top:20px; right:-160px; transform:rotate(-25deg); }
.sfv-site.sfv-site .sfv-mission-panel { position:relative; background:#fff; border-radius:40px; padding:76px 78px 72px; text-align:center; align-items:center; }
.sfv-site.sfv-site .sfv-mission-panel .sfv-label { justify-content:center; margin-bottom:30px; }
.sfv-site.sfv-site .sfv-mission-panel .sfv-heading .elementor-heading-title { font-size:39px; line-height:1.65; }
.sfv-site.sfv-site .sfv-mission-panel .sfv-sub-en { margin:16px 0 30px; }
.sfv-site.sfv-site .sfv-mission-panel .sfv-body { font-size:17px; line-height:2.2; }
.sfv-site.sfv-site .sfv-mission-panel .sfv-button { align-self:center; margin-top:34px; }
.sfv-site.sfv-site .sfv-business-home { position:relative; background:var(--sfv-paper); padding:0 0 110px; }
.sfv-site.sfv-site .sfv-business-home:before { right:auto; left:-310px; top:-95px; }
.sfv-site.sfv-site .sfv-business-split { display:grid!important; grid-template-columns:35% 1fr; gap:6.5%; align-items:center; position:relative; }
.sfv-site.sfv-site .sfv-edge-photo { height:510px; overflow:hidden; border-radius:0 50px 50px 0; }
.sfv-site.sfv-site .sfv-edge-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-edge-photo img { width:100%; height:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-edge-photo img { object-position:47% center; }
.sfv-site.sfv-site .sfv-split-copy { width:100%; max-width:610px; padding:25px 36px 25px 0; }
.sfv-site.sfv-site .sfv-split-copy .sfv-body { font-size:17px; line-height:1.95; }
.sfv-site.sfv-site .sfv-split-copy .sfv-button { margin-top:27px; }
.sfv-site.sfv-site .sfv-gateway-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; padding-top:68px; }
.sfv-site.sfv-site .sfv-gateway { align-items:center; text-align:center; }
.sfv-site.sfv-site .sfv-gateway-image { width:100%; aspect-ratio:1.2; border-radius:38px; background:#fff; overflow:hidden; }
.sfv-site.sfv-site .sfv-gateway-image .elementor-widget-container,.sfv-site.sfv-site .sfv-gateway-image a { width:100%; height:100%; }
.sfv-site.sfv-site .sfv-gateway-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.sfv-site.sfv-site .sfv-gateway:first-child .sfv-gateway-image img { object-fit:contain; padding:54px; }
.sfv-site.sfv-site .sfv-gateway-image:hover img { transform:scale(1.035); }
.sfv-site.sfv-site .sfv-gateway-title { margin-top:23px; }
.sfv-site.sfv-site .sfv-gateway-title .elementor-heading-title { font-size:23px; font-weight:600; line-height:1.5; letter-spacing:.015em; }
.sfv-site.sfv-site .sfv-category { width:auto; display:inline-block; font-size:12px; line-height:1.5; border:1px solid #8E7563; padding:3px 13px; border-radius:2px; margin-top:13px; }
.sfv-site.sfv-site .sfv-gateway-desc { margin-top:17px; font-size:13px; line-height:1.9; color:var(--sfv-muted); }
.sfv-site.sfv-site .sfv-gateway-link { margin-top:13px; width:auto; }
.sfv-site.sfv-site .sfv-gateway-link a:after { content:" →"; margin-left:8px; }
.sfv-site.sfv-site .sfv-gateway-link .elementor-heading-title { font-size:12px; }

/* Vision: an expressive broad field, real company facts, organic work photo. */
.sfv-site.sfv-site .sfv-vision { background:#A88569; padding:108px 0 96px; position:relative; overflow:hidden; }
.sfv-site.sfv-site .sfv-vision:before { content:""; width:650px; height:650px; border:85px solid #ffffff0c; border-radius:50%; position:absolute; left:-300px; top:-200px; pointer-events:none; }
.sfv-site.sfv-site .sfv-vision-grid { display:grid!important; grid-template-columns:1fr 1fr; gap:7%; align-items:center; width:calc(100% - 160px); max-width:1040px; margin:0 auto; position:relative; }
.sfv-site.sfv-site .sfv-vision-copy { color:#fff; }
.sfv-site.sfv-site .sfv-vision .sfv-label-en .elementor-heading-title,.sfv-site.sfv-site .sfv-vision .sfv-label-ja { color:#fff; }
.sfv-site.sfv-site .sfv-vision .sfv-heading .elementor-heading-title { font-size:34px; }
.sfv-site.sfv-site .sfv-vision-copy .sfv-body { font-size:16px; line-height:2; }
.sfv-site.sfv-site .sfv-vision-copy .sfv-button .elementor-button { border-color:#fff; background:#fff; color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-vision-copy .sfv-button .elementor-button:hover { background:var(--sfv-cream); }
.sfv-site.sfv-site .sfv-organic-photo { height:480px; overflow:hidden; border-radius:47% 53% 30% 70% / 43% 34% 66% 57%; transform:rotate(4deg); }
.sfv-site.sfv-site .sfv-organic-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-organic-photo img { height:100%; width:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-organic-photo img { transform:rotate(-4deg) scale(1.12); object-position:52% center; }
.sfv-site.sfv-site .sfv-facts { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:74px; position:relative; }
.sfv-site.sfv-site .sfv-fact { padding:28px 20px 29px; background:#fff; border-radius:24px; text-align:center; }
.sfv-site.sfv-site .sfv-fact-label { font-size:10px; letter-spacing:.16em; color:var(--sfv-muted); }
.sfv-site.sfv-site .sfv-fact-number { margin:6px 0 4px; }
.sfv-site.sfv-site .sfv-fact-number .elementor-heading-title { font-size:58px; font-weight:500; line-height:1.4; letter-spacing:-.02em; color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-fact-number span { font-size:16px; letter-spacing:.02em; margin-left:8px; }
.sfv-site.sfv-site .sfv-fact-place .elementor-heading-title { font-size:43px; line-height:1.9; }
.sfv-site.sfv-site .sfv-fact-caption { font-size:11px; line-height:1.8; color:var(--sfv-muted); }

.sfv-site.sfv-site .sfv-company-home { background:#fff; padding:125px 0; }
.sfv-site.sfv-site .sfv-company-grid { display:grid!important; grid-template-columns:1.1fr 1fr; gap:8%; align-items:center; }
.sfv-site.sfv-site .sfv-company-copy .sfv-body { font-size:16px; }
.sfv-site.sfv-site .sfv-company-photo { height:410px; border-radius:38px; overflow:hidden; }
.sfv-site.sfv-site .sfv-company-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-company-photo img { height:100%; width:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-news-section { background:var(--sfv-paper); padding:104px 0; }
.sfv-site.sfv-site .sfv-news-section .sfv-label { margin-bottom:35px; }
.sfv-site.sfv-site .sfv-news-widget { width:100%; }
.sfv-site.sfv-site .sfv-news-list { list-style:none; padding:0; margin:0; }
.sfv-site.sfv-site .sfv-news-item { border-top:1px solid var(--sfv-line); }
.sfv-site.sfv-site .sfv-news-item:last-child { border-bottom:1px solid var(--sfv-line); }
.sfv-site.sfv-site .sfv-news-link { display:grid; grid-template-columns:105px 105px 1fr 24px; align-items:center; gap:22px; padding:27px 12px; transition:background .2s; }
.sfv-site.sfv-site .sfv-news-link:hover { background:#fff9; }
.sfv-site.sfv-site .sfv-news-date { font-size:12px; letter-spacing:.04em; color:var(--sfv-muted); }
.sfv-site.sfv-site .sfv-news-category { width:fit-content; min-width:82px; padding:2px 12px; font-size:10px; border:1px solid #BDAA95; text-align:center; line-height:1.8; border-radius:2px; }
.sfv-site.sfv-site .sfv-news-title { font-size:15px; font-weight:500; line-height:1.8; }
.sfv-site.sfv-site .sfv-news-arrow { font-size:22px; }
.sfv-site.sfv-site .sfv-news-empty { padding:32px 4px; border-top:1px solid var(--sfv-line); border-bottom:1px solid var(--sfv-line); color:var(--sfv-muted); font-size:14px; }
.sfv-site.sfv-site .sfv-align-right { align-self:flex-end; }
.sfv-site.sfv-site .sfv-news-pagination { margin-top:35px; }
.sfv-site.sfv-site .sfv-news-pagination ul { list-style:none; display:flex; padding:0; margin:0; gap:8px; justify-content:center; }
.sfv-site.sfv-site .sfv-news-pagination a,.sfv-site.sfv-site .sfv-news-pagination span { display:flex; justify-content:center; align-items:center; width:40px; height:40px; border:1px solid var(--sfv-line); border-radius:50%; font-size:13px; }
.sfv-site.sfv-site .sfv-news-pagination .current { color:#fff; background:var(--sfv-brown); border-color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-news-pagination .prev,.sfv-site.sfv-site .sfv-news-pagination .next { width:auto; border-radius:25px; padding:0 17px; }

.sfv-site.sfv-site .sfv-contact-band { display:grid!important; grid-template-columns:1fr 1fr; background:#E7D2B8; min-height:470px; position:relative; }
.sfv-site.sfv-site .sfv-contact-photo { height:100%; min-height:470px; overflow:hidden; border-radius:0 100px 0 0; }
.sfv-site.sfv-site .sfv-contact-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-contact-photo img { width:100%; height:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-contact-photo img { object-position:42% center; }
.sfv-site.sfv-site .sfv-contact-copy { padding:65px 10% 65px 11%; justify-content:center; }
.sfv-site.sfv-site .sfv-contact-copy .sfv-heading .elementor-heading-title { font-size:33px; }
.sfv-site.sfv-site .sfv-contact-copy .sfv-body { font-size:15px; }
.sfv-site.sfv-site .sfv-contact-copy .sfv-label { margin-bottom:17px; }

/* Footer remains a spacious company sitemap, with company rather than product identity. */
.sfv-site.sfv-site .sfv-footer { padding:70px 0 28px; background:var(--sfv-paper); }
.sfv-site.sfv-site .sfv-footer-brand { display:flex!important; flex-direction:row; align-items:center; gap:38px; margin-bottom:42px; }
.sfv-site.sfv-site .sfv-footer-logo { width:170px; flex:0 0 170px; }
.sfv-site.sfv-site .sfv-footer-logo img { width:165px; max-height:98px; object-fit:contain; }
.sfv-site.sfv-site .sfv-footer-address { width:auto; font-size:12px; line-height:1.9; }
.sfv-site.sfv-site .sfv-footer-links { display:grid!important; grid-template-columns:1fr 1.15fr 1.2fr 1.25fr; gap:35px; }
.sfv-site.sfv-site .sfv-footer-col { gap:13px; }
.sfv-site.sfv-site .sfv-footer-heading { margin-bottom:5px; }
.sfv-site.sfv-site .sfv-footer-heading .elementor-heading-title { font-size:15px; font-weight:700; }
.sfv-site.sfv-site .sfv-footer-col .sfv-textlink .elementor-heading-title { font-size:12px; font-weight:400; line-height:1.9; }
.sfv-site.sfv-site .sfv-footer-bottom { display:flex!important; flex-direction:row; align-items:center; gap:22px; border-top:1px solid #DED3C6; padding-top:26px; margin-top:54px; }
.sfv-site.sfv-site .sfv-copyright { width:auto; font-size:10px; color:var(--sfv-muted); letter-spacing:.03em; }
.sfv-site.sfv-site .sfv-footer-bottom .sfv-photo-note { width:auto; margin-left:auto; font-size:10px; }
.sfv-site.sfv-site .sfv-backtop { margin:0; width:auto; }
.sfv-site.sfv-site .sfv-backtop .elementor-button { min-width:0; padding:7px 14px; min-height:36px; font-size:10px; background:transparent; border-color:#B8A58E; color:var(--sfv-brown); }
.sfv-site.sfv-site .sfv-backtop .elementor-button-icon svg { transform:rotate(-90deg); width:12px; height:12px; }
.sfv-site.sfv-site .sfv-backtop .elementor-button:hover .elementor-button-icon svg { transform:rotate(-90deg) translateX(3px); }

/* Shared inner-page photo banner and overlapping white introduction. */
.sfv-site.sfv-site .sfv-pagehero { height:555px; position:relative; background:#A88569; }
.sfv-site.sfv-site .sfv-pagehero-photo { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
.sfv-site.sfv-site .sfv-pagehero-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-pagehero-photo img { width:100%; height:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-pagehero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#3F291620,#392B2466); pointer-events:none; }
.sfv-site.sfv-site .sfv-pagehero-copy { position:absolute; z-index:1; right:max(8%,calc((100% - 1040px)/2)); top:44%; width:75%; text-align:right; color:#fff; }
.sfv-site.sfv-site .sfv-pagehero-en .elementor-heading-title { font-size:52px; font-weight:400; line-height:1.3; letter-spacing:.015em; }
.sfv-site.sfv-site .sfv-pagehero-ja { margin-top:12px; }
.sfv-site.sfv-site .sfv-pagehero-ja .elementor-heading-title { font-size:26px; font-weight:600; line-height:1.7; letter-spacing:.08em; }
.sfv-site.sfv-site .sfv-pagehero-plain { height:415px; background:linear-gradient(120deg,#A88569,#CDB08D); }
.sfv-site.sfv-site .sfv-pagehero-plain:before { content:""; position:absolute; width:680px; height:680px; border:100px solid #FFF3E317; border-radius:50%; left:-100px; top:-380px; }
.sfv-site.sfv-site .sfv-pagehero-plain:after { background:none; }
.sfv-site.sfv-site .sfv-pagehero-plain .sfv-pagehero-copy { top:47%; }
.sfv-site.sfv-site .sfv-overlap-panel { position:relative; z-index:2; margin:-42px auto 0; width:calc(100% - 160px); max-width:1100px; border-radius:40px; background:#fff; padding:75px 70px; }
.sfv-site.sfv-site .sfv-overlap-panel>.sfv-inner { width:100%; max-width:none; }
.sfv-site.sfv-site .sfv-center { text-align:center; }
.sfv-site.sfv-site .sfv-center .sfv-inner { align-items:center; }
.sfv-site.sfv-site .sfv-center .sfv-label { justify-content:center; }
.sfv-site.sfv-site .sfv-center .sfv-kicker { margin:16px 0; }
.sfv-site.sfv-site .sfv-center .sfv-body { max-width:760px; }
.sfv-site.sfv-site .sfv-anchor-nav { display:flex!important; flex-direction:row; gap:15px; justify-content:center; margin-top:8px; }
.sfv-site.sfv-site .sfv-anchor-nav .sfv-button { width:auto; }
.sfv-site.sfv-site .sfv-anchor-nav .elementor-button { min-width:190px; padding:14px 24px; }
.sfv-site.sfv-site .sfv-detail-section { padding:110px 0; }
.sfv-site.sfv-site .sfv-detail-section>.sfv-inner>.sfv-label { margin-bottom:45px; }
.sfv-site.sfv-site .sfv-detail-grid { display:grid!important; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.sfv-site.sfv-site .sfv-detail-photo { height:440px; border-radius:38px; overflow:hidden; }
.sfv-site.sfv-site .sfv-detail-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-detail-photo img { height:100%; width:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-detail-copy .sfv-heading .elementor-heading-title { font-size:34px; }
.sfv-site.sfv-site .sfv-service-logo { width:88px; margin-bottom:22px; }
.sfv-site.sfv-site .sfv-service-logo img { width:88px; height:95px; object-fit:contain; }
.sfv-site.sfv-site .sfv-services-grid { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:58px; }
.sfv-site.sfv-site .sfv-service-card { border-radius:26px; padding:30px 25px; background:#fff; align-items:flex-start; }
.sfv-site.sfv-site .sfv-service-card .sfv-kicker { margin-bottom:12px; }
.sfv-site.sfv-site .sfv-service-title .elementor-heading-title { font-size:22px; font-weight:600; line-height:1.6; }
.sfv-site.sfv-site .sfv-service-card .sfv-body { font-size:14px; line-height:1.95; margin-top:15px; }
.sfv-site.sfv-site .sfv-service-card .sfv-button { margin-top:auto; padding-top:22px; }
.sfv-site.sfv-site .sfv-service-card .elementor-button { min-width:0; font-size:12px; min-height:46px; padding:10px 17px; }
.sfv-site.sfv-site .sfv-detail-copy>.sfv-kicker { margin-bottom:14px; }
.sfv-site.sfv-site .sfv-detail-copy>.sfv-service-title { margin-top:18px; margin-bottom:10px; }
.sfv-site.sfv-site .sfv-cream { background:#F2E4D0; }
.sfv-site.sfv-site .sfv-tags { display:flex!important; flex-direction:row; flex-wrap:wrap; gap:10px; margin-top:24px; }
.sfv-site.sfv-site .sfv-service-tag { width:auto; font-size:12px; border:1px solid #B59B83; padding:4px 13px; border-radius:3px; }

/* Company philosophy and verified representative profile. */
.sfv-site.sfv-site .sfv-philosophy-vision { margin-top:50px; padding-top:45px; border-top:1px solid #E9DFD3; align-items:center; }
.sfv-site.sfv-site .sfv-philosophy-vision .sfv-subheading { margin:20px 0 13px; }
.sfv-site.sfv-site .sfv-values { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; text-align:left; margin-top:50px; }
.sfv-site.sfv-site .sfv-value { border-top:1px solid var(--sfv-line); padding:20px 8px 25px; }
.sfv-site.sfv-site .sfv-value .sfv-kicker { margin:0 0 12px; font-size:10px; }
.sfv-site.sfv-site .sfv-value .sfv-service-title .elementor-heading-title { font-size:21px; }
.sfv-site.sfv-site .sfv-value .sfv-body { margin-top:10px; font-size:14px; }
.sfv-site.sfv-site .sfv-message-section { background:var(--sfv-paper); }
.sfv-site.sfv-site .sfv-message-section>.sfv-inner>.sfv-label { margin-bottom:42px; }
.sfv-site.sfv-site .sfv-message-grid { display:grid!important; grid-template-columns:.8fr 1.2fr; gap:60px; align-items:start; }
.sfv-site.sfv-site .sfv-message-visual { position:sticky; top:140px; }
.sfv-site.sfv-site .sfv-message-photo { height:490px; border-radius:36px; overflow:hidden; }
.sfv-site.sfv-site .sfv-message-photo .elementor-widget-container,.sfv-site.sfv-site .sfv-message-photo img { width:100%; height:100%; object-fit:cover; }
.sfv-site.sfv-site .sfv-message-visual .sfv-photo-note { margin-top:12px; }
.sfv-site.sfv-site .sfv-message-copy .sfv-heading .elementor-heading-title { font-size:31px; }
.sfv-site.sfv-site .sfv-message-copy .sfv-body { font-size:15px; line-height:2.15; margin-top:25px; }
.sfv-site.sfv-site .sfv-sign-role { text-align:right; font-size:12px; line-height:1.8; margin-top:30px; }
.sfv-site.sfv-site .sfv-sign-name { text-align:right; margin-top:7px; }
.sfv-site.sfv-site .sfv-sign-name .elementor-heading-title { font-size:26px; font-weight:500; letter-spacing:.2em; }
.sfv-site.sfv-site .sfv-profile-section { background:#fff; }
.sfv-site.sfv-site .sfv-profile-section .sfv-label { margin-bottom:35px; }
.sfv-site.sfv-site .sfv-profile-table { border-top:1px solid var(--sfv-line); }
.sfv-site.sfv-site .sfv-profile-row { display:grid!important; grid-template-columns:170px 1fr; border-bottom:1px solid var(--sfv-line); gap:30px; padding:24px 8px; }
.sfv-site.sfv-site .sfv-profile-key .elementor-heading-title { font-size:14px; font-weight:600; line-height:1.9; }
.sfv-site.sfv-site .sfv-profile-value { font-size:14px; line-height:1.9; overflow-wrap:anywhere; }

/* Contact routing, archive and readable policy. */
.sfv-site.sfv-site .sfv-contact-panel { text-align:center; margin-bottom:100px; }
.sfv-site.sfv-site .sfv-contact-options { display:grid!important; grid-template-columns:1fr 1fr; gap:24px; margin-top:45px; text-align:left; }
.sfv-site.sfv-site .sfv-contact-card { background:var(--sfv-paper); border-radius:24px; padding:32px 30px; align-items:flex-start; }
.sfv-site.sfv-site .sfv-contact-card>.sfv-kicker { margin-bottom:18px; }
.sfv-site.sfv-site .sfv-contact-card .sfv-subheading .elementor-heading-title { font-size:23px; }
.sfv-site.sfv-site .sfv-contact-card .sfv-body { font-size:14px; margin-top:15px; }
.sfv-site.sfv-site .sfv-contact-card .sfv-button { margin-top:auto; padding-top:28px; }
.sfv-site.sfv-site .sfv-contact-card .elementor-button { min-width:0; font-size:12px; padding:14px 18px; }
.sfv-site.sfv-site .sfv-contact-card .sfv-photo-note { margin-top:13px; font-size:10px; }
.sfv-site.sfv-site .sfv-other-contact { margin-top:45px; padding-top:35px; border-top:1px solid var(--sfv-line); align-items:center; gap:10px; }
.sfv-site.sfv-site .sfv-other-contact .sfv-body { font-size:13px; }
.sfv-site.sfv-site .sfv-phone .elementor-heading-title { font-size:29px; font-weight:500; letter-spacing:.035em; }
.sfv-site.sfv-site .sfv-other-contact>.sfv-textlink:last-child .elementor-heading-title { font-size:11px; text-decoration:underline; }
.sfv-site.sfv-site .sfv-news-page { min-height:320px; margin-bottom:100px; }
.sfv-site.sfv-site .sfv-policy { margin-bottom:100px; padding-top:58px; padding-bottom:65px; }
.sfv-site.sfv-site .sfv-policy-block { padding:28px 0; border-bottom:1px solid #E8DED2; }
.sfv-site.sfv-site .sfv-policy-block:last-child { border-bottom:0; }
.sfv-site.sfv-site .sfv-policy-title { margin-bottom:16px; }
.sfv-site.sfv-site .sfv-policy-title .elementor-heading-title { font-size:19px; line-height:1.7; font-weight:600; letter-spacing:.01em; }
.sfv-site.sfv-site .sfv-policy-block .sfv-body { font-size:14px; line-height:2; overflow-wrap:anywhere; }
.sfv-site.sfv-site .sfv-policy-block .sfv-body+.sfv-body { margin-top:10px; }
.sfv-site.sfv-site .sfv-policy-block ul { margin:10px 0 0; padding-left:1.4em; }
.sfv-site.sfv-site .sfv-policy-block li { padding-left:.15em; margin:4px 0; }

/* Progressive enhancement: content stays visible without JavaScript and in the editor. */
.sfv-site.sfv-site.sfv-motion-ready .sfv-reveal { opacity:0; transform:translateY(26px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
.sfv-site.sfv-site.sfv-motion-ready .sfv-reveal.is-visible { opacity:1; transform:none; }
body.elementor-editor-active .sfv-site.sfv-site .sfv-reveal,body.elementor-editor-preview .sfv-site.sfv-site .sfv-reveal { opacity:1!important; transform:none!important; }
body.elementor-editor-active .sfv-site.sfv-site .sfv-header { position:absolute; }
@keyframes sfv-hero-arrive { from { transform:scale(1.045); } to { transform:scale(1); } }
@keyframes sfv-scroll-line { 0%,100% { transform:scaleY(.65); transform-origin:top; } 50% { transform:scaleY(1); transform-origin:top; } }

@media(min-width:1600px) {
  .sfv-site.sfv-site .sfv-header { height:82px; padding-left:48px; padding-right:48px; }
  .sfv-site.sfv-site .sfv-nav { gap:40px; }
  .sfv-site.sfv-site .sfv-nav-top .elementor-heading-title { font-size:14px; }
  .sfv-site.sfv-site .sfv-business-split { gap:7%; }
  .sfv-site.sfv-site .sfv-split-copy { max-width:660px; }
}
@media(max-width:1100px) {
  .sfv-site.sfv-site .sfv-inner,.sfv-site.sfv-site .sfv-vision-grid { width:calc(100% - 96px); }
  .sfv-site.sfv-site .sfv-header { padding-left:25px; padding-right:25px; }
  .sfv-site.sfv-site .sfv-nav { gap:23px; }
  .sfv-site.sfv-site .sfv-nav-top .elementor-heading-title { font-size:12px; }
  .sfv-site.sfv-site .sfv-hero-copy { left:10%; }
  .sfv-site.sfv-site .sfv-heading .elementor-heading-title { font-size:33px; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-edge-photo { height:480px; }
  .sfv-site.sfv-site .sfv-gateway-grid { gap:30px; }
  .sfv-site.sfv-site .sfv-gateway:first-child .sfv-gateway-image img { padding:43px; }
  .sfv-site.sfv-site .sfv-gateway-title .elementor-heading-title { font-size:20px; }
  .sfv-site.sfv-site .sfv-organic-photo { height:420px; }
  .sfv-site.sfv-site .sfv-vision-grid { gap:6%; }
  .sfv-site.sfv-site .sfv-vision .sfv-heading .elementor-heading-title { font-size:30px; }
  .sfv-site.sfv-site .sfv-company-grid { gap:6%; }
  .sfv-site.sfv-site .sfv-company-photo { height:370px; }
  .sfv-site.sfv-site .sfv-contact-copy { padding:55px 8%; }
  .sfv-site.sfv-site .sfv-contact-copy .sfv-heading .elementor-heading-title { font-size:29px; }
  .sfv-site.sfv-site .sfv-footer-links { gap:24px; }
  .sfv-site.sfv-site .sfv-overlap-panel { width:calc(100% - 96px); padding:65px 50px; }
  .sfv-site.sfv-site .sfv-detail-grid { gap:38px; }
  .sfv-site.sfv-site .sfv-detail-copy .sfv-heading .elementor-heading-title { font-size:29px; }
  .sfv-site.sfv-site .sfv-detail-photo { height:400px; }
  .sfv-site.sfv-site .sfv-services-grid { gap:16px; }
  .sfv-site.sfv-site .sfv-service-card { padding:26px 20px; }
  .sfv-site.sfv-site .sfv-anchor-nav { gap:10px; }
  .sfv-site.sfv-site .sfv-anchor-nav .elementor-button { min-width:165px; padding-left:18px; padding-right:18px; }
  .sfv-site.sfv-site .sfv-message-grid { gap:40px; }
}

@media(max-width:900px) {
  .sfv-site.sfv-site .sfv-header { height:66px; padding:6px 26px; }
  .sfv-site.sfv-site .sfv-logo { width:105px; flex-basis:105px; }
  .sfv-site.sfv-site .sfv-logo img { width:96px; height:51px; }
  .sfv-site.sfv-site .sfv-menu-control { display:block; width:auto; margin-left:auto; }
  .sfv-site.sfv-site .sfv-menu-toggle,.sfv-site.sfv-site .sfv-menu-close { background:none; border:0; border-radius:0; color:var(--sfv-ink); padding:10px; width:44px; height:44px; font-size:22px; display:flex; justify-content:center; align-items:center; cursor:pointer; }
  .sfv-site.sfv-site .sfv-menu-toggle i,.sfv-site.sfv-site .sfv-menu-close i { font-size:22px; line-height:1; }
  .sfv-site.sfv-site .sfv-nav { position:fixed; top:0; bottom:0; right:0; width:min(420px,89vw); height:100dvh; display:flex!important; flex-direction:column; align-items:stretch; gap:0; padding:100px 34px 35px; overflow-y:auto; background:var(--sfv-paper); box-shadow:-12px 0 55px #2C1E181A; transform:translateX(105%); visibility:hidden; transition:transform .35s ease,visibility .35s; z-index:2; }
  .sfv-site.sfv-site .sfv-close-control { display:block; position:absolute; width:auto; top:19px; right:18px; }
  .sfv-site.sfv-site .sfv-nav-group { width:100%; padding:18px 0; border-bottom:1px solid var(--sfv-line); }
  .sfv-site.sfv-site .sfv-nav>.sfv-nav-top { padding:13px 0; border-bottom:1px solid var(--sfv-line); }
  .sfv-site.sfv-site .sfv-nav-top .elementor-heading-title { font-size:16px; }
  .sfv-site.sfv-site .sfv-nav-top a { min-height:35px; }
  .sfv-site.sfv-site .sfv-nav-top a:after { display:none; }
  .sfv-site.sfv-site .sfv-subnav { position:static; opacity:1; visibility:visible; transform:none; pointer-events:auto; width:100%; padding:7px 0 0 15px; border:0; box-shadow:none; background:none; }
  .sfv-site.sfv-site .sfv-subnav .elementor-heading-title { font-size:13px; font-weight:400; }
  .sfv-site.sfv-site .sfv-subnav a { padding:6px 0!important; }
  .sfv-site.sfv-site.is-menu-open .sfv-nav { transform:translateX(0); visibility:visible; transition:transform .35s ease; }
  .sfv-site.sfv-site .sfv-menu-backdrop { display:block; position:fixed; inset:0; background:#30221966; z-index:9998; opacity:0; visibility:hidden; transition:opacity .3s,visibility .3s; border:0; border-radius:0; }
  .sfv-site.sfv-site.is-menu-open .sfv-menu-backdrop { opacity:1; visibility:visible; }
  body.admin-bar .sfv-site.sfv-site .sfv-nav { padding-top:135px; }
  body.admin-bar .sfv-site.sfv-site .sfv-close-control { top:51px; }
  .sfv-site.sfv-site .sfv-hero { min-height:750px; }
  .sfv-site.sfv-site .sfv-hero-copy { left:8%; top:23%; width:70%; }
  .sfv-site.sfv-site .sfv-hero-title .elementor-heading-title { font-size:45px; }
  .sfv-site.sfv-site .sfv-hero-banner { width:80%; }
  .sfv-site.sfv-site .sfv-hero-banner-photo { width:128px; flex-basis:128px; }
  .sfv-site.sfv-site .sfv-hero-banner-copy { padding:12px 16px; }
  .sfv-site.sfv-site .sfv-banner-title .elementor-heading-title { font-size:14px; }
  .sfv-site.sfv-site .sfv-banner-body { font-size:10px; }
  .sfv-site.sfv-site .sfv-banner-button { width:90px; flex-basis:90px; margin-right:15px; }
  .sfv-site.sfv-site .sfv-banner-button .elementor-button { padding:10px; font-size:10px; }
  .sfv-site.sfv-site .sfv-mission-panel { padding:60px 40px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-heading .elementor-heading-title { font-size:34px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-business-split { grid-template-columns:38% 1fr; gap:5%; }
  .sfv-site.sfv-site .sfv-split-copy { padding-right:30px; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-heading .elementor-heading-title { font-size:28px; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-body { font-size:14px; }
  .sfv-site.sfv-site .sfv-label-en .elementor-heading-title { font-size:28px; }
  .sfv-site.sfv-site .sfv-label-ja { font-size:12px; }
  .sfv-site.sfv-site .sfv-gateway-grid { gap:24px; }
  .sfv-site.sfv-site .sfv-gateway-image { border-radius:28px; }
  .sfv-site.sfv-site .sfv-gateway:first-child .sfv-gateway-image img { padding:33px; }
  .sfv-site.sfv-site .sfv-gateway-title .elementor-heading-title { font-size:18px; }
  .sfv-site.sfv-site .sfv-gateway-desc { font-size:11px; }
  .sfv-site.sfv-site .sfv-vision-grid { grid-template-columns:1.1fr 1fr; gap:5%; }
  .sfv-site.sfv-site .sfv-vision .sfv-heading .elementor-heading-title { font-size:25px; }
  .sfv-site.sfv-site .sfv-vision-copy .sfv-body { font-size:14px; }
  .sfv-site.sfv-site .sfv-organic-photo { height:350px; }
  .sfv-site.sfv-site .sfv-facts { gap:14px; }
  .sfv-site.sfv-site .sfv-fact { padding:24px 14px; }
  .sfv-site.sfv-site .sfv-fact-number .elementor-heading-title { font-size:44px; }
  .sfv-site.sfv-site .sfv-fact-number span { font-size:12px; }
  .sfv-site.sfv-site .sfv-fact-place .elementor-heading-title { font-size:31px; line-height:2; }
  .sfv-site.sfv-site .sfv-fact-caption { font-size:10px; }
  .sfv-site.sfv-site .sfv-company-copy .sfv-heading .elementor-heading-title { font-size:28px; }
  .sfv-site.sfv-site .sfv-company-copy .sfv-body { font-size:14px; }
  .sfv-site.sfv-site .sfv-contact-copy .sfv-heading .elementor-heading-title { font-size:25px; }
  .sfv-site.sfv-site .sfv-contact-copy .sfv-body { font-size:13px; }
  .sfv-site.sfv-site .sfv-footer-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
  .sfv-site.sfv-site .sfv-footer-bottom { flex-wrap:wrap; gap:10px; }
  .sfv-site.sfv-site .sfv-footer-bottom .sfv-photo-note { margin-left:0; }
  .sfv-site.sfv-site .sfv-backtop { margin-left:auto; }
  .sfv-site.sfv-site .sfv-overlap-panel { padding:54px 38px; }
  .sfv-site.sfv-site .sfv-anchor-nav { flex-wrap:wrap; }
  .sfv-site.sfv-site .sfv-anchor-nav .sfv-button { margin-top:18px; }
  .sfv-site.sfv-site .sfv-anchor-nav .elementor-button { min-width:155px; font-size:12px; }
  .sfv-site.sfv-site .sfv-services-grid { grid-template-columns:1fr; gap:18px; }
  .sfv-site.sfv-site .sfv-service-card { padding:28px; }
  .sfv-site.sfv-site .sfv-service-card .sfv-body { max-width:100%; }
  .sfv-site.sfv-site .sfv-detail-grid { gap:30px; }
  .sfv-site.sfv-site .sfv-detail-copy .sfv-heading .elementor-heading-title { font-size:26px; }
  .sfv-site.sfv-site .sfv-detail-copy .sfv-body { font-size:14px; }
  .sfv-site.sfv-site .sfv-detail-photo { height:370px; }
  .sfv-site.sfv-site .sfv-detail-copy .elementor-button { min-width:0; padding:14px 20px; font-size:12px; }
  .sfv-site.sfv-site .sfv-message-grid { grid-template-columns:.8fr 1.2fr; gap:30px; }
  .sfv-site.sfv-site .sfv-message-copy .sfv-heading .elementor-heading-title { font-size:26px; }
  .sfv-site.sfv-site .sfv-message-copy .sfv-body { font-size:14px; }
  .sfv-site.sfv-site .sfv-message-photo { height:430px; }
  .sfv-site.sfv-site .sfv-contact-options { gap:16px; }
  .sfv-site.sfv-site .sfv-contact-card { padding:27px 22px; }
  .sfv-site.sfv-site .sfv-contact-card .sfv-subheading .elementor-heading-title { font-size:20px; }
  .sfv-site.sfv-site .sfv-contact-card .elementor-button { font-size:10px; padding:13px; }
}

@media(max-width:600px) {
  .sfv-site.sfv-site { font-size:14px; }
  .sfv-site.sfv-site [id] { scroll-margin-top:90px; }
  .sfv-site.sfv-site .sfv-inner,.sfv-site.sfv-site .sfv-vision-grid { width:calc(100% - 48px); }
  .sfv-site.sfv-site .sfv-section { padding:68px 0; }
  .sfv-site.sfv-site .sfv-heading .elementor-heading-title { font-size:27px; line-height:1.75; letter-spacing:.04em; }
  .sfv-site.sfv-site .sfv-subheading .elementor-heading-title { font-size:23px; }
  .sfv-site.sfv-site .sfv-body { font-size:15px; line-height:2; }
  .sfv-site.sfv-site .sfv-label { gap:11px; margin-bottom:21px; }
  .sfv-site.sfv-site .sfv-label-en .elementor-heading-title { font-size:28px; }
  .sfv-site.sfv-site .sfv-label-ja { font-size:11px; }
  .sfv-site.sfv-site .sfv-button { margin-top:25px; }
  .sfv-site.sfv-site .sfv-button .elementor-button { font-size:12px; min-height:52px; min-width:210px; padding:13px 24px; }
  .sfv-site.sfv-site .sfv-header { top:12px; left:12px; right:12px; height:57px; padding:4px 16px 4px 23px; }
  .sfv-site.sfv-site .sfv-logo { width:87px; flex-basis:87px; }
  .sfv-site.sfv-site .sfv-logo img { width:80px; height:45px; }
  .sfv-site.sfv-site .sfv-menu-toggle { width:44px; height:44px; padding:7px; }
  .sfv-site.sfv-site .sfv-menu-toggle i { font-size:20px; }
  .sfv-site.sfv-site .sfv-nav { padding:83px 27px 30px; width:86vw; }
  .sfv-site.sfv-site .sfv-close-control { top:17px; right:16px; }
  body.admin-bar .sfv-site.sfv-site .sfv-header { top:58px; }
  body.admin-bar .sfv-site.sfv-site .sfv-nav { padding-top:129px; }
  body.admin-bar .sfv-site.sfv-site .sfv-close-control { top:63px; }
  .sfv-site.sfv-site .sfv-hero { height:max(840px,100svh); min-height:840px; max-height:none; }
  .sfv-site.sfv-site .sfv-hero-image { height:580px; }
  .sfv-site.sfv-site .sfv-hero-image img { object-position:77% center; }
  .sfv-site.sfv-site .sfv-hero:after { content:""; position:absolute; top:450px; height:155px; left:0; right:0; background:linear-gradient(transparent,var(--sfv-cream)); pointer-events:none; }
  .sfv-site.sfv-site .sfv-hero-copy { top:529px; left:25px; width:calc(100% - 50px); max-width:none; z-index:1; }
  .sfv-site.sfv-site .sfv-hero-copy .sfv-kicker { font-size:9px; letter-spacing:.16em; margin-bottom:9px; }
  .sfv-site.sfv-site .sfv-hero-title .elementor-heading-title { font-size:clamp(27px,8.4vw,33px); line-height:1.75; letter-spacing:.04em; }
  .sfv-site.sfv-site .sfv-highlight { border-radius:4px; }
  .sfv-site.sfv-site .sfv-hero-sub { font-size:13px; margin-top:13px; letter-spacing:.015em; }
  .sfv-site.sfv-site .sfv-hero-en { font-size:10px; margin-top:4px; }
  .sfv-site.sfv-site .sfv-hero-banner { left:12px; width:calc(100% - 24px); transform:none; bottom:20px; height:99px; border-radius:14px; }
  .sfv-site.sfv-site .sfv-hero-banner-photo { width:83px; flex-basis:83px; }
  .sfv-site.sfv-site .sfv-hero-banner-copy { padding:10px 10px 11px 13px; }
  .sfv-site.sfv-site .sfv-hero-banner-copy .sfv-kicker { font-size:8px; }
  .sfv-site.sfv-site .sfv-banner-title .elementor-heading-title { font-size:12px; line-height:1.75; letter-spacing:0; }
  .sfv-site.sfv-site .sfv-banner-body { font-size:9px; line-height:1.6; margin-top:3px; }
  .sfv-site.sfv-site .sfv-banner-button { margin:0 11px 0 0; width:35px; flex-basis:35px; }
  .sfv-site.sfv-site .sfv-banner-button .elementor-button { min-width:0; min-height:35px; height:35px; width:35px; padding:9px; border-radius:50%; }
  .sfv-site.sfv-site .sfv-banner-button .elementor-button-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .sfv-site.sfv-site .sfv-banner-button .elementor-button-content-wrapper { justify-content:center; gap:0; }
  .sfv-site.sfv-site .sfv-banner-button .elementor-button-icon svg { width:14px; height:14px; }
  .sfv-site.sfv-site .sfv-scroll { right:16px; top:342px; bottom:auto; z-index:1; }
  .sfv-site.sfv-site .sfv-scroll .elementor-heading-title { font-size:9px; }
  .sfv-site.sfv-site .sfv-scroll a { padding-bottom:58px; }
  .sfv-site.sfv-site .sfv-scroll a:after { height:42px; }
  .sfv-site.sfv-site .sfv-mission-section { padding:67px 0 77px; }
  .sfv-site.sfv-site .sfv-mission-section>.sfv-inner { width:calc(100% - 32px); }
  .sfv-site.sfv-site .sfv-mission-panel { padding:44px 21px; border-radius:28px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-label { margin-bottom:24px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-label-en .elementor-heading-title { font-size:26px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-label-ja { font-size:10px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-heading .elementor-heading-title { font-size:25px; line-height:1.8; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-sub-en { font-size:10px; letter-spacing:.03em; margin:14px 0 23px; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-body { font-size:15px; line-height:2.1; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-body br { display:none; }
  .sfv-site.sfv-site .sfv-mission-panel .sfv-button { margin-top:27px; }
  .sfv-site.sfv-site .sfv-business-home { padding-bottom:70px; }
  .sfv-site.sfv-site .sfv-business-split { grid-template-columns:1fr; gap:0; }
  .sfv-site.sfv-site .sfv-edge-photo { width:87%; height:300px; border-radius:0 37px 37px 0; }
  .sfv-site.sfv-site .sfv-split-copy { padding:37px 25px 0; max-width:none; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-heading .elementor-heading-title { font-size:27px; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-split-copy .sfv-body br { display:none; }
  .sfv-site.sfv-site .sfv-gateway-grid { grid-template-columns:1fr; gap:43px; padding-top:54px; max-width:320px; }
  .sfv-site.sfv-site .sfv-gateway-image { width:100%; max-width:255px; aspect-ratio:1.2; border-radius:35px; }
  .sfv-site.sfv-site .sfv-gateway:first-child .sfv-gateway-image img { padding:40px; }
  .sfv-site.sfv-site .sfv-gateway-title { margin-top:19px; }
  .sfv-site.sfv-site .sfv-gateway-title .elementor-heading-title { font-size:22px; }
  .sfv-site.sfv-site .sfv-category { font-size:11px; margin-top:11px; }
  .sfv-site.sfv-site .sfv-gateway-desc { font-size:13px; margin-top:14px; }
  .sfv-site.sfv-site .sfv-gateway-link { margin-top:10px; }
  .sfv-site.sfv-site .sfv-vision { padding:65px 0 60px; }
  .sfv-site.sfv-site .sfv-vision-grid { grid-template-columns:1fr; gap:40px; }
  .sfv-site.sfv-site .sfv-vision .sfv-heading .elementor-heading-title { font-size:27px; }
  .sfv-site.sfv-site .sfv-vision-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-organic-photo { width:100%; height:325px; max-width:350px; margin:0 auto; }
  .sfv-site.sfv-site .sfv-facts { grid-template-columns:1fr; gap:16px; margin-top:38px; }
  .sfv-site.sfv-site .sfv-fact { padding:23px 20px; border-radius:23px; }
  .sfv-site.sfv-site .sfv-fact-label { font-size:9px; }
  .sfv-site.sfv-site .sfv-fact-number .elementor-heading-title { font-size:51px; }
  .sfv-site.sfv-site .sfv-fact-number span { font-size:15px; }
  .sfv-site.sfv-site .sfv-fact-place .elementor-heading-title { font-size:37px; line-height:1.65; }
  .sfv-site.sfv-site .sfv-fact-caption { font-size:11px; }
  .sfv-site.sfv-site .sfv-company-home { padding:68px 0; }
  .sfv-site.sfv-site .sfv-company-grid { grid-template-columns:1fr; gap:38px; }
  .sfv-site.sfv-site .sfv-company-copy .sfv-heading .elementor-heading-title { font-size:27px; }
  .sfv-site.sfv-site .sfv-company-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-company-photo { height:285px; border-radius:30px; }
  .sfv-site.sfv-site .sfv-news-section { padding:65px 0; }
  .sfv-site.sfv-site .sfv-news-section .sfv-label { margin-bottom:27px; }
  .sfv-site.sfv-site .sfv-news-link { grid-template-columns:auto 1fr 18px; gap:10px 15px; padding:23px 0; }
  .sfv-site.sfv-site .sfv-news-date { font-size:10px; }
  .sfv-site.sfv-site .sfv-news-category { min-width:0; justify-self:start; font-size:9px; padding:2px 10px; }
  .sfv-site.sfv-site .sfv-news-title { grid-column:1 / 3; grid-row:2; font-size:13px; line-height:1.8; }
  .sfv-site.sfv-site .sfv-news-arrow { grid-column:3; grid-row:1 / 3; font-size:20px; }
  .sfv-site.sfv-site .sfv-news-empty { padding:27px 0; font-size:12px; }
  .sfv-site.sfv-site .sfv-align-right { align-self:center; }
  .sfv-site.sfv-site .sfv-contact-band { grid-template-columns:1fr; }
  .sfv-site.sfv-site .sfv-contact-photo { height:290px; min-height:0; border-radius:0 70px 0 0; }
  .sfv-site.sfv-site .sfv-contact-copy { padding:41px 25px 47px; }
  .sfv-site.sfv-site .sfv-contact-copy .sfv-heading .elementor-heading-title { font-size:28px; }
  .sfv-site.sfv-site .sfv-contact-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-footer { padding:48px 0 24px; }
  .sfv-site.sfv-site .sfv-footer-brand { flex-direction:column; align-items:flex-start; gap:19px; margin-bottom:31px; }
  .sfv-site.sfv-site .sfv-footer-logo { width:140px; flex-basis:auto; }
  .sfv-site.sfv-site .sfv-footer-logo img { width:136px; max-height:79px; }
  .sfv-site.sfv-site .sfv-footer-address { font-size:12px; }
  .sfv-site.sfv-site .sfv-footer-links { grid-template-columns:1fr 1fr; gap:28px 17px; }
  .sfv-site.sfv-site .sfv-footer-col { gap:11px; }
  .sfv-site.sfv-site .sfv-footer-heading .elementor-heading-title { font-size:13px; }
  .sfv-site.sfv-site .sfv-footer-col .sfv-textlink .elementor-heading-title { font-size:12px; line-height:1.9; }
  .sfv-site.sfv-site .sfv-footer-bottom { margin-top:38px; padding-top:21px; gap:10px; }
  .sfv-site.sfv-site .sfv-copyright { font-size:9px; }
  .sfv-site.sfv-site .sfv-footer-bottom .sfv-photo-note { font-size:9px; order:3; width:100%; }
  .sfv-site.sfv-site .sfv-backtop .elementor-button { min-width:0; min-height:34px; font-size:9px; padding:6px 10px; }
  .sfv-site.sfv-site .sfv-backtop .elementor-button-content-wrapper { gap:8px; }
  .sfv-site.sfv-site .sfv-pagehero { height:415px; }
  .sfv-site.sfv-site .sfv-pagehero-photo img { object-position:45% center; }
  .sfv-site.sfv-site .sfv-pagehero-copy { top:46%; right:25px; width:calc(100% - 50px); }
  .sfv-site.sfv-site .sfv-pagehero-en .elementor-heading-title { font-size:36px; }
  .sfv-site.sfv-site .sfv-pagehero-ja { margin-top:10px; }
  .sfv-site.sfv-site .sfv-pagehero-ja .elementor-heading-title { font-size:21px; }
  .sfv-site.sfv-site .sfv-pagehero-plain { height:330px; }
  .sfv-site.sfv-site .sfv-pagehero-plain .sfv-pagehero-copy { top:47%; }
  .sfv-site.sfv-site.sfv-page-privacy .sfv-pagehero-en .elementor-heading-title { font-size:31px; }
  .sfv-site.sfv-site.sfv-page-privacy .sfv-pagehero-ja .elementor-heading-title { font-size:18px; }
  .sfv-site.sfv-site .sfv-overlap-panel { width:calc(100% - 32px); margin-top:-30px; padding:42px 22px; border-radius:28px; }
  .sfv-site.sfv-site .sfv-overlap-panel>.sfv-inner { width:100%; }
  .sfv-site.sfv-site .sfv-overlap-panel .sfv-body br { display:none; }
  .sfv-site.sfv-site .sfv-anchor-nav { display:flex!important; flex-direction:column; gap:10px; margin-top:26px; align-items:center; }
  .sfv-site.sfv-site .sfv-anchor-nav .sfv-button { margin-top:0; align-self:center; }
  .sfv-site.sfv-site .sfv-anchor-nav .elementor-button { min-width:230px; }
  .sfv-site.sfv-site .sfv-detail-section { padding:66px 0; }
  .sfv-site.sfv-site .sfv-detail-section>.sfv-inner>.sfv-label { margin-bottom:29px; }
  .sfv-site.sfv-site .sfv-detail-section>.sfv-inner>.sfv-label .sfv-label-en .elementor-heading-title { font-size:25px; }
  .sfv-site.sfv-site .sfv-detail-grid { grid-template-columns:1fr; gap:33px; }
  .sfv-site.sfv-site .sfv-detail-photo { height:295px; border-radius:28px; }
  .sfv-site.sfv-site .sfv-detail-copy .sfv-heading .elementor-heading-title { font-size:27px; }
  .sfv-site.sfv-site .sfv-detail-copy .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-service-logo { margin-bottom:21px; width:76px; }
  .sfv-site.sfv-site .sfv-service-logo img { width:76px; height:85px; }
  .sfv-site.sfv-site .sfv-services-grid { margin-top:37px; gap:17px; }
  .sfv-site.sfv-site .sfv-service-card { padding:27px 24px; border-radius:23px; }
  .sfv-site.sfv-site .sfv-service-card .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-service-card .elementor-button { min-width:0; min-height:45px; font-size:11px; }
  .sfv-site.sfv-site .sfv-tags { gap:8px; margin-top:20px; }
  .sfv-site.sfv-site .sfv-service-tag { font-size:11px; padding:3px 10px; }
  .sfv-site.sfv-site .sfv-philosophy-vision { margin-top:36px; padding-top:34px; }
  .sfv-site.sfv-site .sfv-philosophy-vision .sfv-subheading .elementor-heading-title { font-size:24px; }
  .sfv-site.sfv-site .sfv-values { grid-template-columns:1fr; gap:0; margin-top:34px; }
  .sfv-site.sfv-site .sfv-value { padding:22px 0; }
  .sfv-site.sfv-site .sfv-value .sfv-service-title .elementor-heading-title { font-size:21px; }
  .sfv-site.sfv-site .sfv-value .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-message-grid { grid-template-columns:1fr; gap:30px; }
  .sfv-site.sfv-site .sfv-message-visual { position:static; }
  .sfv-site.sfv-site .sfv-message-photo { height:300px; border-radius:28px; }
  .sfv-site.sfv-site .sfv-message-visual .sfv-photo-note { font-size:10px; }
  .sfv-site.sfv-site .sfv-message-copy .sfv-heading .elementor-heading-title { font-size:27px; }
  .sfv-site.sfv-site .sfv-message-copy .sfv-body { font-size:15px; line-height:2.1; }
  .sfv-site.sfv-site .sfv-sign-role { font-size:11px; }
  .sfv-site.sfv-site .sfv-sign-name .elementor-heading-title { font-size:24px; }
  .sfv-site.sfv-site .sfv-profile-row { grid-template-columns:84px 1fr; gap:16px; padding:20px 0; }
  .sfv-site.sfv-site .sfv-profile-key .elementor-heading-title { font-size:12px; }
  .sfv-site.sfv-site .sfv-profile-value { font-size:14px; line-height:2; }
  .sfv-site.sfv-site .sfv-contact-panel { margin-bottom:60px; }
  .sfv-site.sfv-site .sfv-contact-panel>.sfv-inner>.sfv-heading .elementor-heading-title { font-size:25px; }
  .sfv-site.sfv-site .sfv-contact-options { grid-template-columns:1fr; gap:20px; margin-top:32px; }
  .sfv-site.sfv-site .sfv-contact-card { padding:28px 23px; }
  .sfv-site.sfv-site .sfv-contact-card .sfv-subheading .elementor-heading-title { font-size:23px; }
  .sfv-site.sfv-site .sfv-contact-card .sfv-body { font-size:15px; }
  .sfv-site.sfv-site .sfv-contact-card .elementor-button { min-width:0; min-height:48px; font-size:11px; padding:12px 18px; }
  .sfv-site.sfv-site .sfv-contact-card .sfv-button { padding-top:22px; }
  .sfv-site.sfv-site .sfv-other-contact { margin-top:32px; padding-top:28px; }
  .sfv-site.sfv-site .sfv-phone .elementor-heading-title { font-size:26px; }
  .sfv-site.sfv-site .sfv-news-page { min-height:245px; margin-bottom:60px; }
  .sfv-site.sfv-site .sfv-policy { margin-bottom:60px; padding:21px 23px 31px; }
  .sfv-site.sfv-site .sfv-policy-block { padding:25px 0; }
  .sfv-site.sfv-site .sfv-policy-title .elementor-heading-title { font-size:16px; }
  .sfv-site.sfv-site .sfv-policy-block .sfv-body { font-size:14px; line-height:2; }
}

@media(prefers-reduced-motion:reduce) {
  .sfv-site.sfv-site *, .sfv-site.sfv-site *:before,.sfv-site.sfv-site *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .sfv-site.sfv-site.sfv-motion-ready .sfv-reveal { opacity:1; transform:none; }
}

/* Deliberate mobile line breaks keep Japanese headings intact. */
.sfv-site.sfv-site .sfv-mobile-break { display:none; }
@media(max-width:600px) { .sfv-site.sfv-site .sfv-mobile-break { display:initial; } }

@media(max-width:360px) {
 .sfv-site.sfv-site .sfv-contact-panel>.sfv-inner>.sfv-heading .elementor-heading-title { font-size:22px; }
 .sfv-site.sfv-site.sfv-page-about .sfv-overlap-panel>.sfv-inner>.sfv-heading .elementor-heading-title { font-size:23px; }
}
