/*
  SEN NO MEGURI DESIGN SYSTEM
  ------------------------------------
  Editing order:
  1) :root tokens (colors/fonts)
  2) section blocks (layout)
  3) media queries (responsive)
  Keep HTML meaning separate from visual styling.
*/

/* 01. Design tokens */
:root{
  --paper:#f7f3ea;
  --paper-2:#fffdf8;
  --ink:#202326;
  --navy:#182538;
  --navy-2:#111b27;
  --gold:#b39a62;
  --gold-2:#d8c8a4;
  --red:#9d1f22;
  --red-soft:#b66560;
  --line:#d9d0c0;
  --muted:#6f6c67;
  --white:#fff;
  --serif:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --shadow:0 20px 55px rgba(28,31,35,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-feature-settings:"palt";letter-spacing:.02em;line-height:1.9}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.shell{width:min(1180px,calc(100% - 56px));margin:auto}
/* 02. Header / Navigation */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,253,248,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(179,154,98,.16)}
.header-inner{height:78px;display:grid;grid-template-columns:235px 1fr auto 140px;align-items:center;gap:28px}
.brand{display:inline-flex;flex-direction:column;width:max-content;line-height:1}
.brand-ja{font-family:var(--serif);font-size:25px;letter-spacing:.14em}
.brand-en{font-family:Georgia,serif;font-size:9px;letter-spacing:.35em;margin-top:9px}
.site-nav{display:flex;justify-content:center;gap:28px;font-size:12px;letter-spacing:.08em}
.site-nav a{position:relative;padding:29px 0 25px}
.site-nav a:after{content:"";position:absolute;left:0;bottom:19px;width:0;height:1px;background:var(--red);transition:.25s}
.site-nav a:hover:after,.site-nav a.active:after{width:100%}
.header-cta{background:var(--red);color:white;padding:13px 25px;font-family:var(--serif);font-size:14px;white-space:nowrap}
.header-cta span,.button span,.text-button span,.news-link span{margin-left:12px}
.header-tagline{font-family:var(--serif);font-size:12px;line-height:1.55;border-left:1px solid var(--line);padding-left:22px;margin:0}
.nav-toggle{display:none;border:0;background:none;padding:8px;min-width:44px;min-height:44px;align-items:center;justify-content:center;flex-direction:column}.nav-toggle span{display:block;width:24px;height:1px;background:var(--ink);margin:5px}
/* 03. Hero */
.hero{position:relative;min-height:620px;overflow:hidden;background:linear-gradient(105deg,#fffdf8 0 36%,#f5efe6 65%,#f9f4ed 100%)}
.hero-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-bg:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 67% 36%,rgba(255,255,255,.96) 0 11%,rgba(255,230,185,.56) 26%,transparent 48%),linear-gradient(90deg,rgba(255,253,248,.96),rgba(255,253,248,.25) 60%,rgba(255,246,233,.55));z-index:2}
.sun{position:absolute;width:300px;height:300px;border-radius:50%;right:16%;top:-40px;background:radial-gradient(circle,rgba(255,241,205,.95),rgba(255,224,162,.15) 45%,transparent 70%);filter:blur(1px)}
.city{position:absolute;left:52%;right:8%;bottom:0;height:35%;background:linear-gradient(90deg,transparent 0 5%,rgba(84,93,103,.22) 5% 8%,transparent 8% 12%,rgba(79,89,101,.2) 12% 18%,transparent 18% 22%,rgba(77,89,104,.24) 22% 28%,transparent 28% 32%,rgba(74,85,97,.18) 32% 39%,transparent 39% 43%,rgba(83,94,106,.22) 43% 47%,transparent 47% 52%,rgba(87,98,109,.18) 52% 60%,transparent 60%);clip-path:polygon(0 80%,4% 64%,7% 64%,7% 34%,10% 34%,10% 68%,14% 68%,14% 45%,18% 45%,18% 76%,24% 76%,24% 20%,29% 20%,29% 73%,34% 73%,34% 44%,38% 44%,38% 63%,43% 63%,43% 29%,49% 29%,49% 70%,55% 70%,55% 48%,60% 48%,60% 77%,66% 77%,66% 21%,72% 21%,72% 65%,78% 65%,78% 39%,84% 39%,84% 70%,90% 70%,90% 52%,96% 52%,96% 80%,100% 80%,100% 100%,0 100%)}
.temple{position:absolute;right:-50px;top:0;width:250px;height:320px;background:linear-gradient(90deg,#7a2322,#b65043);clip-path:polygon(55% 0,100% 0,100% 100%,88% 100%,88% 32%,54% 28%,54% 100%,45% 100%,45% 27%,0 21%,0 10%,48% 15%);opacity:.7;z-index:1}
.sakura{position:absolute;border-radius:50%;filter:blur(.3px);opacity:.75;z-index:3}.s1{width:260px;height:260px;left:-80px;top:-60px;background:radial-gradient(circle at 32% 38%,#f8ded9 0 7%,transparent 8%),radial-gradient(circle at 62% 27%,#f2cbc5 0 8%,transparent 9%),radial-gradient(circle at 45% 70%,#f8e5df 0 8%,transparent 9%),radial-gradient(circle at 78% 58%,#efc0bc 0 7%,transparent 8%)}.s2{width:240px;height:220px;right:60px;bottom:-70px;background:radial-gradient(circle at 20% 30%,#f1c8c3 0 7%,transparent 8%),radial-gradient(circle at 50% 40%,#f7dfda 0 8%,transparent 9%),radial-gradient(circle at 75% 55%,#edbeb8 0 8%,transparent 9%)}
.hero-layout{position:relative;z-index:5;display:grid;grid-template-columns:44% 42% 14%;min-height:620px;align-items:stretch}
.hero-copy{align-self:center;padding:54px 0 44px}
.hero-kicker{font-family:Georgia,serif;font-size:10px;letter-spacing:.32em;color:var(--gold);margin:0 0 16px}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(46px,4.2vw,62px);line-height:1.28;letter-spacing:.06em;margin:0 0 24px}.hero-line{display:block;white-space:nowrap}
.hero h1 em{font-style:normal;color:var(--red)}
.hero-lead{font-family:var(--serif);font-size:17px;line-height:2;margin:0 0 22px}
.hero-company{font-family:var(--serif);font-size:22px;margin:0 0 32px}.hero-company small{display:block;font-family:Georgia,serif;font-size:10px;letter-spacing:.38em;margin-top:7px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 28px;border:1px solid transparent;font-size:13px;letter-spacing:.05em;transition:.25s}.button:hover{transform:translateY(-2px)}
.button-gold{background:linear-gradient(100deg,#a98c52,#c0a96f);color:#fff;box-shadow:0 10px 22px rgba(138,107,52,.18)}
.button-red{background:var(--red);color:#fff}
.hero-portrait-wrap{position:relative;align-self:end;height:590px;display:flex;justify-content:center;align-items:flex-end;overflow:visible}
.hero-portrait{position:relative;z-index:4;height:100%;width:auto;max-width:none;object-fit:contain;filter:drop-shadow(0 20px 30px rgba(53,38,31,.08))}
.portrait-halo{position:absolute;z-index:1;width:430px;height:430px;right:3%;top:68px;border-radius:50%;background:radial-gradient(circle,#fff 0 28%,rgba(255,239,203,.55) 45%,transparent 72%)}
.hero-side{position:relative;align-self:center;border-left:1px solid rgba(157,31,34,.45);padding-left:24px;min-height:350px;display:flex;flex-direction:column;justify-content:center}
.vertical-copy{font-family:var(--serif);writing-mode:vertical-rl;text-orientation:upright;font-size:26px;line-height:2;margin:0 auto;letter-spacing:.18em;max-height:240px}
.hero-side-en{font-family:Georgia,serif;font-size:8px;letter-spacing:.14em;line-height:1.7;margin-top:30px}.hero-side-en strong{font-weight:400;font-size:7px}
/* 04. Two pillar services */
.service-pair{display:grid;grid-template-columns:1fr 1fr;min-height:360px}
.service-panel{position:relative;overflow:hidden;padding:48px 48px 42px;color:#fff;display:flex;align-items:flex-end;min-height:360px}
.service-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,12,.76) 0 58%,rgba(8,10,12,.3));z-index:1}
.service-panel.business:after{background:linear-gradient(90deg,rgba(14,25,35,.64) 0 58%,rgba(255,255,255,.12))}
.service-art{position:absolute;inset:0;background:#1a1b1d}.incense-art{background:radial-gradient(circle at 28% 58%,rgba(177,118,69,.5),transparent 18%),radial-gradient(circle at 64% 32%,rgba(240,222,200,.18),transparent 22%),linear-gradient(120deg,#111416,#2a201b 58%,#16191b)}
.incense-art:before{content:"";position:absolute;width:150px;height:68px;border-radius:50%;left:10%;bottom:16%;background:linear-gradient(#45362a,#151719);box-shadow:inset 0 10px 0 #2b241f,0 16px 35px rgba(0,0,0,.35)}
.incense-art:after{content:"";position:absolute;width:22px;height:150px;left:20%;bottom:32%;border-radius:50%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);filter:blur(8px);transform:rotate(8deg)}
.office-art{background:linear-gradient(125deg,#253747,#9eafba 48%,#e4e6e3)}.office-art:before{content:"";position:absolute;left:18%;bottom:18%;width:46%;height:34%;background:#202a32;clip-path:polygon(0 0,100% 12%,92% 100%,8% 88%);box-shadow:0 25px 40px rgba(0,0,0,.32)}.office-art:after{content:"";position:absolute;right:0;top:0;width:50%;height:100%;background:repeating-linear-gradient(90deg,transparent 0 36px,rgba(255,255,255,.22) 37px 40px),linear-gradient(rgba(214,226,231,.1),rgba(255,255,255,.18))}
.service-content{position:relative;z-index:3;max-width:520px}.en-label{font-family:Georgia,serif;font-size:15px;letter-spacing:.05em;margin:0 0 8px}.service-content h2{font-family:var(--serif);font-size:24px;font-weight:500;margin:0 0 12px;line-height:1.45}.service-content p{font-size:13px;line-height:1.8;margin:0 0 18px}.button-outline-light{border-color:rgba(255,255,255,.75);color:#fff;background:rgba(0,0,0,.08)}
.vertical-caption{position:absolute;z-index:4;right:28px;top:45px;writing-mode:vertical-rl;font-family:var(--serif);font-size:19px;letter-spacing:.1em;line-height:1.8;border-left:1px solid rgba(179,154,98,.72);padding-left:14px}.vertical-caption.dark-text{color:#222;background:rgba(255,255,255,.42);padding-top:8px;padding-bottom:8px}
/* 05. About / shared philosophy */
.about-band{position:relative;background:linear-gradient(90deg,#f8f3e9,#fffdf8);overflow:hidden}
.about-grid{position:relative;display:grid;grid-template-columns:1.15fr .55fr 1.1fr;gap:55px;align-items:center;min-height:300px;padding-top:45px;padding-bottom:45px}.section-label{font-family:Georgia,serif;color:var(--red);font-size:13px;letter-spacing:.06em;margin:0 0 4px}.section-label.light{color:#dac9a4}.about-copy h2,.detail-section h2,.profile-copy h2,.company-section h2{font-family:var(--serif);font-size:34px;font-weight:500;line-height:1.45;margin:0 0 16px}.about-copy p{font-family:var(--serif);font-size:14px;line-height:2}.text-button{display:inline-flex;border:1px solid var(--gold);padding:7px 24px;font-size:12px;margin-top:5px;background:rgba(255,255,255,.45)}
.about-vertical{writing-mode:vertical-rl;font-family:var(--serif);font-size:25px;line-height:1.6;justify-self:center;border-left:1px solid var(--gold);padding-left:18px;max-height:170px}.about-list{list-style:none;padding:0;margin:0;display:grid;gap:22px;font-family:var(--serif);font-size:15px}.about-list span{font-family:Georgia,serif;font-size:20px;color:var(--red);font-style:italic;margin-right:22px}.branch-shadow{position:absolute;right:-55px;top:5px;width:330px;height:300px;opacity:.16;background:radial-gradient(ellipse at 30% 30%,#6d4e43 0 3px,transparent 4px),radial-gradient(ellipse at 55% 50%,#6d4e43 0 4px,transparent 5px),linear-gradient(25deg,transparent 48%,#5e453c 49% 50%,transparent 51%);filter:blur(.4px)}
/* 06. News */
.news-strip{background:#fffdfa;border-top:1px solid #ebe5da;border-bottom:1px solid #ebe5da}.news-grid{display:grid;grid-template-columns:140px 1fr 120px;gap:30px;align-items:center;padding-top:23px;padding-bottom:23px}.news-grid h2{font-family:var(--serif);font-size:16px;font-weight:500;margin:0}.news-items p{display:grid;grid-template-columns:95px 1fr;margin:2px 0;font-size:12px}.news-items time{font-family:Georgia,serif;color:#393939}.news-link{font-size:12px;border-bottom:1px solid var(--gold);padding:5px 0;text-align:right}
/* 07. Primary CTA */
.sunrise-cta{position:relative;height:260px;overflow:hidden;background:linear-gradient(#d7e0e7 0,#f4d3ac 54%,#fff1dc 100%);display:grid;place-items:center}.sunrise-cta:before{content:"";position:absolute;right:16%;top:18%;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#fff9d7 0 18%,#ffd987 20% 28%,rgba(255,201,107,.18) 42%,transparent 70%);box-shadow:0 0 80px rgba(255,199,88,.55)}
.mountains{position:absolute;inset:0;overflow:hidden}.mountains i,.mountains b,.mountains span{position:absolute;left:-5%;right:-5%;bottom:-5%;height:74%;display:block}.mountains i{background:#596772;clip-path:polygon(0 86%,10% 67%,18% 82%,28% 54%,37% 79%,48% 50%,58% 80%,68% 45%,79% 75%,90% 53%,100% 82%,100% 100%,0 100%);opacity:.83}.mountains b{background:#374652;clip-path:polygon(0 92%,13% 71%,24% 91%,37% 64%,51% 90%,64% 59%,77% 90%,89% 70%,100% 91%,100% 100%,0 100%);opacity:.85}.mountains span{background:#f6f0e8;clip-path:polygon(0 86%,9% 80%,16% 83%,23% 74%,31% 82%,40% 76%,49% 86%,59% 73%,68% 84%,80% 74%,92% 82%,100% 78%,100% 100%,0 100%);opacity:.78;filter:blur(8px)}
.sunrise-content{position:relative;z-index:5;text-align:center}.sunrise-content p{font-family:var(--serif);font-size:20px;letter-spacing:.06em;margin:0 0 17px;text-shadow:0 1px 12px rgba(255,255,255,.65)}
/* 08. Detail sections */
.detail-section{padding:95px 0}.content-narrow{max-width:850px}.detail-section h2{font-size:42px}.detail-section .lead{font-family:var(--serif);font-size:19px;line-height:2}.paper-section{background:var(--paper-2);background-image:linear-gradient(rgba(179,154,98,.025) 1px,transparent 1px);background-size:100% 32px}.paper-section blockquote{font-family:var(--serif);font-size:28px;border-left:2px solid var(--gold);padding:10px 0 10px 28px;margin:40px 0 0}
.navy-section{background:var(--navy-2);color:#f8f5ed}.navy-section h2{color:#fff}.light{color:#e8e1d4}.business-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:42px}.business-grid article{padding:34px;border:1px solid rgba(255,255,255,.15)}.business-grid h3{font-family:var(--serif);font-size:24px;font-weight:500;line-height:1.6;margin-top:0}.dark-quote{font-family:var(--serif);font-size:21px;border-left:2px solid var(--gold);padding-left:20px;margin:25px 0}.value-card{background:linear-gradient(135deg,rgba(179,154,98,.14),rgba(255,255,255,.035))}.mini-label{color:#d6c49e;font-family:Georgia,serif;letter-spacing:.18em;font-size:11px}.statement{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:55px 0 45px}.statement span{font-family:var(--serif);font-size:23px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);padding:15px 24px}.support-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.13);margin-top:20px}.support-flow div{background:#121c27;padding:25px}.support-flow span{display:block;color:#c9aa6d;font-family:Georgia,serif;font-size:22px}.support-flow strong{display:block;font-family:var(--serif);font-size:16px;margin:6px 0}.support-flow small{color:#bfc3c8}.graduation{text-align:center;margin:34px 0 0;color:#e2ddd2}.graduation span{color:#c9aa6d;margin:0 11px}.graduation strong{color:#fff}
.philosophy-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:70px}.philosophy-list article{padding:25px 0;border-top:1px solid var(--line)}.philosophy-list article:last-child{border-bottom:1px solid var(--line)}.philosophy-list small{font-family:Georgia,serif;letter-spacing:.16em;color:var(--red)}.philosophy-list h3{font-family:var(--serif);font-weight:500;font-size:20px;line-height:1.8;margin:8px 0}
.profile-section{background:#eee6da}.profile-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;align-items:center}.profile-photo-frame{position:relative;aspect-ratio:4/5;overflow:hidden;box-shadow:var(--shadow);background:#d9c3b5}.profile-photo-frame:before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.6);z-index:2;pointer-events:none}.profile-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 38%}.rep-title{color:var(--red);font-family:var(--serif);font-size:17px}
.company-section{background:#fffdf9}.company-grid{display:grid;grid-template-columns:.65fr 1.35fr;gap:65px}.company-table{margin:0}.company-table div{display:grid;grid-template-columns:150px 1fr;padding:18px 0;border-top:1px solid var(--line)}.company-table div:last-child{border-bottom:1px solid var(--line)}.company-table dt{font-family:var(--serif)}.company-table dd{margin:0;font-size:14px}
.contact-section{background:linear-gradient(135deg,#172536,#0f1822);color:#fff;text-align:center}.contact-inner{max-width:760px}.contact-section h2{font-family:var(--serif);font-size:40px;font-weight:500}.contact-actions{display:flex;justify-content:center;gap:14px;margin:30px 0}.note{font-size:11px;color:#c0c5ca}
/* 09. Footer */
.site-footer{background:#fffdf9;border-top:1px solid #e5dfd3;padding:35px 0 22px}.footer-main{display:grid;grid-template-columns:180px 1fr auto 150px;gap:30px;align-items:center}.footer-nav{display:flex;justify-content:center;gap:25px;font-size:11px}.socials{display:flex;gap:12px}.socials a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 4px;font-size:11px;letter-spacing:.04em}.socials svg{width:22px;height:22px;display:block;flex:0 0 auto}.socials span{white-space:nowrap}.footer-copyline{font-family:var(--serif);font-size:12px;line-height:1.6;border-left:1px solid var(--line);padding-left:22px}.footer-legal{display:flex;justify-content:space-between;align-items:center;margin-top:26px;font-size:10px;color:#686868}.footer-legal div{display:flex;gap:20px}
/* 10. Responsive */
@media (max-width:1000px){
 .header-inner{grid-template-columns:215px 1fr auto}.header-tagline{display:none}.site-nav{gap:18px}.hero-layout{grid-template-columns:48% 42% 10%}.hero h1{font-size:52px}.hero-side{padding-left:13px}.vertical-copy{font-size:20px}.service-content h2{font-size:20px}.vertical-caption{display:none}.about-grid{grid-template-columns:1.1fr .5fr 1fr;gap:28px}.footer-main{grid-template-columns:215px 1fr auto}.footer-copyline{display:none}
}
@media (max-width:760px){
 .shell{width:min(100% - 34px,680px)}.site-header{position:sticky}.header-inner{height:66px;display:flex;justify-content:space-between}.brand-ja{font-size:20px;letter-spacing:.08em}.site-nav{position:fixed;left:0;right:0;top:66px;background:rgba(255,253,248,.98);display:none;flex-direction:column;padding:20px 24px;gap:0;border-bottom:1px solid var(--line)}.site-nav.open{display:flex}.site-nav a{padding:11px 0;min-height:44px;display:flex;align-items:center}.site-nav a:after{bottom:7px}.header-cta{display:none}.nav-toggle{display:flex}
 .hero{min-height:720px}.hero-layout{display:grid;grid-template-columns:1fr;min-height:720px;padding-top:28px}.hero-copy{position:relative;z-index:8;padding:0;width:84%;align-self:start}.hero h1{font-size:45px}.hero-lead{font-size:14px}.hero-company{font-size:18px}.hero-portrait-wrap{position:absolute;right:-70px;bottom:0;height:500px;width:88%;z-index:4;opacity:.94}.hero-side{display:none}.hero-bg:before{background:linear-gradient(180deg,rgba(255,253,248,.96) 0 36%,rgba(255,253,248,.18) 64%,rgba(255,246,233,.45))}.temple{right:-100px;opacity:.45}
 .service-pair{grid-template-columns:1fr}.service-panel{min-height:340px;padding:36px 30px}.about-grid{grid-template-columns:1fr;gap:25px;padding-top:40px;padding-bottom:40px}.about-vertical{writing-mode:horizontal-tb;max-height:none;border-left:0;border-top:1px solid var(--gold);padding:16px 0 0;justify-self:start;font-size:23px}.branch-shadow{right:-130px;top:90px}.news-grid{grid-template-columns:1fr;gap:10px;padding:25px 0}.news-items p{grid-template-columns:78px 1fr}.news-link{text-align:left;width:max-content}.sunrise-cta{height:300px}.sunrise-content p{font-size:16px}.detail-section{padding:70px 0}.detail-section h2{font-size:32px}.business-grid,.philosophy-grid,.profile-grid,.company-grid{grid-template-columns:1fr}.support-flow{grid-template-columns:1fr 1fr}.statement span{font-size:18px}.profile-photo-frame{max-width:420px;width:100%;margin:auto}.company-table div{grid-template-columns:1fr;gap:6px}.contact-actions{flex-direction:column;align-items:center}.footer-main{grid-template-columns:1fr;gap:18px}.footer-nav{justify-content:flex-start;flex-wrap:wrap}.socials{justify-content:flex-start}.footer-legal{flex-direction:column;align-items:flex-start;gap:8px}.footer-legal div{flex-direction:column;gap:5px}
}
@media (max-width:480px){.hero h1{font-size:37px;letter-spacing:.035em}.hero-copy{width:96%}.hero-portrait-wrap{right:-92px;height:455px;width:110%}.support-flow{grid-template-columns:1fr}.button{padding:0 20px}.service-panel{padding:32px 22px}.service-content h2{font-size:19px}.about-copy h2{font-size:29px}}

/* 11. QA / accessibility guards */
section[id]{scroll-margin-top:92px}
:focus-visible{outline:2px solid var(--red);outline-offset:4px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.site-nav a:after{transition:none}.button:hover{transform:none}}

@media (max-width:760px){.button,.header-cta{min-height:44px}.footer-nav a{min-height:44px;display:inline-flex;align-items:center}.site-header{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.site-nav{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}}

/* Content QA v7: representative legal-name bridge */
.rep-legal-name {
  font-size: 0.62em;
  font-weight: 500;
  white-space: nowrap;
}

@media (max-width: 480px) {
  .rep-legal-name {
    display: block;
    margin-top: 0.35em;
    font-size: 0.58em;
    white-space: normal;
  }
}

/* Content QA v9: make the shared operating principle visually distinct without changing the page structure. */
.about-principle{margin:20px 0;padding:16px 18px;border-left:2px solid var(--red);background:rgba(157,31,34,.045);font-family:var(--serif)}
.about-principle strong{display:block;font-size:17px;line-height:1.75;font-weight:600;margin-bottom:5px}
.about-principle span{display:block;font-size:13px;line-height:1.9}
@media (max-width:760px){.about-principle{margin:18px 0;padding:14px 16px}.about-principle strong{font-size:16px}.about-principle span{font-size:13px}}

/* v12 visual fidelity pass — bring live site closer to approved photographic mockup */
.hero{background:linear-gradient(105deg,#fffaf2 0 35%,#f4dfcf 66%,#eee2d8 100%)}
.hero-bg{background:
  radial-gradient(circle at 12% 14%,rgba(180,58,66,.22) 0 2px,transparent 3px),
  radial-gradient(circle at 18% 9%,rgba(190,75,82,.18) 0 3px,transparent 4px),
  linear-gradient(115deg,transparent 0 64%,rgba(112,20,20,.12) 64.2% 65%,transparent 65.2%);
}
.hero-bg:before{background:linear-gradient(90deg,rgba(255,252,246,.98) 0 33%,rgba(255,250,243,.60) 48%,rgba(246,225,209,.18) 72%,rgba(245,233,223,.42) 100%)}
.hero-bg:after{content:"";position:absolute;inset:0;background:
 radial-gradient(ellipse at 78% 84%,rgba(55,69,76,.26),transparent 23%),
 linear-gradient(90deg,transparent 57%,rgba(130,48,37,.08));opacity:.75}
.temple{right:-20px;top:0;width:25%;height:100%;background:linear-gradient(90deg,transparent,rgba(122,31,26,.18)),linear-gradient(#8f2b24 0 8%,transparent 8% 100%);clip-path:polygon(35% 0,100% 0,100% 100%,64% 100%,64% 23%,30% 18%,0 13%,0 8%);opacity:.72}
.city{right:17%;bottom:0;width:31%;height:52%;opacity:.34;background:repeating-linear-gradient(90deg,rgba(54,75,83,.62) 0 8px,transparent 8px 18px);clip-path:polygon(0 100%,0 48%,8% 48%,8% 27%,17% 27%,17% 62%,27% 62%,27% 15%,36% 15%,36% 52%,46% 52%,46% 34%,57% 34%,57% 70%,67% 70%,67% 22%,78% 22%,78% 58%,88% 58%,88% 39%,100% 39%,100% 100%)}
.sakura{opacity:.9;filter:drop-shadow(0 3px 4px rgba(95,35,38,.12))}
.sakura:before,.sakura:after{content:"✿";position:absolute;color:#d9878d;text-shadow:28px 16px 0 #efb5b5,55px -7px 0 #c85e69,82px 22px 0 #f0c4bd,110px 2px 0 #d98287;font-size:34px}
.s1{left:-12px;top:4px}.s2{right:40px;top:26px;transform:scale(.75) rotate(12deg)}
.hero-portrait{filter:drop-shadow(0 18px 26px rgba(73,37,28,.16)) saturate(.95) contrast(1.02)}

.service-panel.spiritual .service-art{background-image:url('assets/spiritual-clean.jpg');background-size:cover;background-position:center}
.service-panel.business .service-art{background-image:url('assets/business-clean.jpg');background-size:cover;background-position:center}
.service-panel:after{background:linear-gradient(90deg,rgba(8,9,10,.82) 0 48%,rgba(8,9,10,.28) 100%)}
.service-panel.business:after{background:linear-gradient(90deg,rgba(13,23,30,.74) 0 48%,rgba(13,23,30,.16) 100%)}
.incense-art:before,.incense-art:after,.business-art:before,.business-art:after{display:none}

.about-band{background:#f7f0e4}
.about-band:after{content:"";position:absolute;right:0;top:0;width:32%;height:100%;background:url('assets/about-clean.jpg') center/cover no-repeat;opacity:.28;mix-blend-mode:multiply;pointer-events:none}
.about-grid{z-index:1}

.sunrise-cta{height:280px;background:url('assets/sunrise-clean.jpg') center 58%/cover no-repeat}
.sunrise-cta:before{inset:0;width:auto;height:auto;border-radius:0;background:linear-gradient(180deg,rgba(255,250,239,.05),rgba(88,41,27,.08));box-shadow:none}
.sunrise-content{background:rgba(255,250,241,.18);padding:18px 34px;backdrop-filter:blur(1.5px)}
.sunrise-content p{text-shadow:0 2px 12px rgba(255,255,255,.95)}

@media(max-width:760px){
 .hero{min-height:740px;background:linear-gradient(180deg,#fffaf2 0 43%,#ead5c8 100%)}
 .hero-bg:before{background:linear-gradient(180deg,rgba(255,252,246,.98) 0 34%,rgba(255,249,240,.48) 52%,rgba(238,213,198,.10) 100%)}
 .temple{right:-55px;width:48%;opacity:.5}.city{right:0;width:55%;opacity:.22}
 .s1{top:0;left:-20px}.s2{right:-25px;top:70px}
 .service-panel.spiritual .service-art,.service-panel.business .service-art{background-position:center}
 .about-band:after{width:58%;opacity:.16}
 .sunrise-cta{height:250px;background-position:center}
 .sunrise-content{margin:0 16px;padding:16px 18px}
}
/* v12.1 polish */
.hero-bg{background-image:linear-gradient(90deg,transparent 0 62%,rgba(255,255,255,.08)),url('assets/hero-mobile-clean.jpg');background-size:auto,31% 100%;background-position:0 0,right center;background-repeat:no-repeat;}
.service-panel .service-art{filter:blur(1.2px) saturate(.9) contrast(1.05);transform:scale(1.015)}
.mountains{display:none}
@media(max-width:760px){.hero-bg{background-size:auto,58% 100%;background-position:0 0,right center;opacity:.9}}

/* =========================================================
   v13 MOBILE-FIRST VISUAL FIDELITY — approved iPhone mockup
   Desktop rules above remain untouched.
   ========================================================= */
@media (max-width: 760px) {
  html,body{overflow-x:hidden;background:#fffdf8}
  .shell{width:calc(100% - 48px);max-width:none}
  .site-header{position:sticky;top:0;background:#fffdf8;backdrop-filter:none;border-bottom:0}
  .header-inner{height:92px;padding-top:max(8px,env(safe-area-inset-top));align-items:center}
  .brand-ja{font-size:30px;line-height:1;letter-spacing:.08em}
  .brand-en{font-size:9px;letter-spacing:.28em;margin-top:7px}
  .nav-toggle{width:48px;height:48px;padding:7px;margin-right:-7px}
  .nav-toggle span{width:29px;height:2px;margin:4px;background:#171411}
  .site-nav{top:92px}

  .hero{min-height:0;height:680px;position:relative;background:#f7e8d8}
  .hero-bg{opacity:1;background:
    linear-gradient(180deg,rgba(255,250,241,.05),rgba(255,245,232,.08)),
    url('assets/hero-mobile-clean.jpg') center/cover no-repeat}
  .hero-bg:before{background:
    radial-gradient(circle at 15% 16%,rgba(255,255,255,.58),transparent 27%),
    linear-gradient(180deg,rgba(255,250,240,.16),rgba(239,207,186,.04))}
  .hero-bg:after{background:linear-gradient(90deg,rgba(255,250,242,.20),transparent 50%);opacity:1}
  .temple,.city,.sun{display:none}
  .sakura{z-index:4}.s1{left:-20px;top:4px}.s2{right:30px;top:72px}
  .hero-layout{display:block;min-height:0;height:100%;padding-top:0}
  .hero-copy{position:absolute;left:24px;top:58px;width:calc(100% - 48px);z-index:10;padding:0}
  .hero-kicker{display:none}
  .hero h1{font-size:40px;line-height:1.28;letter-spacing:.025em;margin:0 0 14px;text-shadow:0 1px 8px rgba(255,255,255,.65)}
  .hero-line{white-space:normal}
  .hero-lead{font-size:13px;line-height:1.85;margin:0 0 13px;max-width:285px;text-shadow:0 1px 7px rgba(255,255,255,.8)}
  .hero-company{font-size:19px;line-height:1.4;margin:0 0 14px}.hero-company small{font-size:9px;margin-top:3px}
  .hero-copy .button{height:52px;min-height:52px;padding:0 22px;font-size:13px;background:#a61d20;border-color:#a61d20;color:#fff;box-shadow:0 7px 18px rgba(116,23,25,.18)}
  .hero-portrait-wrap{position:absolute;right:-78px;bottom:-6px;width:370px;height:525px;z-index:7;overflow:hidden;opacity:1}
  .hero-portrait{width:100%;height:100%;object-fit:cover;object-position:52% 35%;filter:saturate(.82) contrast(1.02);mix-blend-mode:multiply;opacity:.96}
  .portrait-halo{display:none}
  .hero-side{display:flex;position:absolute;left:24px;bottom:36px;z-index:12;width:190px;min-height:0;border-left:1px solid #a61d20;padding:0 0 0 14px;align-self:auto;justify-content:flex-start}
  .vertical-copy{writing-mode:horizontal-tb;font-size:20px;line-height:1.45;letter-spacing:.08em;margin:0 0 12px}
  .hero-side-en{font-size:8px;line-height:1.65;letter-spacing:.12em;margin:0}.hero-side-en strong{font-size:7px}

  .service-pair{display:block}
  .service-panel{min-height:365px;padding:32px 24px 26px;align-items:flex-end}
  .service-panel .service-art{filter:saturate(.9) contrast(1.05);transform:none;background-position:center}
  .service-panel:after{background:linear-gradient(90deg,rgba(5,7,8,.82) 0 68%,rgba(5,7,8,.28) 100%)}
  .service-panel.business:after{background:linear-gradient(90deg,rgba(10,19,25,.72) 0 68%,rgba(10,19,25,.12) 100%)}
  .service-content{max-width:84%;z-index:5}
  .en-label{font-size:14px;margin-bottom:7px}
  .service-content h2{font-size:21px;line-height:1.45;margin-bottom:10px}
  .service-content p{font-size:12px;line-height:1.75;margin-bottom:14px}
  .service-content .button{height:46px;min-height:46px;padding:0 18px;font-size:12px}
  .vertical-caption{display:block;right:18px;top:32px;font-size:17px;line-height:1.7;padding-left:10px;background:none!important;color:#fff!important;border-left:1px solid rgba(199,128,77,.85)}
  .service-panel.business .vertical-caption{color:#2c211c!important;text-shadow:0 1px 6px rgba(255,255,255,.9)}

  .about-band{background:#fbf7f0}
  .about-band:after{width:100%;height:180px;opacity:.17;background-position:top right}
  .about-grid{display:grid;grid-template-columns:1fr 96px;gap:20px;padding:38px 0 42px;align-items:start}
  .about-copy{grid-column:1/-1;position:relative;z-index:2}
  .section-label{font-size:14px;margin-bottom:5px}
  .about-copy h2{font-size:27px;line-height:1.4;margin-bottom:14px}
  .about-copy p{font-size:13px;line-height:1.9}
  .about-principle{margin:18px 0;padding:13px 14px;background:rgba(157,31,34,.035)}
  .about-principle strong{font-size:15px}.about-principle span{font-size:12px}
  .about-copy .text-button{padding:10px 25px;font-size:12px;margin-top:5px}
  .about-vertical{grid-column:2;grid-row:2;writing-mode:vertical-rl;max-height:210px;border-top:0;border-left:1px solid #b62a2c;padding:0 0 0 12px;justify-self:end;font-size:21px;line-height:1.6}
  .about-list{grid-column:1;grid-row:2;gap:25px;font-size:14px;padding-top:8px}
  .about-list span{font-size:22px;margin-right:16px}

  .news-grid{padding:26px 0 28px;grid-template-columns:1fr auto;gap:12px 16px}
  .news-title h2{font-size:22px}.news-title .section-label{font-size:13px}
  .news-items{grid-column:1/-1}.news-items p{grid-template-columns:90px 1fr;font-size:12px;line-height:1.65;margin:8px 0}
  .news-link{grid-column:2;grid-row:1;align-self:end;font-size:12px}

  .sunrise-cta{height:315px;background-position:center 60%}
  .sunrise-content{margin:0 20px;padding:20px 14px;background:transparent;backdrop-filter:none}
  .sunrise-content p{font-size:20px;line-height:1.7;margin-bottom:18px;text-shadow:0 1px 8px #fff}
  .sunrise-content .button{height:54px;min-height:54px;background:#a61d20;border-color:#a61d20;color:#fff;padding:0 26px}

  .site-footer{background:#fffdf8;padding-top:30px}
  .footer-main{display:grid;grid-template-columns:1fr;gap:20px;padding-bottom:24px}
  .footer-main .brand-ja{font-size:27px}.footer-main .brand-en{font-size:8px}
  .socials{gap:15px}.social-link{min-height:44px}
  .footer-nav{gap:4px 18px}.footer-nav a{font-size:12px}
  .footer-legal{font-size:10px;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
}

@media (max-width: 390px) {
  .hero{height:650px}
  .hero h1{font-size:36px}
  .hero-lead{font-size:12px;max-width:255px}
  .hero-portrait-wrap{right:-86px;width:350px;height:495px}
  .hero-side{bottom:28px}
  .service-panel{min-height:350px}
  .service-content h2{font-size:19px}
  .about-copy h2{font-size:25px}
}
@media(max-width:760px){.hero-portrait{object-fit:contain;object-position:center bottom;mix-blend-mode:normal;opacity:1;filter:drop-shadow(0 14px 18px rgba(70,35,28,.12))}}
@media(max-width:760px){
 .hero-bg{background-image:linear-gradient(90deg,rgba(255,248,237,.42),rgba(255,248,237,.02)),url('assets/hero-mobile-clean.jpg');background-size:auto,cover;background-position:0 0,center center;background-repeat:no-repeat}
 .hero-bg:before{background:linear-gradient(180deg,rgba(255,249,239,.22),rgba(255,245,234,.02))}
 .sakura{display:none}
 .hero-portrait-wrap{right:-48px;bottom:-2px;width:340px;height:500px}
 .hero-portrait{object-fit:contain;object-position:center bottom}
}

/* =========================================================
   v15 IPHONE VISUAL POLISH — single decisive mobile override
   ========================================================= */
@media (max-width:760px){
  .shell{width:calc(100% - 40px)}
  .site-header{z-index:100}
  .header-inner{height:82px}
  .brand-ja{font-size:27px}.brand-en{font-size:8px;margin-top:5px}
  .site-nav{top:82px}

  .hero{height:690px;background:#f4e2d1}
  .hero-bg{background-image:linear-gradient(180deg,rgba(255,250,242,.08),rgba(244,224,207,.04)),url('assets/hero-mobile-clean.jpg');background-size:cover;background-position:center center}
  .hero-bg:after{background:linear-gradient(90deg,rgba(255,250,242,.30) 0,rgba(255,250,242,.10) 44%,transparent 72%)}
  .hero-copy{left:20px;top:42px;width:calc(100% - 40px)}
  .hero h1{font-size:38px;line-height:1.25;max-width:340px;margin-bottom:12px}
  .hero-lead{font-size:12px;line-height:1.75;max-width:270px;margin-bottom:10px}
  .hero-company{font-size:17px;margin-bottom:12px}
  .hero-copy .button{height:48px;min-height:48px;padding:0 19px}
  .hero-portrait-wrap{right:-42px;bottom:0;width:335px;height:475px;pointer-events:none}
  .hero-portrait{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 13px 17px rgba(62,34,27,.14))}
  .hero-side{left:20px;bottom:25px;width:155px;padding-left:11px}
  .vertical-copy{font-size:17px;line-height:1.42;margin-bottom:8px}.hero-side-en{font-size:7px}

  .service-panel{min-height:340px;padding:28px 20px 24px}
  .service-content{max-width:80%}.service-content h2{font-size:20px}.service-content p{font-size:11.5px;line-height:1.7}
  .vertical-caption{right:14px;top:27px;font-size:15px;padding-left:8px}

  .about-grid{grid-template-columns:1fr 72px;gap:14px;padding:34px 0 36px}
  .about-copy h2{font-size:25px}.about-copy p{font-size:12px;line-height:1.85}
  .about-principle{margin:15px 0;padding:12px 13px}.about-principle strong{font-size:14px}.about-principle span{font-size:11.5px}
  .about-vertical{font-size:18px;padding-left:9px;max-height:190px}
  .about-list{gap:21px;font-size:13px}.about-list span{font-size:20px;margin-right:12px}

  .news-grid{padding:22px 0 24px}.news-title h2{font-size:20px}.news-items p{font-size:11.5px;margin:7px 0}
  .sunrise-cta{height:285px}.sunrise-content p{font-size:18px}.sunrise-content .button{height:50px;min-height:50px}
  .site-footer{padding-top:26px}.footer-main{gap:16px}.socials{gap:12px;flex-wrap:wrap}.socials a{min-height:44px}
}
@media (max-width:390px){
  .hero{height:660px}.hero h1{font-size:34px}.hero-copy{top:38px}.hero-portrait-wrap{right:-52px;width:315px;height:445px}.hero-side{bottom:22px}.service-panel{min-height:325px}
}
@media (max-width:340px){
  .hero h1{font-size:31px}.hero-lead{max-width:230px}.hero-portrait-wrap{right:-66px;width:295px}.hero-side{width:135px}.vertical-copy{font-size:15px}.service-content{max-width:78%}.about-grid{grid-template-columns:1fr 58px}.about-vertical{font-size:16px}
}

/* =========================================================
   v16 IPHONE — representative restoration + collision fixes
   Acceptance target: approved iPhone mockup.
   ========================================================= */
@media (max-width:760px){
  .hero{height:700px;isolation:isolate}
  .hero-bg{z-index:0}
  .hero-layout{position:relative;z-index:1}
  .hero-copy{z-index:30;pointer-events:auto}
  .hero-copy h1,.hero-lead,.hero-company{position:relative;z-index:31}
  .hero-portrait-wrap{
    display:block!important;visibility:visible!important;opacity:1!important;
    z-index:20!important;right:-30px!important;bottom:0!important;
    width:330px!important;height:465px!important;overflow:visible!important;
    pointer-events:none;
  }
  .hero-portrait{
    display:block!important;visibility:visible!important;opacity:1!important;
    width:100%!important;height:100%!important;max-width:none!important;
    object-fit:contain!important;object-position:center bottom!important;
    mix-blend-mode:normal!important;
    filter:drop-shadow(0 14px 18px rgba(62,34,27,.16))!important;
  }
  .hero-side{z-index:32;left:20px;bottom:24px;width:145px}

  .service-panel{overflow:hidden}
  .service-content{max-width:calc(100% - 54px);min-width:0}
  .service-content h2{font-size:19px;line-height:1.45;letter-spacing:.015em;word-break:keep-all;overflow-wrap:normal}
  .service-content p{word-break:normal;overflow-wrap:anywhere}
  .vertical-caption{z-index:8;width:32px;max-width:32px;white-space:normal}
}
@media (max-width:390px){
  .hero{height:680px}
  .hero-copy{top:36px}
  .hero h1{font-size:34px}
  .hero-portrait-wrap{right:-38px!important;width:315px!important;height:445px!important}
  .hero-side{bottom:21px;width:138px}
  .service-content h2{font-size:18px}
}
@media (max-width:340px){
  .hero{height:650px}
  .hero-portrait-wrap{right:-48px!important;width:292px!important;height:415px!important}
  .service-content{max-width:calc(100% - 48px)}
  .service-content h2{font-size:17px}
}

/* =========================================================
   v17 iPhone hero: preserve the representative photo intact.
   Do NOT use the destructive transparent cutout from v16.
   The original portrait is framed as a photographic layer and
   feathered into the scenic background so skin/kimono/fan pixels
   can never disappear again.
   ========================================================= */
@media (max-width:760px){
  .hero{height:700px;overflow:hidden;background:#f5e8da}
  .hero-bg{z-index:0}
  .hero-copy{z-index:30;top:38px}
  .hero-copy h1,.hero-lead,.hero-company,.hero-copy .button{position:relative;z-index:31}
  .hero-portrait-wrap{
    display:block!important;visibility:visible!important;opacity:1!important;
    position:absolute!important;z-index:8!important;
    right:-6px!important;bottom:0!important;
    width:285px!important;height:455px!important;
    overflow:hidden!important;pointer-events:none;
    border-radius:48% 0 0 0 / 18% 0 0 0;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 82%,transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 82%,transparent 100%);
  }
  .hero-portrait{
    display:block!important;visibility:visible!important;opacity:1!important;
    width:100%!important;height:100%!important;
    object-fit:cover!important;object-position:50% 18%!important;
    mix-blend-mode:normal!important;filter:saturate(.78) brightness(1.06) contrast(.94)!important;
    transform:none!important;
  }
  .hero-portrait-wrap:after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(90deg,rgba(246,232,217,.94) 0%,rgba(246,232,217,.32) 13%,transparent 32%),
               linear-gradient(180deg,rgba(255,248,240,.20),transparent 30%,rgba(247,231,214,.12));
  }
  .hero-side{z-index:32!important;left:20px;bottom:24px;width:145px}
}
@media (max-width:390px){
  .hero{height:680px}.hero-copy{top:34px}.hero h1{font-size:34px}
  .hero-portrait-wrap{right:-10px!important;width:270px!important;height:430px!important}
}
@media (max-width:340px){
  .hero{height:650px}.hero h1{font-size:31px}
  .hero-portrait-wrap{right:-16px!important;width:250px!important;height:405px!important}
}

/* =========================================================
   v18 DESKTOP FIRST PASS
   Desktop only. V17 mobile rules remain untouched below 1000px.
   Reference: approved IMG_2296 desktop composition.
   ========================================================= */
@media (min-width:1001px){
  .site-header{position:sticky;top:0;background:rgba(255,253,248,.97);box-shadow:0 1px 0 rgba(80,50,35,.08)}
  .header-inner{height:88px;grid-template-columns:190px 1fr auto 150px;gap:26px}
  .brand-ja{font-size:28px}.brand-en{font-size:9px}
  .site-nav{gap:30px;font-family:var(--serif);font-size:13px}
  .header-cta{min-height:48px;display:flex;align-items:center;padding:0 30px;background:#a20f13}

  .hero{min-height:650px;height:calc(100vh - 88px);max-height:760px;background:#f8eee5;isolation:isolate}
  .hero-bg{background-image:url('assets/hero-mobile-clean.jpg');background-size:cover;background-position:center;filter:saturate(.88) contrast(.94);transform:scale(1.01)}
  .hero-bg:before{background:linear-gradient(90deg,rgba(255,250,242,.95) 0%,rgba(255,250,242,.78) 31%,rgba(255,250,242,.20) 54%,rgba(255,250,242,.06) 72%,rgba(255,248,240,.30) 100%);z-index:2}
  .hero-bg:after{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(89,42,28,.08));z-index:2}
  .hero-bg .sun,.hero-bg .temple,.hero-bg .city,.hero-bg .sakura{display:none}
  .hero-layout{width:min(1280px,calc(100% - 80px));grid-template-columns:40% 46% 14%;min-height:100%;height:100%;z-index:4}
  .hero-copy{align-self:center;padding:24px 0 40px;z-index:7}
  .hero-kicker{display:none}
  .hero h1{font-size:clamp(52px,4.35vw,72px);line-height:1.23;letter-spacing:.055em;margin-bottom:24px;text-shadow:0 2px 18px rgba(255,255,255,.7)}
  .hero-lead{font-size:17px;line-height:1.95;margin-bottom:20px}
  .hero-company{font-size:23px;margin-bottom:26px}.hero-company small{font-size:10px}
  .button-gold{background:#a20f13;box-shadow:0 12px 30px rgba(117,14,17,.18);min-height:52px;padding:0 34px;font-family:var(--serif);font-size:15px}

  /* Keep the representative intact: no alpha cutout on desktop. Soft-edge the original photo panel instead. */
  .hero-portrait-wrap{height:100%;align-self:stretch;overflow:visible;display:flex;align-items:flex-end;justify-content:center;z-index:5}
  .portrait-halo{display:none}
  .hero-portrait{height:min(640px,88%);width:min(560px,100%);object-fit:cover;object-position:center 38%;border-radius:48% 48% 0 0 / 12% 12% 0 0;filter:saturate(.82) brightness(1.04) contrast(.92) drop-shadow(0 20px 35px rgba(60,31,26,.14));
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%),linear-gradient(to top,#000 0,#000 88%,transparent 100%);
    -webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 9%,#000 91%,transparent 100%);}
  .hero-side{align-self:center;min-height:390px;padding-left:28px;border-left:1px solid #a20f13;z-index:8}
  .vertical-copy{font-size:27px;line-height:1.9;letter-spacing:.16em;max-height:280px}
  .hero-side-en{font-size:8px;margin-top:26px}

  .service-pair{grid-template-columns:1fr 1fr;min-height:390px}
  .service-panel{min-height:390px;padding:52px 54px 44px;align-items:flex-end}
  .service-panel.spiritual .service-art,.service-panel.business .service-art{background-size:cover;transform:scale(1.005);filter:saturate(.88) contrast(1.04)}
  .service-panel.spiritual .service-art{background-position:center 52%}.service-panel.business .service-art{background-position:center 52%}
  .service-panel:after{background:linear-gradient(90deg,rgba(4,7,8,.84) 0 48%,rgba(4,7,8,.18) 78%,rgba(4,7,8,.08))}
  .service-panel.business:after{background:linear-gradient(90deg,rgba(12,23,31,.76) 0 48%,rgba(12,23,31,.14) 80%,rgba(12,23,31,.04))}
  .service-content{max-width:560px}.service-content h2{font-size:26px;white-space:nowrap}.service-content p{font-size:14px;line-height:1.85}.en-label{font-size:16px}
  .vertical-caption{right:42px;top:48px;font-size:21px;line-height:1.8}

  .about-band{min-height:330px;background:#f8f2e8}
  .about-band:after{width:38%;opacity:.38;background-position:center}
  .about-grid{grid-template-columns:1.05fr .46fr 1fr;min-height:330px;gap:52px;padding-top:46px;padding-bottom:46px}
  .about-copy h2{font-size:30px}.about-copy>p{font-size:14px;line-height:1.9}
  .about-principle{padding:12px 15px;margin:15px 0}.about-principle strong{font-size:15px}.about-principle span{font-size:12px}
  .about-vertical{font-size:25px;line-height:1.8}
  .about-list li{font-family:var(--serif);font-size:16px}.about-list li span{font-size:26px}

  .news-grid{min-height:100px;align-items:center}.news-items p{margin:3px 0}.news-strip h2{margin:0}
  .sunrise-cta{height:310px;background-position:center 55%}.sunrise-content p{font-size:22px}.sunrise-content .button{min-width:290px}
}

/* =========================================================
   v19 DESKTOP HERO POLISH
   Desktop only. Mobile V17 remains locked.
   Goal: approved wide composition, while preserving the real representative photo.
   ========================================================= */
@media (min-width:1001px){
  .hero{min-height:680px;height:calc(100vh - 88px);max-height:800px;overflow:hidden;background:#f8eee5}
  .hero-bg{background-image:url('assets/hero-mobile-clean.jpg');background-size:cover;background-position:center 47%;filter:saturate(.92) contrast(.96) brightness(1.035);transform:scale(1.015)}
  .hero-bg:before{background:linear-gradient(90deg,rgba(255,250,242,.97) 0%,rgba(255,250,242,.86) 29%,rgba(255,250,242,.34) 47%,rgba(255,250,242,.04) 68%,rgba(255,248,240,.20) 100%)}
  .hero-bg:after{background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(255,245,235,0) 64%,rgba(70,32,25,.07) 100%)}
  .hero-layout{width:min(1360px,calc(100% - 88px));grid-template-columns:39% 48% 13%;gap:0}
  .hero-copy{padding:18px 0 38px 6px}
  .hero h1{font-size:clamp(56px,4.65vw,76px);line-height:1.18;letter-spacing:.045em;margin-bottom:27px}
  .hero-lead{font-size:17px;line-height:2;margin-bottom:21px}
  .hero-company{font-size:24px;line-height:1.25;margin-bottom:27px}.hero-company small{margin-top:8px;letter-spacing:.30em}
  .button-gold{min-height:58px;padding:0 38px;font-size:16px;box-shadow:0 14px 32px rgba(117,14,17,.20)}

  /* Real photo panel: larger, farther right, with soft optical blending rather than destructive cutout. */
  .hero-portrait-wrap{position:relative;height:100%;align-self:stretch;display:flex;align-items:flex-end;justify-content:flex-end;overflow:visible;z-index:5;transform:translateX(18px)}
  .hero-portrait-wrap:before{content:"";position:absolute;inset:7% -3% 0 9%;border-radius:46% 46% 0 0 / 11% 11% 0 0;background:radial-gradient(ellipse at 54% 43%,rgba(255,255,255,.22),transparent 58%);filter:blur(16px);z-index:0;pointer-events:none}
  .hero-portrait{position:relative;z-index:1;height:min(690px,94%);width:min(590px,96%);object-fit:cover;object-position:center 39%;border-radius:46% 46% 0 0 / 10% 10% 0 0;filter:saturate(.80) brightness(1.055) contrast(.91) drop-shadow(0 22px 38px rgba(61,29,24,.13));
    -webkit-mask-image:radial-gradient(ellipse 62% 97% at 52% 56%,#000 72%,rgba(0,0,0,.92) 80%,rgba(0,0,0,.35) 91%,transparent 100%);
    mask-image:radial-gradient(ellipse 62% 97% at 52% 56%,#000 72%,rgba(0,0,0,.92) 80%,rgba(0,0,0,.35) 91%,transparent 100%)}
  .hero-side{align-self:center;min-height:410px;padding-left:25px;transform:translateX(8px);border-left:1px solid rgba(162,15,19,.78)}
  .vertical-copy{font-size:28px;line-height:1.85;letter-spacing:.17em;max-height:295px}
  .hero-side-en{font-size:8px;line-height:1.72;margin-top:24px}

  .service-pair{min-height:420px}
  .service-panel{min-height:420px;padding:58px 60px 48px}
  .service-content{max-width:590px}.service-content h2{font-size:27px}.service-content p{font-size:14px;line-height:1.9}
  .vertical-caption{right:46px;top:52px;font-size:22px}
}

/* =========================================================
   v20 DESKTOP FINISH PASS
   Lock V17 mobile. Refine desktop optical blending/spacing only.
   ========================================================= */
@media (min-width:1001px){
  .hero-layout{grid-template-columns:40% 47% 13%;width:min(1380px,calc(100% - 96px))}
  .hero-copy{padding-left:10px;transform:translateY(-4px)}
  .hero h1{max-width:590px}
  .hero-lead{max-width:510px}

  /* Make the original portrait read as part of the scene rather than a pasted panel. */
  .hero-portrait-wrap{transform:translateX(28px)}
  .hero-portrait-wrap:after{content:"";position:absolute;z-index:2;pointer-events:none;inset:4% -2% 0 4%;background:linear-gradient(90deg,rgba(248,238,229,.92) 0%,rgba(248,238,229,.34) 8%,transparent 20%,transparent 82%,rgba(171,76,63,.10) 100%),linear-gradient(180deg,rgba(255,248,241,.22),transparent 28%,transparent 76%,rgba(111,51,38,.08));filter:blur(.2px)}
  .hero-portrait{height:min(710px,95%);width:min(610px,98%);object-position:center 38%;border-radius:42% 42% 0 0 / 8% 8% 0 0;filter:saturate(.74) brightness(1.07) contrast(.89) sepia(.035) drop-shadow(0 22px 40px rgba(61,29,24,.11));
    -webkit-mask-image:radial-gradient(ellipse 66% 99% at 52% 55%,#000 70%,rgba(0,0,0,.95) 79%,rgba(0,0,0,.55) 88%,transparent 100%);
    mask-image:radial-gradient(ellipse 66% 99% at 52% 55%,#000 70%,rgba(0,0,0,.95) 79%,rgba(0,0,0,.55) 88%,transparent 100%)}
  .hero-side{transform:translateX(2px);padding-left:28px}

  .service-panel{padding-bottom:52px}
  .service-content p{max-width:520px}
  .about-grid{width:min(1180px,calc(100% - 80px))}
  .news-grid{width:min(1180px,calc(100% - 80px))}
}

/* =========================================================
   v21 DESKTOP FINAL RETOUCH
   Preserve V17 mobile and V20 desktop geometry. Optical retouch only.
   ========================================================= */
@media (min-width:1001px){
  /* Hold the approved V20 proportions; improve scene integration only. */
  .hero-bg{filter:saturate(.90) contrast(.955) brightness(1.045)}
  .hero-portrait-wrap{transform:translateX(28px);isolation:isolate}
  .hero-portrait-wrap:before{
    inset:5% -5% -2% 2%;
    border-radius:44% 44% 0 0 / 9% 9% 0 0;
    background:
      radial-gradient(ellipse at 52% 35%,rgba(255,245,235,.34) 0%,rgba(255,245,235,.10) 44%,transparent 70%),
      linear-gradient(90deg,rgba(248,238,229,.46),transparent 24%,transparent 78%,rgba(155,62,52,.08));
    filter:blur(22px);
  }
  .hero-portrait{
    height:min(710px,95%);width:min(610px,98%);
    object-position:center 38%;
    border-radius:40% 40% 0 0 / 7% 7% 0 0;
    filter:saturate(.68) brightness(1.075) contrast(.875) sepia(.055) hue-rotate(-3deg) drop-shadow(0 18px 34px rgba(61,29,24,.085));
    -webkit-mask-image:radial-gradient(ellipse 69% 101% at 52% 55%,#000 67%,rgba(0,0,0,.96) 76%,rgba(0,0,0,.68) 84%,rgba(0,0,0,.22) 92%,transparent 100%);
    mask-image:radial-gradient(ellipse 69% 101% at 52% 55%,#000 67%,rgba(0,0,0,.96) 76%,rgba(0,0,0,.68) 84%,rgba(0,0,0,.22) 92%,transparent 100%);
  }
  .hero-portrait-wrap:after{
    inset:2% -4% -1% 0;
    background:
      linear-gradient(90deg,rgba(248,238,229,.78) 0%,rgba(248,238,229,.20) 10%,transparent 23%,transparent 79%,rgba(168,72,60,.08) 94%,rgba(168,72,60,.18) 100%),
      linear-gradient(180deg,rgba(255,249,242,.18) 0%,transparent 26%,transparent 74%,rgba(116,57,43,.07) 100%);
    filter:blur(1.2px);
  }
  /* Keep copy crisp above the softened photographic transition. */
  .hero-copy,.hero-side{z-index:9}
  .hero h1{text-shadow:0 2px 20px rgba(255,252,247,.78)}
}

/* =========================================================
   v22 DESKTOP AI-INTEGRATED HERO
   Mobile stays on V17 original representative asset.
   Desktop swaps only the visual portrait scene to a pre-composited
   sakura / temple / city image so there is no purple photo rectangle.
   ========================================================= */
.hero-picture{display:contents}
@media (min-width:1001px){
  .hero-portrait-wrap{transform:translateX(18px);overflow:visible}
  .hero-portrait-wrap:before{display:none}
  .hero-picture{display:block;position:relative;width:min(650px,100%);height:100%;z-index:1}
  .hero-picture .hero-portrait{
    position:absolute;right:-8px;bottom:0;
    width:100%;height:96%;object-fit:cover;object-position:center center;
    border-radius:42% 42% 0 0 / 8% 8% 0 0;
    filter:saturate(.88) brightness(1.025) contrast(.96) drop-shadow(0 18px 32px rgba(61,29,24,.08));
    -webkit-mask-image:radial-gradient(ellipse 74% 103% at 53% 54%,#000 70%,rgba(0,0,0,.96) 78%,rgba(0,0,0,.62) 87%,rgba(0,0,0,.16) 95%,transparent 100%);
    mask-image:radial-gradient(ellipse 74% 103% at 53% 54%,#000 70%,rgba(0,0,0,.96) 78%,rgba(0,0,0,.62) 87%,rgba(0,0,0,.16) 95%,transparent 100%);
  }
  .hero-portrait-wrap:after{
    inset:0 -3% 0 -2%;z-index:2;
    background:linear-gradient(90deg,rgba(248,238,229,.76) 0%,rgba(248,238,229,.13) 12%,transparent 25%,transparent 84%,rgba(169,73,61,.08) 100%);
    filter:blur(1px)
  }
}
\n\n/* v23 desktop crop: remove AI-generated lower service band.\n   Representative/profile section remains the original real photo. */\n@media (min-width:1001px){\n  .hero-picture .hero-portrait{\n    height:100%;\n    object-position:center 28%;\n    transform:scale(1.18);\n    transform-origin:50% 32%;\n  }\n  .hero-portrait-wrap{overflow:hidden}\n  .hero-portrait-wrap:after{bottom:0;background:linear-gradient(90deg,rgba(248,238,229,.76) 0%,rgba(248,238,229,.13) 12%,transparent 25%,transparent 84%,rgba(169,73,61,.08) 100%),linear-gradient(180deg,transparent 0 76%,rgba(248,238,229,.45) 92%,rgba(248,238,229,.82) 100%)}\n}\n\n\n/* v24 DESKTOP CLEAN REPRESENTATIVE PNG\n   User-supplied transparent portrait. No AI-baked service labels.\n   V17 mobile remains unchanged via the picture fallback. */\n@media (min-width:1001px){\n  .hero-portrait-wrap{overflow:visible!important;transform:translateX(16px)!important}\n  .hero-picture{width:min(650px,100%)!important;height:100%!important;overflow:visible!important}\n  .hero-picture .hero-portrait{\n    right:-8px!important;bottom:0!important;\n    width:100%!important;height:auto!important;max-height:94%!important;\n    object-fit:contain!important;object-position:center bottom!important;\n    transform:none!important;border-radius:0!important;\n    filter:drop-shadow(0 20px 30px rgba(61,29,24,.13))!important;\n    -webkit-mask-image:none!important;mask-image:none!important;\n  }\n  .hero-portrait-wrap:after{\n    inset:auto -3% 0 -2%!important;height:22%!important;\n    background:linear-gradient(180deg,transparent,rgba(248,238,229,.10) 45%,rgba(248,238,229,.42) 100%)!important;\n    filter:none!important;pointer-events:none;\n  }\n}\n
/* v25 MOBILE CLEAN PORTRAIT
   Same transparent representative asset as desktop. Preserve mobile layout,
   remove the old purple-background photo, and position face slightly higher/center. */
@media (max-width:760px){
  .hero-portrait-wrap{
    overflow:visible!important;
    right:-12px!important;
    bottom:0!important;
    width:300px!important;
    height:500px!important;
    opacity:1!important;
  }
  .hero-picture{
    width:100%!important;
    height:100%!important;
    display:flex!important;
    align-items:flex-end!important;
    justify-content:center!important;
    overflow:visible!important;
  }
  .hero-picture .hero-portrait{
    width:100%!important;
    height:auto!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center bottom!important;
    transform:translateY(-8px)!important;
    border-radius:0!important;
    mix-blend-mode:normal!important;
    opacity:1!important;
    filter:drop-shadow(0 14px 18px rgba(70,35,28,.13))!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
  .hero-portrait-wrap:before,
  .hero-portrait-wrap:after{display:none!important}
}
@media (max-width:390px){
  .hero-portrait-wrap{right:-18px!important;width:280px!important;height:470px!important}
  .hero-picture .hero-portrait{transform:translateY(-6px)!important}
}
@media (max-width:350px){
  .hero-portrait-wrap{right:-22px!important;width:258px!important;height:440px!important}
}

/* v26 FINAL MOBILE VISUAL POLISH
   Keep v25 structure; slightly reduce and lower/right-shift the clean portrait
   to restore more sakura/city breathing room like the approved mockup. */
@media (max-width:760px){
  .hero-portrait-wrap{
    right:-22px!important;
    width:278px!important;
    height:472px!important;
  }
  .hero-picture .hero-portrait{
    transform:translateY(2px)!important;
  }
}
@media (max-width:390px){
  .hero-portrait-wrap{right:-24px!important;width:268px!important;height:458px!important}
  .hero-picture .hero-portrait{transform:translateY(4px)!important}
}
@media (max-width:350px){
  .hero-portrait-wrap{right:-24px!important;width:248px!important;height:426px!important}
}

/* V28 legal + contact pages */
.legal-page{background:#fbf8f1;color:#2c2925;min-height:100vh}.legal-hero{padding:140px 0 54px;background:linear-gradient(180deg,#f4eee3 0%,#fbf8f1 100%);border-bottom:1px solid rgba(76,57,40,.12)}.legal-hero h1{font-family:serif;font-size:clamp(2rem,4vw,3.6rem);font-weight:500;margin:.35rem 0 0}.legal-wrap{max-width:900px;margin:0 auto;padding:64px 24px 96px}.legal-section{margin:0 0 38px}.legal-section h2{font-size:1.15rem;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(76,57,40,.18)}.legal-section p,.legal-section li,.legal-dl dd,.legal-dl dt{line-height:1.9}.legal-section ul{padding-left:1.3em}.legal-dl>div{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid rgba(76,57,40,.12)}.legal-dl dt{font-weight:700}.legal-dl dd{margin:0}.legal-note{font-size:.9rem;color:#6c6259}.legal-back{display:inline-flex;align-items:center;gap:.5em;margin-top:30px;color:inherit;text-decoration:none;border-bottom:1px solid currentColor}.contact-form{max-width:760px;margin:40px auto 0;text-align:left;background:rgba(255,255,255,.96);color:#2c2925;padding:32px;border-radius:4px}.contact-form label,.contact-form legend{font-weight:700;font-size:.95rem}.contact-form .field{margin-bottom:22px}.contact-form input,.contact-form select,.contact-form textarea{box-sizing:border-box;width:100%;margin-top:8px;padding:13px 14px;border:1px solid #c9c0b6;border-radius:2px;background:#fff;color:#222;font:inherit;min-height:48px}.contact-form textarea{min-height:180px;resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid #9f2c2c;outline-offset:2px}.contact-form .required{font-size:.75rem;color:#a32828;margin-left:.45em}.contact-form .consent{display:flex;gap:10px;align-items:flex-start;font-weight:400}.contact-form .consent input{width:20px;min-height:20px;margin:2px 0 0;flex:0 0 auto}.contact-form a{color:#8f2626}.contact-form button{border:0;cursor:pointer}.form-note{font-size:.88rem;color:#625a52;line-height:1.7}.honeypot{position:absolute!important;left:-9999px!important}.contact-choice{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:24px}.contact-choice .button{min-width:190px}.contact-intro{max-width:700px;margin-left:auto;margin-right:auto}.form-success{padding:150px 24px 100px;text-align:center;min-height:60vh}.form-success h1{font-family:serif;font-size:2.4rem;font-weight:500}
@media(max-width:700px){.legal-hero{padding:110px 0 38px}.legal-wrap{padding:42px 20px 70px}.legal-dl>div{grid-template-columns:1fr;gap:3px}.contact-form{padding:22px 16px;margin-top:28px}.contact-choice{flex-direction:column}.contact-choice .button{width:100%}}

/* V32: category-aware legal guidance after a verified form post */
.legal-auto-guide{margin:28px auto;padding:24px;max-width:720px;border:1px solid rgba(120,90,70,.18);border-radius:16px;background:#fffaf5;text-align:left}
.legal-auto-guide h2{margin-top:0;font-size:1.25rem}
.legal-auto-guide .button{display:inline-block;text-decoration:none}
