*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:"Noto Sans JP",sans-serif;background:#f7f3ed;color:#29231f;line-height:1.9}body.menu-open,body.modal-open{overflow:hidden}img{display:block;width:100%}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.site-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:82px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:rgba(255,253,249,.93);backdrop-filter:blur(14px);border-bottom:1px solid #ded5cb}.logo,.footer-logo{display:inline-flex;flex-direction:column;font-family:"Cormorant Garamond",serif;line-height:1}.logo span,.footer-logo span{font-size:32px;letter-spacing:.18em}.logo small,.footer-logo small{font-size:9px;letter-spacing:.36em;margin-top:6px}.global-nav{display:flex;align-items:center;gap:26px;font-family:"Cormorant Garamond",serif;letter-spacing:.1em}.nav-reserve{padding:11px 20px;background:#29231f;color:#fff}.menu-toggle{display:none;border:0;background:transparent;width:34px}.menu-toggle span{display:block;height:1px;background:#29231f;margin:7px 0}.hero{position:relative;min-height:100vh}.hero>img{height:100vh;object-fit:cover}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,18,15,.55),rgba(22,18,15,.08))}.hero-copy{position:absolute;z-index:1;left:7%;top:50%;transform:translateY(-44%);color:#fff;max-width:620px}.hero-copy p,.eyebrow,.section-title p{font-family:"Cormorant Garamond",serif;letter-spacing:.18em}.hero-copy h1{font-size:clamp(40px,6vw,76px);line-height:1.35;font-weight:500;letter-spacing:.06em;margin:18px 0 34px}.button{min-height:52px;min-width:170px;padding:13px 24px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.primary{background:#9d7f60;color:#fff}.outline{border-color:#29231f}.line{background:#06c755;color:#fff}.light{border-color:#fff;color:#fff}.full{width:100%}.section{max-width:1240px;margin:auto;padding:110px 5%}.soft{max-width:none;background:#eee7de}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:7%;align-items:center}.split.reverse>div:first-child{order:2}.split img{aspect-ratio:4/3;object-fit:cover}.copy h2,.section-title h2,.reserve-section h2{font-size:clamp(29px,4vw,46px);font-weight:500;letter-spacing:.05em;margin:8px 0 22px}.eyebrow,.section-title p{color:#9d7f60}.text-link{display:inline-block;margin-top:24px;border-bottom:1px solid}.center{text-align:center}.card-grid{display:grid;gap:24px;margin-top:44px}.card-grid.three{grid-template-columns:repeat(3,1fr)}.image-card,.staff-card{background:#fffdf9}.image-card img{aspect-ratio:4/3;object-fit:cover}.staff-card img{aspect-ratio:4/5;object-fit:cover}.image-card div,.staff-card div{padding:24px}.image-card h3{font-family:"Cormorant Garamond",serif;font-size:30px}.staff-card small{color:#9d7f60}.style-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px}.style-grid img{aspect-ratio:16/10;object-fit:cover}.reserve-section{padding:95px 5%;text-align:center;color:#fff;background:linear-gradient(rgba(29,24,20,.86),rgba(29,24,20,.86)),url("images/03-reception.webp") center/cover}.reserve-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:34px}.site-footer{padding:65px 5% 24px;background:#211c18;color:#fff}.footer-grid{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:50px}.footer-grid p{font-size:13px;color:#c7bfb8}.copyright{max-width:1200px;margin:45px auto 0;padding-top:18px;text-align:center;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:#8e8780}.mobile-reserve{display:none}.page-hero{position:relative;height:520px;margin-top:82px;color:#fff;display:grid;place-items:center;text-align:center}.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.52)}.page-hero div{position:relative}.page-hero p{font-family:"Cormorant Garamond",serif;letter-spacing:.2em;font-size:22px}.page-hero h1{font-size:36px;font-weight:500;letter-spacing:.1em}.price-grid{display:grid;grid-template-columns:1fr 1fr;gap:42px}.price-group{border-top:1px solid;padding-top:20px}.price-group h2{font-family:"Cormorant Garamond",serif;font-size:32px;margin-bottom:14px}.price-group p{display:flex;justify-content:space-between;border-bottom:1px solid #ded5cb;padding:14px 0}.staff-list{display:grid;gap:50px}.staff-list article{display:grid;grid-template-columns:.65fr 1fr;align-items:center;background:#fffdf9}.staff-list article:nth-child(even) img{order:2}.staff-list img{aspect-ratio:4/5;object-fit:cover}.staff-list div{padding:7%}.staff-list small{color:#9d7f60}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.gallery-grid img{aspect-ratio:16/10;object-fit:cover}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.blog-grid article{background:#fffdf9}.blog-grid img{aspect-ratio:16/10;object-fit:cover}.blog-grid div{padding:24px}.blog-grid time{font-size:12px;color:#756d65}.blog-grid h2{font-size:19px;margin:8px 0}.access-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:7%}.access-grid dl{display:grid;grid-template-columns:100px 1fr;gap:14px 22px;margin-top:28px}.access-grid dt{color:#9d7f60}.map-placeholder{min-height:430px;background:repeating-linear-gradient(45deg,#e4ddd5 0,#e4ddd5 1px,transparent 1px,transparent 18px);display:grid;place-items:center;text-align:center;border:1px solid #ded5cb}.modal{display:none;position:fixed;inset:0;z-index:2000;align-items:center;justify-content:center;padding:22px}.modal.active{display:flex}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7)}.modal-panel{position:relative;z-index:1;background:#fffdf9;width:min(100%,620px);max-height:90vh;overflow:auto;padding:42px}.modal-close{position:absolute;right:16px;top:8px;border:0;background:none;font-size:34px}.modal form{display:grid;gap:15px;margin-top:20px}.modal label{display:grid;gap:6px;font-size:13px}.modal input,.modal select,.modal textarea{padding:11px;border:1px solid #ded5cb}.note{font-size:11px;color:#756d65}.fade{opacity:0;transform:translateY(32px);transition:.8s}.fade.show{opacity:1;transform:none}@media(max-width:900px){.site-header{height:70px}.menu-toggle{display:block;z-index:1001}.global-nav{position:fixed;inset:0;transform:translateX(100%);transition:.3s;background:#fffdf9;display:flex;flex-direction:column;justify-content:center;font-size:24px}.global-nav.active{transform:none}.split,.price-grid,.access-grid{grid-template-columns:1fr}.split.reverse>div:first-child{order:0}.card-grid.three,.blog-grid{grid-template-columns:1fr}.style-grid,.gallery-grid{grid-template-columns:1fr}.staff-list article{grid-template-columns:1fr}.staff-list article:nth-child(even) img{order:0}.footer-grid{grid-template-columns:1fr}.mobile-reserve{position:fixed;z-index:900;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr}.mobile-reserve a{min-height:56px;display:grid;place-items:center;color:#fff}.mobile-reserve a:first-child{background:#06c755}.mobile-reserve a:last-child{background:#9d7f60}.site-footer{padding-bottom:88px}.page-hero{margin-top:70px;height:400px}}
.simple-hero{margin-top:82px;height:330px;background:linear-gradient(135deg,#2b241f,#9d7f60)}
.simple-hero div{position:relative}.legal-page{max-width:900px}.legal-page h2{font-size:24px;margin:42px 0 12px}.legal-page p{color:var(--sub)}
.demo-notice{padding:22px;background:#eee7de;border-left:4px solid var(--accent);color:var(--text)!important}
.error-page{min-height:100vh;padding:140px 6% 80px;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,#f7f3ed,#e9dfd3)}
.error-page .error-code{font-family:"Cormorant Garamond",serif;font-size:clamp(100px,20vw,220px);line-height:.8;color:var(--accent)}
.error-page h1{font-size:32px;margin:25px 0 12px}.error-page .button{margin-top:28px}
.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:15px;top:15px;z-index:9999;background:#fff;padding:10px 15px}
@media(max-width:900px){.simple-hero{margin-top:70px}}


/* Stage 1 targeted fixes — only reported display issues */
.section-action{margin-top:32px}
.product-section img{aspect-ratio:3/2;object-fit:contain}
.staff-card img{aspect-ratio:3/4;object-fit:cover;object-position:center top}
.staff-list img{aspect-ratio:3/4;object-fit:cover;object-position:center top}
.style-grid img,.gallery-grid img{aspect-ratio:3/2;object-fit:contain;background:#f7f3ed}
.blog-grid img{aspect-ratio:3/2;object-fit:contain;background:#f7f3ed}

/* Targeted fixes 2026-08-11: keep all other displays unchanged */
.blog-products-hero img{object-position:center bottom}

/* Mobile-only fixes 2026-08-11: navigation overlay and reported image text bleed */
@media(max-width:900px){
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
  .global-nav{
    position:absolute;
    top:70px;
    left:0;
    right:0;
    height:calc(100vh - 70px);
    inset:auto 0 auto 0;
    z-index:1000;
    transform:translateX(100%);
    background:#fffdf9;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    gap:0;
    padding:24px 7% 96px;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    pointer-events:none;
  }
  .global-nav.active{transform:translateX(0);pointer-events:auto}
  .global-nav a{display:block;width:100%;padding:14px 4px;border-bottom:1px solid #ded5cb;font-size:22px}
  .global-nav .nav-reserve{margin-top:14px;text-align:center;border-bottom:0;padding:14px 20px}
  .menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .menu-toggle.active span:nth-child(2){opacity:0}
  .menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
  .menu-toggle span{transition:transform .25s,opacity .2s}
}

/* Mobile hamburger menu correction 2026-08-11 v2: keep menu anchored to viewport and always start at HOME */
@media(max-width:900px){
  .site-header{z-index:3100}
  .menu-toggle{position:relative;z-index:3200}
  .global-nav{
    position:fixed !important;
    top:70px !important;
    right:0 !important;
    bottom:0 !important;
    left:0 !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    z-index:3050 !important;
    transform:translateX(100%);
    justify-content:flex-start !important;
    align-items:stretch !important;
    padding:16px 7% calc(90px + env(safe-area-inset-bottom)) !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    background:#fffdf9;
  }
  .global-nav.active{transform:translateX(0)}
  body.menu-open .mobile-reserve{visibility:hidden;pointer-events:none}
}
