
:root{
  --ink:#1a1a1a;
  --muted:#6f6b63;
  --accent:#a40f1c; /* 深紅 */
  --accent-dark:#6b0f14;
  --gold:#caa74a;
  --gold-soft:#e6d28a;
  --alt:#faf7f2;
  --border:#e6e2de;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;color:var(--ink);font-family: "Hiragino Mincho ProN","Yu Mincho",serif;line-height:1.85;letter-spacing:.02em}
body.lux{background: #14090b;}
body.lux::before{ /* brocade pattern background */
  content:"";position:fixed;inset:0;z-index:-3;
  background: radial-gradient(1200px 800px at 60% -10%,rgba(210,36,36,.22),transparent 60%),
              radial-gradient(1200px 800px at 20% 110%,rgba(210,36,36,.18),transparent 60%),
              url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjE0MCIgdmlld0JveD0iMCAwIDE0MCAxNDAiPgogIDxkZWZzPgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJnIiBjeD0iNTAlIiBjeT0iNTAlIiByPSI3MCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjZmZmNWM0IiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0iI2U4Y2Y3YSIgLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjYzhhOTRhIiAvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE0MCIgaGVpZ2h0PSIxNDAiIGZpbGw9IiMxYTBjMGUiLz4KICA8ZyBvcGFjaXR5PSIwLjE4IiBmaWxsPSJ1cmwoI2cpIj4KICAgIDxwYXRoIGQ9Ik03MCA4YzEwIDE0IDI0IDIwIDQwIDIwLTggNi0xMiAxNC0xMiAyNCAwIDEyIDYgMjIgMTggMzAtMTggMC0zMiA4LTQwIDI0LTgtMTYtMjItMjQtNDAtMjQgMTItOCAxOC0xOCAxOC0zMCAwLTEwLTQtMTgtMTItMjQgMTYgMCAzMC02IDQwLTIweiIvPgogICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iOCIvPgogICAgPGNpcmNsZSBjeD0iMTIyIiBjeT0iMTgiIHI9IjgiLz4KICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTIyIiByPSI4Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMjIiIGN5PSIxMjIiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo=");
  background-size: cover, cover, 140px 140px;
  opacity:.9;
}
a{color:var(--accent);text-decoration:none}
.container{width:min(1180px,92%);margin:auto}
.flex{display:flex;gap:1rem}
.between{justify-content:space-between}.center{align-items:center}

.topbar{position:sticky;top:0;z-index:50;background:rgba(10,5,6,.7);backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid rgba(255,215,120,.18)}
.topbar .brand{display:flex;align-items:baseline;gap:.6rem;font-weight:800;color:#f6f2ea}
.topbar .logo{font-size:1.4rem;background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#3b2a10;padding:.12rem .4rem;border-radius:.25rem;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.topbar .brand-en{letter-spacing:.08em;color:#e7dcc5;opacity:.85}
.topbar .nav a{color:#f6f2ea;padding:.9rem .6rem;display:inline-block}
.topbar .nav .btn{background:linear-gradient(180deg,var(--accent),var(--accent-dark));color:#fff;border-radius:.5rem;padding:.6rem 1rem;box-shadow:0 6px 18px rgba(164,15,28,.35)}

.hero.ornate{position:relative;min-height:78vh;display:grid;place-items:end center;color:#fff;overflow:hidden;border-bottom:1px solid rgba(255,215,120,.18)}
.hero-layers>.hero-bg{position:absolute;inset:0;background-position:center;background-size:cover;filter:brightness(.55)}
.hero-overlay{position:absolute;inset:0;background:radial-gradient(1200px 800px at 20% -10%,rgba(164,15,28,.45),transparent 60%),
  radial-gradient(1200px 800px at 80% 110%,rgba(164,15,28,.35),transparent 60%)}
.hero-pattern{position:absolute;inset:0;opacity:.16;background-size:140px 140px;mix-blend-mode:overlay}
.hero-inner{position:relative;padding:8vh 0 3vh;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero .eyebrow{letter-spacing:.2em;color:#ffe9ae;border-left:4px solid var(--gold);padding-left:.75rem;margin:0 0 1rem}
.hero h1{font-size:clamp(1.9rem,4.8vw,3.5rem);margin:.2rem 0 1rem}
.hero .lead{font-size:1.12rem;max-width:56ch;color:#f6eee0}
.cta-row{display:flex;gap:1rem;align-items:center;margin:1.1rem 0}
.btn{display:inline-block;border:1px solid rgba(255,215,120,.35);padding:.6rem .95rem;border-radius:.45rem;font-weight:800;
  background:linear-gradient(180deg,var(--gold),var(--gold-soft));color:#3b2a10;text-shadow:none}
.btn-lg{padding:.85rem 1.25rem;box-shadow:0 10px 22px rgba(0,0,0,.25)}
.tel{color:#fff;border-bottom:1px dotted rgba(255,255,255,.6)}
.trust{display:flex;gap:.75rem;list-style:none;padding:0;margin:1.25rem 0 0}
.trust li{background:rgba(0,0,0,.25);padding:.25rem .6rem;border:1px solid rgba(255,215,120,.25);border-radius:.4rem}
.hero-bottom .ribbon{margin:1rem 0 2.2rem;display:inline-block;padding:.35rem .9rem;border:1px solid rgba(255,215,120,.35);
  background:rgba(0,0,0,.3);backdrop-filter:blur(4px);border-radius:.4rem;color:#f3ead3}

.section{padding:80px 0;position:relative}
.section::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent,rgba(255,215,120,.06) 10%,transparent 60%) ;opacity:.7}
.section-alt{background:rgba(255,252,245,.9)}
.ornate-alt{background:linear-gradient(180deg,rgba(255,250,235,.92),rgba(255,247,229,.92)), url("data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTQwIiBoZWlnaHQ9IjE0MCIgdmlld0JveD0iMCAwIDE0MCAxNDAiPgogIDxkZWZzPgogICAgPHJhZGlhbEdyYWRpZW50IGlkPSJnIiBjeD0iNTAlIiBjeT0iNTAlIiByPSI3MCUiPgogICAgICA8c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjZmZmNWM0IiAvPgogICAgICA8c3RvcCBvZmZzZXQ9IjYwJSIgc3RvcC1jb2xvcj0iI2U4Y2Y3YSIgLz4KICAgICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjYzhhOTRhIiAvPgogICAgPC9yYWRpYWxHcmFkaWVudD4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjE0MCIgaGVpZ2h0PSIxNDAiIGZpbGw9IiMxYTBjMGUiLz4KICA8ZyBvcGFjaXR5PSIwLjE4IiBmaWxsPSJ1cmwoI2cpIj4KICAgIDxwYXRoIGQ9Ik03MCA4YzEwIDE0IDI0IDIwIDQwIDIwLTggNi0xMiAxNC0xMiAyNCAwIDEyIDYgMjIgMTggMzAtMTggMC0zMiA4LTQwIDI0LTgtMTYtMjItMjQtNDAtMjQgMTItOCAxOC0xOCAxOC0zMCAwLTEwLTQtMTgtMTItMjQgMTYgMCAzMC02IDQwLTIweiIvPgogICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iOCIvPgogICAgPGNpcmNsZSBjeD0iMTIyIiBjeT0iMTgiIHI9IjgiLz4KICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTIyIiByPSI4Ii8+CiAgICA8Y2lyY2xlIGN4PSIxMjIiIGN5PSIxMjIiIHI9IjgiLz4KICA8L2c+Cjwvc3ZnPgo="); background-size:auto,140px 140px}
.sec-title{font-size:1.9rem;margin:0 0 1rem;color:#2a2115;position:relative}
.sec-title.gold{color:#3b2a10}
.sec-title::after{content:"";display:block;width:120px;height:3px;background:linear-gradient(90deg,var(--gold),transparent);margin:.5rem 0 0}

.grid{display:grid;gap:1.25rem}
.cards{grid-template-columns:repeat(3,1fr)}
.card{background:#fff;border:1px solid var(--border);padding:1.25rem;border-radius:.6rem;box-shadow:0 10px 28px rgba(0,0,0,.06)}
.card h3{margin-top:0}
.bullets{margin:.25rem 0 0 1rem;color:#574f42}
.bullets li{margin:.2rem 0}

.rich p{max-width:70ch}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}

.materials-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.materials-grid article{background:#fff;border:1px solid var(--border);padding:1rem;border-radius:.6rem;box-shadow:0 8px 20px rgba(0,0,0,.04)}
.materials-grid h3{margin:.2rem 0 .4rem}
.note.center{text-align:center;color:#6b604d;margin-top:1rem}

.gallery{columns:3 260px;column-gap:1rem}
.gallery a{display:block;margin:0 0 1rem;border-radius:.5rem;overflow:hidden;border:1px solid var(--border);background:#fff;box-shadow:0 8px 18px rgba(0,0,0,.05)}
.gallery img{width:100%;height:auto;transition:transform .5s ease}
.gallery a:hover img{transform:scale(1.03)}
.case-notes{margin-top:1rem;background:#fff;border:1px solid var(--border);padding:1rem;border-radius:.6rem}

.steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.steps li{border-left:5px solid var(--accent);padding:.6rem .9rem;background:#fff;border:1px solid var(--border)}
.schedule-callout{margin-top:1rem;background:linear-gradient(180deg,#fff, #fff6d6);border:1px solid rgba(202,167,74,.45);padding:1rem;border-radius:.6rem}

.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1.25rem}
.info{list-style:none;padding:0;margin:0}
.info li{display:grid;grid-template-columns:120px 1fr;gap:.75rem;padding:.35rem 0;border-bottom:1px dashed var(--border)}
.info li span{color:#6f6a62}
.map-wrap{min-height:320px;border:1px solid var(--border);border-radius:.6rem;overflow:hidden;background:#fff}
.map-wrap iframe{width:100%;height:100%}

.contact .contact-grid{display:grid;grid-template-columns:1fr .9fr;gap:1.25rem}
.form label{display:grid;gap:.35rem;margin:.35rem 0}
.form input,.form textarea,.form select{padding:.6rem;border:1px solid var(--border);border-radius:.4rem;font:inherit}
.req{font-size:.8rem;color:#fff;background:var(--accent);padding:.05rem .4rem;border-radius:.3rem;margin-left:.4rem}
.contact-side .badge{display:inline-block;margin-top:.6rem;padding:.25rem .6rem;border:1px solid rgba(202,167,74,.6);background:linear-gradient(180deg,#fff,#fff6d6);border-radius:.35rem;color:#5a4c2a}

.footer{border-top:1px solid rgba(255,215,120,.18);background:rgba(10,5,6,.75);padding:1rem 0;color:#e8dcc8}
.footer a{color:#f0e6ce}
.footer .foot-nav{display:flex;gap:1rem}

.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.82);display:grid;place-items:center;z-index:1000}
.lightbox-inner{position:relative;max-width:min(92vw,1200px)}
.lightbox .close{position:absolute;top:-12px;right:-12px;border:none;background:#000;color:#fff;font-size:1.4rem;border-radius:999px;width:36px;height:36px;cursor:pointer}

@media (max-width:980px){
  .cards{grid-template-columns:1fr}
  .materials-grid{grid-template-columns:1fr 1fr}
  .about-grid{grid-template-columns:1fr}
  .contact .contact-grid{grid-template-columns:1fr}
  .topbar .nav{display:none}
  .twocol{grid-template-columns:1fr}
}


#philosophy, #philosophy p, #philosophy h2, #philosophy h3,
#services, #services p, #services h2, #services h3, #services li {
  color:#fff !important;
}
#philosophy .card, #services .card{
  background:rgba(0,0,0,0.35);
  border:1px solid rgba(255,255,255,0.25);
  color:#fff;
}


#process, #process p, #process h2, #process h3, #process li,
#about, #about p, #about h2, #about h3, #about li, #about span {
  color:#fff !important;
}
#process .steps li, #about .info li {
  background:rgba(0,0,0,0.35);
  border:1px solid rgba(255,255,255,0.25);
  color:#fff;
}
#about .map-wrap {
  border:2px solid rgba(255,255,255,0.4);
}


#process .schedule-callout, #process .schedule-callout p, #process .schedule-callout h3 {
  color:#000 !important;
  background:linear-gradient(180deg,#fff,#fff6d6);
  border:1px solid rgba(202,167,74,.65);
}
