:root{
  --bg:#f7f7f4;
  --bg-alt:#ffffff;
  --ink:#111111;
  --ink-soft:#444444;
  --ink-mute:#888888;
  --ink-faint:#dddddd;
  --line:#dddddd;
  --black:#111111;
  --offwhite:#f7f7f4;
  --serif-ja:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho",serif;
  --serif-en:"Cormorant Garamond",serif;
  --mono:"DM Mono",monospace;
  --ease:cubic-bezier(0.7,0,0.2,1);
}

*{margin:0;padding:0;box-sizing:border-box;}
html,body{background:var(--bg);color:var(--ink);font-family:var(--serif-ja);font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;cursor:auto;}
html{overflow-x:hidden;scroll-behavior:auto;}
body{overflow-x:hidden;}
::selection{background:var(--ink);color:var(--bg);}
a{color:inherit;text-decoration:none;cursor:auto;}
button{cursor:auto;background:none;border:none;color:inherit;font:inherit;}

/* ==== Custom Cursor ==== */
.cursor{position:fixed;top:0;left:0;width:8px;height:8px;background:var(--ink);border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference;transition:width 0.25s var(--ease),height 0.25s var(--ease);transform:translate(-50%,-50%);}
.cursor-ring{position:fixed;top:0;left:0;width:36px;height:36px;border:0.5px solid var(--ink);border-radius:50%;pointer-events:none;z-index:9998;transition:width 0.4s var(--ease),height 0.4s var(--ease);transform:translate(-50%,-50%);mix-blend-mode:difference;}
.cursor.is-link{width:0;height:0;}
.cursor-ring.is-link{width:64px;height:64px;}
@media(hover:none){.cursor,.cursor-ring{display:none;} html,body,a,button{cursor:auto;}}

/* ==== Loader ==== */
.loader{position:fixed;inset:0;background:var(--bg);z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden;}
.loader::before,
.loader::after{
  content:"";
  position:absolute;
  border:1px solid rgba(17,17,17,0.08);
  border-radius:50%;
  pointer-events:none;
}
.loader::before{
  width:min(440px,72vw);
  aspect-ratio:1;
  right:-120px;
  top:16vh;
}
.loader::after{
  width:min(260px,54vw);
  aspect-ratio:1.5;
  left:-80px;
  bottom:12vh;
  transform:rotate(-18deg);
}
.loader-logo{width:240px;height:auto;opacity:0;transform:scale(0.96);transition:opacity 2.2s var(--ease),transform 2.2s var(--ease);}
.loader-logo.is-in{opacity:1;transform:scale(1);}
.loader-progress{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:10px;letter-spacing:0.3em;color:var(--ink-mute);}
.loader-copy{
  margin-top:28px;
  font-size:13px;
  letter-spacing:0.14em;
  color:var(--ink-soft);
}

/* ==== Top Nav ==== */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:20px 36px;display:flex;align-items:center;justify-content:space-between;mix-blend-mode:difference;color:#fff;pointer-events:none;}
.nav > *{pointer-events:auto;}
.nav .logo-text{font-family:var(--mono);font-size:13px;letter-spacing:0.04em;color:#fff;font-weight:400;}
.nav-right{display:flex;align-items:center;gap:28px;}
.nav-links{display:flex;gap:24px;}
.nav-links a{font-family:var(--mono);font-size:10px;letter-spacing:0.32em;color:#fff;transition:opacity 0.3s var(--ease);}
.nav-links a:hover{opacity:0.5;}
.nav-sns{display:inline-flex;color:#fff;}
.nav-sns svg{width:18px;height:18px;}
.nav-sns:hover{opacity:0.6;}

/* ==== Page indicator (right side) ==== */
.page-ind{position:fixed;right:28px;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:14px;font-family:var(--mono);font-size:9px;letter-spacing:0.3em;}
.page-ind a{position:relative;padding-right:24px;color:var(--ink-mute);writing-mode:vertical-rl;transition:color 0.4s var(--ease);}
.page-ind a::after{content:"";position:absolute;top:50%;right:0;width:14px;height:0.5px;background:var(--ink-mute);transform:translateY(-50%) scaleX(0.6);transform-origin:right;transition:transform 0.4s var(--ease),background 0.4s var(--ease);}
.page-ind a.active{color:var(--ink);}
.page-ind a.active::after{transform:translateY(-50%) scaleX(1);background:var(--ink);}
.page-ind.invert a{color:rgba(247,245,239,0.4);}
.page-ind.invert a::after{background:rgba(247,245,239,0.4);}
.page-ind.invert a.active{color:#fff;}
.page-ind.invert a.active::after{background:#fff;}

/* ==== Section base ==== */
section{position:relative;width:100%;}
.sec{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:180px 60px;position:relative;}
.sec-light{background:var(--bg);}
.sec-white{background:var(--bg-alt);}
.sec-dark{background:var(--black);color:var(--offwhite);}
.sec-num{position:absolute;top:48px;left:48px;font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink-mute);}
.sec-dark .sec-num{color:rgba(247,245,239,0.4);}
.vert{writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--serif-ja);font-weight:300;line-height:2.6;max-height:70vh;}

/* ==== Page divider ==== */
.page-divider{padding:80px 60px;background:var(--bg);text-align:center;border-top:0.5px solid var(--line);border-bottom:0.5px solid var(--line);}
.page-divider .pd-num{font-family:var(--mono);font-size:11px;letter-spacing:0.6em;color:var(--ink-mute);margin-bottom:18px;}
.page-divider .pd-name{font-family:var(--serif-en);font-size:24px;font-style:italic;font-weight:300;letter-spacing:0.04em;color:var(--ink);margin-bottom:12px;}
.page-divider .pd-ja{font-size:13px;letter-spacing:0.36em;color:var(--ink-soft);}

/* ==== HERO ==== */
.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.hero-logo{width:380px;max-width:80vw;height:auto;display:block;}
.hero-tag{margin-top:-8px;font-family:var(--mono);font-size:10px;letter-spacing:0.5em;color:var(--ink-mute);}
.hero-scroll{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:9px;letter-spacing:0.5em;color:var(--ink-mute);display:flex;flex-direction:column;align-items:center;gap:14px;}
.hero-scroll::after{content:"";width:0.5px;height:48px;background:var(--ink-mute);animation:scrollLine 2.4s ease-in-out infinite;}
@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}50.01%{transform:scaleY(1);transform-origin:bottom;}100%{transform:scaleY(0);transform-origin:bottom;}}

/* ==== Catch ==== */
.catch{padding:240px 60px;}
.catch .vert{font-size:44px;letter-spacing:0.32em;line-height:2.4;}

/* ==== Photo placeholder ==== */
.ph{background:linear-gradient(135deg,#eeeeee 0%,#cfcfcf 100%);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.ph::before{content:"";position:absolute;inset:0;border:0.5px dashed rgba(20,20,20,0.18);}
.ph .ph-text{font-family:var(--mono);font-size:9px;letter-spacing:0.32em;color:rgba(20,20,20,0.45);text-align:center;line-height:2;padding:8px 16px;position:relative;z-index:1;}
.ph .ph-text strong{font-weight:400;color:rgba(20,20,20,0.6);font-size:10px;display:block;margin-bottom:6px;letter-spacing:0.4em;}

/* HERO photo */
.hero-photo{padding:0;background:var(--bg);}
.hero-photo .ph{width:100%;height:90vh;}

/* ==== MVV ==== */
.mvv{padding:160px 80px;}
.mvv-grid{max-width:880px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:80px;}
.mvv-item{display:grid;grid-template-columns:140px 1fr;gap:48px;align-items:flex-start;border-top:0.5px solid var(--line);padding-top:48px;}
.mvv-item:first-child{border-top:none;padding-top:0;}
.mvv-key{font-family:var(--mono);font-size:11px;letter-spacing:0.4em;color:var(--ink-mute);padding-top:8px;}
.mvv-key .mvv-key-en{display:block;font-family:var(--serif-en);font-style:italic;font-size:24px;color:var(--ink);letter-spacing:0.04em;margin-top:6px;font-weight:300;}
.mvv-body .mvv-title{font-size:22px;letter-spacing:0.18em;line-height:2;margin-bottom:24px;font-weight:300;}
.mvv-body .mvv-desc{font-size:13px;letter-spacing:0.12em;line-height:2.4;color:var(--ink-soft);font-family:var(--mono);font-weight:300;}

/* ==== Service entry on TOP ==== */
.svc-entry{padding:160px 60px;}
.svc-entry-inner{max-width:880px;margin:0 auto;}
.svc-entry h3{text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:64px;font-weight:400;}
.svc-entry-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px;}
.svc-card{text-align:center;padding:36px 16px;border-top:0.5px solid var(--ink);transition:opacity 0.3s var(--ease);}
.svc-card:hover{opacity:0.6;}
.svc-card .svc-num{font-family:var(--mono);font-size:9px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:24px;}
.svc-card .svc-name{font-size:18px;letter-spacing:0.22em;font-weight:300;margin-bottom:18px;}
.svc-card .svc-tag{font-family:var(--serif-en);font-style:italic;font-size:13px;letter-spacing:0.04em;color:var(--ink-soft);margin-bottom:24px;}
.svc-card .svc-arrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink);}
.svc-card .svc-arrow::after{content:"→";}

/* ==== Service detail ==== */
.svc-detail{padding:140px 60px;}
.svc-detail-inner{max-width:880px;margin:0 auto;width:100%;}
.svc-detail-head{display:grid;grid-template-columns:200px 1fr;gap:60px;align-items:flex-start;margin-bottom:80px;border-top:0.5px solid var(--ink);padding-top:48px;}
.svc-detail-no{font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);}
.svc-detail-no span{display:block;font-family:var(--serif-en);font-style:italic;font-size:28px;color:var(--ink);margin-top:12px;letter-spacing:0;}
.svc-detail-title{font-size:26px;letter-spacing:0.2em;font-weight:300;margin-bottom:24px;line-height:1.6;}
.svc-detail-lead{font-size:13px;letter-spacing:0.12em;line-height:2.4;color:var(--ink-soft);font-family:var(--mono);font-weight:300;}

.svc-photo{margin:64px 0;}
.svc-photo .ph{width:100%;height:520px;}

.svc-features{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:80px;}
.svc-feat{padding:28px 0;border-top:0.5px solid var(--line);}
.svc-feat .svc-feat-num{font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink-mute);margin-bottom:16px;}
.svc-feat .svc-feat-title{font-size:16px;letter-spacing:0.16em;margin-bottom:14px;font-weight:300;line-height:1.8;}
.svc-feat .svc-feat-desc{font-size:12px;letter-spacing:0.1em;line-height:2.2;color:var(--ink-soft);font-family:var(--mono);font-weight:300;}

.svc-flow{margin-bottom:64px;}
.svc-flow h4{font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:36px;text-align:center;font-weight:400;}
.svc-flow-list{display:grid;grid-template-columns:repeat(4,1fr);gap:0;}
.svc-flow-step{position:relative;padding:24px 12px;text-align:center;border-right:0.5px solid var(--line);}
.svc-flow-step:last-child{border-right:none;}
.svc-flow-step .step-no{font-family:var(--serif-en);font-style:italic;font-size:22px;color:var(--ink);margin-bottom:14px;font-weight:300;}
.svc-flow-step .step-title{font-size:13px;letter-spacing:0.16em;margin-bottom:10px;font-weight:300;}
.svc-flow-step .step-desc{font-size:10px;letter-spacing:0.08em;line-height:2;color:var(--ink-soft);font-family:var(--mono);}

/* ==== Member deep ==== */
.members-deep{padding:160px 80px;}
.members-deep-grid{max-width:1000px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;}
.member-deep .ph{width:100%;height:540px;margin-bottom:48px;}
.member-deep .m-role{font-family:var(--mono);font-size:10px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:14px;}
.member-deep .m-name{font-size:20px;letter-spacing:0.18em;font-weight:300;margin-bottom:8px;}
.member-deep .m-name-en{font-family:var(--serif-en);font-style:italic;font-size:14px;color:var(--ink-soft);margin-bottom:32px;letter-spacing:0.04em;}
.member-deep .m-divider{width:24px;height:0.5px;background:var(--ink);margin-bottom:32px;}
.member-deep .m-msg{font-size:13px;letter-spacing:0.1em;line-height:2.4;color:var(--ink);font-family:var(--mono);font-weight:300;}

/* ==== Company ==== */
.company{padding:160px 60px;}
.company-inner{max-width:680px;margin:0 auto;}
.company-table{width:100%;border-collapse:collapse;}
.company-table tr{border-bottom:0.5px solid var(--line);}
.company-table tr:first-child{border-top:0.5px solid var(--line);}
.company-table th{text-align:left;padding:24px 24px 24px 0;font-size:10px;letter-spacing:0.32em;color:var(--ink-mute);font-family:var(--mono);font-weight:400;width:32%;vertical-align:top;}
.company-table td{padding:24px 0;font-size:13px;letter-spacing:0.12em;line-height:2.2;color:var(--ink);font-weight:300;}
.company-table td a{border-bottom:0.5px solid var(--ink-faint);transition:border-color 0.3s var(--ease);}
.company-table td a:hover{border-color:var(--ink);}
.company-table td .map-text-link{
  display:inline-block;
  margin-top:14px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.18em;
  color:#111;
}

/* ==== Map ==== */
.map-sec{padding:80px 60px 160px;}
.map-sec-inner{max-width:880px;margin:0 auto;}
.map-sec h4{font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:32px;text-align:center;font-weight:400;}
.map-sec .ph{width:100%;height:480px;}

/* ==== Black band ==== */
.band{padding:200px 60px;}
.band .vert{font-size:36px;letter-spacing:0.3em;line-height:2.4;font-weight:300;color:var(--offwhite);}

/* ==== Contact ==== */
.contact-vert{padding:160px 60px;}
.contact-vert .vert{font-size:36px;letter-spacing:0.3em;line-height:2.4;}

.contact-form-sec{padding:120px 60px;background:var(--bg-alt);}
.form-inner{max-width:560px;margin:0 auto;}
.form-inner h4{font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:48px;text-align:center;font-weight:400;}
.form-row{margin-bottom:32px;}
.form-row label{display:block;font-family:var(--mono);font-size:10px;letter-spacing:0.32em;color:var(--ink-mute);margin-bottom:12px;}
.form-row label .req{color:var(--ink);margin-left:8px;}
.form-row input,.form-row select,.form-row textarea{width:100%;background:transparent;border:none;border-bottom:0.5px solid var(--ink-faint);padding:12px 0;font-family:var(--serif-ja);font-size:14px;color:var(--ink);font-weight:300;letter-spacing:0.06em;cursor:auto;transition:border-color 0.3s var(--ease);}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{outline:none;border-bottom-color:var(--ink);}
.form-row textarea{resize:vertical;min-height:120px;line-height:2;}
.form-row select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='none' stroke='%23141414' stroke-width='0.8' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;padding-right:24px;}
.form-submit{width:100%;display:flex;align-items:center;justify-content:center;gap:14px;padding:22px;border:0.5px solid var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:0.4em;color:var(--ink);position:relative;overflow:hidden;margin-top:24px;background:transparent;}
.form-submit::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform 0.5s var(--ease);}
.form-submit:hover::before{transform:translateY(0);}
.form-submit span{position:relative;z-index:1;transition:color 0.4s var(--ease);}
.form-submit:hover span{color:var(--offwhite);}

.contact-direct{padding:120px 60px;display:flex;flex-direction:column;align-items:center;gap:36px;background:var(--bg);}
.contact-direct .or{font-family:var(--mono);font-size:10px;letter-spacing:0.5em;color:var(--ink-mute);margin:8px 0;}
.cta-btn{position:relative;display:inline-flex;align-items:center;gap:18px;padding:24px 72px;border:0.5px solid var(--ink);overflow:hidden;}
.cta-btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform 0.6s var(--ease);}
.cta-btn:hover::before{transform:translateY(0);}
.cta-btn span,.cta-btn svg{position:relative;z-index:1;transition:color 0.4s var(--ease);}
.cta-btn span{font-size:12px;letter-spacing:0.36em;font-family:var(--mono);}
.cta-btn svg{width:18px;height:18px;}
.cta-btn svg path,.cta-btn svg rect,.cta-btn svg circle{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke 0.4s var(--ease),fill 0.4s var(--ease);}
.cta-btn svg circle[fill="currentColor"]{fill:var(--ink);stroke:var(--ink);}
.cta-btn:hover span{color:var(--offwhite);}
.cta-btn:hover svg path,.cta-btn:hover svg rect,.cta-btn:hover svg circle{stroke:var(--offwhite);}
.cta-btn:hover svg circle[fill="currentColor"]{fill:var(--offwhite);}

.cta-tel{display:flex;flex-direction:column;align-items:center;gap:10px;}
.cta-tel-num{display:flex;align-items:center;gap:14px;font-size:18px;letter-spacing:0.16em;font-family:var(--mono);font-weight:300;}
.cta-tel-num svg{width:14px;height:14px;}
.cta-tel-num svg path{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.cta-tel-hours{font-family:var(--mono);font-size:9px;letter-spacing:0.4em;color:var(--ink-mute);}
.cta-mail{display:inline-flex;align-items:center;gap:12px;padding:14px 28px;color:var(--ink-soft);transition:color 0.3s var(--ease);}
.cta-mail:hover{color:var(--ink);}
.cta-mail svg{width:14px;height:14px;}
.cta-mail svg path{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
.cta-mail span{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;}

.access-mini{
  width:min(520px,100%);
  text-align:center;
  padding:40px 28px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.access-mini span,
.cta-map span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.34em;
  color:var(--ink-mute);
  margin-bottom:16px;
}
.access-mini p{
  font-size:13px;
  line-height:2.1;
  letter-spacing:0.08em;
  margin-bottom:22px;
}
.access-mini a,
.cta-map strong{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  font-weight:400;
}
.access-mini a{
  display:inline-flex;
  min-height:42px;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  border:1px solid #111;
}

.cta-map{
  display:block;
  width:min(560px,100%);
  text-align:center;
  padding:34px 28px;
  border:1px solid var(--line);
  transition:border-color 0.3s var(--ease),background 0.3s var(--ease);
}
.cta-map:hover{
  border-color:#111;
  background:#fff;
}
.cta-map strong{
  display:block;
  margin-bottom:14px;
}
.cta-map small{
  display:block;
  font-family:var(--serif-ja);
  font-size:12px;
  line-height:1.9;
  letter-spacing:0.06em;
  color:var(--ink-soft);
}

/* ==== Footer ==== */
footer{background:var(--black);color:var(--ink-mute);padding:80px 48px 36px;text-align:center;}
footer .ftr-logo{width:120px;height:auto;display:block;margin:0 auto 32px;}
footer .ftr-sns{display:flex;justify-content:center;gap:24px;margin-bottom:48px;}
footer .ftr-sns a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:0.5px solid rgba(247,245,239,0.2);border-radius:50%;color:var(--offwhite);transition:border-color 0.3s var(--ease),background 0.3s var(--ease);}
footer .ftr-sns a:hover{border-color:var(--offwhite);background:rgba(247,245,239,0.06);}
footer .ftr-sns svg{width:16px;height:16px;}
footer .ftr-sns svg path,footer .ftr-sns svg rect,footer .ftr-sns svg circle{fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
footer .ftr-sns svg circle[fill="currentColor"]{fill:currentColor;stroke:currentColor;}
footer .ftr-info{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;line-height:2.4;}
footer .ftr-info .small{color:#444;font-size:9px;margin-top:16px;display:block;}
footer .ftr-legal{
  display:flex;
  justify-content:center;
  gap:18px;
  margin-top:18px;
  margin-bottom:2px;
}
footer .ftr-legal a{
  color:rgba(247,245,239,0.72);
  border-bottom:0.5px solid rgba(247,245,239,0.22);
  transition:color 0.3s var(--ease),border-color 0.3s var(--ease);
}
footer .ftr-legal a:hover{
  color:var(--offwhite);
  border-color:var(--offwhite);
}

.legal-hero{
  min-height:62svh;
  padding:150px 48px 92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:#fff;
  position:relative;
  overflow:hidden;
}

.legal-hero::before{
  content:"";
  position:absolute;
  width:min(520px,46vw);
  aspect-ratio:1;
  border-radius:50%;
  background:#f0f0ef;
  right:8vw;
  bottom:-120px;
}

.legal-hero > *{
  position:relative;
  z-index:1;
}

.legal-kicker{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.42em;
  color:var(--ink-mute);
  text-transform:uppercase;
  margin-bottom:28px;
}

.legal-hero h1{
  font-weight:300;
  font-size:clamp(34px,4vw,58px);
  line-height:1.45;
  letter-spacing:0.1em;
  margin-bottom:28px;
}

.legal-hero h1 span{
  display:inline-block;
  white-space:nowrap;
}

.legal-hero p{
  max-width:660px;
  font-family:var(--mono);
  font-size:12px;
  line-height:2.25;
  letter-spacing:0.06em;
  color:#444;
  overflow-wrap:anywhere;
}

.legal-body{
  padding:96px 48px 120px;
  background:#f7f7f4;
}

.legal-block,
.legal-date{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
}

.legal-block{
  padding:34px 0;
  border-top:0.5px solid var(--line);
}

.legal-block:last-of-type{
  border-bottom:0.5px solid var(--line);
}

.legal-block h2{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.18em;
  line-height:1.9;
  font-weight:400;
  margin-bottom:18px;
}

.legal-block p,
.legal-block li,
.legal-date{
  font-family:var(--mono);
  font-size:12px;
  line-height:2.15;
  letter-spacing:0.055em;
  color:#3d3d3d;
  overflow-wrap:anywhere;
}

.legal-block ul{
  display:grid;
  gap:8px;
  padding-left:1.2em;
  margin-top:14px;
}

.legal-block a{
  border-bottom:0.5px solid var(--ink-faint);
}

.legal-date{
  margin-top:42px;
  text-align:right;
  color:#777;
}

/* ==== Reveal ==== */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 2.0s var(--ease),transform 2.0s var(--ease);}
.reveal.is-in{opacity:1;transform:translateY(0);}
.reveal-vert{opacity:0;transform:translateX(40px);transition:opacity 2.2s var(--ease),transform 2.2s var(--ease);}
.reveal-vert.is-in{opacity:1;transform:translateX(0);}

/* ==== Safe area ==== */
.nav{padding-top:max(20px,env(safe-area-inset-top));padding-left:max(36px,env(safe-area-inset-left));padding-right:max(36px,env(safe-area-inset-right));}
footer{padding-bottom:max(36px,env(safe-area-inset-bottom));}

/* ==== Tablet ==== */
@media(max-width:1024px){
  .page-ind{right:18px;font-size:8px;gap:12px;}
  .page-ind a{padding-right:18px;}
  .nav-links{gap:18px;}
  .sec{padding:100px 40px;}
  .catch .vert{font-size:44px;letter-spacing:0.36em;}
  .band .vert{font-size:36px;}
  .svc-entry-grid{gap:32px;}
  .svc-detail-head{grid-template-columns:1fr;gap:32px;}
  .svc-features{grid-template-columns:1fr;gap:0;}
  .members-deep-grid{gap:48px;}
}

/* ==== Mobile ==== */
@media(max-width:768px){
  .page-ind{display:none;}
  .cursor,.cursor-ring{display:none;}
  html,body,a,button,[data-link]{cursor:auto;}

  .nav{padding:14px 18px;}
  .nav .logo-text{font-size:11px;}
  .nav-right{gap:14px;}
  .nav-links{display:none;}
  .nav-sns svg{width:16px;height:16px;}

  .sec{padding:88px 22px;}
  .sec-num{top:24px;left:22px;font-size:9px;letter-spacing:0.32em;}

  .hero-logo{width:280px;max-width:74vw;}
  .hero-tag{margin-top:-6px;font-size:9px;letter-spacing:0.4em;}
  .hero-scroll{bottom:32px;font-size:8px;letter-spacing:0.4em;gap:10px;}
  .hero-scroll::after{height:32px;}

  .hero-photo .ph{height:38vh;}

  .page-divider{padding:60px 28px;}
  .page-divider .pd-num{font-size:9px;letter-spacing:0.5em;}
  .page-divider .pd-name{font-size:28px;}
  .page-divider .pd-ja{font-size:11px;letter-spacing:0.32em;}

  .catch{padding:120px 32px;}
  .catch .vert{font-size:30px !important;letter-spacing:0.22em !important;line-height:1.9 !important;max-height:58vh;}

  .mvv{padding:100px 24px;}
  .mvv-grid{gap:56px;}
  .mvv-item{grid-template-columns:1fr;gap:18px;padding-top:36px;}
  .mvv-key{padding-top:0;}
  .mvv-key .mvv-key-en{font-size:20px;}
  .mvv-body .mvv-title{font-size:18px;line-height:1.9;letter-spacing:0.12em;}
  .mvv-body .mvv-desc{font-size:12px;line-height:2.2;}

  .svc-entry{padding:100px 24px;}
  .svc-entry-grid{grid-template-columns:1fr;gap:0;}
  .svc-card{padding:32px 16px 28px;}
  .svc-card .svc-name{font-size:20px;letter-spacing:0.28em;margin-bottom:14px;}
  .svc-card .svc-tag{font-size:12px;margin-bottom:18px;}

  .svc-detail{padding:100px 24px;}
  .svc-detail-head{grid-template-columns:1fr;gap:24px;padding-top:36px;margin-bottom:48px;}
  .svc-detail-no span{font-size:32px;}
  .svc-detail-title{font-size:24px;letter-spacing:0.24em;margin-bottom:18px;}
  .svc-detail-lead{font-size:12px;line-height:2.2;letter-spacing:0.04em;padding:0 4px;}
  .svc-photo{margin:40px 0;}
  .svc-photo .ph{height:220px;}
  .svc-features{grid-template-columns:1fr;gap:0;margin-bottom:48px;}
  .svc-flow-list{grid-template-columns:1fr 1fr;gap:0;}
  .svc-flow-step{padding:20px 8px;}
  .svc-flow-step:nth-child(2){border-right:none;}
  .svc-flow-step:nth-child(1),.svc-flow-step:nth-child(2){border-bottom:0.5px solid var(--line);}
  .svc-flow-step .step-no{font-size:24px;}
  .svc-flow-step .step-title{font-size:11px;letter-spacing:0.12em;}
  .svc-flow-step .step-desc{font-size:9px;}

  .members-deep{padding:80px 22px;}
  .members-deep-grid{grid-template-columns:1fr;gap:64px;}
  .member-deep .ph{height:320px;}
  .member-deep .m-name{font-size:20px;}
  .member-deep .m-msg{font-size:12px;}

  .company{padding:100px 22px;}
  .company-table tr{display:block;padding:18px 0;}
  .company-table th{display:block;width:100%;padding:0 0 8px 0;font-size:9px;letter-spacing:0.4em;}
  .company-table td{display:block;padding:0;font-size:12px;line-height:2;}

  .map-sec{padding:60px 22px 100px;}
  .map-sec .ph{height:240px;}

  .band{padding:120px 28px;}
  .band .vert{font-size:28px;letter-spacing:0.2em;line-height:1.9;max-height:58vh;}

  .contact-vert{padding:100px 28px;}
  .contact-vert .vert{font-size:30px;letter-spacing:0.22em;line-height:1.9;max-height:58vh;}
  .contact-form-sec{padding:80px 28px;}
  .form-inner h4{font-size:9px;letter-spacing:0.4em;}
  .form-row label{font-size:9px;}
  .form-row input,.form-row select,.form-row textarea{font-size:13px;}
  .contact-direct{padding:80px 28px;gap:28px;}
  .cta-btn{padding:18px 40px;gap:14px;}
  .cta-btn span{font-size:11px;letter-spacing:0.3em;}
  .cta-btn svg{width:16px;height:16px;}
  .cta-tel-num{font-size:16px;}

  footer{padding:60px 22px 32px;}
  footer .ftr-logo{width:100px;margin-bottom:28px;}
  footer .ftr-sns{gap:18px;margin-bottom:36px;}
  footer .ftr-sns a{width:38px;height:38px;}
  footer .ftr-sns svg{width:14px;height:14px;}
  footer .ftr-info{font-size:9px;line-height:2;}
  footer .ftr-info .small{font-size:8px;}
  footer .ftr-legal{margin-top:16px;}
  .legal-hero{
    min-height:auto;
    padding:108px 22px 72px;
  }
  .legal-hero h1{
    font-size:clamp(29px,7.4vw,34px);
    letter-spacing:0.045em;
    line-height:1.45;
  }
  .legal-hero h1 span{
    display:block;
  }
  .legal-hero p{
    font-size:11px;
    line-height:2.05;
    text-align:left;
    width:100%;
    max-width:calc(100vw - 68px);
    min-width:0;
    word-break:break-all;
  }
  .legal-body{
    padding:64px 22px 82px;
  }
  .legal-block,
  .legal-date{
    width:100%;
    max-width:calc(100vw - 68px);
  }
  .legal-block{
    padding:28px 0;
  }
  .legal-block h2{
    font-size:12px;
    letter-spacing:0.12em;
  }
  .legal-block p,
  .legal-block li,
  .legal-date{
    font-size:11px;
    line-height:2.05;
    letter-spacing:0.03em;
    word-break:break-all;
  }
  .legal-date{
    text-align:left;
  }
}

@media(max-width:380px){
  .sec{padding:72px 18px;}
  .hero-logo{width:240px;max-width:78vw;}
  .catch .vert{font-size:24px !important;letter-spacing:0.26em !important;line-height:2.2 !important;}
  .band .vert{font-size:22px;letter-spacing:0.24em;line-height:2.2;}
  .contact-vert .vert{font-size:24px;letter-spacing:0.26em;}
  .svc-detail-title{font-size:21px;letter-spacing:0.22em;}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}
  .hero-scroll::after{animation:none;}
}

/* ==== Multi-page additions ==== */

/* Active nav link */
.nav-links a.is-current{opacity:0.5;}
.nav-links a.is-current::before{content:"●";font-size:6px;margin-right:6px;vertical-align:middle;}

/* Service entry detail link (on TOP) */
.svc-entry-detail{margin-top:80px;text-align:center;}
.svc-detail-link{display:inline-flex;align-items:center;gap:18px;padding:22px 56px;border:0.5px solid var(--ink);overflow:hidden;position:relative;font-family:var(--mono);font-size:11px;letter-spacing:0.4em;color:var(--ink);}
.svc-detail-link::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform 0.5s var(--ease);}
.svc-detail-link:hover::before{transform:translateY(0);}
.svc-detail-link span{position:relative;z-index:1;transition:color 0.4s var(--ease);}
.svc-detail-link:hover span{color:var(--offwhite);}

/* Per-service intro card on TOP (lighter than full detail) */
.svc-intro{padding:140px 60px;}
.svc-intro-inner{max-width:880px;margin:0 auto;}
.svc-intro-grid{display:grid;grid-template-columns:200px 1fr;gap:60px;align-items:flex-start;border-top:0.5px solid var(--line);padding-top:48px;}
.svc-intro-grid + .svc-intro-grid{margin-top:0;}
.svc-intro-no{font-family:var(--mono);font-size:11px;letter-spacing:0.5em;color:var(--ink-mute);}
.svc-intro-no span{display:block;font-family:var(--serif-en);font-style:italic;font-size:36px;color:var(--ink);margin-top:8px;letter-spacing:0;font-weight:300;}
.svc-intro-body .svc-intro-title{font-size:28px;letter-spacing:0.3em;font-weight:300;margin-bottom:20px;}
.svc-intro-body .svc-intro-desc{font-size:13px;letter-spacing:0.12em;line-height:2.4;color:var(--ink-soft);font-family:var(--mono);font-weight:300;margin-bottom:24px;}
.svc-intro-body .svc-intro-link{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:0.32em;color:var(--ink);border-bottom:0.5px solid var(--ink);padding-bottom:6px;transition:gap 0.3s var(--ease);}
.svc-intro-body .svc-intro-link:hover{gap:18px;}

@media(max-width:768px){
  .svc-intro{padding:100px 24px;}
  .svc-intro-grid{grid-template-columns:1fr;gap:18px;padding-top:32px;}
  .svc-intro-no span{font-size:28px;}
  .svc-intro-body .svc-intro-title{font-size:22px;letter-spacing:0.24em;margin-bottom:16px;}
  .svc-intro-body .svc-intro-desc{font-size:12px;line-height:2.2;}
  .svc-intro-body .svc-intro-link{font-size:10px;}
  .svc-detail-link{padding:18px 40px;font-size:10px;letter-spacing:0.32em;}
}

/* ============================================ */
/* ===== Vineyard-Style Big Statement ====== */
/* ============================================ */

/* 1画面=1メッセージ用、巨大縦書き */
.big-stmt{min-height:100svh;display:flex;align-items:center;justify-content:center;padding:200px 60px;position:relative;background:var(--bg);}
.big-stmt .vert{font-size:40px;letter-spacing:0.3em;line-height:2.4;font-weight:300;max-height:70vh;}
.big-stmt .label{position:absolute;top:48px;left:48px;font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink-mute);}
.big-stmt .label-en{position:absolute;top:80px;left:48px;font-family:var(--serif-en);font-style:italic;font-size:18px;color:var(--ink);font-weight:300;}

/* MVV 縦に1個ずつ独立セクション */
.mvv-solo{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:200px 60px;position:relative;}
.mvv-solo .mvv-solo-key{font-family:var(--mono);font-size:9px;letter-spacing:0.4em;color:var(--ink-mute);margin-bottom:24px;}
.mvv-solo .mvv-solo-key-en{font-family:var(--serif-en);font-style:italic;font-size:16px;color:var(--ink);margin-bottom:48px;letter-spacing:0.02em;font-weight:300;}
.mvv-solo .mvv-solo-title{font-size:26px;letter-spacing:0.14em;line-height:2;font-weight:300;text-align:center;margin-bottom:48px;max-width:680px;}
.mvv-solo .mvv-solo-divider{width:32px;height:0.5px;background:var(--ink);margin-bottom:48px;}
.mvv-solo .mvv-solo-desc{font-size:13px;letter-spacing:0.06em;line-height:2.4;color:var(--ink-soft);font-family:var(--mono);font-weight:300;text-align:center;max-width:600px;}
.mvv-solo-vision{padding-bottom:140px;}
.mvv-solo-vision:target .reveal{opacity:1;transform:none;}
.mvv-vision-photo{width:min(1120px,100%);margin:62px auto 0;}
.mvv-vision-photo img{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;object-position:center;border:1px solid rgba(17,17,17,0.08);}
.mvv-vision-photo figcaption{margin-top:18px;font-family:var(--serif-ja);font-size:14px;line-height:1.9;letter-spacing:0.08em;color:var(--ink-soft);text-align:center;}

/* Photo as hero (fullscreen) */
.photo-fullscreen{min-height:100svh;padding:0;background:var(--bg);}
.photo-fullscreen .ph{width:100%;height:100svh;}

/* Service single (写真+短文) */
.svc-single{min-height:100svh;display:flex;align-items:center;padding:120px 0;background:var(--bg);}
.svc-single-inner{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;}
.svc-single-photo{position:relative;}
.svc-single-photo .ph{width:100%;height:80vh;}
.svc-single-text{padding:40px 80px;display:flex;flex-direction:column;justify-content:center;}
.svc-single-no{font-family:var(--mono);font-size:10px;letter-spacing:0.5em;color:var(--ink-mute);margin-bottom:14px;}
.svc-single-no .en{display:block;font-family:var(--serif-en);font-style:italic;font-size:32px;color:var(--ink);margin-top:8px;letter-spacing:0;font-weight:300;}
.svc-single-title{font-size:26px;letter-spacing:0.2em;font-weight:300;margin-bottom:32px;line-height:1.5;margin-top:32px;}
.svc-single-divider{width:32px;height:0.5px;background:var(--ink);margin-bottom:32px;}
.svc-single-desc{font-size:14px;letter-spacing:0.1em;line-height:2.4;color:var(--ink);font-weight:300;margin-bottom:36px;max-width:420px;}
.svc-single-link{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11px;letter-spacing:0.36em;color:var(--ink);border-bottom:0.5px solid var(--ink);padding-bottom:8px;width:fit-content;transition:gap 0.3s var(--ease);}
.svc-single-link:hover{gap:22px;}

/* Reverse layout (photo right) */
.svc-single.reverse .svc-single-inner{grid-template-columns:1fr 1fr;}
.svc-single.reverse .svc-single-photo{order:2;}
.svc-single.reverse .svc-single-text{order:1;}

@media(max-width:768px){
  .big-stmt{padding:120px 28px;}
  .big-stmt .vert{font-size:28px;letter-spacing:0.2em;line-height:1.9;max-height:58vh;}
  .big-stmt .label{top:24px;left:22px;font-size:9px;letter-spacing:0.4em;}
  .big-stmt .label-en{top:48px;left:22px;font-size:14px;}

  .mvv-solo{padding:120px 28px;}
  .mvv-solo .mvv-solo-key{font-size:9px;letter-spacing:0.5em;}
  .mvv-solo .mvv-solo-key-en{font-size:18px;margin-bottom:48px;}
  .mvv-solo .mvv-solo-title{font-size:18px;letter-spacing:0.04em;line-height:1.9;margin-bottom:32px;padding:0 12px;text-align:center;}
  .mvv-solo .mvv-solo-desc{font-size:11.5px;line-height:2.2;letter-spacing:0.04em;padding:0 4px;}
  .mvv-solo-vision{padding-bottom:92px;}
  .mvv-vision-photo{margin-top:44px;width:100%;}
  .mvv-vision-photo img{aspect-ratio:4/5;object-position:center;}
  .mvv-vision-photo figcaption{font-size:12px;letter-spacing:0.04em;line-height:1.8;padding:0 6px;}

  .photo-fullscreen .ph{height:60svh;}

  .svc-single{padding:60px 0;min-height:auto;}
  .svc-single-inner{grid-template-columns:1fr;}
  .svc-single.reverse .svc-single-photo{order:1;}
  .svc-single.reverse .svc-single-text{order:2;}
  .svc-single-photo .ph{height:50vh;}
  .svc-single-text{padding:48px 28px 60px;}
  .svc-single-title{font-size:26px;letter-spacing:0.24em;margin-top:32px;margin-bottom:24px;}
  .svc-single-no .en{font-size:24px;}
  .svc-single-desc{font-size:13px;line-height:2.2;letter-spacing:0.06em;margin-bottom:28px;}
}

/* ============================================ */
/* ===== Fullscreen Menu Overlay ============== */
/* ============================================ */

/* MENU button (replaces text-only menu) */
.nav .menu-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 0;color:#fff;background:transparent;border:none;cursor:pointer;}
.nav .menu-btn .menu-line{display:block;width:18px;height:0.5px;background:#fff;}
.nav .menu-btn .menu-text{font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:#fff;margin-left:6px;}
.nav .menu-btn::before{display:none;}

/* Overlay */
.menu-overlay{position:fixed;inset:0;background:var(--bg);z-index:200;opacity:0;pointer-events:none;transform:translateY(-3%);transition:opacity 0.8s var(--ease),transform 0.8s var(--ease);overflow-y:auto;display:flex;flex-direction:column;}
.menu-overlay.is-open{opacity:1;pointer-events:auto;transform:translateY(0);}

/* Overlay header (close button) */
.menu-overlay-header{padding:24px 36px;display:flex;justify-content:flex-end;}
.menu-close{display:inline-flex;align-items:center;gap:14px;color:var(--ink);background:transparent;border:none;cursor:pointer;padding:8px 0;}
.menu-close .close-x{font-size:28px;line-height:1;font-weight:200;font-family:var(--serif-ja);color:var(--ink);}
.menu-close .close-text{font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink);}

/* Menu list */
.menu-list{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 80px;max-width:1200px;margin:0 auto;width:100%;}
.menu-link{display:grid;grid-template-columns:80px 1fr auto;gap:48px;align-items:baseline;padding:32px 0;border-top:0.5px solid var(--line);color:var(--ink);transition:padding-left 0.4s var(--ease);position:relative;}
.menu-link:last-child{border-bottom:0.5px solid var(--line);}
.menu-link:hover{padding-left:24px;}
.menu-link .menu-num{font-family:var(--mono);font-size:11px;letter-spacing:0.3em;color:var(--ink-mute);}
.menu-link .menu-name-en{font-family:var(--serif-en);font-style:italic;font-size:36px;font-weight:300;color:var(--ink);letter-spacing:0;line-height:1;}
.menu-link .menu-name-ja{font-size:13px;letter-spacing:0.4em;color:var(--ink-soft);font-weight:300;}
.menu-link.is-current .menu-name-en{opacity:0.4;}
.menu-link.is-current::before{content:"●";position:absolute;left:-16px;top:50%;transform:translateY(-50%);font-size:6px;color:var(--ink);}

/* Menu footer */
.menu-foot{padding:48px 80px 48px;border-top:0.5px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;}
.menu-foot-info{font-family:var(--mono);font-size:10px;line-height:2.4;letter-spacing:0.18em;color:var(--ink-soft);}
.menu-foot-sns{display:flex;gap:24px;}
.menu-foot-sns a{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:0.32em;color:var(--ink);transition:opacity 0.3s var(--ease);}
.menu-foot-sns a:hover{opacity:0.5;}
.menu-foot-sns svg{width:16px;height:16px;}
.menu-foot-sns svg path,.menu-foot-sns svg rect,.menu-foot-sns svg circle{fill:none;stroke:var(--ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;}
.menu-foot-sns svg circle[fill="currentColor"]{fill:var(--ink);stroke:var(--ink);}

/* Lock body when menu open */
body.menu-open{overflow:hidden;}

/* Hide nav-links since we replaced with overlay */
.nav-links{display:none !important;}

@media(max-width:768px){
  .menu-overlay-header{padding:14px 18px;}
  .menu-list{padding:0 28px;}
  .menu-link{grid-template-columns:50px 1fr;gap:18px;padding:24px 0;}
  .menu-link:hover{padding-left:0;}
  .menu-link .menu-num{font-size:9px;letter-spacing:0.3em;}
  .menu-link .menu-name-en{font-size:36px;grid-row:1;grid-column:2;}
  .menu-link .menu-name-ja{font-size:11px;letter-spacing:0.32em;grid-row:2;grid-column:2;margin-top:4px;}
  .menu-foot{padding:32px 28px;flex-direction:column;align-items:flex-start;gap:24px;}
  .menu-foot-info{font-size:9px;line-height:2.2;}
  .nav .menu-btn .menu-text{font-size:9px;letter-spacing:0.32em;}
  .nav .menu-btn .menu-line{width:14px;}
}


/* ============================================ */
/* ===== Values List (replaces mvv-solo-desc) ===== */
/* ============================================ */
.values-list{list-style:none;padding:0;margin:0;max-width:560px;width:100%;}
.values-list li{display:grid;grid-template-columns:64px 1fr;gap:18px;align-items:baseline;padding:24px 0;border-top:0.5px solid var(--line);}
.values-list li:last-child{border-bottom:0.5px solid var(--line);}
.values-list .vl-num{font-family:var(--mono);font-size:10px;letter-spacing:0.4em;color:var(--ink-mute);}
.values-list .vl-name{font-size:15px;letter-spacing:0.16em;color:var(--ink);font-weight:300;grid-column:2;grid-row:1;}
.values-list .vl-text{font-family:var(--serif-ja);font-size:12px;letter-spacing:0.06em;line-height:2;color:var(--ink-soft);font-weight:300;grid-column:2;grid-row:2;margin-top:10px;}

@media(max-width:768px){
  .values-list{padding:0 4px;}
  .values-list li{grid-template-columns:44px 1fr;gap:14px;padding:20px 0;}
  .values-list .vl-num{font-size:9px;letter-spacing:0.3em;}
  .values-list .vl-name{font-size:13px;letter-spacing:0.1em;}
  .values-list .vl-text{font-size:10.5px;letter-spacing:0.04em;line-height:1.9;margin-top:6px;}
}


/* ============================================ */
/* ===== Grayscale photo filter (for actual photos) ===== */
/* ============================================ */
.ph img,.photo-fullscreen img,.svc-single-photo img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(0.78) sepia(0.04) contrast(0.96) brightness(1.04);
  transition:filter 0.6s var(--ease);
}
.ph img:hover{filter:saturate(0.92) sepia(0.02) contrast(1.0) brightness(1.05);}


/* ============================================ */
/* ===== Paragraph styling for descriptions ===== */
/* ============================================ */
.mvv-solo-desc p{margin:0 0 1.4em 0;}
.mvv-solo-desc p:last-child{margin-bottom:0;}

/* Japanese-aware text wrapping for titles */
.mvv-solo-title,
.svc-single-title,
.svc-detail-title,
.big-stmt .vert,
.catch .vert,
.band .vert,
.contact-vert .vert{
  word-break:normal;
  line-break:strict;
  overflow-wrap:break-word;
}

/* Force long compound words to stay together */
.nb{
  display:inline-block;
}

/* (nb defined above) */

/* Verify <p> margin in mvv-solo-desc (force, in case overridden) */
.mvv-solo-desc p{
  margin:0 0 1.4em 0 !important;
  display:block;
}
.mvv-solo-desc p:last-child{margin-bottom:0 !important;}

/* Avoid auto-phrase wrapping at "の" "を" particles in titles */
.mvv-solo-title{
  /* normal allows breaks at punctuation (、。) */
  word-break:normal;
  line-break:strict;
  overflow-wrap:break-word;
}


/* ============================================ */
/* ===== Loader: Logo Drawing Animation ====== */
/* ============================================ */

/* SVG-style "drawn" effect via mask sliding from top to bottom */
.loader-logo{
  position:relative;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 0%,transparent 0%);
  mask-image:linear-gradient(180deg,#000 0%,#000 0%,transparent 0%);
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  transition:-webkit-mask-image 1.8s cubic-bezier(0.65,0,0.35,1),mask-image 1.8s cubic-bezier(0.65,0,0.35,1),opacity 0.8s var(--ease) 0.2s;
}
.loader-logo.is-drawing{
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 100%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 100%,transparent 100%);
}

/* ============================================ */
/* ===== Catch: Typography reveal (per character) ===== */
/* ============================================ */
.catch .vert{
  display:inline-block;
}
.catch .vert.char-reveal-ready .char{
  display:inline-block;
  opacity:0;
  transform:translateY(0.4em);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.catch .vert.char-reveal-ready.is-in .char{
  opacity:1;
  transform:translateY(0);
}

/* Same for big-stmt main vert (so chap titles get the effect too) */
.big-stmt .vert.char-reveal-ready .char{
  display:inline-block;
  opacity:0;
  transform:translateY(0.4em);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.big-stmt .vert.char-reveal-ready.is-in .char{
  opacity:1;
  transform:translateY(0);
}

/* Same for band */
.band .vert.char-reveal-ready .char{
  display:inline-block;
  opacity:0;
  transform:translateY(0.4em);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.band .vert.char-reveal-ready.is-in .char{
  opacity:1;
  transform:translateY(0);
}

/* Same for contact-vert */
.contact-vert .vert.char-reveal-ready .char{
  display:inline-block;
  opacity:0;
  transform:translateY(0.4em);
  transition:opacity 1s var(--ease),transform 1s var(--ease);
}
.contact-vert .vert.char-reveal-ready.is-in .char{
  opacity:1;
  transform:translateY(0);
}

/* ============================================ */
/* ============================================ */
.hero-dark{
  background:#111111;
  color:#fafaf8;
  position:relative;
  overflow:hidden;
  min-height:100svh;
}
.hero-dark .hero-logo{filter:none;}
.hero-dark .hero-tag{color:rgba(250,250,248,0.5);}
.hero-dark .hero-scroll{color:rgba(250,250,248,0.5);}
.hero-dark .hero-scroll::after{background:rgba(250,250,248,0.4);}

/* Subtle grid background */
.hero-bg-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);
  background-size:80px 80px;
  pointer-events:none;
  opacity:0.5;
}

/* Hero meta info in 4 corners */
.hero-meta-tl,.hero-meta-tr,.hero-meta-bl{
  position:absolute;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.4em;
  color:rgba(250,250,248,0.45);
  z-index:2;
}
.hero-meta-tl{top:96px;left:60px;}
.hero-meta-tr{top:96px;right:60px;}
.hero-meta-bl{bottom:96px;left:60px;font-family:var(--serif-ja);letter-spacing:0.16em;font-size:12px;color:rgba(250,250,248,0.55);}

@media(max-width:768px){
  .hero-meta-tl,.hero-meta-tr,.hero-meta-bl{font-size:8px;letter-spacing:0.32em;}
  .hero-meta-tl{top:74px;left:22px;}
  .hero-meta-tr{top:74px;right:22px;}
  .hero-meta-bl{bottom:120px;left:22px;font-size:10px;letter-spacing:0.12em;right:22px;}
  .hero-bg-grid{background-size:50px 50px;}
}

/* ============================================ */
/* ===== GIANT LABEL TYPOGRAPHY =============== */
/* ============================================ */
.giant-label{
  position:relative;
  min-height:60svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:140px 40px;
  background:var(--bg);
  overflow:hidden;
}
.giant-label-bg{
  display:none;
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--serif-en);
  font-style:italic;
  font-size:clamp(120px,28vw,360px);
  font-weight:300;
  color:rgba(20,20,20,0.06);
  letter-spacing:-0.03em;
  white-space:nowrap;
  line-height:0.9;
  pointer-events:none;
  z-index:1;
}
.giant-label-fg{
  position:relative;z-index:2;
  text-align:center;
}
.gl-num{
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.4em;
  color:var(--ink-mute);
  margin-bottom:32px;
}
.gl-text{
  font-size:22px;
  letter-spacing:0.14em;
  font-weight:300;
  color:var(--ink);
  line-height:1.8;
}

/* Dark variant */
.giant-label-dark{
  background:#111111;
  color:#fafaf8;
}
.giant-label-dark .giant-label-bg{color:rgba(250,250,248,0.05);}
.giant-label-dark .gl-num{color:rgba(250,250,248,0.4);}
.giant-label-dark .gl-text{color:#fafaf8;}

@media(max-width:768px){
  .giant-label{padding:80px 22px;min-height:50svh;}
  .giant-label-bg{font-size:clamp(80px,30vw,140px);}
  .gl-num{font-size:9px;letter-spacing:0.4em;margin-bottom:20px;}
  .gl-text{font-size:20px;letter-spacing:0.14em;line-height:1.7;}
}

/* ============================================ */
.band-split{
  position:relative;
  min-height:90svh;
  display:flex;
  align-items:center;
  padding:0;
  overflow:hidden;
  color:#fafaf8;
}
.band-split::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg,#111111 0%,#111111 60%,var(--bg) 60%,var(--bg) 100%);
  z-index:0;
}
.band-split > *{position:relative;z-index:2;}
.band-split .vert{
  font-size:36px;
  letter-spacing:0.3em;
  line-height:2.4;
  font-weight:300;
  color:#fafaf8;
  margin-left:8%;
  max-height:70vh;
}
.band-split-meta{
  position:absolute;
  bottom:60px;
  right:60px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.4em;
  color:var(--ink);
  z-index:2;
}

@media(max-width:768px){
  .band-split{min-height:70svh;}
  .band-split::before{
    background:linear-gradient(180deg,#111111 0%,#111111 70%,var(--bg) 70%,var(--bg) 100%);
  }
  .band-split .vert{
    font-size:28px;
    letter-spacing:0.2em;
    line-height:2;
    margin-left:4%;
    max-height:58vh;
  }
}

/* ============================================ */
/* ===== Mouse-aware hover effects ============ */
/* ============================================ */
.svc-single-photo{transition:transform 0.6s var(--ease);}
.svc-single:hover .svc-single-photo{transform:scale(1.012);}

/* Photo zoom on enter */
.photo-fullscreen .ph,.svc-single-photo .ph{transition:transform 1.2s var(--ease);}
.photo-fullscreen:hover .ph,.svc-single:hover .ph{transform:scale(1.02);}

/* ============================================ */
/* ============================================ */

.hero-dark{
  position:relative;
  overflow:hidden;
}

/* 4-corner meta info: label/value structure */
.hero-meta-tl,.hero-meta-tr,.hero-meta-bl,.hero-meta-br{
  position:absolute;
  display:flex;
  flex-direction:column;
  gap:6px;
  z-index:3;
  font-family:var(--mono);
  color:rgba(250,250,248,0.55);
}
.hero-meta-tl{top:120px;left:60px;}
.hero-meta-tr{top:120px;right:60px;text-align:right;align-items:flex-end;}
.hero-meta-bl{bottom:120px;left:60px;}
.hero-meta-br{bottom:120px;right:60px;text-align:right;align-items:flex-end;}

.hero-meta-tl .meta-label,
.hero-meta-tr .meta-label,
.hero-meta-bl .meta-label,
.hero-meta-br .meta-label{
  font-size:8px;
  letter-spacing:0.32em;
  color:rgba(250,250,248,0.4);
  font-weight:400;
}
.hero-meta-tl .meta-value,
.hero-meta-tr .meta-value,
.hero-meta-br .meta-value{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:14px;
  letter-spacing:0.04em;
  color:#fafaf8;
  font-weight:300;
}
.hero-meta-bl .meta-jp{
  font-family:var(--serif-ja);
  font-size:11px;
  letter-spacing:0.14em;
  color:rgba(250,250,248,0.7);
  font-weight:300;
}

/* Centered logo + divider + tag */
.hero-content{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:32px;
}
.hero-content .hero-logo{width:160px;}
.hero-divider{
  width:1px;
  height:60px;
  background:linear-gradient(180deg,transparent 0%,rgba(250,250,248,0.5) 50%,transparent 100%);
}
.hero-content .hero-tag{
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.5em;
  color:rgba(250,250,248,0.7);
}

/* Giant 'mum.' background text */
.hero-giant{
  position:absolute;
  bottom:-8vh;
  left:50%;
  transform:translateX(-50%);
  font-family:var(--serif-en);
  font-style:italic;
  font-size:clamp(180px,32vw,520px);
  font-weight:300;
  color:rgba(250,250,248,0.04);
  letter-spacing:-0.04em;
  white-space:nowrap;
  line-height:0.8;
  pointer-events:none;
  z-index:1;
}
.hero-giant-dot{color:rgba(250,250,248,0.08);}

/* Refined scroll indicator */
.hero-dark .hero-scroll{
  bottom:48px;
  font-size:9px;
  letter-spacing:0.4em;
}

@media(max-width:768px){
  .hero-meta-tl{top:74px;left:22px;}
  .hero-meta-tr{top:74px;right:22px;}
  .hero-meta-bl{bottom:90px;left:22px;}
  .hero-meta-br{bottom:90px;right:22px;}
  .hero-meta-tl .meta-label,
  .hero-meta-tr .meta-label,
  .hero-meta-bl .meta-label,
  .hero-meta-br .meta-label{font-size:8px;letter-spacing:0.32em;}
  .hero-meta-tl .meta-value,
  .hero-meta-tr .meta-value,
  .hero-meta-br .meta-value{font-size:16px;}
  .hero-meta-bl .meta-jp{font-size:11px;letter-spacing:0.1em;}
  
  .hero-content .hero-logo{width:140px;}
  .hero-divider{height:40px;}
  .hero-content .hero-tag{font-size:9px;letter-spacing:0.4em;}
  
  .hero-giant{
    bottom:-4vh;
    font-size:clamp(120px,38vw,200px);
  }
  
  .hero-bg-grid{background-size:50px 50px;}
}


/* ============================================ */
/* ===== INTENTIONAL SILENCE SECTION ========== */
/* ============================================ */

.silence-sec{
  min-height:60svh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--bg);
  padding:120px 60px;
}
.silence-mark{
  display:flex;
  align-items:center;
  gap:32px;
}
.silence-line{
  display:block;
  width:80px;
  height:0.5px;
  background:var(--ink-faint);
}
.silence-num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.5em;
  color:var(--ink-mute);
}

@media(max-width:768px){
  .silence-sec{min-height:40svh;padding:80px 22px;}
  .silence-line{width:48px;}
  .silence-num{font-size:9px;letter-spacing:0.4em;}
}

/* ============================================ */
/* ===== GIANT NUMBER MARKER (Service intros) == */
/* ============================================ */

.num-marker{
  position:relative;
  min-height:80svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:120px 60px;
  background:var(--bg);
  overflow:hidden;
}
.num-marker-alt{background:var(--bg-alt);}

.num-marker-bg{
  display:none;
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-48%);
  font-family:var(--serif-en);
  font-style:italic;
  font-size:clamp(280px,52vw,640px);
  font-weight:300;
  color:rgba(20,20,20,0.04);
  letter-spacing:-0.04em;
  line-height:0.85;
  pointer-events:none;
  z-index:1;
  user-select:none;
}

.num-marker-fg{
  position:relative;
  z-index:2;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:32px;
}
.num-marker-fg .nm-label{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.5em;
  color:var(--ink-mute);
}
.num-marker-fg .nm-name{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:88px;
  font-weight:300;
  color:var(--ink);
  letter-spacing:0;
  line-height:1;
}
.num-marker-fg .nm-jp{
  font-size:18px;
  letter-spacing:0.4em;
  color:var(--ink);
  font-weight:300;
}

@media(max-width:768px){
  .num-marker{min-height:55svh;padding:80px 22px;}
  .num-marker-bg{font-size:clamp(180px,52vw,260px);}
  .num-marker-fg{gap:20px;}
  .num-marker-fg .nm-label{font-size:9px;letter-spacing:0.4em;}
  .num-marker-fg .nm-name{font-size:48px;}
  .num-marker-fg .nm-jp{font-size:14px;letter-spacing:0.3em;}
}

/* ============================================ */
/* ===== ENHANCED MICRO-INTERACTIONS ========== */
/* ============================================ */

/* Magnify on hover for service single */
.svc-single{transition:background 0.6s var(--ease);}
.svc-single:hover{background:var(--bg-alt);}
.svc-single.reverse:hover{background:var(--bg);}

/* Subtle text mask reveal on photo hover */
.svc-single-photo{position:relative;overflow:hidden;}
.svc-single-photo::after{
  content:"VIEW";
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.6em;
  color:rgba(255,255,255,0.9);
  background:rgba(20,20,20,0.7);
  padding:14px 32px;
  border:0.5px solid rgba(255,255,255,0.5);
  opacity:0;
  transition:opacity 0.5s var(--ease);
  pointer-events:none;
  z-index:3;
}
.svc-single:hover .svc-single-photo::after{opacity:1;}
@media(hover:none){
  .svc-single-photo::after{display:none;}
}


/* ============================================ */
/* ===== Services / Philosophy Intro ========== */
/* ============================================ */

.services-intro{
  min-height:60svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:160px 60px;
  background:var(--bg);
  text-align:center;
  border-top:0.5px solid var(--line);
  border-bottom:0.5px solid var(--line);
}
.services-intro-num{
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.4em;
  color:var(--ink-mute);
  margin-bottom:40px;
}
.services-intro-en{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:42px;
  font-weight:300;
  color:var(--ink);
  letter-spacing:0;
  line-height:1;
  margin-bottom:32px;
}
.services-intro-jp{
  font-size:12px;
  letter-spacing:0.28em;
  color:var(--ink-soft);
  font-weight:300;
}

@media(max-width:768px){
  .services-intro{padding:100px 28px;min-height:50svh;}
  .services-intro-num{font-size:9px;letter-spacing:0.4em;margin-bottom:28px;}
  .services-intro-en{font-size:42px;margin-bottom:24px;}
  .services-intro-jp{font-size:12px;letter-spacing:0.3em;}
}

/* Tighten and standardize giant-label-dark */
.giant-label-dark{
  min-height:50svh;
  padding:120px 40px;
}
.giant-label-dark .giant-label-fg{padding:32px 0;}

/* ============================================ */

.crosshair-h,.crosshair-v{
  position:fixed;
  pointer-events:none;
  z-index:9997;
  background:rgba(20,20,20,0.08);
  transition:opacity 0.4s ease;
  mix-blend-mode:multiply;
}
.crosshair-h{
  left:0;right:0;
  height:0.5px;
}
.crosshair-v{
  top:0;bottom:0;
  width:0.5px;
}

.crosshair-coord{
  position:fixed;
  pointer-events:none;
  z-index:9997;
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.2em;
  color:rgba(20,20,20,0.5);
  background:rgba(255,255,255,0.7);
  padding:3px 8px;
  border:0.5px solid rgba(20,20,20,0.15);
  pointer-events:none;
  opacity:0;
  transition:opacity 0.3s ease;
}

/* Show crosshair only when mouse moves on PC */
body.crosshair-active .crosshair-h,
body.crosshair-active .crosshair-v{display:block;}
body:not(.crosshair-active) .crosshair-h,
body:not(.crosshair-active) .crosshair-v{display:none;}

@media(hover:none){
  .crosshair-h,.crosshair-v,.crosshair-coord{display:none !important;}
}

/* On dark sections, invert crosshair */
.hero-dark .crosshair-h,
.hero-dark .crosshair-v{background:rgba(250,250,248,0.1);}

/* ============================================ */
/* ===== Word-level break control ============= */
/* ============================================ */

/* Each .word stays together, but allows break between them at <wbr> points */
.word{
  display:inline-block;
  white-space:nowrap;
}

/* Make sure wbr is visible to layout */
wbr{
  display:inline;
  font-size:0;
  line-height:0;
  white-space:normal;
  word-break:break-all;
}

/* For vertical text: same logic, but vertical writing flow */
.vert .word{
  display:inline-block;
  white-space:nowrap;
}

/* Override the conflict from before: don't force keep-all, let wbr work */
.mvv-solo-title,
.svc-single-title,
.svc-detail-title,
.big-stmt .vert,
.catch .vert,
.band .vert,
.band-split .vert,
.contact-vert .vert{
  word-break:normal !important;
  line-break:strict;
  overflow-wrap:normal;
}

/* sp-only: only show on mobile */
.sp-only{display:none;}
@media(max-width:768px){
  .sp-only{display:inline;}
}

/* pc-only: only show on PC */
.pc-only{display:inline;}
@media(max-width:768px){
  .pc-only{display:none;}
}

/* For svc-single-desc, allow words to flow naturally */
.svc-single-desc .word{
  display:inline-block;
  white-space:nowrap;
}



/* ============================================ */
/* Fixed vertical lines that "draw" themselves as user scrolls */

.arch-lines{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  display:flex;
  justify-content:space-between;
  padding:0 8%;
}
.arch-line{
  width:0.5px;
  background:rgba(20,20,20,0.06);
  transform-origin:top;
  transform:scaleY(0);
  transition:transform 1.4s cubic-bezier(0.7,0,0.2,1);
}
.arch-line.is-active{
  transform:scaleY(1);
}

/* On dark sections, invert lines */
.hero-dark ~ .arch-lines .arch-line,
[data-invert] ~ .arch-lines .arch-line{
  background:rgba(250,250,248,0.08);
}

@media(max-width:768px){
  .arch-lines{padding:0 5%;}
}


/* When image is loaded, hide placeholder dashed border */
.ph.has-image::before{display:none;}
.ph.has-image .ph-text{display:none;}

/* ============================================ */
/* ===== SERVICES NAV (light, on TOP) ========= */
/* ============================================ */

.services-nav{
  min-height:80svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:160px 60px;
  background:var(--bg);
  border-top:0.5px solid var(--line);
  border-bottom:0.5px solid var(--line);
}

.services-nav-inner{
  max-width:680px;
  width:100%;
  text-align:center;
}

.services-nav-num{
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.4em;
  color:var(--ink-mute);
  margin-bottom:32px;
}

.services-nav-en{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:38px;
  font-weight:300;
  color:var(--ink);
  letter-spacing:0;
  line-height:1;
  margin-bottom:64px;
}

.services-nav-list{
  list-style:none;
  padding:0;
  margin:0 auto 64px;
  max-width:480px;
}

.services-nav-list li{
  display:grid;
  grid-template-columns:60px 1fr auto;
  gap:24px;
  align-items:baseline;
  padding:24px 0;
  border-top:0.5px solid var(--line);
}
.services-nav-list li:last-child{
  border-bottom:0.5px solid var(--line);
}

.services-nav-list .sn-num{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.4em;
  color:var(--ink-mute);
  text-align:left;
}

.services-nav-list .sn-en{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:24px;
  color:var(--ink);
  letter-spacing:0.02em;
  text-align:left;
}

.services-nav-list .sn-jp{
  font-size:14px;
  letter-spacing:0.24em;
  color:var(--ink-soft);
  font-weight:300;
  text-align:right;
}

.services-nav-link{
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:20px 56px;
  border:0.5px solid var(--ink);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.4em;
  color:var(--ink);
  position:relative;
  overflow:hidden;
}
.services-nav-link::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateY(101%);
  transition:transform 0.5s var(--ease);
}
.services-nav-link:hover::before{transform:translateY(0);}
.services-nav-link span{
  position:relative;
  z-index:1;
  transition:color 0.4s var(--ease);
}
.services-nav-link:hover span{color:var(--offwhite);}

@media(max-width:768px){
  .services-nav{padding:100px 28px;min-height:auto;}
  .services-nav-num{font-size:9px;letter-spacing:0.4em;margin-bottom:24px;}
  .services-nav-en{font-size:42px;margin-bottom:48px;}
  .services-nav-list{margin-bottom:48px;}
  .services-nav-list li{grid-template-columns:40px 1fr auto;gap:14px;padding:18px 0;}
  .services-nav-list .sn-num{font-size:9px;letter-spacing:0.3em;}
  .services-nav-list .sn-en{font-size:18px;}
  .services-nav-list .sn-jp{font-size:12px;letter-spacing:0.18em;}
  .services-nav-link{padding:16px 36px;font-size:10px;letter-spacing:0.32em;}
}



/* ============================================ */
/* ===== MOBILE: tighten vertical spacing ===== */
/* ============================================ */
@media(max-width:768px){
  /* All sections: stop forcing full viewport height */
  .sec{min-height:auto;padding:80px 22px;}

  /* big-stmt (vertical statement) - keep some height for vertical reading */
  .big-stmt{min-height:auto;padding:80px 22px;}

  /* mvv-solo - main MISSION/VISION/VALUES - keep readable */
  .mvv-solo{min-height:auto;padding:80px 22px;}

  /* photo-fullscreen: 60vh on mobile is plenty */
  .photo-fullscreen{min-height:auto;}
  .photo-fullscreen .ph{height:55svh;}

  /* svc-single (TOP service blocks - now removed but keep for service.html) */
  .svc-single{min-height:auto;padding:48px 0;}

  /* hero-dark - keep this taller for impact */
  .hero-dark{min-height:88svh;padding:60px 22px;}

  /* giant-label - tighter */
  .giant-label{min-height:auto;padding:80px 22px;}

  /* band-split - tighter */
  .band-split{min-height:60svh;}

  /* services-intro / services-nav - tighter */
  .services-intro{min-height:auto;padding:80px 28px;}
  .services-nav{min-height:auto;padding:80px 28px;}

  /* num-marker (still in service.html) */
  .num-marker{min-height:auto;padding:80px 22px;}

  /* Hero photo - allow it to be more impactful */
  .hero-photo .ph{height:50svh;}

  /* svc-detail - keep readable */
  .svc-detail{padding:80px 22px;}

  /* contact-direct - tighter */
  .contact-direct{padding:60px 22px;gap:24px;}
  
  /* contact-form-sec - tighter */
  .contact-form-sec{padding:60px 22px;}

  /* Reduce excessive padding */
  .catch{padding:80px 28px;}
  .contact-vert{padding:80px 28px;}
  .body-sec{padding:60px 28px;}

  /* Members deep section */
  .members-deep{padding:60px 22px;}

  /* Page divider */
  .page-divider{padding:48px 22px;}

  /* Silence section (if anywhere) */
  .silence-sec{min-height:auto;padding:48px 22px;}
}

/* ============================================ */
/* ===== HERO SOFT (warm & welcoming) ========= */
/* ============================================ */
.hero-soft{
  min-height:100svh;
  background:var(--bg);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:120px 60px;
  position:relative;
}

.hero-soft .hero-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:48px;
  text-align:center;
}

.hero-soft .hero-logo{
  width:200px;
  filter:none;
}

.hero-soft .hero-tag{
  font-family:var(--serif-ja);
  font-size:14px;
  letter-spacing:0.24em;
  color:var(--ink-soft);
  font-weight:300;
  line-height:2;
}

.hero-soft .hero-scroll{
  position:absolute;
  bottom:48px;
  left:50%;
  transform:translateX(-50%);
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.4em;
  color:var(--ink-mute);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
}
.hero-soft .hero-scroll::after{
  content:"";
  display:block;
  width:0.5px;
  height:32px;
  background:var(--ink-faint);
  animation:scrollLineSoft 2.4s ease-in-out infinite;
}
@keyframes scrollLineSoft{
  0%,100%{transform:scaleY(0.4);transform-origin:top;}
  50%{transform:scaleY(1);transform-origin:top;}
}

@media(max-width:768px){
  .hero-soft{padding:80px 28px;}
  .hero-soft .hero-content{gap:36px;}
  .hero-soft .hero-logo{width:160px;}
  .hero-soft .hero-tag{font-size:12px;letter-spacing:0.18em;}
  .hero-soft .hero-scroll{bottom:32px;font-size:8px;}
}


/* ============================================ */
/* ===== BAND SOFT (warm dark band) =========== */
/* ============================================ */
.band-split{
  position:relative;
  min-height:60svh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:80px 60px;
  background:#111111;
  color:#f7f7f4;
}
.band-split .vert{
  font-size:36px;
  letter-spacing:0.3em;
  line-height:2.4;
  font-weight:300;
  color:#f7f7f4;
  max-height:70vh;
}

@media(max-width:768px){
  .band-split{min-height:auto;padding:80px 28px;}
  .band-split .vert{font-size:24px;letter-spacing:0.18em;line-height:2;max-height:none;}
}



/* When image present, fully show image without placeholder gradient */
.ph.has-image{background:transparent;}

/* Show the site immediately. The brand should hit before the visitor waits. */
.loader.is-done{display:none !important;}

/* ============================================ */
/* ===== WARM IMAGE-FREE DIRECTION ============ */
/* ============================================ */

.warm-hero{
  min-height:92svh;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 28% 8%,rgba(255,255,255,0.16),transparent 24%),
    linear-gradient(135deg,#111111 0%,#222222 50%,#050505 100%);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}

.warm-hero::after{
  content:"";
  position:absolute;
  left:-8%;
  right:-8%;
  bottom:-24%;
  height:38%;
  background:#f6f2e8;
  border-radius:50% 50% 0 0 / 100% 100% 0 0;
  z-index:2;
}

.warm-orb{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,0.055);
  box-shadow:inset 0 0 80px rgba(255,255,255,0.025);
}

.warm-orb-a{width:42vw;height:42vw;left:-16vw;bottom:10vh;}
.warm-orb-b{width:38vw;height:38vw;right:5vw;top:17vh;}
.warm-orb-c{width:17vw;height:17vw;right:25vw;bottom:8vh;background:rgba(255,255,255,0.04);}

.warm-hero-center{
  position:relative;
  z-index:3;
  text-align:center;
  transform:translateY(-3vh);
}

.warm-hero-logo{
  width:clamp(210px,23vw,330px);
  height:auto;
  margin:0 auto 24px;
}

.warm-hero-place{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.22em;
  color:rgba(255,255,255,0.62);
}

.warm-side-nav{
  position:absolute;
  z-index:4;
  right:38px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  gap:42px;
  writing-mode:vertical-rl;
  font-size:14px;
  letter-spacing:0.22em;
  color:rgba(255,255,255,0.86);
}

.warm-side-nav a{
  transition:opacity 0.35s var(--ease),transform 0.35s var(--ease);
}

.warm-side-nav a:hover{
  opacity:0.62;
  transform:translateY(-4px);
}

.warm-hero-scroll{
  position:absolute;
  z-index:4;
  left:36px;
  bottom:18vh;
  writing-mode:vertical-rl;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:rgba(255,255,255,0.48);
}

.warm-hero .reveal,
.warm-intro .reveal{
  opacity:1;
  transform:none;
}

.warm-intro{
  position:relative;
  min-height:82svh;
  padding:118px 48px 100px;
  background:#f6f2e8;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.warm-intro::before,
.warm-intro::after,
.warm-intro-mark{
  content:"";
  position:absolute;
  border-radius:50%;
  background:#e9dfcc;
  opacity:0.62;
}

.warm-intro::before{width:220px;height:220px;left:13vw;top:30vh;}
.warm-intro::after{width:96px;height:96px;right:24vw;top:25vh;}
.warm-intro-mark{width:150px;height:150px;right:18vw;bottom:8vh;background:#d7e5dc;opacity:0.55;}

.warm-intro-copy{
  position:relative;
  z-index:2;
  max-width:660px;
  text-align:center;
  color:#111111;
}

.warm-label{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  font-size:18px;
  color:#777777;
  margin-bottom:26px;
}

.warm-intro h1{
  writing-mode:vertical-rl;
  text-orientation:mixed;
  display:inline-block;
  text-align:left;
  font-weight:300;
  font-size:42px;
  line-height:1.9;
  letter-spacing:0.16em;
  margin:0 auto 48px;
  max-height:430px;
}

.warm-intro p{
  font-family:var(--mono);
  max-width:560px;
  margin:0 auto 34px;
  font-size:12px;
  line-height:2.4;
  letter-spacing:0.06em;
  color:#4f6470;
}

.warm-actions{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

.warm-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 28px;
  border:1px solid #111111;
  color:#111111;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  transition:background 0.35s var(--ease),color 0.35s var(--ease),transform 0.35s var(--ease);
}

.warm-btn:hover{
  transform:translateY(-3px);
  background:rgba(20,60,91,0.07);
}

.warm-btn-primary{
  background:#111111;
  color:#fff;
}

.warm-three{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:#fffaf0;
  border-top:1px solid #e5dcc9;
  border-bottom:1px solid #e5dcc9;
}

.warm-three-item{
  min-height:220px;
  padding:44px 46px;
  border-right:1px solid #e5dcc9;
}

.warm-three-item:last-child{border-right:none;}

.warm-three-item span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:#777777;
  margin-bottom:28px;
}

.warm-three-item strong{
  display:block;
  font-size:22px;
  font-weight:300;
  letter-spacing:0.12em;
  margin-bottom:18px;
  color:#111111;
}

.warm-three-item p{
  font-family:var(--mono);
  color:#5d6a70;
  font-size:12px;
  line-height:2.1;
  letter-spacing:0.05em;
}

.statement-luxe{
  background:
    radial-gradient(circle at 22% 24%,rgba(215,229,220,0.48),transparent 28%),
    linear-gradient(135deg,#f6f2e8 0%,#fffaf0 56%,#e8f1ec 100%) !important;
}

@media(max-width:900px){
  .warm-hero{min-height:80svh;}
  .warm-side-nav{right:18px;gap:24px;font-size:12px;}
  .warm-hero-scroll{left:18px;bottom:18vh;}
  .warm-intro{min-height:auto;padding:92px 24px 76px;}
  .warm-intro h1{font-size:30px;line-height:1.8;max-height:360px;}
  .warm-three{grid-template-columns:1fr;}
  .warm-three-item{min-height:auto;padding:34px 26px;border-right:none;border-bottom:1px solid #e5dcc9;}
}

/* ============================================ */
/* ===== MONOCHROME REQUEST OVERRIDE ========== */
/* ============================================ */
:root{
  --bg:#f7f7f4;
  --bg-alt:#ffffff;
  --ink:#111111;
  --ink-soft:#444444;
  --ink-mute:#888888;
  --ink-faint:#dddddd;
  --line:#dddddd;
  --black:#111111;
  --offwhite:#f7f7f4;
  --vine:#111111;
  --vine-soft:#f0f0ed;
  --grape:#333333;
  --leaf:#777777;
}

body{background:#f7f7f4;color:#111;}

.warm-hero{
  background:
    radial-gradient(circle at 28% 8%,rgba(255,255,255,0.12),transparent 24%),
    linear-gradient(135deg,#181818 0%,#0f0f0f 54%,#050505 100%);
}

.warm-hero::after{background:#f7f7f4;}
.warm-orb{background:rgba(255,255,255,0.06);}
.warm-hero-place,.warm-hero-scroll{color:rgba(255,255,255,0.62);}

.warm-intro,
.statement-luxe{
  background:#f7f7f4 !important;
}

.warm-intro::before,
.warm-intro::after,
.warm-intro-mark{
  background:#e6e6e1;
}

.warm-intro-copy,
.warm-intro h1,
.warm-three-item strong{
  color:#111;
}

.warm-label,
.warm-three-item span{
  color:#888;
}

.warm-intro p,
.warm-three-item p{
  color:#444;
}

.warm-btn{
  border-color:#111;
  color:#111;
}

.warm-btn-primary{
  background:#111;
  color:#fff;
}

.warm-three{
  background:#fff;
  border-color:#ddd;
}

.warm-three-item{
  border-color:#ddd;
}

.premium-services,
.band-split,
.sec-dark,
footer{
  background:#111 !important;
  color:#f7f7f4;
}

.premium-service-card{
  background:#111;
}

.premium-service-card:hover{
  background:#1d1d1d;
}

.premium-service-grid{
  background:rgba(255,255,255,0.22);
  border-color:rgba(255,255,255,0.22);
}

/* ============================================ */
/* ===== WHITE-DOMINANT MONO UPDATE =========== */
/* ============================================ */
.nav{
  mix-blend-mode:normal;
  color:#111;
}
.nav .logo-text,
.nav-links a,
.nav-sns,
.nav .menu-btn,
.nav .menu-btn .menu-text{
  color:#111;
}
.nav .menu-btn .menu-line{
  background:#111;
}

.warm-hero{
  min-height:82svh;
  background:
    radial-gradient(circle at 77% 26%,rgba(0,0,0,0.055),transparent 20%),
    radial-gradient(circle at 16% 74%,rgba(0,0,0,0.045),transparent 22%),
    linear-gradient(135deg,#ffffff 0%,#f7f7f4 58%,#eeeeea 100%);
  color:#111;
}

.warm-hero::after{
  background:#111;
  height:14%;
  bottom:-9%;
  opacity:1;
}

.warm-orb{
  background:rgba(0,0,0,0.045);
  box-shadow:none;
}

.warm-hero-logo{
  filter:none;
}

.warm-hero-place,
.warm-hero-scroll,
.warm-side-nav{
  color:#111;
}

.warm-intro{
  background:#fff !important;
}

.warm-intro::before,
.warm-intro::after,
.warm-intro-mark{
  background:#eeeeea;
  opacity:0.9;
}

.statement-luxe{
  background:#f7f7f4 !important;
}

.warm-three{
  background:#fff;
}

.people-preview{
  padding:140px 48px;
  background:#fff;
  border-top:1px solid #ddd;
}

.people-preview-head{
  max-width:760px;
  margin:0 auto 64px;
  text-align:center;
}

.people-preview-head span,
.photo-direction span,
.person-role{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  color:#888;
  font-size:18px;
  margin-bottom:18px;
}

.people-preview-head h2{
  font-weight:300;
  font-size:clamp(30px,4.2vw,56px);
  line-height:1.55;
  letter-spacing:0.08em;
  margin-bottom:22px;
}

.people-preview-head p,
.photo-direction p,
.person-copy p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2.25;
  letter-spacing:0.05em;
  color:#444;
}

.people-preview-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  max-width:1060px;
  margin:0 auto;
  background:transparent;
  border:none;
}

.person-card{
  background:#f7f7f4;
  display:grid;
  grid-template-columns:1fr;
  border:1px solid #ddd;
}

.person-photo{
  height:430px;
  background:#111;
  overflow:hidden;
}

.person-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(1.08);
}

.person-photo-real img,
.company-profile-photo img{
  filter:none !important;
  transition:transform 0.8s var(--ease);
}

.person-photo-representative img{
  object-position:74% center;
  transform:scale(1.28);
  transform-origin:74% center;
}

.person-photo-licensed img{
  object-position:24% center;
  transform:scale(1.28);
  transform-origin:24% center;
}

.person-photo-representative img,
.company-profile-photo-representative img{
  object-position:72% center;
}

.person-photo-licensed img,
.company-profile-photo-licensed img{
  object-position:24% center;
}

.company-profile-photo-representative img{
  object-position:80% center;
  transform:scale(1.34);
  transform-origin:80% center;
}

.company-profile-photo-licensed img{
  object-position:18% center;
  transform:scale(1.34);
  transform-origin:18% center;
}

.person-photo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#111;
  color:#fff;
  position:relative;
}

.person-photo-placeholder::before{
  content:"";
  position:absolute;
  inset:28px;
  border:1px solid rgba(255,255,255,0.24);
}

.person-photo-placeholder span{
  writing-mode:vertical-rl;
  letter-spacing:0.22em;
  font-size:14px;
  position:relative;
  z-index:1;
}

.person-copy{
  padding:38px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.person-role{
  font-size:15px;
}

.person-copy h3{
  font-weight:300;
  font-size:24px;
  line-height:1.7;
  letter-spacing:0.08em;
  margin-bottom:22px;
}

.photo-direction{
  max-width:760px;
  margin:54px auto 0;
  padding:34px 38px;
  border:1px solid #ddd;
  background:#fff;
  text-align:center;
}

.photo-reference-board{
  margin:20px auto 26px;
  background:#f7f7f7;
  border:1px solid #e2e2e2;
  overflow:hidden;
}

.photo-reference-board img{
  display:block;
  width:100%;
  height:auto;
  filter:grayscale(1) contrast(1.02) brightness(1.06);
}

@media(max-width:900px){
  .people-preview{padding:84px 22px;}
  .people-preview-grid{grid-template-columns:1fr;}
  .person-card{grid-template-columns:1fr;}
  .person-photo{height:320px;}
  .person-copy{padding:34px 26px;}
  .photo-direction{padding:28px 20px;}
}

/* Remove warm beige remnants: strict neutral monochrome. */
:root{
  --bg:#ffffff;
  --bg-alt:#f6f6f6;
  --offwhite:#ffffff;
  --line:#e2e2e2;
  --ink:#111111;
  --ink-soft:#444444;
  --ink-mute:#888888;
  --ink-faint:#d8d8d8;
}

body,
.warm-intro,
.warm-three,
.people-preview,
.statement-luxe,
.sec-light,
.services-intro{
  background:#ffffff !important;
}

.warm-hero{
  background:
    radial-gradient(circle at 77% 26%,rgba(0,0,0,0.045),transparent 20%),
    radial-gradient(circle at 16% 74%,rgba(0,0,0,0.038),transparent 22%),
    linear-gradient(135deg,#ffffff 0%,#f8f8f8 58%,#eeeeee 100%) !important;
}

.warm-hero::after,
.band-split,
.premium-services,
footer{
  background:#111111 !important;
}

.warm-orb,
.warm-intro::before,
.warm-intro::after,
.warm-intro-mark{
  background:#eeeeee !important;
}

.warm-three,
.warm-three-item,
.people-preview,
.person-card,
.photo-direction{
  border-color:#e2e2e2 !important;
}

.person-card{
  background:#f7f7f7 !important;
}

/* ============================================ */
/* ===== 2026 PREMIUM UPDATE ================== */
/* ============================================ */

.premium-hero{
  min-height:100svh;
  position:relative;
  display:grid;
  grid-template-rows:1fr auto;
  align-items:end;
  overflow:hidden;
  background:#15110d;
  color:#fff;
  padding:112px 48px 42px;
}

.premium-hero-media,
.premium-hero-shade{
  position:absolute;
  inset:0;
}

.premium-hero-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(0.82) contrast(1.08) brightness(0.78);
  transform:scale(1.04);
  animation:premiumZoom 18s var(--ease) forwards;
}

@keyframes premiumZoom{
  to{transform:scale(1.12);}
}

.premium-hero-shade{
  background:
    linear-gradient(90deg,rgba(12,9,6,0.86) 0%,rgba(12,9,6,0.58) 38%,rgba(12,9,6,0.28) 72%,rgba(12,9,6,0.76) 100%),
    linear-gradient(180deg,rgba(12,9,6,0.55) 0%,rgba(12,9,6,0.05) 42%,rgba(12,9,6,0.86) 100%);
  z-index:1;
}

.premium-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.08) 1px,transparent 1px);
  background-size:120px 120px;
  mask-image:linear-gradient(90deg,rgba(0,0,0,0.9),transparent 70%);
}

.premium-hero-kicker,
.premium-hero-main,
.premium-hero-proof,
.premium-hero .hero-scroll{
  position:relative;
  z-index:3;
}

.premium-hero .reveal{
  opacity:1;
  transform:none;
}

.premium-hero-kicker{
  position:absolute;
  top:100px;
  left:48px;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.34em;
  color:rgba(255,255,255,0.62);
}

.premium-hero-main{
  width:min(980px,100%);
  padding-bottom:48px;
}

.premium-hero-logo{
  width:clamp(160px,18vw,260px);
  height:auto;
  margin-bottom:34px;
}

.premium-hero-title{
  font-family:var(--serif-ja);
  font-weight:300;
  font-size:clamp(42px,6.2vw,86px);
  line-height:1.14;
  letter-spacing:0;
  margin:0 0 30px;
  text-wrap:balance;
}

.premium-hero-lead{
  max-width:620px;
  font-size:15px;
  line-height:2.15;
  letter-spacing:0.08em;
  color:rgba(255,255,255,0.8);
  margin-bottom:34px;
}

.premium-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.premium-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 28px;
  border:1px solid rgba(255,255,255,0.42);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.22em;
  transition:transform 0.45s var(--ease),background 0.45s var(--ease),border-color 0.45s var(--ease),color 0.45s var(--ease);
}

.premium-btn:hover{
  transform:translateY(-3px);
}

.premium-btn-primary{
  background:#f7f7f4;
  color:#111111;
  border-color:#f7f7f4;
}

.premium-btn-primary:hover{
  background:#fff;
  border-color:#fff;
}

.premium-btn-ghost:hover{
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.8);
}

.premium-hero-proof{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,0.22);
  border-bottom:1px solid rgba(255,255,255,0.16);
}

.premium-hero-proof div{
  min-height:92px;
  padding:22px 28px;
  border-right:1px solid rgba(255,255,255,0.16);
}

.premium-hero-proof div:last-child{border-right:none;}

.premium-hero-proof span,
.impact-num,
.premium-service-card span,
.premium-section-head span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:var(--ink-mute);
}

.premium-hero-proof span{color:rgba(255,255,255,0.46);margin-bottom:9px;}

.premium-hero-proof strong{
  display:block;
  font-size:14px;
  font-weight:300;
  letter-spacing:0.08em;
  line-height:1.7;
  color:rgba(255,255,255,0.9);
}

.premium-hero .hero-scroll{
  color:rgba(255,255,255,0.54);
}

.premium-hero .hero-scroll::after{
  background:rgba(255,255,255,0.42);
}

.impact-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  background:#fdfaf2;
  border-bottom:1px solid var(--line);
}

.impact-item{
  min-height:220px;
  padding:44px 46px;
  border-right:1px solid var(--line);
}

.impact-item:last-child{border-right:none;}

.impact-num{margin-bottom:28px;}

.impact-item strong{
  display:block;
  font-size:22px;
  font-weight:300;
  letter-spacing:0.12em;
  margin-bottom:18px;
}

.impact-item p{
  font-family:var(--mono);
  color:var(--ink-soft);
  font-size:12px;
  line-height:2.1;
  letter-spacing:0.05em;
}

.statement-luxe{
  background:
    radial-gradient(circle at 22% 24%,rgba(255,255,255,0.5),transparent 28%),
    linear-gradient(135deg,#f6efe0 0%,#fcf8ee 52%,#e8d7bd 100%);
}

.premium-services{
  padding:150px 48px;
  background:#17120e;
  color:#f7f7f4;
  text-align:center;
}

.premium-section-head{
  max-width:760px;
  margin:0 auto 62px;
}

.premium-section-head span{color:rgba(245,239,226,0.46);margin-bottom:22px;}

.premium-section-head h2{
  font-weight:300;
  font-size:clamp(28px,4.2vw,54px);
  line-height:1.45;
  letter-spacing:0.06em;
  margin-bottom:22px;
}

.premium-section-head p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2.2;
  letter-spacing:0.06em;
  color:rgba(245,239,226,0.68);
  max-width:600px;
  margin:0 auto;
}

.premium-service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  max-width:1120px;
  margin:0 auto 54px;
  background:rgba(245,239,226,0.24);
  border:1px solid rgba(245,239,226,0.24);
  text-align:left;
}

.premium-service-card{
  min-height:360px;
  padding:34px;
  background:#17120e;
  position:relative;
  overflow:hidden;
  transition:background 0.55s var(--ease),transform 0.55s var(--ease);
}

.premium-service-card::before{
  content:"";
  position:absolute;
  inset:auto 28px 28px auto;
  width:92px;
  height:92px;
  border:1px solid rgba(245,239,226,0.22);
  transform:rotate(45deg);
  transition:transform 0.7s var(--ease),border-color 0.7s var(--ease);
}

.premium-service-card:hover{
  background:#241b14;
  transform:translateY(-6px);
}

.premium-service-card:hover::before{
  transform:rotate(45deg) scale(1.35);
  border-color:rgba(245,239,226,0.46);
}

.premium-service-card span{
  color:rgba(245,239,226,0.44);
  margin-bottom:52px;
}

.premium-service-card em,
.service-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  min-height:28px;
  padding:0 12px;
  border:1px solid currentColor;
  font-family:var(--mono);
  font-style:normal;
  font-size:10px;
  line-height:1;
  letter-spacing:0.22em;
  text-transform:uppercase;
}

.premium-service-card em{
  color:rgba(245,239,226,0.72);
  margin-bottom:24px;
}

.premium-service-card.is-coming-soon{
  background:#1d1d1b;
}

.premium-service-card.is-coming-soon::before{
  border-radius:50%;
  transform:rotate(0deg);
}

.premium-service-card.is-coming-soon:hover::before{
  transform:scale(1.18);
}

.premium-service-card strong{
  display:block;
  font-size:30px;
  font-weight:300;
  letter-spacing:0.16em;
  margin-bottom:28px;
}

.premium-service-card p{
  max-width:280px;
  font-family:var(--mono);
  color:rgba(245,239,226,0.68);
  font-size:12px;
  line-height:2.1;
  letter-spacing:0.05em;
}

.premium-services .services-nav-link{
  border-color:rgba(245,239,226,0.72);
  color:#f7f7f4;
}

.premium-services .services-nav-link::before{background:#f7f7f4;}
.premium-services .services-nav-link:hover span{color:#17120e;}

@media(max-width:900px){
  .premium-hero{
    padding:96px 24px 34px;
  }
  .premium-hero-kicker{
    top:78px;
    left:24px;
    right:24px;
    font-size:9px;
    line-height:1.8;
  }
  .premium-hero-main{
    padding-bottom:34px;
  }
  .premium-hero-title{
    font-size:clamp(38px,12vw,64px);
  }
  .premium-hero-lead{
    font-size:13px;
    line-height:2;
  }
  .premium-hero-proof,
  .impact-strip,
  .premium-service-grid{
    grid-template-columns:1fr;
  }
  .premium-hero-proof div,
  .impact-item{
    border-right:none;
    border-bottom:1px solid rgba(255,255,255,0.16);
  }
  .impact-item{
    min-height:auto;
    padding:34px 26px;
    border-bottom-color:var(--line);
  }
  .premium-services{
    padding:92px 22px;
  }
  .premium-service-card{
    min-height:260px;
    padding:28px;
  }
  .premium-service-card span{
    margin-bottom:34px;
  }
}

/* Final neutral pass: remove brown/beige premium remnants. */
.premium-hero{
  background:#111111 !important;
  color:#ffffff !important;
}

.premium-hero::before{
  background:
    linear-gradient(90deg,rgba(0,0,0,0.82) 0%,rgba(0,0,0,0.48) 42%,rgba(0,0,0,0.18) 72%,rgba(0,0,0,0.72) 100%),
    linear-gradient(180deg,rgba(0,0,0,0.58) 0%,rgba(0,0,0,0.06) 42%,rgba(0,0,0,0.82) 100%) !important;
}

.premium-hero .services-nav-link.primary{
  background:#ffffff !important;
  color:#111111 !important;
  border-color:#ffffff !important;
}

.premium-hero .services-nav-link.ghost{
  background:rgba(255,255,255,0.1) !important;
  color:#ffffff !important;
  border-color:rgba(255,255,255,0.72) !important;
}

.impact-strip,
.statement-luxe{
  background:#ffffff !important;
  color:#111111 !important;
}

.impact-item{
  border-color:#e2e2e2 !important;
}

.premium-services{
  background:#111111 !important;
  color:#ffffff !important;
}

.premium-section-head span,
.premium-service-card span{
  color:rgba(255,255,255,0.48) !important;
}

.premium-section-head p,
.premium-service-card p{
  color:rgba(255,255,255,0.68) !important;
}

.premium-service-grid{
  background:rgba(255,255,255,0.18) !important;
  border-color:rgba(255,255,255,0.18) !important;
}

.premium-service-card{
  background:#111111 !important;
}

.premium-service-card:hover{
  background:#1f1f1f !important;
}

.premium-service-card::before{
  border-color:rgba(255,255,255,0.22) !important;
}

.premium-service-card:hover::before{
  border-color:rgba(255,255,255,0.46) !important;
}

.premium-services .services-nav-link{
  border-color:rgba(255,255,255,0.72) !important;
  color:#ffffff !important;
}

.premium-services .services-nav-link::before{
  background:#ffffff !important;
}

.premium-services .services-nav-link:hover span{
  color:#111111 !important;
}

/* Final polish before real portraits are added. */
.hero-statement{
  position:absolute;
  z-index:4;
  left:clamp(48px,7vw,108px);
  bottom:clamp(170px,17vh,230px);
  transform:none;
  display:block;
  writing-mode:horizontal-tb;
  max-width:min(460px,38vw);
  font-size:clamp(28px,3vw,48px);
  line-height:1.35;
  letter-spacing:0.08em;
  color:#111;
  pointer-events:none;
}

.hero-statement span{
  display:block;
  font-weight:300;
  white-space:nowrap;
}

.hero-consult-card{
  position:absolute;
  right:48px;
  bottom:54px;
  z-index:5;
  width:min(340px,calc(100% - 96px));
  padding:24px 26px 26px;
  background:rgba(255,255,255,0.9);
  border:1px solid rgba(20,20,20,0.12);
  color:#111;
  backdrop-filter:blur(18px);
}

.hero-consult-card span{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  font-size:17px;
  color:#777;
  margin-bottom:12px;
}

.hero-consult-card p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2;
  letter-spacing:0.05em;
  color:#333;
  margin-bottom:18px;
}

.hero-consult-card a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 20px;
  border:1px solid #111;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.22em;
  transition:background 0.3s var(--ease),color 0.3s var(--ease);
}

.hero-consult-card a:hover{
  background:#111;
  color:#fff;
}

.hero-trust-strip{
  position:absolute;
  left:clamp(48px,7vw,108px);
  bottom:56px;
  transform:none;
  z-index:4;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 24px;
  background:rgba(255,255,255,0.72);
  border:1px solid rgba(17,17,17,0.08);
  backdrop-filter:blur(18px);
  color:#111;
}

.hero-trust-strip span{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.18em;
  white-space:nowrap;
  color:#333;
}

.hero-trust-strip span + span{
  margin-left:18px;
  padding-left:18px;
  border-left:1px solid rgba(17,17,17,0.13);
}

.person-card{
  background:#ffffff !important;
}

.person-photo{
  background:#f7f7f7 !important;
}

.person-photo-placeholder{
  background:
    radial-gradient(circle at 78% 22%,rgba(0,0,0,0.055),transparent 24%),
    radial-gradient(circle at 22% 80%,rgba(0,0,0,0.045),transparent 24%),
    linear-gradient(135deg,#ffffff 0%,#f4f4f4 100%) !important;
  color:#111 !important;
}

.person-photo-placeholder::before{
  inset:30px !important;
  border-color:rgba(20,20,20,0.16) !important;
}

.person-photo-placeholder::after{
  content:"";
  position:absolute;
  width:42%;
  max-width:220px;
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(20,20,20,0.12);
  background:rgba(255,255,255,0.35);
}

.person-photo-placeholder span{
  z-index:1;
}

.person-photo-ceo{
  background:
    linear-gradient(115deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 48%,rgba(0,0,0,0.055) 48%,rgba(0,0,0,0.055) 49%,rgba(255,255,255,0) 49%),
    radial-gradient(circle at 72% 24%,rgba(0,0,0,0.06),transparent 24%),
    linear-gradient(135deg,#ffffff 0%,#f2f2f2 100%) !important;
}

.person-photo-specialist{
  background:
    linear-gradient(65deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 52%,rgba(0,0,0,0.05) 52%,rgba(0,0,0,0.05) 53%,rgba(255,255,255,0) 53%),
    radial-gradient(circle at 26% 76%,rgba(0,0,0,0.055),transparent 24%),
    linear-gradient(135deg,#f7f7f7 0%,#ffffff 100%) !important;
}

.person-photo-placeholder small{
  display:none;
}

.person-photo-placeholder span{
  font-size:0;
}

.person-photo-placeholder span::before{
  display:block;
  writing-mode:vertical-rl;
  font-family:var(--serif-en);
  font-style:italic;
  font-size:20px;
  line-height:1.4;
  letter-spacing:0.12em;
  color:#333;
}

.person-photo-ceo span::before{
  content:"Representative";
}

.person-photo-specialist span::before{
  content:"Licensed specialist";
}

.photo-reference-board{
  max-height:360px;
}

.photo-reference-board img{
  transform:translateY(-2%);
}

.shot-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  margin:28px 0;
  background:#e2e2e2;
  border:1px solid #e2e2e2;
  text-align:left;
}

.shot-list div{
  background:#fff;
  min-height:116px;
  padding:22px 20px;
}

.shot-list strong{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:#888;
  margin-bottom:18px;
}

.shot-list span{
  font-family:var(--serif-ja);
  font-style:normal;
  font-size:14px;
  line-height:1.8;
  letter-spacing:0.08em;
  color:#111;
  margin:0;
}

.couple-consult{
  max-width:1120px;
  margin:46px auto 0;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,0.88fr);
  border:1px solid #dedede;
  background:#fff;
  min-height:430px;
}

.couple-consult-photo{
  min-height:430px;
  background-image:
    linear-gradient(90deg,rgba(0,0,0,0.08),rgba(0,0,0,0.18)),
    url("assets/couple-vision-web.jpg"),
    linear-gradient(135deg,#f9f9f7 0%,#e7e4df 48%,#f5f5f2 100%);
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
}

.couple-consult-photo::before{
  content:"";
  position:absolute;
  inset:28px;
  border:1px solid rgba(255,255,255,0.5);
  mix-blend-mode:screen;
}

.couple-consult-copy{
  padding:54px 46px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
}

.couple-consult-copy span{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:#777;
  margin-bottom:24px;
}

.couple-consult-copy h3{
  font-weight:300;
  font-size:32px;
  line-height:1.55;
  letter-spacing:0.1em;
  margin-bottom:22px;
}

.couple-consult-copy p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2.2;
  letter-spacing:0.05em;
  color:#444;
  margin-bottom:30px;
}

.couple-consult-copy a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 22px;
  border:1px solid #111;
  color:#111;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-decoration:none;
  transition:background 0.3s var(--ease),color 0.3s var(--ease);
}

.couple-consult-copy a:hover{
  background:#111;
  color:#fff;
}

.mvv-vision-photo{
  position:relative;
}

.mvv-vision-photo::before{
  content:"";
  position:absolute;
  inset:-18px;
  border:1px solid rgba(17,17,17,0.06);
  pointer-events:none;
}

.mvv-vision-photo img{
  box-shadow:0 28px 70px rgba(17,17,17,0.08);
}

@media(max-width:900px){
  .couple-consult{
    grid-template-columns:1fr;
    min-height:0;
    margin-top:36px;
  }

  .couple-consult-photo{
    min-height:330px;
  }

  .couple-consult-copy{
    padding:36px 26px 38px;
  }

  .couple-consult-copy h3{
    font-size:25px;
    letter-spacing:0.08em;
  }

  .couple-consult-copy p{
    font-size:11px;
  }
}

.contact-lead{
  max-width:680px;
  margin:0 auto 44px;
  text-align:center;
}

.contact-lead span{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  font-size:18px;
  color:#888;
  margin-bottom:16px;
}

.contact-lead p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2.25;
  letter-spacing:0.05em;
  color:#444;
}

.cta-assurance{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
  margin:-14px auto 8px;
}

.cta-assurance span{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border:1px solid rgba(17,17,17,0.12);
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.16em;
  color:#555;
  background:rgba(255,255,255,0.48);
}

.photo-direction{
  display:none;
}

.big-stmt .reveal-vert{
  opacity:1;
  transform:none;
}

.big-stmt .vert{
  color:#111 !important;
  opacity:1 !important;
  transform:none !important;
}

.big-stmt .word,
.big-stmt .char{
  color:#111 !important;
  opacity:1 !important;
  transform:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}

.portrait-wait{
  min-height:100svh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:80px 24px;
  background:
    radial-gradient(circle at 74% 22%,rgba(0,0,0,0.055),transparent 22%),
    radial-gradient(circle at 18% 76%,rgba(0,0,0,0.045),transparent 26%),
    linear-gradient(135deg,#ffffff 0%,#f5f5f5 100%);
  color:#111;
  position:relative;
  overflow:hidden;
}

.portrait-wait::before{
  content:"";
  position:absolute;
  width:min(440px,54vw);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(20,20,20,0.13);
  background:rgba(255,255,255,0.28);
}

.portrait-wait span,
.portrait-wait strong,
.portrait-wait p{
  position:relative;
  z-index:1;
}

.portrait-wait span{
  font-family:var(--serif-en);
  font-style:italic;
  font-size:20px;
  color:#777;
  margin-bottom:22px;
}

.portrait-wait strong{
  font-weight:300;
  font-size:clamp(34px,5vw,72px);
  letter-spacing:0.16em;
  margin-bottom:24px;
}

.portrait-wait p{
  font-family:var(--mono);
  font-size:12px;
  line-height:2;
  letter-spacing:0.08em;
  color:#444;
}

.portrait-wait strong{
  font-size:0;
}

.portrait-wait-ceo strong::before{
  content:"Representative";
  font-family:var(--serif-en);
  font-style:italic;
  font-size:clamp(42px,6vw,82px);
  letter-spacing:0.04em;
}

.portrait-wait-specialist strong::before{
  content:"Licensed specialist";
  font-family:var(--serif-en);
  font-style:italic;
  font-size:clamp(36px,5vw,72px);
  letter-spacing:0.04em;
}

.portrait-wait p{
  display:none;
}

@media(max-width:900px){
  .hero-statement{
    left:22px;
    right:22px;
    bottom:260px;
    max-width:none;
    font-size:clamp(24px,8vw,38px);
  }

  .hero-consult-card{
    left:22px;
    right:22px;
    bottom:78px;
    width:auto;
    padding:20px;
  }

  .shot-list{
    grid-template-columns:1fr;
  }

  .portrait-wait{
    min-height:70svh;
  }
}

/* Typography finish: keep the quiet luxury, remove the old-fashioned edge. */
:root{
  --sans-ja:"Hiragino Sans","Yu Gothic","YuGothic","Meiryo",sans-serif;
}

.warm-label,
.people-preview-head span,
.photo-direction span,
.person-role,
.hero-consult-card span,
.contact-lead span,
.portrait-wait span,
.mvv-solo .mvv-solo-key-en,
.menu-link .menu-name-en,
.page-divider .pd-name{
  font-family:var(--mono) !important;
  font-style:normal !important;
  font-size:10px !important;
  letter-spacing:0.22em !important;
  text-transform:uppercase;
  color:#777 !important;
}

.hero-statement{
  font-family:var(--serif-ja);
  font-weight:300;
  letter-spacing:0.055em;
}

.warm-intro h1,
.big-stmt .vert,
.band-split .vert{
  letter-spacing:0.18em !important;
  line-height:2.05 !important;
}

.warm-btn,
.cta-btn span,
.hero-consult-card a,
.services-nav-link,
.svc-single-link,
.svc-intro-body .svc-intro-link,
.form-submit{
  font-family:var(--sans-ja) !important;
  font-weight:400 !important;
  letter-spacing:0.12em !important;
}

.hero-consult-card{
  border-color:#d6d6d6;
  box-shadow:0 22px 60px rgba(0,0,0,0.055);
}

.hero-consult-card p,
.contact-lead p,
.people-preview-head p,
.person-copy p,
.mvv-solo .mvv-solo-desc{
  font-family:var(--sans-ja) !important;
  font-weight:300;
  letter-spacing:0.05em;
}

.service-status{
  color:#777;
  margin:0 auto 34px;
}

.person-copy h3,
.people-preview-head h2,
.premium-section-head h2,
.mvv-solo .mvv-solo-title{
  letter-spacing:0.075em !important;
}

.person-photo-ceo span::before,
.person-photo-specialist span::before,
.portrait-wait-ceo strong::before,
.portrait-wait-specialist strong::before{
  font-family:var(--mono) !important;
  font-style:normal !important;
  text-transform:uppercase;
  letter-spacing:0.18em !important;
}

.nav .logo-text,
.warm-hero-place,
.warm-hero-scroll,
.warm-side-nav,
.sec-num,
.big-stmt .label{
  letter-spacing:0.22em !important;
}

@media(max-width:900px){
  .hero-statement{
    letter-spacing:0.045em;
  }

  .warm-intro h1,
  .big-stmt .vert,
  .band-split .vert{
    letter-spacing:0.14em !important;
    line-height:1.95 !important;
  }
}

/* Mobile finish: prevent hero type and utility nav from clipping. */
@media(max-width:600px){
  .nav{
    padding:18px 18px;
  }

  .nav .logo-text{
    font-size:11px;
    letter-spacing:0.16em !important;
  }

  .nav .menu-btn{
    gap:8px;
  }

  .nav .menu-btn .menu-text{
    display:none;
  }

  .warm-side-nav{
    display:none;
  }

  .warm-hero-center{
    width:100%;
    padding:0 28px;
  }

  .warm-hero-logo{
    width:min(210px,62vw) !important;
  }

  .warm-hero-place{
    display:none;
  }

  .warm-hero-scroll{
    display:none;
  }

  .hero-statement{
    left:24px;
    right:24px;
    bottom:392px;
    max-width:calc(100% - 48px);
    font-size:clamp(25px,7.4vw,31px);
    line-height:1.45;
    letter-spacing:0.035em;
  }

  .hero-statement span{
    display:block;
    white-space:nowrap;
  }

  .hero-consult-card{
    left:22px;
    right:22px;
    bottom:112px;
    padding:22px 20px;
  }

  .hero-consult-card span{
    font-size:9px !important;
    letter-spacing:0.2em !important;
  }

  .hero-consult-card p{
    font-size:12px;
    line-height:1.95;
  }

  .hero-consult-card a{
    min-height:42px;
    padding:0 18px;
    font-size:12px;
    letter-spacing:0.08em !important;
  }

  .big-stmt .label{
    display:none;
  }

  .portrait-wait{
    min-height:62svh;
    padding:72px 22px;
  }

  .portrait-wait span{
    font-size:9px !important;
    letter-spacing:0.2em !important;
    margin-bottom:18px;
  }

  .portrait-wait-ceo strong::before,
  .portrait-wait-specialist strong::before{
    content:"PORTRAIT";
    display:block;
    max-width:calc(100vw - 52px);
    font-size:28px;
    line-height:1.5;
    letter-spacing:0.14em !important;
    overflow-wrap:anywhere;
  }

}

/* Copy wrapping polish: keep designed phrase units intact. */
.hero-statement{
  max-width:min(760px,calc(100vw - 120px));
}

.hero-statement span{
  display:block;
  white-space:nowrap;
}

.warm-intro h1,
.big-stmt .vert,
.band .vert,
.band-split .vert,
.contact-vert .vert{
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}

.warm-intro h1 br{
  display:none;
}

@media(max-width:600px){
  .hero-statement{
    left:22px;
    right:22px;
    max-width:calc(100vw - 44px);
    font-size:clamp(23px,6.7vw,28px);
    line-height:1.55;
  }

  .warm-intro h1{
    font-size:28px !important;
    line-height:1.9 !important;
    max-height:none !important;
  }

  .big-stmt .vert,
  .band .vert,
  .band-split .vert,
  .contact-vert .vert{
    max-height:none !important;
  }
}

/* Delivery hardening: content must stay readable even if scroll animation scripts are delayed. */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.75s ease,transform 0.75s ease;
}

.reveal.is-in{
  opacity:1 !important;
  transform:none !important;
}

.char-reveal-ready .char,
.char-reveal-ready.is-in .char{
  opacity:1 !important;
  transform:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}

.sec-dark .vert,
.sec-dark .word,
.sec-dark .char,
.band .vert,
.band .word,
.band .char{
  color:#f7f7f4 !important;
}

.band .vert.char-reveal-ready,
.band .vert.char-reveal-ready.is-in,
.band .vert.char-reveal-ready .char,
.band .vert.char-reveal-ready.is-in .char,
.sec-dark .vert.char-reveal-ready,
.sec-dark .vert.char-reveal-ready.is-in,
.sec-dark .vert.char-reveal-ready .char,
.sec-dark .vert.char-reveal-ready.is-in .char{
  color:#ffffff !important;
  opacity:1 !important;
  transform:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}

.band .band-copy{
  color:#ffffff !important;
  opacity:1 !important;
  transform:none !important;
}

.photo-fullscreen img,
.svc-single-photo img,
.ph img{
  filter:grayscale(100%) contrast(1.03) brightness(1.04);
}

@media(max-width:600px){
  .photo-fullscreen{
    min-height:auto !important;
  }

  .photo-fullscreen .ph{
    height:48svh !important;
    min-height:360px;
    max-height:520px;
  }

  .svc-feat .svc-feat-title{
    letter-spacing:0.08em !important;
    line-height:1.75 !important;
  }

  .svc-feat .svc-feat-desc{
    letter-spacing:0.035em !important;
  }
}

/* Hero collision guard: short browser windows must not stack the logo and headline. */
.warm-hero{
  min-height:max(92svh,660px) !important;
}

.warm-hero-center{
  transform:translateY(-70px) !important;
}

.hero-statement{
  bottom:190px !important;
}

.hero-consult-card{
  bottom:58px !important;
}

@media(max-width:900px){
  .warm-hero{
    min-height:760px !important;
  }

  .warm-hero-center{
    transform:translateY(-118px) !important;
  }

  .hero-statement{
    bottom:250px !important;
  }

  .hero-consult-card{
    bottom:70px !important;
  }
}

@media(max-width:600px){
  .warm-hero{
    min-height:820px !important;
  }

  .warm-hero-center{
    transform:translateY(-150px) !important;
  }

  .hero-statement{
    bottom:315px !important;
  }

  .hero-consult-card{
    bottom:88px !important;
  }
}

/* Band split final: keep vertical copy fully inside the dark band. */
.band-split{
  min-height:220px !important;
  padding:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  background:#111111 !important;
  color:#ffffff !important;
}

.band-split::before{
  display:none !important;
}

.band-split .vert{
  margin:0 !important;
  max-height:none !important;
  color:#ffffff !important;
  font-size:clamp(22px,3.4vw,30px) !important;
  line-height:1.85 !important;
  letter-spacing:0.12em !important;
}

.band-split .word,
.band-split .char,
.band-split .band-copy{
  color:#ffffff !important;
  opacity:1 !important;
  transform:none !important;
}

@media(max-width:600px){
  .band-split{
    min-height:180px !important;
    padding:0 !important;
  }

  .band-split .vert{
    font-size:23px !important;
    line-height:1.85 !important;
    letter-spacing:0.1em !important;
  }
}

/* Headline wrapping polish. */
.people-preview-head h2 span{
  display:inline-block;
  white-space:nowrap;
}

@media(max-width:900px){
  .people-preview-head h2{
    font-size:clamp(30px,8vw,46px) !important;
    line-height:1.65 !important;
  }

  .people-preview-head h2 span{
    display:block;
  }
}

/* Spacing and line-break tightening after adding texture. */
.big-stmt{
  min-height:auto !important;
  padding:120px 60px !important;
}

.big-stmt .vert{
  max-height:none !important;
  font-size:clamp(30px,3vw,38px) !important;
  line-height:2.05 !important;
  letter-spacing:0.18em !important;
}

.premium-services{
  padding-top:110px !important;
}

.premium-section-head h2{
  max-width:820px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  line-height:1.55 !important;
}

.premium-section-head h2 span{
  display:block;
  white-space:nowrap;
}

.compact-statement{
  min-height:auto !important;
  padding:92px 24px !important;
}

.compact-statement .label{
  position:static !important;
  display:block;
  margin-bottom:34px;
  text-align:center;
}

.compact-copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  font-size:clamp(30px,4.2vw,58px);
  line-height:1.35;
  letter-spacing:0.08em;
  text-align:center;
}

.compact-copy span{
  display:block;
  white-space:nowrap;
}

@media(max-width:900px){
  .big-stmt{
    padding:86px 24px !important;
  }

  .big-stmt .vert{
    font-size:28px !important;
    line-height:1.95 !important;
    letter-spacing:0.12em !important;
  }

  .premium-services{
    padding-top:86px !important;
  }

  .premium-section-head h2{
    font-size:clamp(32px,8vw,48px) !important;
  }

  .compact-statement{
    padding:72px 22px !important;
  }

  .compact-copy{
    font-size:clamp(26px,7vw,34px);
    line-height:1.5;
    letter-spacing:0.05em;
  }
}

@media(max-width:600px){
  .big-stmt{
    padding:72px 22px !important;
  }

  .big-stmt .vert{
    font-size:25px !important;
    line-height:1.9 !important;
  }

  .warm-intro-copy{
    width:100%;
    max-width:calc(100vw - 44px);
  }

  .warm-intro p{
    max-width:100%;
    font-size:11px;
    line-height:2.25;
    letter-spacing:0.035em;
  }

  .warm-actions{
    flex-direction:column;
    align-items:stretch;
    width:100%;
  }

  .warm-btn{
    width:100%;
    min-height:48px;
    padding:0 18px;
  }
}

/* Quiet texture: Ogawa-vineyard-like air, translated into monochrome real estate. */
.warm-intro,
.people-preview,
.mvv-solo,
.services-intro,
.big-stmt,
.contact-direct{
  isolation:isolate;
}

.warm-intro::before,
.people-preview::before,
.mvv-solo::before,
.services-intro::before,
.big-stmt::before,
.contact-direct::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(90deg,rgba(17,17,17,0.035) 1px,transparent 1px),
    linear-gradient(180deg,rgba(17,17,17,0.028) 1px,transparent 1px);
  background-size:96px 96px;
  mask-image:radial-gradient(circle at 50% 50%,#000 0%,rgba(0,0,0,0.48) 42%,transparent 74%);
  opacity:0.55;
}

.people-preview::after,
.mvv-solo::after,
.services-intro::after,
.contact-direct::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
  width:min(440px,46vw);
  aspect-ratio:1.35;
  border:1px solid rgba(17,17,17,0.08);
  border-radius:50%;
  transform:rotate(-14deg);
  opacity:0.9;
}

.people-preview::after{
  right:-120px;
  top:110px;
}

.mvv-solo::after{
  left:-150px;
  bottom:90px;
  transform:rotate(18deg);
}

.services-intro::after{
  right:9vw;
  bottom:32px;
  width:min(300px,34vw);
}

.contact-direct::after{
  left:8vw;
  top:80px;
  width:min(260px,30vw);
  transform:rotate(24deg);
}

.warm-intro > *,
.people-preview > *,
.mvv-solo > *,
.services-intro > *,
.big-stmt > *,
.contact-direct > *{
  position:relative;
  z-index:1;
}

.mvv-solo .mvv-solo-key::before,
.services-intro-num::before,
.people-preview-head span::before,
.contact-lead span::before{
  content:"";
  display:block;
  width:36px;
  height:1px;
  margin:0 auto 18px;
  background:rgba(17,17,17,0.28);
}

.people-preview-head{
  position:relative;
}

.people-preview-head::after{
  content:"mum / people / trust";
  position:absolute;
  right:0;
  bottom:-46px;
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.28em;
  color:rgba(17,17,17,0.28);
  writing-mode:vertical-rl;
}

@media(max-width:900px){
  .warm-intro::before,
  .people-preview::before,
  .mvv-solo::before,
  .services-intro::before,
  .big-stmt::before,
  .contact-direct::before{
    background-size:72px 72px;
    opacity:0.38;
  }

  .people-preview::after,
  .mvv-solo::after,
  .services-intro::after,
  .contact-direct::after{
    width:220px;
    opacity:0.65;
  }

  .people-preview-head::after{
    display:none;
  }
}

/* A little more play: quiet editorial marks in the white space. */
.people-preview,
.mvv-solo,
.premium-services,
.contact-direct{
  counter-increment:sectionMark;
}

.people-preview > .space-mark,
.mvv-solo > .space-mark,
.premium-services > .space-mark,
.contact-direct > .space-mark{
  display:none;
}

.people-preview::marker,
.mvv-solo::marker,
.premium-services::marker,
.contact-direct::marker{
  content:"";
}

.people-preview .people-preview-grid::before,
.values-list::before,
.premium-services::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
  width:1px;
  height:180px;
  background:linear-gradient(180deg,transparent,rgba(17,17,17,0.22),transparent);
}

.people-preview .people-preview-grid{
  position:relative;
}

.people-preview .people-preview-grid::before{
  left:50%;
  top:-72px;
}

.values-list{
  position:relative;
}

.values-list::before{
  right:-42px;
  top:18px;
}

.premium-services::after{
  left:7vw;
  top:130px;
  background:linear-gradient(180deg,transparent,rgba(255,255,255,0.32),transparent);
}

.mvv-solo .mvv-solo-title::after,
.premium-section-head h2::after,
.contact-lead p::after{
  content:"";
  display:block;
  width:72px;
  height:72px;
  margin:32px auto 0;
  border:1px solid rgba(17,17,17,0.1);
  border-radius:50%;
}

.premium-section-head h2::after{
  border-color:rgba(255,255,255,0.22);
}

.contact-lead p::after{
  width:54px;
  height:54px;
  margin-top:26px;
}

@media(max-width:900px){
  .people-preview .people-preview-grid::before,
  .values-list::before,
  .premium-services::after{
    display:none;
  }

  .mvv-solo .mvv-solo-title::after,
  .premium-section-head h2::after,
  .contact-lead p::after{
    width:46px;
    height:46px;
    margin-top:24px;
  }
}

/* Final audit pass: reduce blank space and make mobile typography feel intentional. */
.portrait-wait{
  min-height:72svh !important;
}

.photo-fullscreen:has(.portrait-wait){
  min-height:auto !important;
}

.mvv-solo{
  padding-top:108px !important;
  padding-bottom:108px !important;
}

.people-preview,
.premium-services{
  padding-top:112px !important;
  padding-bottom:112px !important;
}

.band{
  padding-top:128px !important;
  padding-bottom:128px !important;
}

.photo-fullscreen .ph{
  height:78svh !important;
  min-height:520px;
}

@media(max-width:900px){
  .warm-intro,
  .people-preview,
  .premium-services,
  .mvv-solo,
  .contact-direct{
    padding-top:82px !important;
    padding-bottom:82px !important;
  }

  .big-stmt{
    padding:82px 24px 74px !important;
  }

  .photo-fullscreen .ph{
    height:50svh !important;
    min-height:360px;
  }

  .portrait-wait{
    min-height:460px !important;
    padding:74px 24px !important;
  }

  .band{
    padding:92px 24px !important;
  }

  .mvv-solo-title{
    font-size:clamp(25px,6.2vw,34px) !important;
    line-height:1.7 !important;
  }

  .mvv-solo-desc{
    font-size:12px !important;
    line-height:2.15 !important;
  }
}

@media(max-width:600px){
  .warm-hero{
    min-height:760px !important;
  }

  .warm-hero-center{
    transform:translateY(-54px) !important;
  }

  .hero-statement{
    left:50% !important;
    right:auto !important;
    bottom:248px !important;
    max-width:calc(100vw - 44px) !important;
    width:100% !important;
    transform:translateX(-50%) !important;
    text-align:center !important;
    font-size:clamp(24px,6.8vw,29px) !important;
    line-height:1.52 !important;
    letter-spacing:0.035em !important;
  }

  .hero-consult-card{
    bottom:48px !important;
    left:50% !important;
    right:auto !important;
    width:calc(100% - 44px) !important;
    max-width:340px !important;
    transform:translateX(-50%) !important;
    padding:22px 18px 22px !important;
    text-align:center !important;
  }

  .hero-consult-card::before{
    left:50% !important;
    top:-18px !important;
    bottom:auto !important;
    width:1px !important;
    height:18px !important;
    transform:translateX(-50%) !important;
  }

  .hero-consult-card a{
    justify-content:center !important;
  }

  .warm-intro{
    padding:76px 22px 66px !important;
  }

  .warm-intro h1{
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    max-height:none !important;
    margin:0 auto 30px !important;
    font-size:clamp(27px,7.5vw,32px) !important;
    line-height:1.6 !important;
    letter-spacing:0.07em !important;
    text-align:center;
  }

  .warm-intro h1 br{
    display:block !important;
  }

  .warm-intro p{
    text-align:left;
    line-height:2.05 !important;
  }

  .big-stmt{
    padding:74px 22px 66px !important;
  }

  .big-stmt .vert,
  .band .vert,
  .contact-vert .vert{
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    display:flex !important;
    flex-direction:column;
    align-items:center;
    gap:8px;
    max-width:min(330px,100%) !important;
    max-height:none !important;
    font-size:clamp(23px,6.8vw,29px) !important;
    line-height:1.62 !important;
    letter-spacing:0.06em !important;
    text-align:center;
  }

  .big-stmt .word,
  .band .word,
  .contact-vert .word{
    display:block;
    white-space:normal !important;
  }

  .big-stmt .char,
  .band .char,
  .contact-vert .char{
    display:inline !important;
  }

  .people-preview{
    padding:72px 22px !important;
  }

  .people-preview-head h2,
  .premium-section-head h2{
    font-size:clamp(27px,7.4vw,34px) !important;
    line-height:1.55 !important;
    letter-spacing:0.04em !important;
  }

  .people-preview-head p,
  .premium-section-head p,
  .contact-lead p,
  .svc-feat-desc,
  .svc-detail-lead,
  .mvv-solo-desc p{
    font-size:11px !important;
    line-height:2.05 !important;
    letter-spacing:0.03em !important;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .premium-services{
    padding:76px 22px !important;
  }

  .band-split{
    min-height:auto !important;
    padding:58px 22px !important;
  }

  .compact-statement{
    padding:62px 22px 72px !important;
  }

  .compact-copy{
    font-size:clamp(25px,7vw,31px) !important;
    line-height:1.45 !important;
  }

  .photo-fullscreen{
    min-height:auto !important;
  }

  .photo-fullscreen .ph{
    height:44svh !important;
    min-height:300px;
  }

  .portrait-wait{
    min-height:360px !important;
    padding:58px 22px !important;
  }

  .portrait-wait strong{
    font-size:clamp(26px,8vw,34px) !important;
    line-height:1.3 !important;
  }

  .portrait-wait p{
    max-width:260px !important;
    font-size:11px !important;
    line-height:1.9 !important;
  }

  .mvv-solo{
    padding:72px 22px !important;
  }

  .mvv-solo-title{
    font-size:clamp(24px,7vw,30px) !important;
    letter-spacing:0.08em !important;
  }

  .company{
    padding-top:74px !important;
    padding-bottom:74px !important;
  }

  .company-table th,
  .company-table td{
    display:block;
    width:100%;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .company-table th{
    padding-bottom:8px !important;
  }

  .company-table td{
    padding-top:0 !important;
  }

  .contact-form-sec{
    padding-top:78px !important;
    padding-bottom:84px !important;
  }

  .form-inner h4{
    margin-bottom:44px !important;
  }
}

/* Desktop audit: photo placeholders should not dominate before real portraits arrive. */
@media(min-width:901px){
  .big-stmt{
    padding-top:76px !important;
    padding-bottom:76px !important;
  }

  .big-stmt .vert{
    font-size:clamp(29px,2.35vw,34px) !important;
    line-height:1.72 !important;
    letter-spacing:0.14em !important;
  }

  .portrait-wait{
    min-height:500px !important;
    padding:82px 40px !important;
  }

  .portrait-wait::before{
    width:min(360px,34vw) !important;
  }

  .portrait-wait-ceo strong::before,
  .portrait-wait-specialist strong::before{
    content:"PORTRAIT" !important;
    display:block;
    font-size:clamp(34px,3.2vw,50px) !important;
    line-height:1.45 !important;
    letter-spacing:0.18em !important;
  }

  .portrait-wait-ceo strong::after{
    content:"代表写真";
  }

  .portrait-wait-specialist strong::after{
    content:"宅建士写真";
  }

  .portrait-wait strong::after{
    display:block;
    margin-top:14px;
    font-size:clamp(28px,2.8vw,42px);
    line-height:1.35;
    letter-spacing:0.12em;
  }
}

/* Legal page final mobile guard: keep policy text comfortably inside the viewport. */
@media(max-width:600px){
  .legal-hero,
  .legal-body{
    padding-left:42px !important;
    padding-right:42px !important;
  }

  .legal-hero p,
  .legal-block,
  .legal-date{
    max-width:100% !important;
    min-width:0 !important;
  }

  .legal-hero p,
  .legal-block p,
  .legal-block li,
  .legal-date{
    font-size:10px !important;
    line-height:2.05 !important;
    letter-spacing:0 !important;
    word-break:break-all !important;
    overflow-wrap:anywhere !important;
  }
}

/* Warmth system: carry the TOP page's softer air across service/company/contact. */
.big-stmt[data-page="service"],
.big-stmt[data-page="company"],
.big-stmt[data-page="contact"],
.photo-fullscreen,
.svc-detail,
.company,
.contact-form-sec,
.legal-hero,
.legal-body{
  background:
    radial-gradient(circle at 82% 22%,rgba(17,17,17,0.035),transparent 20%),
    radial-gradient(circle at 12% 82%,rgba(17,17,17,0.028),transparent 24%),
    #f7f7f4 !important;
}

.svc-detail:nth-of-type(even),
.company,
.contact-form-sec,
.legal-body{
  background:
    linear-gradient(90deg,rgba(17,17,17,0.022) 1px,transparent 1px),
    linear-gradient(180deg,rgba(17,17,17,0.018) 1px,transparent 1px),
    #ffffff !important;
  background-size:104px 104px,104px 104px,auto;
}

.big-stmt[data-page="service"],
.big-stmt[data-page="company"],
.big-stmt[data-page="contact"],
.contact-form-sec,
.svc-detail,
.company{
  position:relative;
  overflow:hidden;
}

.big-stmt[data-page="service"]::after,
.big-stmt[data-page="company"]::after,
.big-stmt[data-page="contact"]::after,
.contact-form-sec::before,
.svc-detail::before,
.company::before{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
  width:min(420px,42vw);
  aspect-ratio:1;
  border-radius:50%;
  background:rgba(17,17,17,0.035);
  border:1px solid rgba(17,17,17,0.045);
}

.big-stmt[data-page="service"]::after,
.big-stmt[data-page="company"]::after,
.big-stmt[data-page="contact"]::after{
  right:10vw;
  bottom:8vh;
}

.contact-form-sec::before{
  right:-120px;
  top:70px;
}

.svc-detail::before{
  left:-150px;
  top:90px;
}

.company::before{
  right:-140px;
  bottom:80px;
}

.contact-form-sec > *,
.svc-detail > *,
.company > *{
  position:relative;
  z-index:1;
}

.big-stmt[data-page="contact"]{
  padding-bottom:92px !important;
}

@media(max-width:900px){
  .big-stmt[data-page="service"]::after,
  .big-stmt[data-page="company"]::after,
  .big-stmt[data-page="contact"]::after,
  .contact-form-sec::before,
  .svc-detail::before,
  .company::before{
    width:230px;
    opacity:0.7;
  }
}

@media(max-width:600px){
  .big-stmt[data-page="contact"]{
    padding-top:106px !important;
    padding-bottom:84px !important;
  }

  .big-stmt[data-page="contact"] .vert{
    font-size:clamp(28px,8vw,34px) !important;
    line-height:1.55 !important;
  }

  .contact-form-sec{
    padding-top:72px !important;
  }

  .mvv-solo-desc,
  .mvv-solo-desc p,
  .mvv-solo .mvv-solo-desc,
  .mvv-solo .mvv-solo-desc p,
  .svc-detail-inner,
  .svc-feat-desc,
  .svc-detail-lead,
  .contact-form-sec,
  .contact-direct{
    max-width:100% !important;
    min-width:0 !important;
    overflow-wrap:anywhere !important;
    word-break:break-all !important;
  }

  .mvv-solo-desc{
    width:100% !important;
    align-self:stretch !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .mvv-solo-desc p,
  .svc-feat-desc,
  .svc-detail-lead{
    text-align:left !important;
    line-height:2.05 !important;
    letter-spacing:0.015em !important;
    white-space:normal !important;
    inline-size:100% !important;
  }

  .mvv-solo .mvv-solo-desc p{
    max-width:calc(100vw - 88px) !important;
    inline-size:calc(100vw - 88px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* Conversion polish: make contact feel safe, not salesy. */
.hidden-field{
  display:none !important;
}

.contact-form-lead{
  max-width:520px;
  margin:0 auto 54px;
  text-align:center;
  font-family:var(--mono);
  font-size:12px;
  line-height:2.1;
  letter-spacing:0.05em;
  color:#555;
}

.contact-faq{
  padding:96px 48px;
  background:
    radial-gradient(circle at 88% 18%,rgba(17,17,17,0.035),transparent 22%),
    #f7f7f4;
  position:relative;
  overflow:hidden;
}

.contact-faq::before{
  content:"";
  position:absolute;
  left:-120px;
  bottom:58px;
  width:min(360px,36vw);
  aspect-ratio:1.2;
  border:1px solid rgba(17,17,17,0.08);
  border-radius:50%;
  transform:rotate(18deg);
}

.contact-faq-head,
.contact-faq-list{
  position:relative;
  z-index:1;
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
}

.contact-faq-head{
  text-align:center;
  margin-bottom:46px;
}

.contact-faq-head span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.36em;
  color:#888;
  text-transform:uppercase;
  margin-bottom:20px;
}

.contact-faq-head h2{
  font-weight:300;
  font-size:clamp(30px,3.6vw,48px);
  line-height:1.55;
  letter-spacing:0.08em;
}

.contact-faq-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border-top:1px solid #ddd;
  border-bottom:1px solid #ddd;
}

.contact-faq-item{
  padding:30px 30px 32px;
  border-right:1px solid #ddd;
}

.contact-faq-item:last-child{
  border-right:none;
}

.contact-faq-item span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.32em;
  color:#888;
  margin-bottom:20px;
}

.contact-faq-item h3{
  font-size:20px;
  line-height:1.65;
  letter-spacing:0.055em;
  font-weight:300;
  margin-bottom:12px;
}

.contact-faq-item p{
  font-family:var(--sans-ja);
  font-size:11px;
  line-height:1.95;
  letter-spacing:0.03em;
  color:#555;
}

.thanks-hero{
  min-height:100svh;
  padding:130px 48px 92px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:
    radial-gradient(circle at 78% 26%,rgba(17,17,17,0.045),transparent 23%),
    radial-gradient(circle at 16% 76%,rgba(17,17,17,0.035),transparent 24%),
    #f7f7f4;
}

.thanks-kicker{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.42em;
  color:#888;
  text-transform:uppercase;
  margin-bottom:28px;
}

.thanks-hero h1{
  font-weight:300;
  font-size:clamp(34px,4vw,58px);
  line-height:1.45;
  letter-spacing:0.08em;
  margin-bottom:30px;
}

.thanks-hero h1 span{
  display:block;
}

.thanks-hero p{
  max-width:560px;
  font-family:var(--sans-ja);
  font-size:13px;
  line-height:2.2;
  letter-spacing:0.04em;
  color:#444;
  margin-bottom:38px;
}

.thanks-actions{
  display:flex;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
}

@media(max-width:900px){
  .contact-faq{
    padding:72px 22px;
  }

  .contact-faq-list{
    grid-template-columns:1fr;
  }

  .contact-faq-item{
    border-right:none;
    border-bottom:1px solid #ddd;
    padding:26px 0 28px;
  }

  .contact-faq-item:last-child{
    border-bottom:none;
  }
}

@media(max-width:600px){
  .contact-form-lead{
    margin-bottom:42px;
    font-size:11px;
    line-height:2;
    text-align:left;
  }

  .contact-faq-head{
    text-align:left;
    margin-bottom:26px;
  }

  .contact-faq-head h2{
    max-width:100%;
    font-size:clamp(25px,6.8vw,31px);
    line-height:1.55;
    letter-spacing:0.035em;
    overflow-wrap:anywhere;
  }

  .contact-faq-item h3{
    font-size:18px;
    line-height:1.6;
    letter-spacing:0.025em;
    overflow-wrap:anywhere;
    word-break:break-all;
  }

  .contact-faq-item p{
    font-size:10.5px;
    letter-spacing:0.01em;
    overflow-wrap:anywhere;
    word-break:break-all;
  }

  .thanks-hero{
    min-height:auto;
    padding:118px 22px 84px;
  }

  .thanks-hero h1{
    font-size:clamp(29px,8vw,38px);
  }

  .thanks-hero p{
    max-width:100%;
    font-size:11px;
    text-align:left;
    overflow-wrap:anywhere;
    word-break:break-all;
  }

  .thanks-actions{
    width:100%;
  }

  .thanks-actions .warm-btn{
    width:100%;
  }

  footer .ftr-info{
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-all;
    letter-spacing:0.08em !important;
  }
}

/* Hero consultation link: remove the boxy template-card feeling. */
.hero-consult-card{
  right:clamp(40px,7vw,108px) !important;
  bottom:72px !important;
  width:auto !important;
  max-width:320px !important;
  padding:0 0 0 34px !important;
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  color:#111 !important;
}

.hero-consult-card::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  bottom:4px;
  width:1px;
  background:rgba(17,17,17,0.28);
}

.hero-consult-card span{
  margin-bottom:12px !important;
  color:#888 !important;
}

.hero-consult-card p{
  margin-bottom:14px !important;
  font-size:12px !important;
  line-height:1.95 !important;
  letter-spacing:0.04em !important;
  color:#333 !important;
}

.hero-consult-card a{
  min-height:auto !important;
  padding:0 0 5px !important;
  border:none !important;
  border-bottom:1px solid #111 !important;
  background:transparent !important;
  color:#111 !important;
  font-size:11px !important;
  letter-spacing:0.08em !important;
}

.hero-consult-card a::after{
  content:"";
  display:inline-block;
  width:18px;
  height:1px;
  margin-left:12px;
  background:#111;
  vertical-align:middle;
  transform:translateY(-3px);
}

.hero-consult-card a:hover{
  background:transparent !important;
  color:#111 !important;
  opacity:0.62;
}

@media(max-width:900px){
  .hero-consult-card{
    left:22px !important;
    right:22px !important;
    bottom:54px !important;
    max-width:none !important;
    padding:0 0 0 22px !important;
  }
}

@media(max-width:600px){
  .hero-consult-card{
    bottom:46px !important;
    width:auto !important;
  }

  .hero-consult-card p{
    font-size:11px !important;
    line-height:1.85 !important;
  }
}

/* Final contact CTA on TOP: one composed block, no floating orphan headline. */
.contact-direct-final{
  padding-top:110px !important;
  padding-bottom:120px !important;
  gap:26px !important;
}

.contact-section-label{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:#888;
  text-transform:uppercase;
  margin-bottom:4px;
}

.contact-direct-final .compact-copy{
  font-size:clamp(34px,4.2vw,58px);
  line-height:1.36;
  margin-bottom:16px;
}

.contact-direct-final .contact-lead{
  margin-bottom:18px !important;
}

.contact-direct-final .contact-lead span::before,
.contact-direct-final .contact-lead p::after{
  display:none !important;
}

.contact-direct-final .contact-lead p{
  max-width:650px;
  margin-left:auto;
  margin-right:auto;
}

/* Remove the empty dark divider before the TOP contact CTA. It was creating a heavy
   black shape without adding meaning. */
#relationship-band{
  display:none !important;
}

.warm-hero::after{
  display:none !important;
}

/* Contact page hero: compact, warm, and connected to the form. */
.big-stmt[data-page="contact"]{
  min-height:auto !important;
  padding:132px 24px 54px !important;
  display:grid !important;
  place-items:center !important;
  gap:24px !important;
  overflow:hidden !important;
}

.big-stmt[data-page="contact"]::after{
  width:min(280px,34vw) !important;
  right:8vw !important;
  bottom:16px !important;
  opacity:0.45 !important;
}

.big-stmt[data-page="contact"] .label{
  position:static !important;
  order:0;
  font-size:10px !important;
  letter-spacing:0.28em !important;
  color:#888 !important;
}

.big-stmt[data-page="contact"] .vert{
  writing-mode:horizontal-tb !important;
  max-height:none !important;
  height:auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:0.08em !important;
  margin:0 !important;
  text-align:center !important;
  font-size:clamp(38px,4.8vw,62px) !important;
  line-height:1.38 !important;
  letter-spacing:0.08em !important;
}

.big-stmt[data-page="contact"] .word{
  display:block !important;
  white-space:nowrap !important;
}

.contact-form-sec[data-page="contact"]{
  padding-top:56px !important;
}

.contact-form-sec[data-page="contact"] .form-submit{
  max-width:100%;
}

@media(max-width:900px){
  .contact-direct-final{
    padding-top:84px !important;
    padding-bottom:88px !important;
    gap:22px !important;
  }

  .contact-direct-final .compact-copy{
    font-size:clamp(28px,7vw,38px);
    margin-bottom:10px;
  }

  .big-stmt[data-page="contact"]{
    padding:112px 22px 42px !important;
  }

  .big-stmt[data-page="contact"] .vert{
    font-size:clamp(32px,8vw,46px) !important;
    line-height:1.46 !important;
    letter-spacing:0.06em !important;
  }

  .contact-form-sec[data-page="contact"]{
    padding-top:42px !important;
  }
}

@media(max-width:600px){
  .contact-direct-final{
    align-items:stretch !important;
    padding:72px 22px 78px !important;
    text-align:left;
  }

  .contact-direct-final .compact-copy{
    align-items:flex-start !important;
    text-align:left !important;
    font-size:clamp(27px,7.2vw,34px) !important;
    line-height:1.48 !important;
  }

  .contact-direct-final .compact-copy span{
    white-space:normal !important;
  }

  .contact-direct-final .contact-lead{
    text-align:left !important;
    margin-bottom:12px !important;
  }

  .big-stmt[data-page="contact"]{
    place-items:start !important;
    padding:94px 22px 34px !important;
    gap:18px !important;
  }

  .big-stmt[data-page="contact"] .label{
    font-size:9px !important;
  }

  .big-stmt[data-page="contact"] .vert{
    justify-self:start !important;
    align-items:flex-start !important;
    text-align:left !important;
    font-size:clamp(28px,8.2vw,35px) !important;
    line-height:1.5 !important;
  }

  .big-stmt[data-page="contact"] .word{
    white-space:normal !important;
  }

  .contact-form-sec[data-page="contact"]{
    padding-left:22px !important;
    padding-right:22px !important;
  }

  .contact-form-sec[data-page="contact"] .form-inner,
  .contact-form-sec[data-page="contact"] .form-submit{
    width:100% !important;
    max-width:100% !important;
  }

  .big-stmt[data-page="contact"] .vert{
    gap:2px !important;
    line-height:1.28 !important;
  }

  .big-stmt[data-page="contact"] .word{
    line-height:1.28 !important;
  }

  .big-stmt[data-page="contact"] .word:nth-of-type(2){
    margin-top:-26px !important;
  }
}

.contact-form-sec[data-page="contact"] .contact-form-lead{
  display:none !important;
}

@media(max-width:600px){
  .warm-hero .hero-statement{
    left:50% !important;
    right:auto !important;
    width:calc(100vw - 44px) !important;
    max-width:346px !important;
    transform:translateX(-50%) !important;
    text-align:center !important;
  }

  .warm-hero .hero-consult-card{
    left:50% !important;
    right:auto !important;
    width:calc(100vw - 44px) !important;
    max-width:340px !important;
    transform:translateX(-50%) !important;
    padding:22px 18px !important;
    text-align:center !important;
  }

  .warm-hero .hero-consult-card::before{
    left:50% !important;
    top:-18px !important;
    bottom:auto !important;
    width:1px !important;
    height:18px !important;
    transform:translateX(-50%) !important;
  }

  .warm-hero .hero-consult-card span,
  .warm-hero .hero-consult-card p{
    text-align:center !important;
  }

  .warm-hero .hero-consult-card a{
    display:inline-flex !important;
    justify-content:center !important;
  }

  .warm-intro{
    overflow:hidden !important;
    text-align:center !important;
  }

  .warm-intro-copy{
    width:100vw !important;
    max-width:100vw !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:22px !important;
    padding-right:22px !important;
    box-sizing:border-box !important;
  }

  .warm-intro h1{
    text-align:center !important;
    font-size:clamp(25px,6.6vw,28px) !important;
    line-height:1.65 !important;
    letter-spacing:0.025em !important;
    max-width:100% !important;
  }

  .warm-intro p{
    max-width:280px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    font-size:11px !important;
    line-height:2.05 !important;
    letter-spacing:0.02em !important;
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }

  .warm-actions{
    align-items:center !important;
    width:100% !important;
    max-width:280px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .warm-btn{
    width:100% !important;
    max-width:280px !important;
  }

  .person-copy{
    padding:30px 26px 32px !important;
  }

  .person-copy h3{
    font-size:clamp(19px,5.4vw,23px) !important;
    line-height:1.72 !important;
    letter-spacing:0.01em !important;
    overflow-wrap:normal !important;
    word-break:keep-all !important;
  }

  .person-copy p{
    font-size:11px !important;
    line-height:2.05 !important;
    letter-spacing:0.025em !important;
  }

  .person-photo-placeholder{
    min-height:260px !important;
  }

  .person-photo-placeholder span::before{
    font-size:14px !important;
    letter-spacing:0.18em !important;
  }
}

/* Consultation guide upgrade */
.consult-upgrade{
  padding:132px 48px 126px;
  background:
    linear-gradient(90deg,rgba(17,17,17,0.035) 1px,transparent 1px),
    linear-gradient(180deg,rgba(17,17,17,0.03) 1px,transparent 1px),
    #f7f7f4;
  background-size:76px 76px;
  border-top:1px solid #ddd;
  border-bottom:1px solid #ddd;
}

.consult-upgrade-head{
  max-width:820px;
  margin:0 auto 46px;
  text-align:center;
}

.consult-upgrade-head span{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  color:#777;
  font-size:18px;
  margin-bottom:18px;
}

.consult-upgrade-head h2{
  font-weight:300;
  font-size:clamp(32px,4.4vw,58px);
  line-height:1.48;
  letter-spacing:0.08em;
  margin-bottom:22px;
}

.consult-upgrade-head h2 span{
  display:block;
  font-family:var(--serif-ja);
  font-style:normal;
  color:#111;
  font-size:inherit;
  margin:0;
}

.consult-upgrade-head p{
  max-width:660px;
  margin:0 auto;
  font-family:var(--mono);
  font-size:12px;
  line-height:2.25;
  letter-spacing:0.05em;
  color:#444;
}

.consult-guide{
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  border:1px solid #111;
  background:#fff;
  box-shadow:0 28px 70px rgba(17,17,17,0.08);
}

.consult-tabs{
  display:grid;
  align-content:stretch;
  border-right:1px solid #111;
  background:#111;
}

.consult-tabs button{
  appearance:none;
  border:0;
  border-bottom:1px solid rgba(255,255,255,0.18);
  background:#111;
  color:rgba(255,255,255,0.64);
  min-height:76px;
  padding:0 26px;
  text-align:left;
  font-family:var(--serif-ja);
  font-size:17px;
  line-height:1.4;
  letter-spacing:0.08em;
  cursor:pointer;
  transition:background 0.28s var(--ease),color 0.28s var(--ease),padding 0.28s var(--ease);
}

.consult-tabs button:hover,
.consult-tabs button.is-active{
  background:#fff;
  color:#111;
  padding-left:34px;
}

.consult-tabs button:last-child{
  border-bottom:0;
}

.consult-panel{
  min-height:468px;
  padding:56px 58px 54px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.consult-panel::before{
  content:"";
  position:absolute;
  top:30px;
  right:32px;
  width:92px;
  height:92px;
  border:1px solid #dedede;
  border-radius:50%;
}

.consult-panel-kicker{
  font-family:var(--mono);
  font-size:11px;
  line-height:1.6;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:#777;
  margin-bottom:22px;
}

.consult-panel h3{
  max-width:720px;
  font-weight:300;
  font-size:clamp(30px,4vw,48px);
  line-height:1.48;
  letter-spacing:0.07em;
  margin-bottom:24px;
  word-break:keep-all;
  overflow-wrap:normal;
}

.consult-panel h3 .word{
  display:inline-block;
}

.consult-panel p{
  max-width:690px;
  font-family:var(--mono);
  font-size:12px;
  line-height:2.25;
  letter-spacing:0.045em;
  color:#444;
  margin-bottom:32px;
}

.consult-points{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:#ddd;
  border:1px solid #ddd;
  margin:0 0 32px;
}

.consult-points div{
  background:#fff;
  padding:22px 20px;
  min-height:118px;
}

.consult-points dt{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.22em;
  color:#888;
  margin-bottom:14px;
}

.consult-points dd{
  margin:0;
  font-size:15px;
  line-height:1.75;
  letter-spacing:0.05em;
}

.consult-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.consult-actions a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:0 22px;
  border:1px solid #111;
  color:#111;
  background:#fff;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.18em;
  text-decoration:none;
  transition:background 0.3s var(--ease),color 0.3s var(--ease);
}

.consult-actions a:first-child,
.consult-actions a:hover{
  background:#111;
  color:#fff;
}

.consult-actions a:first-child:hover{
  background:#fff;
  color:#111;
}

.consult-proof-grid{
  max-width:1120px;
  margin:28px auto 0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:#dcdcdc;
  border:1px solid #dcdcdc;
}

.consult-proof-grid div{
  background:rgba(255,255,255,0.92);
  padding:24px 22px 26px;
}

.consult-proof-grid span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.26em;
  color:#999;
  margin-bottom:18px;
}

.consult-proof-grid strong{
  display:block;
  font-weight:300;
  font-size:20px;
  line-height:1.5;
  letter-spacing:0.08em;
  margin-bottom:10px;
}

.consult-proof-grid p{
  margin:0;
  font-family:var(--mono);
  font-size:11px;
  line-height:1.9;
  letter-spacing:0.04em;
  color:#555;
}

@media(max-width:980px){
  .consult-upgrade{
    padding:92px 22px 88px;
    background-size:46px 46px;
  }

  .consult-upgrade-head h2{
    font-size:28px;
    line-height:1.65;
    letter-spacing:0.035em;
    word-break:keep-all;
    overflow-wrap:normal;
  }

  .consult-guide{
    grid-template-columns:1fr;
  }

  .consult-tabs{
    border-right:0;
    border-bottom:1px solid #111;
    grid-template-columns:1fr 1fr;
  }

  .consult-tabs button{
    min-height:58px;
    padding:0 16px;
    font-size:13px;
    letter-spacing:0.04em;
    border-right:1px solid rgba(255,255,255,0.18);
  }

  .consult-tabs button:hover,
  .consult-tabs button.is-active{
    padding-left:20px;
  }

  .consult-panel{
    min-height:0;
    padding:38px 24px 34px;
  }

  .consult-panel::before{
    width:60px;
    height:60px;
    top:20px;
    right:20px;
  }

  .consult-panel h3{
    font-size:clamp(24px,7vw,32px);
    line-height:1.62;
    letter-spacing:0.04em;
  }

  .consult-panel p{
    font-size:11px;
    line-height:2.05;
  }

  .consult-points,
  .consult-proof-grid{
    grid-template-columns:1fr;
  }

  .consult-points div{
    min-height:0;
  }
}

@media(max-width:420px){
  .consult-tabs button{
    padding:0 12px;
    font-size:12px;
    letter-spacing:0.02em;
  }

  .consult-tabs button:hover,
  .consult-tabs button.is-active{
    padding-left:14px;
  }

  .consult-points dd{
    font-size:14px;
    letter-spacing:0.02em;
  }
}

@media(max-width:900px){
  .hero-trust-strip{
    left:22px;
    right:22px;
    bottom:22px;
    transform:none;
    flex-wrap:wrap;
    min-height:0;
    padding:12px 10px;
    gap:8px 14px;
  }

  .hero-trust-strip span{
    font-size:9px;
    letter-spacing:0.08em;
  }

  .hero-trust-strip span + span{
    margin-left:0;
    padding-left:0;
    border-left:0;
  }

  .mvv-vision-photo::before{
    inset:-10px;
  }
}

@media(max-width:600px){
  .warm-hero .hero-consult-card{
    bottom:76px !important;
  }

  .cta-assurance{
    width:100%;
    gap:8px;
    margin:-8px auto 4px;
  }

  .cta-assurance span{
    font-size:9px;
    letter-spacing:0.08em;
    padding:0 10px;
  }
}

/* Upgrade 11: make the first consultation path feel concrete. */
.consult-flow{
  max-width:1120px;
  margin:34px auto 0;
  display:grid;
  grid-template-columns:minmax(240px,300px) minmax(0,1fr);
  background:rgba(255,255,255,0.82);
  border:1px solid rgba(17,17,17,0.16);
  box-shadow:0 22px 58px rgba(17,17,17,0.055);
}

.consult-flow-head{
  padding:30px 30px 32px;
  border-right:1px solid rgba(17,17,17,0.14);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.consult-flow-head span{
  display:block;
  font-family:var(--serif-en);
  font-style:italic;
  font-size:17px;
  color:#777;
  margin-bottom:16px;
}

.consult-flow-head strong{
  display:block;
  font-weight:300;
  font-size:24px;
  line-height:1.7;
  letter-spacing:0.08em;
}

.consult-flow-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.consult-flow-list li{
  min-width:0;
  padding:30px 26px 32px;
  border-right:1px solid rgba(17,17,17,0.12);
}

.consult-flow-list li:last-child{
  border-right:none;
}

.consult-flow-list span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.28em;
  color:#888;
  margin-bottom:18px;
}

.consult-flow-list b{
  display:block;
  font-weight:300;
  font-size:19px;
  line-height:1.6;
  letter-spacing:0.07em;
  margin-bottom:10px;
}

.consult-flow-list p{
  margin:0;
  font-family:var(--sans-ja);
  font-size:12px;
  line-height:1.95;
  letter-spacing:0.025em;
  color:#555;
}

.contact-safe-strip{
  max-width:560px;
  margin:0 auto 42px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid rgba(17,17,17,0.14);
  background:rgba(255,255,255,0.72);
}

.contact-safe-strip span{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border-right:1px solid rgba(17,17,17,0.12);
  font-family:var(--mono);
  font-size:10px;
  line-height:1.55;
  letter-spacing:0.13em;
  color:#444;
  text-align:center;
}

.contact-safe-strip span:last-child{
  border-right:none;
}

@media(max-width:980px){
  .consult-flow{
    grid-template-columns:1fr;
  }

  .consult-flow-head{
    border-right:none;
    border-bottom:1px solid rgba(17,17,17,0.14);
    padding:28px 24px 26px;
  }

  .consult-flow-head strong{
    font-size:22px;
    line-height:1.65;
    letter-spacing:0.045em;
  }

  .consult-flow-list{
    grid-template-columns:1fr;
  }

  .consult-flow-list li{
    border-right:none;
    border-bottom:1px solid rgba(17,17,17,0.12);
    padding:24px 24px 26px;
  }

  .consult-flow-list li:last-child{
    border-bottom:none;
  }
}

@media(max-width:600px){
  .consult-flow{
    margin-top:26px;
  }

  .consult-flow-head span{
    font-size:15px;
    margin-bottom:12px;
  }

  .consult-flow-head strong{
    font-size:20px;
    line-height:1.65;
  }

  .consult-flow-list b{
    font-size:18px;
    letter-spacing:0.04em;
  }

  .consult-flow-list p{
    font-size:11.5px;
    line-height:1.9;
  }

  .contact-safe-strip{
    grid-template-columns:1fr;
    margin-bottom:34px;
  }

  .contact-safe-strip span{
    justify-content:flex-start;
    min-height:46px;
    border-right:none;
    border-bottom:1px solid rgba(17,17,17,0.12);
    text-align:left;
  }

  .contact-safe-strip span:last-child{
    border-bottom:none;
  }
}

@media(max-width:600px){
  .warm-intro{
    display:block !important;
  }

  .warm-intro-copy{
    display:block !important;
    flex:none !important;
    width:auto !important;
    max-width:320px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .warm-intro h1{
    display:block !important;
  }

  .warm-intro p{
    width:100% !important;
    max-width:280px !important;
    overflow-wrap:anywhere !important;
    word-break:break-all !important;
  }

  .warm-actions{
    width:100% !important;
    max-width:280px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .contact-form-sec[data-page="contact"] .form-inner,
  .contact-form-sec[data-page="contact"] form,
  .contact-safe-strip,
  .contact-form-sec[data-page="contact"] .form-submit{
    width:100% !important;
    max-width:calc(100vw - 44px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }
}

.service-photo img,
.company-access-photo img{
  filter:none !important;
}

.service-photo-rental img{
  object-position:center center;
}

.service-photo-sale img{
  object-position:58% center;
}

.service-photo-school img{
  object-position:42% center;
}

.company-access-photo img{
  object-position:center center;
}

@media(max-width:600px){
  .service-photo-rental img{
    object-position:50% center;
  }

  .service-photo-sale img{
    object-position:64% center;
  }

  .service-photo-school img{
    object-position:36% center;
  }

  .mvv-solo .mvv-solo-desc,
  .mvv-solo-desc{
    width:100% !important;
    max-width:min(310px,calc(100vw - 44px)) !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
  }

  .mvv-solo .mvv-solo-desc p,
  .mvv-solo-desc p{
    max-width:100% !important;
    overflow-wrap:anywhere !important;
    word-break:break-all !important;
  }
}

/* Upgrade 20: lock mobile centering and remove invisible horizontal drift. */
html,
body{
  max-width:100%;
  overflow-x:clip;
}

@supports not (overflow:clip){
  html,
  body{
    overflow-x:hidden;
  }
}

.warm-hero,
.warm-intro,
.consult-upgrade,
.people-preview{
  max-width:100vw;
  overflow-x:clip;
  contain:paint;
}

.person-photo,
.couple-consult-photo,
.mvv-vision-photo{
  contain:paint;
}

@media(max-width:600px){
  .warm-hero-center{
    width:100% !important;
    max-width:100vw !important;
  }

  .warm-hero .hero-statement,
  .warm-hero .hero-consult-card,
  .hero-trust-strip,
  .warm-intro-copy,
  .consult-guide,
  .consult-proof-grid,
  .people-preview-grid,
  .couple-consult{
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box !important;
  }

  .hero-trust-strip{
    left:50% !important;
    right:auto !important;
    width:calc(100vw - 44px) !important;
    max-width:370px !important;
    transform:translateX(-50%) !important;
  }

  .hero-trust-strip.reveal,
  .hero-trust-strip.reveal.is-in{
    transform:translateX(-50%) !important;
  }

  .warm-orb-a{
    left:-24vw !important;
    bottom:21vh !important;
    opacity:0.52;
  }

  .warm-orb-b{
    right:-26vw !important;
    top:23vh !important;
    opacity:0.52;
  }
}

/* Upgrade 21: remove cheap pictograms and use quiet typographic marks. */
.nav-sns{
  min-width:26px;
  height:26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.18em;
  line-height:1;
}

.nav-sns[aria-label="Instagram"]::before{
  content:"IG";
}

.menu-foot-sns svg,
.cta-btn svg,
.cta-tel-num svg,
.cta-mail svg,
footer .ftr-sns svg{
  display:none !important;
}

.menu-foot-sns a{
  gap:0 !important;
}

.cta-btn{
  gap:0 !important;
  padding-left:64px;
  padding-right:64px;
}

.cta-btn span::after{
  content:"";
  display:inline-block;
  width:24px;
  height:1px;
  margin-left:16px;
  background:currentColor;
  vertical-align:middle;
  transform:translateY(-4px);
}

.cta-tel-num{
  gap:12px;
}

.cta-tel-num::before,
.cta-mail::before{
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0.28em;
  color:var(--ink-mute);
}

.cta-tel-num::before{
  content:"TEL";
}

.cta-mail::before{
  content:"MAIL";
}

footer .ftr-sns{
  gap:26px;
  margin-bottom:44px;
}

footer .ftr-sns a{
  width:auto;
  height:auto;
  border:0;
  border-radius:0;
  padding:0 0 7px;
  color:var(--offwhite);
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:0.26em;
  border-bottom:1px solid rgba(247,245,239,0.34);
  transition:opacity 0.3s var(--ease),border-color 0.3s var(--ease);
}

footer .ftr-sns a:hover{
  background:transparent;
  border-color:var(--offwhite);
  opacity:0.72;
}

footer .ftr-sns a[aria-label="Instagram"]::before{
  content:"Instagram";
}

footer .ftr-sns a[aria-label="LINE"]::before{
  content:"LINE";
}

@media(max-width:600px){
  .nav-sns{
    min-width:24px;
    height:24px;
    font-size:9px;
  }

  .cta-btn{
    width:min(280px,calc(100vw - 44px));
    justify-content:center;
    padding-left:24px !important;
    padding-right:24px !important;
  }

  .cta-btn span::after{
    width:20px;
    margin-left:12px;
  }

  .cta-mail{
    flex-wrap:wrap;
    justify-content:center;
    text-align:center;
    row-gap:8px;
  }

  footer .ftr-sns{
    gap:22px;
  }
}

/* Upgrade 22: use the real couple photo only where it earns trust. */
.company-couple-hero{
  min-height:auto;
  padding:0;
}

.company-couple-hero .ph{
  height:min(76svh,760px);
}

.company-couple-photo img{
  object-position:center 46%;
}

@media(max-width:600px){
  .company-couple-hero .ph{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:4/3;
  }

  .company-couple-photo img{
    object-position:center center;
  }

  .couple-consult-photo{
    min-height:250px !important;
    background-position:center 46% !important;
  }
}

/* Upgrade 23: photo set selected from the shared shoot. */
.mvv-vision-photo-city{
  margin-top:54px;
}

.mvv-vision-photo-city img{
  object-position:center 52%;
}

.company-person-photo{
  width:min(360px,calc(100vw - 48px));
  margin:30px auto 32px;
  background:#f6f4ef;
  border:1px solid rgba(17,17,17,0.08);
  overflow:hidden;
  box-shadow:0 22px 58px rgba(17,17,17,0.08);
}

.company-person-photo img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  height:auto;
  object-fit:cover;
  object-position:center 18%;
}

.company-person-photo-chinami img{
  object-position:center 16%;
}

.company-couple-photo img{
  object-position:center 50%;
}

.company-formal-pair{
  padding:78px 22px 10px;
  background:var(--bg);
}

.company-formal-pair-photo{
  width:min(380px,calc(100vw - 64px));
  margin:0 auto;
  background:#f6f4ef;
  border:1px solid rgba(17,17,17,0.08);
  overflow:hidden;
  box-shadow:0 22px 58px rgba(17,17,17,0.08);
}

.company-formal-pair-photo img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  height:auto;
  object-fit:cover;
  object-position:center 16%;
}

@media(max-width:600px){
  .mvv-vision-photo-city{
    margin-top:38px;
  }

  .mvv-vision-photo-city img{
    object-position:center center;
  }

  .company-person-photo{
    width:min(300px,calc(100vw - 52px));
    margin:24px auto 28px;
  }

  .company-formal-pair{
    padding:48px 22px 0;
  }

  .company-formal-pair-photo{
    width:min(300px,calc(100vw - 52px));
  }

  .company-person-photo img{
    aspect-ratio:4/5;
    object-position:center 16%;
  }

  .company-couple-photo img{
    object-position:center center;
  }
}
