/* famille — White Steampunk design system
   paper white / British green / brass wire.  single light theme by brief. */
:root{
  --paper:#FBFAF5; --white:#FFFFFF;
  --ink:#1B1F1C; --ink-2:#5A605B; --ink-3:#A3A79F;
  --green:#0F3D2E; --green-2:#1C5C45; --green-pale:#E9F0EB;
  --brass:#B08D57; --brass-2:#C9AA72; --brass-pale:#F1E9D8; --copper:#B2704F;
  --wire:rgba(176,141,87,.55); --wire-strong:#B08D57;
  --gap:clamp(12px,2vw,32px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;font-weight:300;font-size:16px;line-height:2;letter-spacing:.04em;font-feature-settings:"palt";overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,figure,dl,dd{margin:0}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:1px solid var(--brass);outline-offset:5px}
.c{max-width:1360px;margin:0 auto;padding:0 clamp(20px,5vw,80px);position:relative}
.g{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap)}
.g>*{min-width:0}

/* type */
.mincho,h1,h2,h3{font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:400;letter-spacing:.08em;line-height:1.5;text-wrap:balance}
.en{font-family:"Cormorant Garamond","Cormorant",Georgia,serif;font-weight:400;letter-spacing:.02em}
.en.i{font-style:italic}
.label{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.78rem;letter-spacing:.34em;text-transform:uppercase;color:var(--brass);line-height:1}
.label.g{color:var(--green-2)}
.body{font-size:.92rem;line-height:2.3;color:var(--ink-2);max-width:26em}
.small{font-size:.76rem;line-height:1.9;color:var(--ink-3);letter-spacing:.06em}
.num{font-variant-numeric:tabular-nums}
.vert{writing-mode:vertical-rl;text-orientation:mixed;font-family:"Shippori Mincho",serif;font-size:.86rem;letter-spacing:.44em;color:var(--ink-2);line-height:1}
.h-en{font-family:"Cormorant Garamond",Georgia,serif;font-weight:300;font-style:italic;font-size:clamp(3.4rem,9vw,8rem);line-height:.9;letter-spacing:-.005em;color:var(--ink)}
.h-sec{font-size:clamp(1.6rem,3.4vw,2.8rem);line-height:1.5}
.label+.h-sec{margin-top:1.5rem}
.h-sec+.body{margin-top:1.6rem}

/* brass wire rules */
.wire{border:0;border-top:1px solid var(--wire);margin:0}
.wire.strong{border-top-color:var(--wire-strong)}

/* thin-line icons */
.ic{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.xs{width:11px;height:11px;stroke-width:1.2}.ic.sm{width:16px;height:16px}.ic.lg{width:28px;height:28px;stroke-width:.9}.ic.xl{width:44px;height:44px;stroke-width:.7}

/* engraved contact (name-card style, not a button) */
.engrave{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:14px;color:var(--ink)}
.engrave .k{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.72rem;letter-spacing:.36em;text-transform:uppercase;color:var(--brass)}
.engrave .rule{width:28px;height:1px;background:var(--wire-strong)}
.engrave .v{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;font-size:1.28rem;letter-spacing:.08em;font-variant-numeric:tabular-nums;line-height:1;transition:color .35s}
.engrave:hover .v{color:var(--green-2)}
.engrave.big .v{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.engrave.big .rule{width:44px}
.card-engrave{position:relative;border:1px solid var(--wire);padding:clamp(28px,4vw,48px) clamp(24px,4vw,56px);display:grid;gap:18px;background:transparent}
.card-engrave::before,.card-engrave::after{content:"";position:absolute;width:14px;height:14px;border-color:var(--wire-strong);border-style:solid}
.card-engrave::before{left:-1px;top:-1px;border-width:1px 0 0 1px}
.card-engrave::after{right:-1px;bottom:-1px;border-width:0 1px 1px 0}
.card-engrave .name{font-family:"Shippori Mincho",serif;font-size:1.05rem;letter-spacing:.24em}
.card-engrave .name .en{margin-left:12px;color:var(--ink-3);font-style:italic}
.card-engrave .line{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:.78rem;letter-spacing:.1em;color:var(--ink-2)}
.card-engrave .line span{display:inline-flex;align-items:center;gap:8px}
.card-engrave .line .ic{color:var(--brass)}

/* motifs */
.mot{position:absolute;color:var(--brass);opacity:.32;pointer-events:none;z-index:0;width:30%}
.mot.side{left:-9vw;top:-6%;width:clamp(200px,26vw,420px)}
.mot.gauge{right:-6vw;top:8%;width:clamp(180px,24vw,380px);opacity:.22}
.mot.valve{left:-4vw;bottom:-6%;width:clamp(300px,46vw,720px);opacity:.28}
.mot.cog{right:2vw;top:-4%;width:clamp(90px,11vw,160px);opacity:.3}
.mot.cog-l{right:-4vw;top:-8%;width:clamp(160px,22vw,340px);opacity:.28}
.mot.gauge-s{right:4vw;top:0;width:clamp(120px,16vw,240px);opacity:.24}
.mot.rings2{right:-8vw;top:-10%;width:clamp(240px,34vw,520px);opacity:.28}
.mot .lf{fill:var(--brass-pale);stroke:none;opacity:.95}
.mot.green{color:var(--green-2);opacity:.16}
.mot.draw path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.6s cubic-bezier(.4,0,.2,1) forwards}
.mot.draw .lf{animation:draw 2.6s cubic-bezier(.4,0,.2,1) forwards,fadein 1.6s .6s ease forwards;fill-opacity:0}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadein{to{fill-opacity:.95}}
.spin{animation:spin 90s linear infinite;transform-origin:center}
@keyframes spin{to{transform:rotate(360deg)}}

/* photos */
.photo{overflow:hidden;background:var(--brass-pale);position:relative}
.photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) sepia(.16) contrast(1.02) brightness(1.03);transition:filter 1.2s ease,transform 1.8s cubic-bezier(.2,.6,.2,1)}
.photo:hover img{filter:grayscale(0) sepia(0)}
.frame{position:relative}
.frame::after{content:"";position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--wire);pointer-events:none}

/* sections */
.sec{position:relative;padding-top:clamp(112px,16vw,250px)}
.sec.mid{padding-top:clamp(88px,12vw,180px)}
.tlink{display:inline-flex;align-items:center;gap:14px;margin-top:2.2rem;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.86rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink)}
.tlink .ic{color:var(--brass);transition:transform .4s ease}
.tlink:hover .ic{transform:translateX(6px)}

/* ---------- header ---------- */
.hd{position:sticky;top:0;z-index:50;background:rgba(251,250,245,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hd-in{display:flex;align-items:center;gap:clamp(20px,3vw,48px);min-height:96px}
.logo{display:inline-flex;align-items:center;gap:12px}
.logo svg{height:34px;width:auto;display:block}
.logo .kana{font-size:.58rem;letter-spacing:.34em;color:var(--ink-3);font-weight:400}
.nav{display:flex;gap:clamp(20px,2.6vw,40px);margin-left:auto}
.nav a{display:grid;gap:3px;padding:6px 0;position:relative;color:var(--ink-2)}
.nav a .en{font-size:.86rem;letter-spacing:.14em;font-weight:500;color:var(--ink)}
.nav a .jp{font-size:.56rem;letter-spacing:.2em;color:var(--ink-3)}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.hd .engrave{margin-left:clamp(12px,2vw,28px)}
.burger{display:none;width:44px;height:44px;place-items:center;margin-left:auto;color:var(--ink)}
.drawer{position:fixed;inset:0;background:var(--paper);z-index:60;display:grid;align-content:center;padding:0 clamp(24px,8vw,80px);gap:6px}
.drawer[hidden]{display:none}
.drawer a{font-family:"Shippori Mincho",serif;font-size:1.7rem;letter-spacing:.14em;padding:10px 0;display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--wire)}
.drawer a .en{font-size:.95rem;color:var(--brass);font-style:italic}
.drawer .close{position:absolute;top:24px;right:22px;width:44px;height:44px;display:grid;place-items:center}
.drawer .engrave{margin-top:2.4rem}
@media (max-width:1000px){.nav,.hd .engrave{display:none}.burger{display:grid}.hd-in{min-height:76px}.logo svg{height:28px}}

/* breadcrumb */
.crumb{display:flex;align-items:center;gap:12px;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.8rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2.6rem}
.crumb a:hover{color:var(--ink)}
.crumb .ic{color:var(--brass)}
.crumb [aria-current]{color:var(--ink-2)}

/* ---------- hero (home) ---------- */
.hero{position:relative;padding-top:clamp(28px,5vw,72px)}
.hero .c{z-index:1}
.hero-g{align-items:center}
.hero-vert{grid-column:1/2;grid-row:1;align-self:start;margin-top:1rem}
.hero-copy{grid-column:2/7;grid-row:1;position:relative;z-index:4;padding-right:clamp(0px,2vw,24px)}
.hero-copy .label{margin-bottom:2.2rem}
.h-hero{font-size:clamp(2.6rem,6.6vw,5.4rem);line-height:1.2;letter-spacing:.08em}
.h-sub{font-family:"Shippori Mincho",serif;font-size:clamp(1rem,1.5vw,1.2rem);letter-spacing:.22em;color:var(--ink-2);margin-top:1.6rem}
.hero-copy .body{margin-top:2.4rem;max-width:22em}
.hero-copy .engrave{margin-top:2.8rem}
.orb-wrap{grid-column:6/13;grid-row:1;position:relative;z-index:1;aspect-ratio:1/1}
.orb{position:absolute;inset:6% 4% 6% 8%;border-radius:50%;overflow:hidden}
.orb img{transform:scale(1.04)}
.orb-wrap .mot.rings{inset:-3% -8% -3% -4%;width:auto;height:auto;opacity:.55;z-index:2}
.orb-wrap .mot.gear{left:-30%;bottom:-24%;width:64%;z-index:3;opacity:.42}
.orb-wrap .mot.branch{right:-10%;top:-14%;width:58%;z-index:3;opacity:.5}
.hero-small{grid-column:10/13;grid-row:1;align-self:end;aspect-ratio:1/1;z-index:4;margin-bottom:-10%;border:8px solid var(--paper)}
.hero-word{grid-column:1/11;grid-row:1;align-self:end;z-index:2;max-width:100%;overflow:hidden;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(5rem,19vw,17rem);line-height:.8;color:var(--brass);mix-blend-mode:multiply;margin-bottom:-.32em;margin-left:-.02em;pointer-events:none;user-select:none;white-space:nowrap}
.hero-foot{grid-column:2/12;margin-top:clamp(96px,14vw,200px);display:flex;flex-wrap:wrap;gap:16px 48px;align-items:center;justify-content:space-between}
.status{display:inline-flex;align-items:center;gap:12px;font-size:.74rem;letter-spacing:.14em;color:var(--ink-2)}
.status .ic{color:var(--brass)}
.status b{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;color:var(--green-2)}
.status.closed b{color:var(--ink-3)}
.facts{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:.72rem;letter-spacing:.14em;color:var(--ink-2)}
.facts span{display:inline-flex;align-items:center;gap:8px}
.facts .ic{color:var(--brass)}

/* ---------- home sections ---------- */
.intro .mot.side{left:-9vw;top:-6%;width:clamp(200px,26vw,420px)}
.intro .c{z-index:1}
.intro .label{grid-column:2/4;margin-top:.6rem}
.intro .h-sec{grid-column:4/12}
.intro .quote{grid-column:2/6;margin-top:clamp(56px,8vw,120px);font-size:clamp(1.6rem,3vw,2.4rem);color:var(--ink-3);line-height:1.2}
.intro .col-a{grid-column:6/9;margin-top:clamp(56px,8vw,120px)}
.intro .col-b{grid-column:9/12;margin-top:clamp(120px,16vw,220px)}

.menu .mot.gauge{right:-6vw;top:8%;width:clamp(180px,24vw,380px);opacity:.22}
.menu .c{z-index:1}
.menu .head{grid-column:1/5;position:sticky;top:130px;align-self:start}
.menu .head .label{margin-top:1.4rem}
.menu .head .small{margin-top:2.4rem;max-width:20em}
.menu .list{grid-column:5/13}
.cat{display:flex;align-items:baseline;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--wire-strong);margin-top:clamp(56px,7vw,96px)}
.cat:first-child{margin-top:0}
.cat .ic{align-self:center;color:var(--brass)}
.cat .en{font-size:2rem;line-height:1;font-style:italic}
.cat .label{color:var(--ink-3);letter-spacing:.3em;font-size:.68rem}
.rows li{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:24px;padding:20px 0;border-bottom:1px solid var(--wire)}
.rows .n{font-size:.95rem;letter-spacing:.1em}
.rows .n small{display:block;font-size:.72rem;color:var(--ink-3);letter-spacing:.12em;margin-top:2px}
.rows .p{font-family:"Cormorant Garamond",Georgia,serif;font-weight:400;font-size:1.5rem;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.rows .p i{font-style:normal;font-size:.72em;color:var(--brass);margin-right:3px}
.rows.big li{padding:30px 0}
.rows.big .n{font-family:"Shippori Mincho",serif;font-size:clamp(1.3rem,2.2vw,1.8rem);letter-spacing:.12em}
.rows.big .p{font-size:clamp(2.1rem,3.6vw,3.1rem)}
.rows.two{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(24px,4vw,64px)}
@media (max-width:700px){.rows.two{grid-template-columns:1fr}}

.stylist .label{grid-column:2/4;margin-top:1rem}
.stylist .who{grid-column:4/8}
.stylist .h-name{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:.14em;line-height:1.2}
.stylist .name-en{font-size:1.4rem;color:var(--ink-3);margin-top:.6rem;font-style:italic}
.stylist .role{margin-top:1.4rem}
.stylist .bio{grid-column:8/12;margin-top:clamp(48px,7vw,110px)}

.gallery .mot.cog{right:2vw;top:-4%;width:clamp(90px,11vw,160px);opacity:.3}
.gallery .label{margin-bottom:clamp(40px,5vw,72px)}
.gal{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto auto;column-gap:var(--gap);position:relative;z-index:1}
.gal>*{min-width:0}
.gal .g1{grid-column:1/8;grid-row:1/3;aspect-ratio:4/3}
.gal .g2{grid-column:9/12;grid-row:1;aspect-ratio:3/4;margin-top:-6vw;z-index:2}
.gal .g3{grid-column:6/10;grid-row:3;aspect-ratio:4/3;margin-top:-7vw;z-index:3;border:10px solid var(--paper)}
.gal .g4{grid-column:2/5;grid-row:3;aspect-ratio:1/1;margin-top:5vw}
.gal .g5{grid-column:10/13;grid-row:3;aspect-ratio:3/4;margin-top:12vw}
.gal figcaption{position:absolute;left:0;bottom:-2rem;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--brass)}
.gal .g3 figcaption{left:-10px;bottom:-2.6rem}
.gallery .caption{margin-top:clamp(64px,8vw,120px);grid-column:8/12;font-family:"Shippori Mincho",serif;font-size:.95rem;letter-spacing:.16em;color:var(--ink-2);line-height:2.2}

.access .mot.valve{left:-4vw;bottom:-6%;top:auto;width:clamp(300px,46vw,720px);opacity:.28}
.access .c{z-index:1}
.access .head{grid-column:1/4}
.access .head .label{margin-top:1.4rem}
.access .info{grid-column:3/8;grid-row:2;z-index:2;background:var(--paper);padding:clamp(16px,2vw,28px) clamp(20px,3vw,44px) clamp(20px,3vw,44px) 0;margin-top:clamp(40px,5vw,72px)}
.info div{display:grid;grid-template-columns:28px 92px 1fr;gap:16px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--wire)}
.info div:first-child{border-top:1px solid var(--wire-strong)}
.info .ic{align-self:center;color:var(--brass)}
.info dt{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-3)}
.info dd{font-family:"Shippori Mincho",serif;font-size:1.02rem;letter-spacing:.08em;line-height:1.9}
.info dd small{display:block;font-family:"Zen Kaku Gothic New",sans-serif;font-size:.74rem;letter-spacing:.06em;color:var(--ink-2)}
.info dd a{border-bottom:1px solid var(--wire)}
.access .map{grid-column:6/13;grid-row:2;margin-top:clamp(140px,18vw,260px);aspect-ratio:16/10;border:1px solid var(--wire);position:relative;z-index:1;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) sepia(.12) contrast(.95)}
.map-ph{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:10px;color:var(--ink-2);background:var(--brass-pale)}
.map-ph .ic{color:var(--brass)}
.map-ph .en{font-size:1.7rem;font-style:italic;color:var(--ink)}
.access .note{grid-column:6/10;grid-row:3;margin-top:2rem}

/* home teasers */
.teaser-menu .rows{grid-column:6/13}
.teaser-menu .head{grid-column:1/5;align-self:end}
.teaser-menu .tlink{grid-column:6/13;justify-self:start}
.teaser-st{align-items:start}
.teaser-st .p1{grid-column:1/7;aspect-ratio:4/3}
.teaser-st .p2{grid-column:5/8;aspect-ratio:3/4;margin-top:clamp(-40px,-6vw,-120px);z-index:2;border:10px solid var(--paper)}
.teaser-st .who{grid-column:8/12;align-self:center}
.teaser-st .who .h-name{font-size:clamp(1.9rem,3.6vw,3rem);letter-spacing:.14em}
.teaser-st .who .name-en{font-size:1.2rem;color:var(--ink-3);font-style:italic;margin-top:.4rem}
.teaser-st .who .body{margin-top:1.4rem}
.teaser-ac .mot.rings2{right:-8vw;top:-10%;width:clamp(240px,34vw,520px);opacity:.28}
.teaser-ac .c{z-index:1}
.teaser-ac .head{grid-column:1/5}
.teaser-ac .card-engrave{grid-column:6/12;margin-top:2rem}

/* page head (sub pages) */
.page-head{position:relative;padding-top:clamp(56px,8vw,120px)}
.page-head .c{z-index:1}
.page-head .g{align-items:end}
.page-head .lead{margin-top:2rem}
.page-head .side{grid-column:8/13;display:flex;justify-content:flex-end;align-items:flex-end;gap:32px}
.page-head .mot.cog-l{right:-4vw;top:-8%;width:clamp(160px,22vw,340px);opacity:.28}
.page-head .mot.gauge-s{right:4vw;top:0;width:clamp(120px,16vw,240px);opacity:.24}
.pair{align-items:center}
.pair .photo{aspect-ratio:4/5}
.pair .body{max-width:30em}
.two-photos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,28px);align-items:start}
.two-photos .photo:nth-child(2){margin-top:clamp(40px,8vw,120px)}

/* ---------- footer ---------- */
.ft{position:relative;padding:clamp(96px,13vw,200px) 0 40px;overflow:hidden}
.ft .mot.valve{left:-2vw;bottom:8%;top:auto;width:clamp(260px,36vw,560px);opacity:.26}
.ft .c{z-index:1}
.ft-in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gap);align-items:start}
.ft-in>*{min-width:0}
.ft .card-engrave{grid-column:1/7}
.ft .site{grid-column:8/13;display:grid;gap:10px;margin-top:8px}
.ft .site .label{margin-bottom:8px}
.ft .site a{display:flex;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--wire);font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:.98rem;letter-spacing:.14em}
.ft .site a .jp{font-family:"Zen Kaku Gothic New",sans-serif;font-size:.62rem;letter-spacing:.2em;color:var(--ink-3)}
.ft .site a:hover{color:var(--green-2)}
.ft .copy{margin-top:clamp(48px,6vw,96px);display:flex;justify-content:space-between;gap:12px;font-family:"Cormorant Garamond",Georgia,serif;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}

/* SPA pages */
body[data-spa] .page{display:none}
body[data-spa] .page.active{display:block;animation:pagein .7s ease both}
@keyframes pagein{from{opacity:.001;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- mobile ---------- */
@media (max-width:1000px){
  .g>*{grid-column:1/-1 !important}
  .hero-vert{display:none}
  .hero-copy{grid-row:1 !important;padding-right:0}
  .orb-wrap{grid-row:2 !important;margin-top:2.6rem;width:82%;justify-self:end}
  .hero-small{grid-row:2 !important;width:34%;justify-self:start;margin-bottom:-6%;align-self:end}
  .hero-word{grid-row:3 !important;margin-top:1.4rem;margin-bottom:0;font-size:clamp(3.2rem,16vw,8rem)}
  .hero-foot{margin-top:3rem}
  .intro .col-b,.intro .quote{margin-top:2rem}
  .intro .mot.side{width:44vw;left:-22vw;top:-2%;opacity:.22}
  .menu .head{position:static}.menu .list{margin-top:3rem}
  .stylist .bio{margin-top:2rem}
  .gal{grid-template-columns:1fr 1fr;grid-template-rows:auto;gap:var(--gap)}
  .gal .g1{grid-column:1/-1 !important;grid-row:auto}
  .gal .g2{grid-column:2/3 !important;grid-row:auto;margin-top:0}
  .gal .g3{grid-column:1/2 !important;grid-row:auto;margin-top:0;border:0}
  .gal .g4{grid-column:1/2 !important;grid-row:auto;margin-top:0}
  .gal .g5{grid-column:2/3 !important;grid-row:auto;margin-top:0}
  .gal figcaption{display:none}
  .access .info{grid-row:auto;padding:0;margin-top:2rem}
  .access .map{grid-row:auto;margin-top:2.5rem}
  .teaser-st .p2{margin-top:-14%;width:46%}
  .teaser-ac .card-engrave{margin-top:2rem}
  .ft-in>*{grid-column:1/-1 !important}
  .ft .site{margin-top:2.4rem}
  .page-head .side{justify-content:flex-start}
  .frame::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important}
  .mot.draw path{stroke-dashoffset:0}.mot.draw .lf{fill-opacity:.95}
  .orb img{transform:none}
}


/* ==== Gothic override — 力強いゴシック系（JP: Zen Kaku Gothic New 900 / EN: Archivo 800-900 wide） ==== */
body{font-weight:400}
.body{line-height:2.1}
.mincho,h1,h2,h3,.h-hero,.h-sec,.h-sub,.rows.big .n,.info dd,.drawer a,.card-engrave .name,.vert,.gallery .caption,.stylist .h-name,.teaser-st .who .h-name{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif}
.mincho,h1,h2,h3{font-weight:900;letter-spacing:.04em;line-height:1.35}
.en,.label,.h-en,.hero-word,.engrave .k,.engrave .v,.nav a .en,.crumb,.cat .en,.cat .label,.rows .p,.stylist .name-en,.teaser-st .who .name-en,.intro .quote,.quote,.tlink,.ft .site a,.ft .copy,.status b,.gal figcaption,.map-ph .en,.info dt,.card-engrave .name .en,.drawer a .en{font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-style:normal}
.en{font-weight:800;letter-spacing:.01em;font-stretch:112%}
.en.i{font-style:normal}
.label{font-weight:700;font-size:.7rem;letter-spacing:.3em}
.h-en{font-weight:900;font-stretch:118%;text-transform:uppercase;font-size:clamp(2.8rem,7.6vw,6.6rem);line-height:.95;letter-spacing:-.01em}
.h-hero{font-weight:900;font-size:clamp(2.5rem,6.2vw,5rem);line-height:1.2;letter-spacing:.04em}
.h-sub{font-weight:700;letter-spacing:.12em}
.h-sec{font-weight:900;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.45}
.hero-word{font-weight:900;font-stretch:120%;text-transform:uppercase;font-size:clamp(4.2rem,15.5vw,13.5rem);line-height:.85;margin-bottom:-.28em}
.engrave .k{font-weight:700}
.engrave .v{font-weight:700;font-size:1.15rem;letter-spacing:.04em}
.engrave.big .v{font-size:clamp(1.6rem,3vw,2.3rem)}
.nav a .en{font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.crumb{font-weight:700;font-size:.72rem;letter-spacing:.22em}
.cat .en{font-weight:800;font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase}
.cat .label{font-weight:700}
.rows .p{font-weight:700;font-size:1.3rem;letter-spacing:.01em}
.rows.big .n{font-weight:700;letter-spacing:.06em}
.rows.big .p{font-size:clamp(1.9rem,3.2vw,2.7rem)}
.stylist .h-name,.teaser-st .who .h-name{font-weight:900;letter-spacing:.08em}
.stylist .name-en,.teaser-st .who .name-en{font-weight:700;font-size:.9rem;letter-spacing:.2em;text-transform:uppercase}
.intro .quote,.quote{font-weight:800;font-size:clamp(1.2rem,2.2vw,1.7rem);letter-spacing:.04em;text-transform:uppercase;line-height:1.15}
.tlink{font-weight:800;font-size:.78rem;letter-spacing:.22em}
.ft .site a{font-weight:700;font-size:.86rem;letter-spacing:.12em;text-transform:uppercase}
.ft .copy{font-weight:600}
.status b{font-weight:800}
.gal figcaption{font-weight:700}
.map-ph .en{font-weight:800;font-size:1.2rem;letter-spacing:.2em;text-transform:uppercase}
.info dt{font-weight:700}
.info dd{font-weight:700;letter-spacing:.04em}
.card-engrave .name{font-weight:700;letter-spacing:.16em}
.card-engrave .name .en{font-weight:700;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase}
.drawer a{font-weight:900;font-size:1.5rem;letter-spacing:.06em}
.drawer a .en{font-weight:700;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.vert{font-weight:700}
.gallery .caption{font-weight:500}
@media (max-width:1000px){.hero-word{font-size:clamp(3rem,15vw,7.5rem)}}
/* header fit for heavy gothic nav */
.nav{gap:clamp(16px,2vw,30px)}
.nav a .en{white-space:nowrap;font-size:.7rem;letter-spacing:.08em}
.engrave .v{white-space:nowrap}
.hero-word{grid-column:1/12;font-size:clamp(4rem,13vw,11.5rem)}
@media (max-width:1180px){.nav,.hd .engrave{display:none}.burger{display:grid}}
/* hero word must not swallow the engraved TEL */
.hero-copy .engrave{background:var(--paper);padding:8px 14px 8px 0;border-radius:2px}
@media (max-width:1180px){.hero-word{font-size:clamp(3.6rem,11vw,9rem);margin-bottom:-.2em}}


/* ==== Colour layer & serif wordmark（ロゴと同じ明朝イタリックの famille、緑・銅・紺を足す） ==== */
:root{--green-bright:#0E7A52;--green-3:#3E8A6A;--green-pale:#DCEBE2;--copper-pale:#F3E3DA;--navy:#2E4A6B}
.hero-word,.card-engrave .name .en{font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;text-transform:none;font-stretch:100%}
.hero-word{font-size:clamp(4.6rem,17vw,15rem);line-height:.8;letter-spacing:.01em;color:var(--green);margin-bottom:-.3em}
@media (max-width:1180px){.hero-word{font-size:clamp(3.4rem,13vw,10rem);margin-bottom:-.22em}}
@media (max-width:1000px){.hero-word{font-size:clamp(3.2rem,16vw,8rem)}}
.card-engrave .name .en{font-size:1.1rem;letter-spacing:.04em;color:var(--green-bright)}
.h-hero .accent{color:var(--green-2)}
.label{color:var(--green-2)}
.h-en{color:var(--green)}
.engrave .k{color:var(--copper)}
.engrave:hover .v{color:var(--green-bright)}
.rows .p i{color:var(--copper)}
.cat .en{color:var(--green)}
.cat{border-bottom-color:var(--copper)}
.crumb .ic,.tlink .ic,.info .ic,.facts .ic,.status .ic,.card-engrave .line .ic{color:var(--copper)}
.tlink:hover{color:var(--green-bright)}
.gal figcaption{color:var(--copper)}
.vert{color:var(--navy)}
.stylist .name-en,.teaser-st .who .name-en{color:var(--navy)}
.nav a::after{background:var(--green-bright)}
.nav a:hover .en{color:var(--green-bright)}
.card-engrave{background:var(--green-pale);border-color:var(--brass)}
.ft .card-engrave{background:var(--green);color:var(--paper);border-color:var(--brass-2)}
.ft .card-engrave .name .en{color:var(--brass-2)}
.ft .card-engrave .line{color:rgba(251,250,245,.8)}
.ft .card-engrave .engrave .v{color:var(--paper)}
.ft .card-engrave .engrave:hover .v{color:var(--brass-2)}
.ft .card-engrave .engrave .k{color:var(--brass-2)}
.ft .card-engrave .engrave .rule{background:var(--brass-2)}
.ft .card-engrave .line .ic{color:var(--brass-2)}
.ft .site a:hover{color:var(--copper)}
.map-ph{background:var(--green-pale)}
.mot .lf{fill:var(--green-pale)}
.mot .cu{stroke:var(--copper)}
.photo img{filter:saturate(.95) contrast(1.02)}
.photo:hover img{filter:saturate(1.06) contrast(1.02);transform:scale(1.03)}
.orb img{transform:scale(1.04)}
.orb:hover img{transform:scale(1.07)}
.info div:first-child{border-top-color:var(--copper)}
.status b{color:var(--green-bright)}
.drawer a .en{color:var(--copper)}
/* catch copy fits on two lines at desktop widths */
.h-hero{font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:.03em}
.map iframe{filter:saturate(.6) contrast(.98)}


/* ==== Rich layer — 太い真鍮線、金属のグラデーション、深み ==== */
:root{--wire:rgba(176,141,87,.78);--brass-grad:linear-gradient(90deg,#8E6B3A,#D2B47C 30%,#B08D57 55%,#E2C98F 80%,#A4814C)}
body{background:radial-gradient(120% 70% at 50% 0%,#FFFFFF 0%,var(--paper) 50%,#F3EFE5 100%) fixed}
.wire{border-top-width:2px}
.wire.strong{border-top:0;height:3px;background:var(--brass-grad)}
.ic{stroke-width:1.4}.ic.xs{stroke-width:1.7}.ic.lg{stroke-width:1.2}.ic.xl{stroke-width:1}
.mot{opacity:.5}
.orb-wrap .mot.rings{opacity:.85}.orb-wrap .mot.gear{opacity:.6}.orb-wrap .mot.branch{opacity:.65}
.orb-wrap::after{content:"";position:absolute;inset:calc(6% - 12px) calc(4% - 12px) calc(6% - 12px) calc(8% - 12px);border-radius:50%;padding:4px;background:conic-gradient(from 20deg,#8E6B3A,#E2C98F 25%,#B08D57 50%,#8E6B3A 65%,#D2B47C 85%,#8E6B3A);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;z-index:2;pointer-events:none}
.photo{box-shadow:0 34px 60px -36px rgba(27,31,28,.5)}
.frame::after{border-width:2px;inset:16px -16px -16px 16px}
.hero-small{outline:2px solid var(--brass);outline-offset:0}
.gal .g3{outline:2px solid var(--brass)}
.teaser-st .p2{outline:2px solid var(--brass)}
.rows li{border-bottom-width:2px}
.cat{border-bottom:0;padding-bottom:14px;position:relative}
.cat::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--brass-grad)}
.cat::before{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--wire)}
.info div{border-bottom-width:2px}
.info div:first-child{border-top:3px solid var(--copper)}
.engrave .rule{height:2px;background:var(--brass-grad)}
.engrave.big .rule{height:3px}
.card-engrave{border-width:2px;box-shadow:inset 0 0 0 6px var(--green-pale),inset 0 0 0 7px var(--brass),0 34px 60px -40px rgba(27,31,28,.45)}
.card-engrave::before,.card-engrave::after{width:20px;height:20px;border-width:2px 0 0 2px}
.card-engrave::after{border-width:0 2px 2px 0}
.ft .card-engrave{background:linear-gradient(135deg,#0F3D2E 0%,#145140 55%,#0A2E22 100%);box-shadow:inset 0 0 0 6px transparent,inset 0 0 0 7px var(--brass-2),0 40px 70px -40px rgba(15,61,46,.7);border-color:var(--brass-2)}
.ft .card-engrave::before,.ft .card-engrave::after{border-color:var(--brass-2)}
.nav a::after{height:2px}
.crumb .ic{stroke-width:1.8}
.h-en{background:linear-gradient(120deg,#0F3D2E 0%,#1C5C45 55%,#2E7A5C 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-word{background:linear-gradient(100deg,#0F3D2E,#1C5C45 50%,#3E8A6A);-webkit-background-clip:text;background-clip:text;color:transparent}
.label::before{content:"";display:inline-block;width:22px;height:2px;background:var(--brass-grad);margin-right:12px;vertical-align:middle}
.cat .label::before,.ft .site .label::before,.status .label::before{display:none}
.map{border-width:2px;box-shadow:0 34px 60px -36px rgba(27,31,28,.45)}
.map-ph{box-shadow:inset 0 0 0 6px var(--green-pale),inset 0 0 0 7px var(--brass)}
.ornament{display:flex;align-items:center;gap:18px;max-width:1360px;margin:clamp(72px,10vw,150px) auto 0;padding:0 clamp(20px,5vw,80px)}
.ornament span{flex:1;height:2px;background:var(--brass-grad)}
.ornament .ic{color:var(--copper);stroke-width:1.5;width:22px;height:22px;animation:spin 40s linear infinite}
.ornament+.sec{padding-top:clamp(64px,9vw,140px)}
.status b{text-shadow:0 0 0 currentColor}
.drawer a{border-bottom-width:2px}
.ft .site a{border-bottom-width:2px}
.ft .site a:first-of-type{border-top:2px solid var(--wire)}
.hd{border-bottom:2px solid var(--wire)}
@media (prefers-reduced-motion:reduce){.ornament .ic{animation:none}}
/* gradient text needs a box as wide as the word; catch copy stays on two lines */
.h-hero{white-space:nowrap;text-wrap:initial}
.h-en{padding-right:.08em}
.teaser-ac .head .h-en,.teaser-menu .head .h-en{width:max-content;max-width:none}


/* ==== Google Maps: link button instead of embed ==== */
.map-btn{display:inline-flex;align-items:center;gap:18px;padding:20px 28px 20px 22px;background:linear-gradient(135deg,#0F3D2E 0%,#145140 55%,#0A2E22 100%);color:var(--paper);border:2px solid var(--brass);box-shadow:inset 0 0 0 4px transparent,inset 0 0 0 5px var(--brass-2),0 30px 50px -30px rgba(15,61,46,.7);transition:transform .35s ease,box-shadow .35s ease;justify-self:start;max-width:100%}
.map-btn:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 4px transparent,inset 0 0 0 5px var(--brass-2),0 40px 60px -30px rgba(15,61,46,.85)}
.map-btn .ic{color:var(--brass-2);width:28px;height:28px;stroke-width:1.2}
.map-btn .ic.arrow{width:18px;height:18px;margin-left:6px;transition:transform .4s ease}
.map-btn:hover .ic.arrow{transform:translateX(6px)}
.map-btn .t{display:grid;gap:2px;min-width:0}
.map-btn .t b{font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:800;font-size:.98rem;letter-spacing:.16em;text-transform:uppercase;line-height:1.3}
.map-btn .t span{font-size:.72rem;letter-spacing:.06em;color:rgba(251,250,245,.8);line-height:1.6}
.access .map-btn{grid-column:3/8;grid-row:3;margin-top:clamp(28px,4vw,48px)}
.access .note{grid-column:3/8;grid-row:4;margin-top:1.6rem}
.access .access-photo{grid-column:8/13;grid-row:2/5;align-self:start;margin-top:clamp(80px,10vw,150px);aspect-ratio:4/5}
.card-engrave .btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:.6rem}
.card-engrave .btn-row .map-btn{padding:14px 20px 14px 16px}
.card-engrave .btn-row .map-btn .t b{font-size:.84rem}
.card-engrave .btn-row .map-btn .t span{display:none}
.card-engrave .btn-row .tlink{margin-top:0}
@media (max-width:1000px){.access .map-btn,.access .note,.access .access-photo{grid-row:auto !important}.access .access-photo{margin-top:2.5rem;aspect-ratio:4/3}}
@media (max-width:480px){.map-btn{padding:16px 18px 16px 16px;gap:12px}.map-btn .t span{display:none}}


/* ==== Revision: no section dividers / moving hero gears / clean access info ==== */
.ornament{display:none}
.hd{border-bottom:0}
.hero-copy .engrave{background:transparent;padding:0;border-radius:0}
.cog-spin{transform-box:view-box;animation:spin 72s linear infinite}
.cog-spin.ccw{animation-direction:reverse;animation-duration:36s}
.orb-wrap .mot.gear{opacity:.78;left:-32%;bottom:-26%;width:68%}
.access .info{background:transparent;padding:0;grid-column:2/8;grid-row:2;margin-top:clamp(40px,5vw,72px)}
.access .map-btn{grid-column:2/8}
.access .note{grid-column:2/8}
.access .mot.valve{display:none}
.access .access-photo{grid-column:8/13;grid-row:2/5;margin-top:clamp(40px,5vw,72px)}
@media (prefers-reduced-motion:reduce){.cog-spin{animation:none}}

/* catch copy: two lines exactly (text-wrap shorthand must not reset nowrap) */
.h-hero{text-wrap:nowrap;white-space:nowrap}

/* ==== Icons: larger and bolder ==== */
.ic{width:26px;height:26px;stroke-width:1.8}
.ic.sm{width:20px;height:20px;stroke-width:1.9}
.ic.xs{width:14px;height:14px;stroke-width:2.1}
.ic.lg{width:34px;height:34px;stroke-width:1.5}
.ic.xl{width:56px;height:56px;stroke-width:1.2}
.info div{grid-template-columns:36px 96px 1fr}
.cat{gap:18px}
.cat .ic{width:28px;height:28px}
.map-btn .ic{width:34px;height:34px;stroke-width:1.6}
.map-btn .ic.arrow{width:22px;height:22px;stroke-width:1.9}
.crumb{gap:14px}
.status{gap:14px}
.facts span{gap:10px}
.card-engrave .line span{gap:10px}
.tlink{gap:16px}
.hd-tel .ic,.burger .ic{stroke-width:1.6}
.ics .ic{width:34px;height:34px;stroke-width:1.6}

/* ==== Vertical copy: horizontal on small screens (no tall empty column) ==== */
@media (max-width:1000px){
  .page-head .side{display:block;justify-content:flex-start;margin-top:1.4rem}
  .page-head .vert{writing-mode:horizontal-tb;text-orientation:mixed;font-size:.78rem;letter-spacing:.22em;line-height:1.8;padding-left:14px;border-left:2px solid var(--brass)}
  .hero-vert{display:none}
}


/* ==== Hero orb: photo, brass rim and bezel share one centre (52% / 50%) ==== */
.orb{inset:6% 4% 6% 8%}
.orb-wrap::after{inset:calc(6% - 7px) calc(4% - 7px) calc(6% - 7px) calc(8% - 7px);padding:4px}
.orb-wrap .mot.rings{inset:-3% -5% -3% -1%;width:auto;height:auto}
.mot.rings svg,.orb-wrap .mot.rings{aspect-ratio:1/1}

/* ==== Small screens: centre the composition (no left-hugging) ==== */
@media (max-width:1000px){
  .c{padding:0 clamp(22px,6vw,56px)}
  .g>*{justify-self:center;width:100%}
  .hero-copy,.page-head .g>*,.intro .g>*,.stylist .g>*,.teaser-st .who,.teaser-ac .head,.menu .head,.access .head,.reserve .box,.gallery .label,.gallery .caption,.access .note{text-align:center}
  .h-hero,.h-sub,.h-sec,.h-en,.h-name,.name-en,.quote,.intro .quote{text-align:center}
  .label{display:block;text-align:center}
  .body,.lead,.small{margin-left:auto;margin-right:auto;text-align:left}
  .hero-copy .body{max-width:26em}
  .crumb{justify-content:center}
  .actions,.hero-foot,.facts,.status,.card-engrave .btn-row,.ft .copy{justify-content:center}
  .hero-foot{gap:14px 32px}
  .engrave{justify-content:center}
  .tlink{margin-left:auto;margin-right:auto}
  .map-btn{justify-self:center;margin-left:auto;margin-right:auto}
  .orb-wrap{width:86%;justify-self:center}
  .hero-small{justify-self:start;margin-left:2%}
  .hero-word{text-align:center;margin-left:0}
  .info{width:min(100%,560px);justify-self:center}
  .info dt,.info dd{text-align:left}
  .access .access-photo{width:min(100%,560px);justify-self:center}
  .card-engrave{width:100%;text-align:center}
  .card-engrave .line{justify-content:center}
  .card-engrave .name{text-align:center}
  .page-head .side{display:flex;justify-content:center}
  .page-head .vert{border-left:0;padding-left:0;text-align:center}
  .menu .list{width:100%}
  .cat{justify-content:flex-start}
  .stylist .who,.stylist .bio{width:100%}
  .teaser-st .p1{width:100%}
  .teaser-st .p2{justify-self:start;margin-left:4%}
  .gal{width:100%}
  .two-photos{width:100%}
  .ft-in>*{justify-self:center}
  .ft .site{width:100%}
  .ft .site a{justify-content:center}
}
@media (max-width:1000px) and (min-width:601px){
  .body,.lead{max-width:30em}
}
@media (max-width:1000px){
  .hero-small{width:34%}
  .access .info{grid-row:auto !important}
}
/* bleeding motifs must never widen the layout viewport on phones */
html{overflow-x:hidden;overflow-x:clip}
body{overflow-x:hidden;overflow-x:clip}
@media (max-width:1000px){.teaser-menu .head .h-en,.teaser-ac .head .h-en{margin-left:auto;margin-right:auto}}


/* ==== Mobile drawer (outside the blurred header) & centred hero composition ==== */
.drawer{position:fixed;inset:0;z-index:80;background:var(--paper);overflow:auto;-webkit-overflow-scrolling:touch}
.drawer[hidden]{display:none}
@media (max-width:1000px){
  .orb{inset:6%}
  .orb-wrap::after{inset:calc(6% - 7px)}
  .orb-wrap .mot.rings{inset:-3%}
  .orb-wrap .mot.gear{left:-22%;bottom:-18%;width:58%}
  .orb-wrap .mot.branch{right:-8%;top:-12%;width:54%}
  .hero-small{justify-self:end;margin-left:0;margin-right:2%}
}


/* ==== Hero vine: grows from the top, sways, fades and grows again (18s loop) ==== */
.mot.grow .vine-mask-rect{transform-box:fill-box;transform:translateY(-100%);animation:vine-wipe 18s cubic-bezier(.35,.05,.25,1) infinite}
.mot.grow .vine-body{animation:vine-fade 18s linear infinite}
.mot.grow .vine-sway{transform-box:view-box;transform-origin:640px 0px;animation:vine-sway 7s ease-in-out infinite alternate}
@keyframes vine-wipe{0%{transform:translateY(-100%)}34%{transform:translateY(0)}100%{transform:translateY(0)}}
@keyframes vine-fade{0%,86%{opacity:1}95%,100%{opacity:0}}
@keyframes vine-sway{from{transform:rotate(-1.4deg)}to{transform:rotate(1.6deg)}}
.orb-wrap .mot.branch{opacity:.8}
@media (prefers-reduced-motion:reduce){.mot.grow .vine-mask-rect{transform:none;animation:none}.mot.grow .vine-body,.mot.grow .vine-sway{animation:none}}


/* ==== Footer v2: green plate, three columns (brand / site map / contact) ==== */
.ft{background:linear-gradient(160deg,#0F3D2E 0%,#134A38 55%,#0A2E22 100%);color:var(--paper);padding:clamp(72px,9vw,120px) 0 28px;margin-top:clamp(96px,13vw,200px);overflow:hidden;position:relative;border-top:0}
.ft .c{position:relative;z-index:1}
.ft .mot.valve{display:block;left:auto;right:-6vw;top:auto;bottom:-10%;width:clamp(280px,40vw,620px);opacity:.38}
.ft .mot.valve .cu{stroke:var(--brass-2)}
.ft-grid{display:grid;grid-template-columns:5fr 3fr 4fr;gap:clamp(28px,4vw,72px);align-items:start}
.ft-brand .logo svg{height:40px}
.ft-tag{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN",sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.16em;margin-top:1.6rem;color:var(--paper)}
.ft-desc{font-size:.84rem;line-height:2.1;color:rgba(251,250,245,.72);margin-top:.8rem;max-width:26em}
.ft .status{margin-top:1.6rem;color:rgba(251,250,245,.82)}
.ft .status b,.ft .status .ic{color:var(--brass-2)}
.ft .status.closed b{color:rgba(251,250,245,.55)}
.ft-label{font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:700;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--brass-2);padding-bottom:12px;border-bottom:1px solid rgba(201,170,114,.5);margin-bottom:6px}
.ft-nav{display:grid;align-content:start}
.ft-nav a{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid rgba(251,250,245,.14);font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);transition:color .3s ease,padding-left .3s ease}
.ft-nav a .jp{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:400;font-size:.62rem;letter-spacing:.2em;color:rgba(251,250,245,.55);text-transform:none}
.ft-nav a:hover{color:var(--brass-2);padding-left:6px}
.ft-contact{display:grid;gap:16px;align-content:start;justify-items:start}
.ft-contact .ft-label{width:100%}
.ft-contact .engrave .k,.ft-contact .engrave:hover .v{color:var(--brass-2)}
.ft-contact .engrave .rule{background:var(--brass-2)}
.ft-contact .engrave .v{color:var(--paper)}
.ft-info{display:grid;gap:8px;font-size:.8rem;letter-spacing:.06em;line-height:1.8;color:rgba(251,250,245,.82)}
.ft-info li{display:flex;align-items:flex-start;gap:10px}
.ft-info .ic{color:var(--brass-2);margin-top:5px}
.ft .map-btn{background:transparent;border-color:var(--brass-2);box-shadow:inset 0 0 0 4px transparent,inset 0 0 0 5px rgba(201,170,114,.45);padding:14px 22px 14px 18px;margin-top:4px}
.ft .map-btn:hover{background:rgba(251,250,245,.06);transform:none;box-shadow:inset 0 0 0 4px transparent,inset 0 0 0 5px var(--brass-2)}
.ft .map-btn .t b{font-size:.84rem}
.ft .map-btn .t span{display:none}
.ft-bottom{margin-top:clamp(48px,6vw,80px);padding-top:18px;border-top:1px solid rgba(201,170,114,.5);display:flex;justify-content:space-between;gap:12px;font-family:"Archivo","Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(251,250,245,.62)}
@media (max-width:1000px){
  .ft{padding-top:64px}
  .ft-grid{grid-template-columns:1fr;gap:44px;text-align:center}
  .ft-brand .logo{justify-content:center}
  .ft-desc{margin-left:auto;margin-right:auto}
  .ft .status{justify-content:center}
  .ft-nav a{justify-content:center}
  .ft-contact{justify-items:center}
  .ft-info li{justify-content:center;text-align:left}
  .ft-bottom{justify-content:center;flex-wrap:wrap;text-align:center}
  .ft .mot.valve{right:-30vw;width:90vw;opacity:.25}
}
/* footer polish: no awkward wraps in the site map, motif clear of the copyright line */
.ft-grid{grid-template-columns:4.6fr 3.4fr 4fr}
.ft-nav a{flex-wrap:wrap;gap:4px 12px}
.ft-nav a .en{white-space:nowrap}
.ft .mot.valve{right:-12vw;bottom:-26%}

/* ==== Phone footer: site map right-aligned, EN / JP on two tight lines ==== */
@media (max-width:640px){
  .ft-nav{text-align:right;justify-items:end}
  .ft-nav .ft-label{text-align:right}
  .ft-nav a{display:grid;grid-template-columns:1fr;justify-items:end;justify-content:end;gap:0;text-align:right;padding:10px 0}
  .ft-nav a .en{line-height:1.15;white-space:nowrap}
  .ft-nav a .jp{line-height:1.3;margin-top:2px}
}
/* the desktop column ratio must not leak into the stacked footer */
@media (max-width:1000px){.ft-grid{grid-template-columns:1fr}}

/* keep short phrases together; avoid orphaned particles at line ends */
.nb{white-space:nowrap}
.body,.lead,.ft-desc{text-wrap:pretty}

/* ==== Phone footer v2: brand left / site map right in one screen, contact below ==== */
@media (max-width:640px){
  .ft{padding-top:56px}
  .ft-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:36px 18px;text-align:left;align-items:start}
  .ft-brand{grid-column:1;grid-row:1;text-align:left}
  .ft-nav{grid-column:2;grid-row:1;text-align:right;justify-items:stretch}
  .ft-contact{grid-column:1/-1;grid-row:2;justify-items:start;text-align:left}
  .ft-brand .logo{justify-content:flex-start}
  .ft-brand .logo svg{height:28px}
  .ft-tag{font-size:.86rem;letter-spacing:.1em;margin-top:1.1rem;line-height:1.7}
  .ft-desc{font-size:.74rem;line-height:1.9;margin:.6rem 0 0;max-width:none}
  .ft .status{margin-top:1rem;justify-content:flex-start;flex-wrap:wrap;gap:6px 8px;font-size:.66rem;line-height:1.6}
  .ft .status b{font-size:.76rem}
  .ft-nav .ft-label{text-align:right}
  .ft-nav a{width:100%;padding:8px 0;justify-items:end}
  .ft-nav a .en{font-size:.74rem;letter-spacing:.08em}
  .ft-nav a .jp{font-size:.58rem;letter-spacing:.14em}
  .ft-contact .ft-label{width:100%}
  .ft-contact .engrave{justify-content:start}
  .ft-info li{justify-content:flex-start;text-align:left}
  .ft .map-btn{margin-left:0;margin-right:auto}
  .ft-bottom{justify-content:space-between;text-align:left}
}
