*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { --ink: #1a1714; --paper: #f5f0eb; --warm: #c9a96e; --muted: #8a7f74; --light: #e8e0d5; --white: #faf7f4; }
html { scroll-behavior: smooth; }
body { background: #ede8e2; color: var(--ink); font-family: 'Noto Serif JP', serif; overflow-x: hidden; }
.site-wrapper { max-width: 1200px; margin: 0 auto; background: var(--white); overflow: hidden; }
.site-header { position: fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:20px 80px; background:rgba(250,247,244,0.93); backdrop-filter:blur(12px); border-bottom:1px solid var(--light); }
.site-logo img { height:34px; display:block; }
.site-nav { display:flex; gap:32px; align-items:center; }
.site-nav a { font-size:13px; letter-spacing:0.12em; color:var(--ink); text-decoration:none; position:relative; transition:color 0.3s; }
.site-nav a::after { content:''; position:absolute; bottom:-3px; left:0; width:0; height:1px; background:var(--warm); transition:width 0.35s cubic-bezier(0.25,0.46,0.45,0.94); }
.site-nav a:hover,.site-nav a.current { color:var(--warm); }
.site-nav a:hover::after,.site-nav a.current::after { width:100%; }
.nav-cta { padding:8px 18px; border:1px solid var(--ink); border-radius:2px; font-size:11px !important; letter-spacing:0.15em !important; transition:background 0.3s,color 0.3s !important; }
.nav-cta:hover { background:var(--ink) !important; color:var(--white) !important; }
.nav-cta::after { display:none !important; }
.page-hero { padding:160px 120px 80px; background:var(--paper); position:relative; overflow:hidden; }
.page-hero::after { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 50%,rgba(201,169,110,0.1) 0%,transparent 60%); pointer-events:none; }
.page-hero-en { font-family:'Cormorant Garamond',serif; font-size:11px; font-weight:300; letter-spacing:0.4em; color:var(--warm); text-transform:uppercase; margin-bottom:16px; display:flex; align-items:center; gap:16px; max-width:1300px; margin-left:auto; margin-right:auto; }
.page-hero-en::before { content:''; width:32px; height:1px; background:var(--warm); }
.page-hero h1 { font-family:'Shippori Mincho',serif; font-size:clamp(32px,4vw,52px); font-weight:500; letter-spacing:0.06em; color:var(--ink); line-height:1.4; max-width:1300px; margin-left:auto; margin-right:auto; }
.page-hero-bg { position:absolute; right:80px; bottom:-20px; font-family:'Shippori Mincho',serif; font-size:clamp(100px,14vw,200px); color:var(--light); line-height:1; pointer-events:none; user-select:none; }
.page-content { padding:80px 120px; max-width:1300px; margin:0 auto; }
.lead-text { font-size:22px; line-height:2.2; color:var(--ink); letter-spacing:0.04em; margin-bottom:48px; }
.body-text { font-size:18px; line-height:2.2; color:#5a5147; letter-spacing:0.03em; margin-bottom:32px; }
.divider { width:48px; height:1px; background:var(--warm); margin:48px 0; }
.btn-primary { display:inline-flex; align-items:center; gap:16px; text-decoration:none; color:var(--white); background:var(--ink); padding:16px 36px; font-size:13px; letter-spacing:0.15em; transition:background 0.3s,gap 0.3s; border-radius:2px; }
.btn-primary:hover { background:var(--warm); gap:24px; }
.btn-ghost { display:inline-flex; align-items:center; gap:16px; text-decoration:none; color:var(--ink); border:1px solid var(--ink); padding:14px 32px; font-size:13px; letter-spacing:0.15em; transition:background 0.3s,color 0.3s; border-radius:2px; }
.btn-ghost:hover { background:var(--ink); color:var(--white); }
.site-footer { padding:48px 120px; background:var(--white); display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--light); margin-top:80px; }
.site-footer img { height:26px; }
.footer-copy { font-size:11px; color:var(--muted); letter-spacing:0.1em; }
.reveal { opacity:0; transform:translateY(20px); transition:opacity 0.8s ease,transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94); }
.reveal.visible { opacity:1; transform:translateY(0); }
@media (max-width:768px) {
  .site-header { padding:16px 20px; }
  .site-nav { gap:16px; }
  .site-nav a { font-size:11px; }
  .page-hero { padding:120px 24px 60px; }
  .page-hero-bg { display:none; }
  .page-content { padding:48px 24px; }
  .site-footer { padding:32px 24px; flex-direction:column; gap:16px; text-align:center; }
}
@media (max-width:480px) { .hide-sp { display:none; } }

/* モバイル文字サイズ改善 */
@media (max-width:768px) {
  .site-nav a { font-size:13px; }
  .page-hero { padding:120px 24px 60px; }
  .page-hero h1 { font-size:clamp(26px,7vw,52px); max-width:100%; }
  .page-hero-en { max-width:100%; margin-left:0; margin-right:0; }
  .page-content { padding:40px 24px; max-width:100%; }
  .lead-text { font-size:18px; }
  .body-text { font-size:16px; }
  .btn-primary, .btn-ghost { font-size:15px; padding:14px 24px; }
}
