:root{--ac:#2f3e4c;--ac2:#a08560;--ink:#333;--sub:#888;--bg2:#f7f5f1;--line:#e4e0d8}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP","Noto Sans TC",sans-serif;font-weight:300;color:var(--ink);line-height:2;letter-spacing:.08em;background:#fff}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.en{font-family:"Jost",sans-serif;letter-spacing:.18em}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
/* header */
.hd{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:22px 120px 22px 40px;transition:.4s}
.hd.solid{background:rgba(255,255,255,.95);box-shadow:0 1px 0 var(--line);padding-top:12px;padding-bottom:12px}
.logo{display:flex;flex-direction:column;line-height:1.3;color:#fff}.hd.solid .logo,.sub .logo{color:var(--ink)}
.logo b{font-weight:500;font-size:22px;letter-spacing:.2em}.logo small{font-size:10px;letter-spacing:.35em}
.hd-r{display:flex;align-items:center;gap:28px;color:#fff}.hd.solid .hd-r,.sub .hd-r{color:var(--ink)}
.hd-tel{text-align:right;line-height:1.4}.hd-tel b{font-size:22px;font-weight:400}.hd-tel small{display:block;font-size:10px}
.lang a{font-size:12px;padding:2px 8px;border:1px solid currentColor;margin-left:4px}.lang a.on{background:var(--ac);border-color:var(--ac);color:#fff}
/* side bar */
.side{position:fixed;right:0;top:0;bottom:0;width:80px;z-index:60;border-left:1px solid rgba(255,255,255,.4);display:flex;flex-direction:column;justify-content:space-between}
.burger{height:80px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;cursor:pointer;background:none;border:0}
.burger span{width:30px;height:1px;background:#fff;transition:.3s}.sub .burger span,.solidside .burger span{background:var(--ink)}
.side-btns a{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80px;font-size:10px;color:#fff;background:var(--ac);border-top:1px solid rgba(255,255,255,.3)}
.side-btns a.line{background:#4a5866}
.nav{position:fixed;inset:0;z-index:55;background:rgba(255,255,255,.97);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.5s}
.nav.open{opacity:1;pointer-events:auto}
.nav ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:24px 80px}
.nav li a{display:block;font-size:15px}.nav li a .en{display:block;font-size:22px;color:var(--ac);line-height:1.3}
.open-x .burger span:nth-child(1){transform:translateY(8px) rotate(45deg);background:var(--ink)}.open-x .burger span:nth-child(2){opacity:0}.open-x .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg);background:var(--ink)}
/* hero */
.fv{position:relative;height:100vh;min-height:620px;overflow:hidden;color:#fff}
.fv-img{position:absolute;inset:0;background:url(../img/hero_blue.jpg) center/cover;background-image:image-set(url("../img/hero_blue.webp") type("image/webp"),url("../img/hero_blue.jpg") type("image/jpeg"));background-position:center;background-size:cover;animation:zoom 14s ease-out forwards}
.fv:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,30,40,.28),rgba(0,0,0,0) 70%)}
@keyframes zoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.fv-tx{position:absolute;left:8vw;bottom:16vh;z-index:2}
.fv-tx p.en{font-size:13px}.fv-tx h1{font-weight:300;font-size:clamp(34px,5vw,64px);line-height:1.5;letter-spacing:.18em;margin:12px 0 36px}
.fv-tx h1 em{font-style:normal;color:#e3cfa8}
.btn{display:inline-block;background:var(--ac);color:#fff;padding:16px 46px;font-size:14px;transition:.3s;border:1px solid var(--ac)}
.btn:hover{background:#fff;color:var(--ac)}.btn.ghost{background:transparent;color:var(--ac)}.btn.ghost:hover{background:var(--ac);color:#fff}
.scroll{position:absolute;left:50%;bottom:24px;z-index:2;font-size:10px;writing-mode:vertical-rl}
/* section titles */
.sec{padding:130px 0}.sec.gray{background:var(--bg2)}
.ttl{text-align:center;margin-bottom:64px}.ttl .en{display:block;color:var(--ac);font-size:13px}
.ttl h2{font-weight:400;font-size:clamp(22px,2.6vw,30px);letter-spacing:.16em}
.ttl h2:after{content:"";display:block;width:40px;height:1px;background:var(--ac);margin:22px auto 0}
.ttl.l{text-align:left}.ttl.l h2:after{margin-left:0}
/* concept */
.concept{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.concept p{font-size:15px;line-height:2.4}
.big-num{font-size:64px;color:var(--ac);font-weight:300;line-height:1}
/* news */
.news li{list-style:none;display:flex;gap:40px;padding:24px 0;border-bottom:1px solid var(--line);font-size:14px}
.news time{color:var(--sub);min-width:110px}.tag{font-size:11px;border:1px solid var(--ac);color:var(--ac);padding:0 10px;height:24px;line-height:22px}
/* features */
.feat{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.feat div{background:#fff;padding:44px 32px;position:relative}.feat .no{position:absolute;top:-22px;left:32px;font-size:44px;color:var(--ac2);line-height:1}
.feat h3{font-weight:400;font-size:17px;margin-bottom:12px}.feat p{font-size:13.5px;color:#555}
/* cards */
.tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:56px}
.tabs a{padding:8px 26px;border:1px solid var(--line);font-size:13px}.tabs a:hover{border-color:var(--ac);color:var(--ac)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.card{background:#fff;transition:.4s}.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(0,0,0,.08)}
.card .ph{aspect-ratio:16/11;overflow:hidden}.card .ph img{width:100%;height:100%;object-fit:cover;transition:.8s}.card:hover img{transform:scale(1.05)}
.card .bd{padding:22px 4px}.card .type{font-size:11px;color:var(--ac)}.card h3{font-weight:400;font-size:18px;margin:4px 0 8px}
.card dl{display:grid;grid-template-columns:90px 1fr;font-size:13px;line-height:1.9}.card dt{color:var(--sub)}
.rent{font-size:20px;color:var(--ac);font-weight:400}
.note{font-size:12px;color:var(--sub);margin-top:24px}
.cat{margin-bottom:100px}.cat h3.cath{font-weight:400;font-size:22px;border-left:2px solid var(--ac);padding-left:16px;margin-bottom:32px;line-height:1.4}
.cat h3.cath small{display:block;font-size:11px;color:var(--ac)}
/* flow */
.flow{counter-reset:f}.flow li{list-style:none;display:grid;grid-template-columns:120px 1fr;gap:40px;padding:44px 0;border-bottom:1px solid var(--line)}
.flow .st{font-size:13px;color:var(--ac);line-height:1.2}.flow .st b{display:block;font-size:44px;font-weight:300}
.flow h3{font-weight:400;font-size:19px;margin-bottom:8px}
/* page hero */
.ph-hero{height:420px;position:relative;display:flex;align-items:center;justify-content:center;color:#fff;background:center/cover}
.ph-hero:after{content:"";position:absolute;inset:0;background:rgba(20,30,40,.2)}
.ph-hero div{position:relative;z-index:2;text-align:center}.ph-hero .en{font-size:14px}.ph-hero h1{font-weight:300;font-size:34px;letter-spacing:.2em}
.crumb{font-size:12px;color:var(--sub);padding:18px 0}
.qa{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 64px}.qa h3{font-weight:400;font-size:18px;color:var(--ac);margin-bottom:10px;border-bottom:1px solid var(--line);padding-bottom:8px}
.qa p{font-size:14px}
table.co{width:100%;border-collapse:collapse;font-size:14px}table.co th,table.co td{padding:22px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}table.co th{width:200px;font-weight:400;color:var(--ac)}
/* contact band */
.cta{position:relative;padding:120px 0;color:#fff;text-align:center;background:url(../img/theater.jpg) center/cover}
.cta:before{content:"";position:absolute;inset:0;background:rgba(47,62,76,.6)}.cta>*{position:relative}
.cta h2{font-weight:300;font-size:28px;margin:8px 0 18px}.cta .tels{display:flex;justify-content:center;gap:60px;flex-wrap:wrap;margin:40px 0}
.cta .tels b{font-size:30px;font-weight:400;display:block;line-height:1.3}.cta .btn{background:#fff;color:var(--ac)}.cta .btn.ln{background:transparent;color:#fff;border-color:#fff}
.ft{background:#222;color:#bbb;font-size:13px;padding:70px 0 30px}.ft .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.ft .logo{color:#fff}.ft ul{list-style:none}.ft small.cp{display:block;text-align:center;margin-top:50px;color:#777}
/* reveal */
.rv{opacity:0;transform:translateY(30px);transition:1s}.rv.in{opacity:1;transform:none}
.sample{display:inline-block;background:#fff3cd;color:#8a6d00;font-size:11px;padding:0 8px;margin-left:6px}
@media(max-width:900px){
 .hd{padding:14px 70px 14px 18px}.hd-tel{display:none}.side{width:56px;border:0}.side-btns{position:fixed;left:0;right:0;bottom:0;display:flex}.side-btns a{flex:1;height:56px;flex-direction:row;gap:6px;font-size:12px}
 .burger{height:60px;width:56px}.sec{padding:80px 0}.wrap{padding:0 20px}
 .concept,.qa,.ft .wrap{grid-template-columns:1fr;gap:32px}.feat,.cards{grid-template-columns:1fr}.feat{gap:48px}
 .nav ul{grid-template-columns:1fr;gap:14px}.flow li{grid-template-columns:1fr;gap:6px}.news li{flex-wrap:wrap;gap:6px 16px}
 .fv-tx{left:24px;right:24px;bottom:120px}.ph-hero{height:260px}table.co th{width:110px}.lang a{padding:1px 5px}body{padding-bottom:56px}
}
.fv img,.fv .slide,.fv [class*=bg],.ph-hero{filter:brightness(1.15) saturate(1.05)}
.fv-tx,.ph-hero h1,.ph-hero h2,.ph-hero p{text-shadow:0 1px 12px rgba(0,0,0,.35)}
.fv:after{background:linear-gradient(0deg,rgba(20,30,40,.45),rgba(0,0,0,0) 60%)}
:root{--ac:#3a78a6;--ac2:#6fa8cf;--bg2:#f2f7fa;--line:#dbe6ee;--ink:#2e3a45}
.side-btns a{background:#3a78a6}.side-btns a.line{background:#5b93bd}
.fv:after{background:linear-gradient(0deg,rgba(30,60,90,.4),rgba(0,0,0,0) 55%)}
.fv-tx h1 em{color:#cfe6f5}
.cta:before{background:rgba(58,120,166,.78)}
.ft{background:#24384a;color:#c5d3de}
/* ===== TCD088-inspired restyle ===== */
body{font-family:"Helvetica Neue",Arial,"Hiragino Sans","Noto Sans JP","Noto Sans TC",sans-serif;color:var(--ink)}
.ttl h2,.concept h2,.band h2,.cta h2,.ph-hero h1{font-weight:600!important;letter-spacing:.04em}
.ttl{text-align:center}.ttl .en{display:block;color:var(--ac);font-weight:600;font-size:22px;letter-spacing:.08em}.ttl h2{font-size:13px!important;color:var(--sub,#778)}
.fv-tx h1{font-weight:600;letter-spacing:.06em}
.btn{border-radius:999px;background:var(--ac);color:#fff;border:1px solid var(--ac);padding:14px 46px}.btn.ghost{background:var(--ac);color:#fff}
.fv-th{position:absolute;z-index:3;left:50%;bottom:20px;transform:translateX(-50%);display:flex;gap:14px}
.fv-th a{width:200px;height:72px;overflow:hidden;background:#fff;display:flex;align-items:center}.fv-th img{width:100%;height:100%;object-fit:cover}
.fv-th .tx{color:var(--ink);font-size:12px;padding:0 20px;line-height:1.7}
.fv-tx{bottom:22vh}
.tick{display:flex;justify-content:center;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid var(--line);font-size:14px}
.tick time{color:#999;font-size:12px}.tag,.tick .tag{background:var(--ac);color:#fff;border-radius:999px;padding:3px 14px;font-size:11px}
.sec>.wrap{position:relative}
main,.sec{background-image:linear-gradient(var(--line),var(--line)),linear-gradient(var(--line),var(--line));background-size:1px 100%;background-repeat:no-repeat;background-position:calc(50% - 600px) 0,calc(50% + 600px) 0}
.sec.gray{background-color:var(--bg2)}
.band{position:relative;padding:150px 0;color:#fff;text-align:center;background:center/cover fixed}
.band:before{content:"";position:absolute;inset:0;background:rgba(36,56,74,.55)}.band>*{position:relative}
.band h2{font-size:clamp(24px,3vw,38px);margin-bottom:20px}
.panels{display:grid;grid-template-columns:repeat(4,1fr)}
.panels a,.ft-bn a{position:relative;height:360px;background:center/cover;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:30px;overflow:hidden}
.panels a:before,.ft-bn a:before{content:"";position:absolute;inset:0;background:rgba(20,35,50,.55);transition:.4s}.panels a:hover:before,.ft-bn a:hover:before{background:rgba(58,120,166,.55)}
.panels b,.panels span,.ft-bn b,.ft-bn span{position:relative}.panels b,.ft-bn b{font-size:22px;font-weight:600}.panels span,.ft-bn span{font-size:12px}
.card{border-radius:0;box-shadow:none;border:1px solid var(--line);background:#fff}.card .ph img{transition:.6s}.card:hover .ph img{transform:scale(1.06)}
.news li{border-bottom:1px solid var(--line)}
.feat>*{border-top:3px solid var(--ac)}
.ft{padding-bottom:0}.ft .wrap>*{border-left:1px solid rgba(255,255,255,.15);padding-left:24px}
.ft-bn{display:grid;grid-template-columns:repeat(3,1fr);margin-top:60px}.ft-bn a{height:200px}
.ft small.cp{margin:0;padding:20px;border-top:1px solid rgba(255,255,255,.12)}
@media(max-width:1240px){main,.sec{background-image:none}}
@media(max-width:900px){
 .fv-th{display:none}.fv-tx{bottom:110px}.tick{justify-content:flex-start;flex-wrap:wrap;gap:8px 12px;font-size:13px}
 .band{padding:90px 0;background-attachment:scroll}.panels{grid-template-columns:1fr 1fr}.panels a{height:200px;padding:18px}
 .ft-bn{grid-template-columns:1fr}.ft-bn a{height:120px}.ft .wrap>*{border:0;padding:0}
}
@media(max-width:900px){.fv-tx h1{font-size:26px;letter-spacing:.04em}}
/* ===== TCD088 colour scheme (replaces blue palette) ===== */
:root{--ac:#00729f;--ac2:#004968;--bg2:#f6f6f6;--line:#dddddd;--ink:#000000;--sub:#666666}
body{color:#000}a:hover{color:#004968}
.side-btns a{background:#00729f}.side-btns a.line{background:#004968}.side-btns a:last-child{background:#222}
.btn:hover{background:#004968;border-color:#004968}
.fv:after{background:linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,0) 55%)}.fv-tx h1 em{color:#fff}
.hd.solid{background:#fff;border-bottom:1px solid #ddd}.lang a.on{background:#00729f;border-color:#00729f;color:#fff}
.band:before,.panels a:before,.ft-bn a:before{background:rgba(0,0,0,.45)}.panels a:hover:before,.ft-bn a:hover:before{background:rgba(0,114,159,.5)}
.cta{background:#222}.cta:before{background:rgba(0,0,0,.6)}.cta .btn{color:#00729f}
.ft{background:#fff;color:#000;border-top:1px solid #ddd}.ft .logo,.ft a{color:#000}.ft ul li a:hover{color:#00729f}
.ft .wrap>*{border-left:1px solid #ddd}.ft small.cp{color:#000;border-top:1px solid #ddd}.ft-bn a,.ft-bn b,.ft-bn span{color:#fff}
.feat>*{border-top-color:#00729f}.ttl .en{color:#00729f}
.card .thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:2px}.card .thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.card .fts{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}.card .fts span{font-size:11px;border:1px solid #00729f;color:#00729f;border-radius:999px;padding:1px 10px}
.card .src{margin-top:14px;font-size:13px}.card .src a{color:#00729f;font-weight:600}.card .src small{display:block;color:#888;font-size:11px;margin-top:4px}
.img-lbl{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:2px 8px;border-radius:2px;letter-spacing:.1em;z-index:2}
.thumbs{position:relative}.thumbs::after{content:"イメージ";position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:1px 6px}
