/* === styles.css === */
:root{--ink:#29251f;--red:#8c1718;--gold:#a97a31;--paper:#f8f4eb;--line:#d8c9ae}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"Noto Serif JP","Yu Mincho",serif;background:var(--paper);line-height:1.8}a{color:inherit;text-decoration:none}.site-header{height:84px;padding:0 28px;display:flex;align-items:center;gap:34px;background:rgba(250,248,242,.97);position:relative;z-index:20;border-bottom:1px solid #eee5d7}.brand{display:grid;grid-template-columns:auto auto;align-items:center;line-height:1;min-width:185px}.brand span{font-size:16px;letter-spacing:.08em}.brand strong{font-size:29px;margin-left:8px}.brand small{font-size:8px;letter-spacing:.25em;margin-top:7px}.global-nav{display:flex;gap:28px;margin-left:auto;font-size:13px;letter-spacing:.08em;white-space:nowrap}.global-nav a{padding:30px 0;position:relative}.global-nav a.active:after,.global-nav a:hover:after{content:"";position:absolute;left:0;right:0;bottom:18px;height:1px;background:var(--gold)}.reserve{background:var(--red);color:#fff}.header-reserve{padding:19px 31px;font-size:14px;letter-spacing:.08em}.menu-button{display:none}.hero{height:660px;position:relative;overflow:hidden;background:#f4efe5}.hero-photo{position:absolute;right:0;top:0;width:61%;height:100%;background:url("../images/hero.webp") center/cover no-repeat}.hero-photo:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f6f2e9 0,rgba(246,242,233,.86) 10%,transparent 43%)}.hero-copy{position:relative;width:min(1180px,90%);margin:auto;padding-top:118px;z-index:2}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:.24em}.hero h1{font:500 clamp(32px,4vw,53px)/1.55 "Shippori Mincho",serif;letter-spacing:.12em;margin:8px 0}.hero-copy>p:not(.eyebrow){font-size:15px;letter-spacing:.14em}.hero-actions{display:flex;gap:16px;margin:30px 0}.button{display:inline-flex;justify-content:center;align-items:center;min-width:190px;padding:13px 26px;border:1px solid var(--red);letter-spacing:.09em;font-weight:600}.primary{background:var(--red);color:#fff}.secondary{color:var(--red);background:rgba(255,255,255,.55)}.feature-row{display:flex;list-style:none;padding:22px 0 0;margin:0;gap:0}.feature-row li{width:126px;text-align:center;border-right:1px solid var(--line);font-size:12px}.feature-row li:first-child{border-left:1px solid var(--line)}.feature-row i{display:block;color:var(--gold);font-style:normal;font-size:30px;line-height:1.1}.section{padding:58px max(5%,calc((100% - 1100px)/2))}.section-heading{text-align:center;margin-bottom:34px}.section-heading h2{display:flex;align-items:center;justify-content:center;gap:25px;margin:0;font-size:30px;font-weight:500;letter-spacing:.16em}.section-heading h2:before,.section-heading h2:after{content:"";width:74px;height:1px;background:var(--gold)}.section-heading span{font-size:9px;letter-spacing:.22em}.reasons{background-color:#faf7ef;background-image:radial-gradient(#d6b97a44 1px,transparent 1px);background-size:19px 19px}.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.reason-grid article{border:1px solid var(--line);text-align:center;padding:43px 18px 28px;position:relative;background:#fcfaf5cc;min-height:265px}.reason-grid b{position:absolute;top:-19px;left:50%;transform:translateX(-50%);background:var(--red);color:#fff;border-radius:50%;width:39px;height:39px;line-height:39px}.reason-grid i{color:var(--gold);font-style:normal;font-size:31px}.reason-grid h3{font-weight:500;font-size:18px;line-height:1.7}.reason-grid p{font-size:13px}.plans{background:#514439 url("../images/plans-bg.webp") center/cover;color:#fff}.plans:before{content:"";position:absolute}.light h2:before,.light h2:after{background:#d4b27b}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.plan-grid article{background:#f8f4ec;color:var(--ink);border-radius:5px;overflow:hidden}.plan-img{height:235px;background-size:cover;background-position:center}.standard{background-image:url("../images/plan-standard.webp")}.couple{background-image:url("../images/plan-couple.webp")}.premium{background-image:url("../images/plan-premium.webp")}.plan-body{text-align:center;padding:16px 20px 18px}.plan-body h3{font-size:19px;margin:0}.plan-body p{font-size:12px;min-height:44px;margin:8px 0}.price{display:grid;grid-template-columns:55px 1fr auto;align-items:baseline;border-top:1px solid #e3dacb;padding:4px 0}.price span{font-size:11px}.price strong{color:#946219;font-size:25px}.price small{font-size:9px}.note{text-align:center;font-size:11px}.flow-list{display:grid;grid-template-columns:repeat(5,1fr);list-style:none;padding:0;margin:0;gap:30px}.flow-list li{text-align:center;position:relative}.flow-list li:not(:last-child):after{content:"›";position:absolute;right:-20px;top:79px;color:var(--gold);font-size:34px}.flow-list b{font-style:italic}.flow-list i{display:flex;justify-content:center;align-items:center;border:1px solid var(--line);border-radius:50%;width:100px;height:100px;margin:8px auto;color:var(--gold);font-size:29px;font-style:normal}.flow-list h3{font-size:15px;margin:8px}.flow-list p{font-size:11px;line-height:1.7}.asakusa{display:grid;grid-template-columns:31% 69%;min-height:410px}.asakusa-copy{padding:90px 13%;display:flex;flex-direction:column;justify-content:center;background:#f4efe4}.asakusa-copy h2{font-size:29px;font-weight:500;letter-spacing:.15em}.asakusa-copy p{font-size:13px;line-height:2.2}.mosaic{display:grid;grid-template-columns:repeat(4,1fr)}.mosaic div{background-size:cover;background-position:center}.m1{background-image:url("../images/gallery-1.webp")}.m2{background-image:url("../images/gallery-2.webp")}.m3{background-image:url("../images/gallery-3.webp")}.m4{background-image:url("../images/gallery-4.webp")}.faq{display:grid;grid-template-columns:58% 42%;gap:42px}.section-heading.left{text-align:left}.section-heading.left h2{justify-content:flex-start}.section-heading.left h2:before{display:none}.section-heading.left span{display:none}.accordion details{border:1px solid var(--line);border-bottom:0;background:#fcfaf6}.accordion details:last-child{border-bottom:1px solid var(--line)}.accordion summary{cursor:pointer;list-style:none;padding:12px 46px 12px 16px;font-size:13px;position:relative}.accordion summary:after{content:"＋";position:absolute;right:16px}.accordion details[open] summary:after{content:"−"}.accordion em{color:var(--red);font-weight:bold;font-style:normal;margin-right:14px}.accordion p{padding:0 25px 15px 50px;margin:0;font-size:12px}.faq-photo{background:url("../images/faq.webp") center/cover;min-height:310px}.access{display:grid;grid-template-columns:48% 52%;min-height:350px}.access-photo{background:url("../images/store.webp") center/cover}.access-copy{padding:40px 10%;background:#f4efe4}.access-copy h2{font-weight:500;font-size:28px;letter-spacing:.12em}.access-copy address{font-style:normal}.access-copy ul{font-size:12px;padding-left:18px}.reserve-band{min-height:175px;background:url("../images/reserve.webp") center/cover;display:grid;place-items:center;text-align:center}.reserve-band h2{font-weight:500;letter-spacing:.13em}.reserve-band .button{padding:10px 60px}footer{background:#292b2c;color:#fff;display:grid;grid-template-columns:210px 1fr auto;align-items:center;padding:22px 4%;gap:25px}footer nav{display:flex;gap:28px;justify-content:center;font-size:11px}footer>small{font-size:8px;color:#aaa}.inverse{color:#fff}@media(max-width:900px){.site-header{height:68px;padding:0 18px}.brand{min-width:160px}.global-nav,.header-reserve{display:none}.menu-button{display:flex;margin-left:auto;border:0;background:none;flex-direction:column;gap:5px;align-items:center}.menu-button span{display:block;width:26px;height:1px;background:var(--ink)}.menu-button b{font-size:8px}.site-header.open .global-nav{display:flex;position:absolute;top:68px;left:0;right:0;background:#faf8f2;flex-direction:column;gap:0;padding:12px 28px;box-shadow:0 10px 20px #0002}.site-header.open .global-nav a{padding:12px;border-bottom:1px solid #eee}.hero{height:720px}.hero-photo{width:100%;height:56%;top:0}.hero-photo:before{background:linear-gradient(0deg,#f6f2e9 0,transparent 50%)}.hero-copy{padding-top:375px}.feature-row{overflow:auto}.feature-row li{min-width:100px}.reason-grid,.plan-grid{grid-template-columns:1fr;gap:35px}.flow-list{grid-template-columns:repeat(3,1fr);row-gap:30px}.flow-list li:after{display:none}.asakusa{grid-template-columns:1fr}.asakusa-copy{padding:40px 8%}.mosaic{height:350px}.faq{grid-template-columns:1fr}.faq-photo{order:-1;min-height:250px}.access{grid-template-columns:1fr}.access-photo{min-height:280px}footer{grid-template-columns:1fr;text-align:center}footer .brand{margin:auto}footer nav{flex-wrap:wrap}}@media(max-width:540px){.hero h1{font-size:30px}.hero-actions{flex-direction:column;align-items:flex-start}.button{width:100%}.section{padding:46px 6%}.section-heading h2{font-size:24px;gap:10px}.section-heading h2:before,.section-heading h2:after{width:35px}.flow-list{grid-template-columns:repeat(2,1fr);gap:20px}.mosaic{grid-template-columns:repeat(2,1fr);height:520px}.faq{gap:25px}.access-copy{padding:35px 7%}.reserve-band{padding:25px}.reserve-band h2{font-size:20px}footer nav{gap:15px}}

/* === background-fixes.css === */
/* Pure backgrounds: page copy and cards remain separate HTML elements. */
.plans {
  position: relative;
  overflow: hidden;
  background-color: #51483f;
  background-image:
    linear-gradient(120deg, rgba(29, 24, 20, .52), rgba(93, 73, 54, .2)),
    radial-gradient(circle at 20% 30%, rgba(196, 160, 105, .12), transparent 32%),
    radial-gradient(circle at 80% 70%, rgba(28, 22, 18, .3), transparent 40%);
}

.plans::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .18;
  pointer-events: none;
  background-image: repeating-linear-gradient(35deg, transparent 0, transparent 5px, rgba(255, 255, 255, .035) 6px, transparent 7px);
}

.plans > * {
  position: relative;
  z-index: 1;
}

.reserve-band {
  position: relative;
  overflow: hidden;
  background: #f4efe5;
}

.reserve-band::before {
  content: "";
  position: absolute;
  inset: 0 0 0 58%;
  background: url("../images/reserve.webp") center 38% / cover no-repeat;
}

.reserve-band::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #f4efe5 0%, #f4efe5 46%, rgba(244, 239, 229, .84) 61%, rgba(244, 239, 229, .08) 100%);
}

.reserve-band > div {
  position: relative;
  z-index: 1;
}

@media (max-width: 540px) {
  .reserve-band::before {
    inset: 0 0 0 42%;
    opacity: .55;
  }

  .reserve-band::after {
    background: linear-gradient(90deg, rgba(244, 239, 229, .98), rgba(244, 239, 229, .72));
  }
}

/* Offline-safe typography and logo for direct file:// viewing. */
body,
button,
input,
select,
textarea {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", "Noto Serif CJK JP", serif;
}

.hero h1,
.page-hero-copy h1,
.section-heading h2,
.sub-title,
.gallery-copy h2 {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", "Noto Serif CJK JP", serif;
}

.brand strong {
  background-color: transparent;
  background-image: url("../images/rei-mark-offline-black.webp");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  -webkit-mask: none;
  mask: none;
}

.brand.inverse strong {
  background-color: transparent;
  background-image: url("../images/rei-mark-noren.webp");
}

/* Japanese shop-name mark: keep the same calligraphic face and proportions on mobile. */
.brand strong {
  display: block;
  width: 59px;
  height: 61px;
  margin: -7px 0 -10px 4px;
  overflow: hidden;
  color: transparent;
  font-size: 0;
  background-color: #29251f;
  -webkit-mask: url("../images/rei-mark-noren.webp") center / contain no-repeat;
  mask: url("../images/rei-mark-noren.webp") center / contain no-repeat;
  transform: none;
  flex: 0 0 auto;
}

.brand.inverse strong {
  background-color: #fff;
}

.brand small {
  margin-top: 0;
  transform: translateY(-4px);
}

@media (max-width: 540px) {
  .brand strong {
    width: 52px;
    height: 54px;
    margin-left: 3px;
  }
}

/* High-resolution, photorealistic people photography. */
.hero-photo {
  background-image: url("../images/hero-real-v2.webp");
  background-position: center center;
}

.plan-img.standard {
  background-image: url("../images/plan-lavender-orthodox-v5.webp?v=6");
  background-position: center 27%;
}

.plan-img.couple {
  background-image: url("../images/couple-user-sakura-v13.webp");
  background-position: center 27%;
}

.plan-img.premium {
  background-image: url("../images/plan-mint-orthodox-v5.webp?v=6");
  background-position: center 28%;
}

.mosaic .m1 {
  background-image: url("../images/gallery-user-lavender-a.webp");
  background-position: center 28%;
}

.mosaic .m3 {
  background-image: url("../images/gallery-user-lavender-b.webp");
  background-position: center 30%;
}

.mosaic .m4 {
  background-image: url("../images/gallery-blue-v4.webp");
  background-size: auto 145%;
  background-position: center 72%;
}

.reserve-band::before {
  background-image: url("../images/reserve-user-pink-v12.webp");
  background-position: 72% center;
}

@media (max-width: 540px) {
  .hero-photo {
    background-position: 68% center;
  }
}

/* Original motifs from the supplied homepage design. */
.reason-grid i {
  display: block;
  width: 96px;
  height: 84px;
  margin: -5px auto 5px;
  color: transparent;
  font-size: 0;
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  mix-blend-mode: multiply;
}

.reason-grid article:nth-child(1) i { background-image: url("../images/reason-user-kimono.webp"); }
.reason-grid article:nth-child(2) i { background-image: url("../images/reason-user-fan.webp"); }
.reason-grid article:nth-child(3) i { background-image: url("../images/reason-user-temple.webp"); }
.reason-extra {
  display: inline-block;
  margin-top: .55em;
  color: var(--red);
  font-weight: 600;
  line-height: 1.7;
}

/* unified site footer */
.site-footer{
  display:grid;
  grid-template-columns:210px minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  padding:30px 4%;
  background:#292b2c;
  color:#fff;
}
.site-footer .footer-main{min-width:0}
.site-footer .footer-address{
  display:flex;
  flex-wrap:wrap;
  gap:5px 18px;
  margin:0 0 12px;
  color:#d8d3cc;
  font-style:normal;
  font-size:11px;
  line-height:1.7;
}
.site-footer .footer-phone{color:#fff;white-space:nowrap}
.site-footer nav{justify-content:flex-start;gap:12px 23px}
.site-footer .footer-copyright{white-space:nowrap}
.contact-grid.contact-only{grid-template-columns:minmax(0,760px);justify-content:center}

@media(max-width:900px){
  .site-footer{grid-template-columns:1fr;text-align:center;padding:34px 22px 28px;gap:22px}
  .site-footer .brand{margin:auto}
  .site-footer .footer-address{justify-content:center;margin-bottom:18px}
  .site-footer nav{display:grid;width:min(100%,390px);margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));justify-items:stretch;gap:5px 8px;border:0}
  .site-footer nav>a:not(.footer-contact-fixed):not(.footer-web-reserve){display:flex;width:100%;min-height:36px;align-items:center;justify-content:center;padding:5px 2px;border:0;font-size:11px;text-align:center}
  .site-footer .footer-copyright{white-space:normal}
}

/* refined reservation plan selector */
.reservation-page .plan-select-lead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.reservation-page .plan-select-lead small{padding:5px 10px;border-radius:20px;background:#f3eadc;color:#876431;font-size:10px;white-space:nowrap}
.reservation-page .service-list{counter-reset:booking-plan;gap:10px}
.reservation-page .service-list>label{
  counter-increment:booking-plan;
  position:relative;
  grid-template-columns:40px minmax(0,1fr) auto;
  gap:13px;
  min-height:78px;
  padding:14px 17px;
  border:1px solid #dfd5c8;
  border-radius:3px;
  background:#fff;
  box-shadow:0 4px 14px rgba(57,43,29,.035);
  transition:border-color .18s,background .18s,box-shadow .18s,transform .18s;
}
.reservation-page .service-list>label:hover{border-color:#c2a274;transform:translateY(-1px)}
.reservation-page .service-list>label::before{
  content:counter(booking-plan,decimal-leading-zero);
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid #cdb58e;
  border-radius:50%;
  color:#9c7338;
  font:500 12px Georgia,"Times New Roman",serif;
}
.reservation-page .service-list>label>input{position:absolute;opacity:0;pointer-events:none}
.reservation-page .service-list>label span{gap:4px;min-width:0}
.reservation-page .service-list>label span b{font-size:14px;font-weight:600;line-height:1.55;letter-spacing:.03em}
.reservation-page .service-list>label small{font-size:10.5px;line-height:1.55}
.reservation-page .service-list>label>strong{font-family:Georgia,"Times New Roman",serif;font-size:16px;white-space:nowrap}
.reservation-page .service-list>label:has(input:checked){
  border-color:#92252a;
  background:linear-gradient(100deg,#fff8f5,#fffdf9);
  box-shadow:inset 4px 0 #92252a,0 6px 18px rgba(103,31,34,.09);
}
.reservation-page .service-list>label:has(input:checked)::before{content:"✓";border-color:#92252a;background:#92252a;color:#fff;font-family:inherit;font-size:15px}
.reservation-page .service-list>label:last-child{border-color:#c8aa76;background:#fffaf0}
.reservation-page .service-list>label:last-child span b::after{content:"撮影";display:inline-block;margin-left:7px;padding:2px 6px;background:#a57a39;color:#fff;font-size:8px;line-height:1.4;vertical-align:2px;letter-spacing:.08em}

@media(max-width:600px){
  .reservation-page .amelia-panel[data-step="2"]{padding-inline:14px}
  .reservation-page .plan-select-lead{align-items:flex-start;flex-direction:column;gap:8px;margin-bottom:18px}
  .reservation-page .service-list{gap:8px}
  .reservation-page .service-list>label{grid-template-columns:34px minmax(0,1fr);grid-template-areas:"number copy" "number price";gap:3px 11px;min-height:0;padding:13px 14px}
  .reservation-page .service-list>label::before{grid-area:number;width:31px;height:31px;font-size:10px}
  .reservation-page .service-list>label span{grid-area:copy}
  .reservation-page .service-list>label span b{font-size:13px}
  .reservation-page .service-list>label small{font-size:9.5px}
  .reservation-page .service-list>label>strong{grid-area:price;justify-self:start;margin-top:3px;font-size:15px}
}
@media(max-width:540px){
  .site-footer{padding:30px 16px 24px}
  .site-footer .footer-address{display:block;font-size:11px;line-height:1.9}
  .site-footer .footer-phone{display:block;margin:10px auto 0;font-size:20px;font-weight:700;letter-spacing:.04em}
  .site-footer nav{gap:0}
}

/* Transparent original rental-flow icons from the supplied design. */
.flow-list i {
  color: transparent;
  font-size: 0;
  width: 118px;
  height: 118px;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  background-position: center;
  background-size: 112px 112px;
  background-repeat: no-repeat;
}

.flow-list li:nth-child(1) i { background-image: url("../images/flow-user-calendar.webp"); }
.flow-list li:nth-child(2) i { background-image: url("../images/flow-user-shop.webp"); }
.flow-list li:nth-child(3) i { background-image: url("../images/flow-user-kimono.webp"); }
.flow-list li:nth-child(4) i { background-image: url("../images/flow-user-dressing.webp"); }
.flow-list li:nth-child(5) i { background-image: url("../images/flow-user-camera.webp"); }

.flow-list li:not(:last-child)::after {
  top: 86px;
  line-height: 1;
  transform: translateY(-50%);
}

/* === inner.css === */
.page-shell{background:#faf7ef;background-image:radial-gradient(#caa96822 1px,transparent 1px);background-size:18px 18px}.page-hero{min-height:330px;display:grid;grid-template-columns:1fr 1.15fr;align-items:stretch}.page-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:55px max(7%,calc((100vw - 1100px)/2));padding-right:7%}.page-hero-copy h1{font:500 clamp(34px,5vw,54px)/1.4 "Shippori Mincho",serif;letter-spacing:.12em;margin:0}.page-hero-copy .en{font-size:11px;letter-spacing:.2em;color:#8e672d}.page-hero-copy .lead{font-size:18px;line-height:2;margin-top:28px}.page-hero-img{background-position:center;background-size:cover}.subpage{max-width:1120px;margin:auto;padding:60px 28px}.sub-title{text-align:center;margin:0 0 38px;font-size:32px;font-weight:500;letter-spacing:.16em}.sub-title:before,.sub-title:after{content:"";display:inline-block;width:70px;height:1px;background:#ae7b31;vertical-align:middle;margin:0 25px}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.rent-card{border:1px solid #d9c8a8;background:#fffdf8;border-radius:4px;overflow:hidden}.rent-card img{width:100%;height:230px;object-fit:cover}.rent-card-body{text-align:center;padding:20px}.rent-card h2{font-size:20px}.rent-card p{font-size:12px;min-height:44px}.rent-prices{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e1d5c0;margin-top:18px}.rent-prices div{padding:10px}.rent-prices div+div{border-left:1px solid #e1d5c0}.rent-prices small{display:block}.rent-prices strong{font-size:25px;color:#9b6c25}.wide-plan{margin-top:42px;border:1px solid #d9c8a8;display:grid;grid-template-columns:46% 54%;background:#fffdf8}.wide-plan img{width:100%;height:100%;min-height:330px;object-fit:cover}.wide-plan>div{padding:40px}.price-table{width:100%;border-collapse:collapse;margin-top:22px}.price-table th,.price-table td{border:1px solid #dfd1b9;padding:12px;text-align:center}.set-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;text-align:center}.set-grid i{font-size:45px;color:#a4702b;font-style:normal}.set-grid p{font-size:12px}.cta-wide{display:block;background:#95191b;color:white;text-align:center;padding:18px;margin:50px auto 0;max-width:980px;font-size:22px;letter-spacing:.15em}.gallery-block{display:grid;grid-template-columns:28% 72%;gap:30px;margin-bottom:25px;align-items:center}.gallery-block:nth-child(even){grid-template-columns:72% 28%}.gallery-block:nth-child(even) .gallery-copy{order:2}.gallery-copy{padding:25px}.gallery-copy h2{font-size:25px;font-weight:500}.gallery-copy p{font-size:13px;line-height:2}.gallery-photos{display:grid;grid-template-columns:2fr 1fr 1fr;gap:6px;height:310px}.gallery-photos img{width:100%;height:100%;object-fit:cover}.gallery-photos img:first-child{grid-row:span 2}.flow-page{max-width:780px}.step-row{display:grid;grid-template-columns:42% 58%;background:#fffdf8;margin-bottom:14px;align-items:center}.step-row:nth-child(even){grid-template-columns:58% 42%}.step-row:nth-child(even) img{order:2}.step-row img{width:100%;height:180px;object-fit:cover}.step-copy{padding:25px 34px}.step-copy b{font-size:42px;color:#b18239;font-weight:400}.step-copy h2{display:inline;margin-left:25px;font-size:20px}.step-copy p{font-size:12px}.notice{border:1px solid #b99050;padding:28px 45px;margin-top:35px;background:#fffdf8}.faq-page details{background:#fffdf8;border:1px solid #dbcdb6;margin:8px 0}.faq-page summary{cursor:pointer;padding:15px 55px 15px 25px;list-style:none;position:relative}.faq-page summary:after{content:"＋";position:absolute;right:25px}.faq-page details[open] summary:after{content:"−"}.faq-page summary em{color:#9a1719;font-style:normal;font-weight:bold;margin-right:18px}.faq-page details p{padding:0 60px 18px;margin:0;font-size:13px}.faq-group{font-size:24px;text-align:center;margin:42px 0 20px;font-weight:500}.contact-strip{display:grid;grid-template-columns:1fr auto auto;gap:35px;align-items:center;border:1px solid #c9a566;padding:25px 45px;margin-top:45px;background:#fffdf8}.contact-strip strong{font-size:28px}.access-info{display:grid;grid-template-columns:1fr 1.25fr;gap:55px;align-items:center}.access-info img,.access-gallery img{width:100%;object-fit:cover}.access-info img{height:330px}.access-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0 45px}.access-gallery img{height:220px}.access-map{display:grid;grid-template-columns:1.4fr .8fr;gap:35px}.map-box{height:300px;background:#efe8d8;display:grid;place-items:center;border:1px solid #ccb181;font-size:28px;color:#8c652e}.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:55px;margin-top:55px}.contact-form label{display:grid;grid-template-columns:130px 1fr;gap:15px;align-items:center;margin:12px 0;font-size:13px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:12px;border:1px solid #d6cbbb;background:white}.contact-form textarea{height:130px}.contact-form button{width:100%;padding:15px;border:0;background:#95191b;color:white}.side-reserve{padding:35px;background:#fffdf8;text-align:center}.side-reserve .button{margin:8px 0}.inner-footer{background:#292b2c;color:white;padding:35px 5%;display:grid;grid-template-columns:220px 1fr;gap:40px}.inner-footer nav{display:flex;gap:22px;flex-wrap:wrap;font-size:12px}@media(max-width:800px){.page-hero{grid-template-columns:1fr}.page-hero-img{height:250px;order:-1}.page-hero-copy{padding:35px 7%}.card-grid{grid-template-columns:1fr}.wide-plan,.access-info,.access-map,.contact-grid{grid-template-columns:1fr}.set-grid{grid-template-columns:repeat(2,1fr)}.gallery-block,.gallery-block:nth-child(even){grid-template-columns:1fr}.gallery-block:nth-child(even) .gallery-copy{order:initial}.gallery-photos{height:430px}.step-row,.step-row:nth-child(even){grid-template-columns:1fr}.step-row:nth-child(even) img{order:initial}.contact-strip{grid-template-columns:1fr;text-align:center}.inner-footer{grid-template-columns:1fr}}

/* === gallery-overrides.css === */
.gallery-hero {
  min-height: 430px;
  grid-template-columns: 43% 57%;
}

.gallery-hero .page-hero-img {
  background-position: center 34%;
}

.gallery-page {
  max-width: 1180px;
  padding-top: 26px;
}

.gallery-block,
.gallery-block:nth-child(even) {
  display: grid;
  grid-template-columns: 27% 73%;
  gap: 0;
  min-height: 360px;
  margin: 0 0 18px;
  align-items: stretch;
  background: rgba(255, 253, 248, .5);
}

.gallery-block:nth-child(even) {
  grid-template-columns: 73% 27%;
}

.gallery-block:nth-child(even) .gallery-copy {
  order: 2;
}

.gallery-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px;
  text-align: center;
}

.gallery-copy h2 {
  margin: 0;
  font-size: clamp(22px, 2.2vw, 29px);
  font-weight: 500;
  letter-spacing: .09em;
}

.gallery-copy h2::after {
  content: "—　❀　—";
  display: block;
  margin: 15px auto 18px;
  color: #b4853d;
  font-size: 18px;
  letter-spacing: .05em;
}

.gallery-copy p {
  margin: 0;
  font-size: 13px;
  line-height: 2;
}

.gallery-photos {
  display: grid;
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 7px;
  height: 360px;
}

.gallery-photos img,
.gallery-photos img:first-child {
  width: 100%;
  height: 100%;
  min-width: 0;
  object-fit: cover;
  object-position: center 28%;
  grid-row: auto;
}

.gallery-photos img:first-child {
  grid-row: 1 / 3;
}

.gallery-photos img:nth-child(2) {
  grid-row: 1 / 3;
}

.gallery-photos img:nth-child(3) {
  grid-column: 3;
  grid-row: 1;
}

.gallery-photos img:nth-child(4) {
  grid-column: 3;
  grid-row: 2;
}

.gallery-block:nth-child(2) .gallery-photos,
.gallery-block:nth-child(4) .gallery-photos {
  grid-template-columns: 1.15fr .85fr;
}

.gallery-block:nth-child(2) .gallery-photos img:first-child,
.gallery-block:nth-child(4) .gallery-photos img:first-child {
  grid-column: 1;
  grid-row: 1 / 3;
}

.gallery-block:nth-child(2) .gallery-photos img:nth-child(2),
.gallery-block:nth-child(4) .gallery-photos img:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}

.gallery-block:nth-child(2) .gallery-photos img:nth-child(3),
.gallery-block:nth-child(4) .gallery-photos img:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}

.gallery-block:nth-child(5) .gallery-photos {
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr;
}

.gallery-block:nth-child(5) .gallery-photos img {
  grid-column: auto;
  grid-row: 1;
}

@media (max-width: 800px) {
  .gallery-hero {
    grid-template-columns: 1fr;
  }

  .gallery-page {
    padding: 20px 14px 55px;
  }

  .gallery-block,
  .gallery-block:nth-child(even) {
    grid-template-columns: 1fr;
  }

  .gallery-block:nth-child(even) .gallery-copy {
    order: initial;
  }

  .gallery-copy {
    padding: 32px 20px 25px;
  }

  .gallery-photos,
  .gallery-block:nth-child(2) .gallery-photos,
  .gallery-block:nth-child(4) .gallery-photos,
  .gallery-block:nth-child(5) .gallery-photos {
    height: 420px;
  }
}

/* === gallery-design.css === */
.gallery-hero {
  position: relative;
  overflow: hidden;
  min-height: 330px;
}

.gallery-hero .page-hero-copy {
  position: relative;
  z-index: 2;
  isolation: isolate;
  overflow: hidden;
  align-items: center;
  padding: 38px 5%;
  text-align: center;
}

.gallery-hero .page-hero-copy::before {
  display: none;
}

.gallery-hero .hero-pattern {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 50%;
  width: auto;
  height: 165%;
  max-width: none;
  transform: translateY(-50%);
  object-fit: contain;
  opacity: .9;
  filter: brightness(.76) saturate(1.72) contrast(1.62);
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 68%, rgba(0, 0, 0, .72) 82%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 68%, rgba(0, 0, 0, .72) 82%, transparent 100%);
  pointer-events: none;
}

.gallery-hero .page-hero-copy > * {
  position: relative;
  z-index: 1;
}

.gallery-hero .page-hero-img {
  position: relative;
  background-position: 62% center;
}

.gallery-hero .page-hero-img::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 32%;
  pointer-events: none;
  background: linear-gradient(90deg,
    #faf7ef 0%,
    rgba(250, 247, 239, .94) 18%,
    rgba(250, 247, 239, .62) 48%,
    rgba(250, 247, 239, .18) 78%,
    transparent 100%);
}

.gallery-page {
  max-width: 1400px;
  padding: 30px 28px 60px;
}

.gallery-block,
.gallery-block:nth-child(even) {
  grid-template-columns: 32% 68%;
  min-height: 0;
  margin: 0 0 24px;
  overflow: hidden;
}

.gallery-block:nth-child(even) {
  grid-template-columns: 68% 32%;
}

.gallery-block:nth-child(1) .gallery-photos { height: 500px; }
.gallery-block:nth-child(2) .gallery-photos { height: 470px; }
.gallery-block:nth-child(3) .gallery-photos { height: 438px; }
.gallery-block:nth-child(4) .gallery-photos { height: 474px; }
.gallery-block:nth-child(5) .gallery-photos { height: 296px; }
.gallery-block:nth-child(6) .gallery-photos { height: 398px; }

.gallery-photos {
  column-gap: 8px;
  row-gap: 8px;
  overflow: hidden;
  line-height: 0;
}

.gallery-photos img,
.gallery-photos img:first-child {
  display: block;
  object-position: center center;
  overflow: hidden;
  border: 0;
  clip-path: inset(0);
  margin: 0;
  padding: 0;
  vertical-align: top;
}

/* Cute and yukata sections: portrait + two details + full-length portrait. */
.gallery-block:nth-child(3) .gallery-photos,
.gallery-block:nth-child(6) .gallery-photos {
  grid-template-columns: 1.2fr .9fr 1fr;
  grid-template-rows: 1.25fr .9fr;
}

.gallery-block:nth-child(6) .gallery-photos {
  grid-template-columns: 1.55fr 1.5fr 1fr;
}

.gallery-block:nth-child(3) .gallery-photos img:first-child,
.gallery-block:nth-child(6) .gallery-photos img:first-child {
  grid-column: 1;
  grid-row: 1 / 3;
}

.gallery-block:nth-child(3) .gallery-photos img:nth-child(2),
.gallery-block:nth-child(6) .gallery-photos img:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}

.gallery-block:nth-child(3) .gallery-photos img:nth-child(3),
.gallery-block:nth-child(6) .gallery-photos img:nth-child(3) {
  grid-column: 2;
  grid-row: 2;
}

.gallery-block:nth-child(3) .gallery-photos img:nth-child(4),
.gallery-block:nth-child(6) .gallery-photos img:nth-child(4) {
  grid-column: 3;
  grid-row: 1 / 3;
}

/* Couple section: large portrait with two horizontal detail panels. */
.gallery-block:nth-child(4) .gallery-photos {
  grid-template-columns: 1.2fr 1fr;
  grid-template-rows: 1.08fr 1fr;
}

/* Men's section follows the design's four equal vertical panels. */
.gallery-block:nth-child(5) .gallery-photos {
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr;
}

@media (max-width: 800px) {
  .gallery-hero {
    min-height: auto;
  }

  .gallery-hero .page-hero-copy::before {
    display: none;
  }

  .gallery-hero .hero-pattern {
    top: 250px;
    bottom: 0;
    width: 100%;
    height: calc(100% - 250px);
    max-height: none;
    transform: none;
    object-fit: cover;
    object-position: left center;
    opacity: .9;
  }

  .gallery-hero .page-hero-img::before {
    width: 24%;
  }

  .gallery-page {
    padding: 18px 12px 50px;
  }

  .gallery-block,
  .gallery-block:nth-child(even) {
    grid-template-columns: 1fr;
    margin-bottom: 20px;
  }

  .gallery-block .gallery-photos,
  .gallery-block:nth-child(2) .gallery-photos,
  .gallery-block:nth-child(3) .gallery-photos,
  .gallery-block:nth-child(4) .gallery-photos,
  .gallery-block:nth-child(5) .gallery-photos,
  .gallery-block:nth-child(6) .gallery-photos {
    height: 430px;
  }

  .gallery-block:nth-child(1) .gallery-photos { height: 440px; }
  .gallery-block:nth-child(2) .gallery-photos { height: 390px; }
  .gallery-block:nth-child(3) .gallery-photos { height: 420px; }
  .gallery-block:nth-child(4) .gallery-photos { height: 400px; }
  .gallery-block:nth-child(5) .gallery-photos { height: 360px; }
  .gallery-block:nth-child(6) .gallery-photos { height: 410px; }

  .gallery-block:nth-child(5) .gallery-photos {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }

  .gallery-block:nth-child(5) .gallery-photos img:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }
}

/* === plans-overrides.css === */
.rent-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}

.rent-card img.focus-face {
  object-position: center 28%;
}

.rent-card img.focus-student {
  object-position: center top;
}

.rent-card img.focus-yukata {
  object-position: center 100%;
}

.set-grid img {
  width: 124px;
  height: 124px;
  object-fit: contain;
  margin: 0 auto 8px;
}

.option-section {
  margin-top: 62px;
}

.option-card {
  display: grid;
  grid-template-columns: 124px 1fr auto;
  gap: 24px;
  align-items: center;
  max-width: 880px;
  margin: 0 auto;
  padding: 20px 30px;
  border: 1px solid #d8c6a7;
  background: rgba(255, 253, 248, .84);
}

.option-card img {
  width: 112px;
  height: 112px;
  object-fit: contain;
}

.option-card h3,
.option-card p {
  margin: 3px 0;
}

.option-card strong {
  color: #95191b;
  font-size: 34px;
  font-weight: 500;
  white-space: nowrap;
}

.option-card small {
  margin-left: 5px;
  color: #392e27;
  font-size: 12px;
}

.option-note {
  max-width: 880px;
  margin: 15px auto 0;
  font-size: 12px;
  line-height: 1.8;
}

@media (max-width: 800px) {
  .rent-card img {
    object-position: center 24%;
  }

  .rent-card img.focus-student {
    object-position: center top;
  }

  .rent-card img.focus-yukata {
    object-position: center 100%;
  }

  .option-card {
    grid-template-columns: 82px 1fr;
    padding: 18px;
  }

  .set-grid img {
    width: 104px;
    height: 104px;
  }

  .option-card img {
    width: 78px;
    height: 78px;
  }

  .option-card strong {
    grid-column: 1 / -1;
    text-align: center;
  }
}

/* === patterned-hero.css === */
.patterned-hero {
  position: relative;
  overflow: hidden;
  min-height: 330px;
  grid-template-columns: 43% 57%;
}

.patterned-hero .page-hero-copy {
  position: relative;
  z-index: 2;
  align-items: center;
  padding: 38px 5%;
  overflow: hidden;
  text-align: center;
}

.patterned-hero .page-hero-copy > * {
  position: relative;
  z-index: 2;
}

.patterned-hero .hero-pattern {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 50%;
  width: auto;
  height: 165%;
  max-width: none;
  transform: translateY(-50%);
  object-fit: contain;
  opacity: .9;
  filter: brightness(.76) saturate(1.72) contrast(1.62);
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 68%, rgba(0,0,0,.72) 82%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, #000 68%, rgba(0,0,0,.72) 82%, transparent 100%);
  pointer-events: none;
}

.patterned-hero .page-hero-img {
  position: relative;
  background-position: center;
}

.patterned-hero .page-hero-img::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 32%;
  background: linear-gradient(90deg, #faf7ef, rgba(250,247,239,.9) 22%, rgba(250,247,239,.42) 58%, transparent);
  pointer-events: none;
}

@media (max-width: 800px) {
  .patterned-hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .patterned-hero .hero-pattern {
    top: 250px;
    bottom: 0;
    width: 100%;
    height: calc(100% - 250px);
    transform: none;
    object-fit: cover;
    object-position: left center;
  }

  .patterned-hero .page-hero-img::before {
    width: 24%;
  }
}

/* === symmetric-hero.css === */
.symmetric-hero {
  position: relative;
  overflow: hidden;
  min-height: 330px;
}

.symmetric-hero .page-hero-copy {
  position: relative;
  z-index: 2;
  align-items: center;
  padding: 38px 24%;
  text-align: center;
}

.symmetric-hero .symmetric-pattern {
  position: absolute;
  z-index: 1;
  top: 50%;
  width: auto;
  height: 158%;
  max-width: none;
  object-fit: contain;
  opacity: .9;
  filter: brightness(.76) saturate(1.72) contrast(1.62);
  pointer-events: none;
}

.symmetric-hero .pattern-left {
  left: -1.5%;
  transform: translateY(-50%);
}

.symmetric-hero .pattern-right {
  right: -1.5%;
  transform: translateY(-50%) scaleX(-1);
}

@media (max-width: 800px) {
  .symmetric-hero .page-hero-copy {
    padding: 38px 16%;
  }

  .symmetric-hero .symmetric-pattern {
    height: 128%;
    opacity: .9;
    filter: brightness(.76) saturate(1.72) contrast(1.62);
  }

  .symmetric-hero .pattern-left { left: -18%; }
  .symmetric-hero .pattern-right { right: -18%; }
}

/* === reservation.css === */
.reservation-hero{grid-template-columns:1fr;min-height:270px;position:relative;overflow:hidden}.reservation-hero .page-hero-copy{text-align:center;align-items:center;position:relative;z-index:2}.reservation-content{max-width:1180px;margin:auto;padding:48px 28px 86px}.amelia-booking-frame{overflow:hidden;border:1px solid #dfd5c7;border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(66,42,25,.16)}.amelia-preview{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:680px;color:#342f2a}.amelia-sidebar{display:flex;flex-direction:column;padding:30px 20px 22px;background:linear-gradient(155deg,#751c20,#94262a 60%,#68181c);color:#fff}.amelia-side-logo{padding:0 14px 25px;border-bottom:1px solid rgba(255,255,255,.22)}.amelia-side-logo img{display:block;width:155px;max-width:100%;filter:brightness(0) invert(1)}.amelia-steps{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none}.amelia-step{display:grid;grid-template-columns:28px minmax(0,1fr) 25px;gap:11px;align-items:center;padding:13px 12px;border:1px solid transparent;border-radius:7px;background:rgba(255,255,255,.08);cursor:pointer;transition:.2s}.amelia-step.active{border-color:rgba(226,189,125,.8);background:rgba(255,255,255,.17)}.amelia-step.completed{background:rgba(255,255,255,.12)}.step-icon{font-size:19px;text-align:center}.step-label{display:block;font-family:"Shippori Mincho",serif;font-weight:600;letter-spacing:.06em}.step-value{display:block;overflow:hidden;margin-top:4px;color:#f1d9bc;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.step-state{display:grid;place-items:center;width:23px;height:23px;border:1px solid rgba(255,255,255,.34);border-radius:50%;font-size:11px}.amelia-step.active .step-state{border-color:#ddb674;background:#ddb674;color:#6f191c}.amelia-step.completed .step-state::before{content:"✓"}.amelia-step.completed .step-state{font-size:0}.amelia-collapse{margin-top:auto;padding:20px 12px 3px;border-top:1px solid rgba(255,255,255,.2);font-family:"Shippori Mincho",serif;letter-spacing:.08em}.amelia-main{display:flex;min-width:0;flex-direction:column;background:#fff}.amelia-main-head{padding:28px 38px 22px;border-bottom:1px solid #ece5dc}.amelia-main-head h2{margin:0;font:500 26px "Shippori Mincho",serif;letter-spacing:.07em}.amelia-main-head p{margin:7px 0 0;color:#8a7768;font-size:13px}.amelia-panel{display:none;padding:32px 38px 38px;animation:panel-in .25s ease}.amelia-panel.active{display:block}@keyframes panel-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}.store-card{display:grid;grid-template-columns:100px 1fr auto;gap:22px;align-items:center;padding:22px;border:1px solid #b68b58;border-radius:9px;background:#fffcf7;box-shadow:inset 0 0 0 1px rgba(182,139,88,.12)}.store-card img{width:92px;height:92px;border-radius:50%;object-fit:cover}.store-card h3{margin:0 0 9px;font:500 20px "Shippori Mincho",serif}.store-card p{margin:5px 0;color:#756b62;font-size:13px;line-height:1.7}.store-card input{width:20px;height:20px;accent-color:#8c2024}.single-store-note{margin:20px 2px 0;color:#8b7b6c;font-size:12px}.service-list{display:grid;gap:12px}.service-card{display:grid;grid-template-columns:24px 1fr auto;gap:14px;align-items:center;padding:18px 20px;border:1px solid #ddd3c7;border-radius:8px;cursor:pointer}.service-card:has(input:checked){border-color:#9a262a;background:#fff8f5;box-shadow:0 0 0 1px #9a262a}.service-card input{width:18px;height:18px;accent-color:#8f2024}.service-card span{display:flex;flex-direction:column;gap:5px}.service-card small{color:#85786c}.service-card strong{color:#8d2024;font-size:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.amelia-panel label{font-size:13px}.amelia-panel input[type=date],.amelia-panel input[type=text],.amelia-panel input[type=tel],.amelia-panel input[type=email],.amelia-panel select{display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:13px 12px;border:1px solid #d8cec2;border-radius:6px;background:#fff;color:#39332e;font:inherit}.time-field{margin:24px 0 0}.field-title{margin:0 0 12px;font-size:13px}.time-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.time-list input{position:absolute;opacity:0}.time-list span{display:block;padding:11px;text-align:center;border:1px solid #d8cec2;border-radius:6px;cursor:pointer}.time-list input:checked+span{border-color:#8f2024;background:#8f2024;color:#fff}.customer-fields{display:grid;gap:18px}.customer-fields .full{grid-column:1/-1}.confirmation-card{margin-top:28px;padding:22px 24px;border-left:3px solid #b88948;background:#f8f2e9}.confirmation-card h3{margin:0 0 15px;font:500 18px "Shippori Mincho",serif}.confirmation-card dl{display:grid;grid-template-columns:120px 1fr;gap:10px;margin:0}.confirmation-card dt{color:#8a7969;font-size:12px}.confirmation-card dd{margin:0}.amelia-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:auto;padding:20px 38px;border-top:1px solid #ece5dc;background:#f9f6f1}.amelia-actions button{min-width:112px;padding:13px 24px;border-radius:6px;font:600 14px "Shippori Mincho",serif;letter-spacing:.08em;cursor:pointer}.prev-step{margin-right:auto;border:1px solid #b7a99b;background:#fff;color:#685c51}.next-step,.submit-booking{border:1px solid #8c2024;background:#8c2024;color:#fff}.amelia-actions button:hover{filter:brightness(.96)}.booking-notes{margin-top:34px;padding:25px 32px;background:#f7efe2;border-left:3px solid #ae7d3d}.booking-notes h2{margin-top:0;font:500 21px "Shippori Mincho",serif}.booking-notes li{margin:8px 0}.booking-notes a{color:#8d1e22;font-weight:700}@media(max-width:820px){.reservation-content{padding:34px 14px 60px}.amelia-preview{grid-template-columns:1fr;min-height:0}.amelia-sidebar{padding:18px 14px}.amelia-side-logo{padding:0 6px 14px}.amelia-side-logo img{width:128px}.amelia-steps{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px}.amelia-step{display:flex;min-width:0;flex-direction:column;gap:4px;padding:9px 4px;text-align:center}.step-icon{font-size:17px}.step-label{font-size:11px}.step-value,.step-state,.amelia-collapse{display:none}.amelia-main-head{padding:22px 20px 18px}.amelia-main-head h2{font-size:22px}.amelia-panel{padding:24px 18px 30px}.store-card{grid-template-columns:70px 1fr auto;gap:12px;padding:15px}.store-card img{width:66px;height:66px}.store-card h3{font-size:16px}.form-row{grid-template-columns:1fr}.time-list{grid-template-columns:repeat(2,1fr)}.customer-fields .full{grid-column:auto}.confirmation-card dl{grid-template-columns:90px 1fr}.amelia-actions{padding:16px 18px}.amelia-actions button{min-width:95px;padding:12px 16px}}

/* === reservation-tweaks.css === */
.reservation-content{max-width:800px}.amelia-booking-frame{width:100%;max-width:800px;margin-inline:auto}.amelia-preview{grid-template-columns:230px minmax(0,1fr)}.amelia-sidebar{padding-inline:15px}.amelia-sidebar li{grid-template-columns:34px minmax(0,1fr) 24px;gap:9px}.amelia-sidebar li>i{display:grid;place-items:center;width:30px;height:30px}.amelia-sidebar li>i svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.amelia-panel{padding:30px 28px 34px}.store-card{grid-template-columns:82px minmax(0,1fr) auto;gap:16px;padding:18px}.store-card img{width:78px;height:78px}.store-card .store-select{display:flex;flex-direction:column;align-items:center;gap:7px;justify-self:end}.store-card .store-select input{width:22px;height:22px;margin:0}.store-card .store-select strong{color:#8d2024;font-size:11px;white-space:nowrap}.store-card span>b{font-size:17px}.store-card span>small,.store-card span>em{font-size:11px}.amelia-actions{padding-inline:28px}@media(max-width:820px){.reservation-content{max-width:100%}.amelia-preview{grid-template-columns:1fr}.amelia-sidebar li{grid-template-columns:1fr}.amelia-sidebar li>i{width:30px;height:30px}.amelia-sidebar li>i svg{width:25px;height:25px}.store-card{grid-template-columns:66px minmax(0,1fr) auto;gap:11px;padding:14px}.store-card img{width:62px;height:62px}.store-card span>small,.store-card span>em{font-size:10px}.store-card .store-select strong{display:none}}

/* === reservation-store-fix.css === */
.store-card{display:grid!important;grid-template-columns:78px minmax(0,1fr) 48px!important;grid-template-areas:"photo info select";align-items:center!important}.store-card>img{grid-area:photo;display:block}.store-card>.store-information{grid-area:info;display:block!important;min-width:0;align-self:center}.store-card>.store-select{grid-area:select;justify-self:end}.store-information>b,.store-information>small,.store-information>em{display:block}.store-information>b{margin:0 0 7px}.store-information>small,.store-information>em{margin:3px 0}@media(max-width:560px){.store-card{grid-template-columns:62px minmax(0,1fr) 32px!important;column-gap:10px!important}.store-information>b{font-size:14px!important}.store-information>small,.store-information>em{font-size:9px!important;line-height:1.55}}

/* === reservation-compat.css === */
.amelia-logo{padding:0 14px 25px;border-bottom:1px solid #ffffff38;font-family:"Shippori Mincho",serif}.amelia-logo span{display:block;font-size:40px}.amelia-logo small{letter-spacing:.16em}.amelia-sidebar ol{display:grid;gap:10px;margin:24px 0 0;padding:0;list-style:none}.amelia-sidebar li{display:grid;grid-template-columns:28px minmax(0,1fr) 25px;gap:11px;align-items:center;padding:13px 12px;border:1px solid transparent;border-radius:7px;background:#ffffff14;cursor:pointer}.amelia-sidebar li.active{border-color:#e2bd7dcc;background:#ffffff2b}.amelia-sidebar li.completed{background:#ffffff1f}.amelia-sidebar li>i{font-size:19px;text-align:center;font-style:normal}.amelia-sidebar li>span{font-family:"Shippori Mincho",serif;font-weight:600}.amelia-sidebar li small{display:block;overflow:hidden;margin-top:4px;color:#f1d9bc;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.amelia-sidebar li>b{display:grid;place-items:center;width:23px;height:23px;border:1px solid #ffffff57;border-radius:50%;font-size:11px}.amelia-sidebar li.completed>b{font-size:0}.amelia-sidebar li.completed>b:before{content:"✓";font-size:11px}.amelia-panel>h2{margin:0;font:500 26px "Shippori Mincho",serif}.panel-lead{margin:8px 0 28px;color:#8a7768}.store-card span>b{display:block;margin-bottom:8px;font:500 20px "Shippori Mincho",serif}.store-card span>small,.store-card span>em{display:block;color:#756b62;font-size:13px;line-height:1.7;font-style:normal}.service-list>label{display:grid;grid-template-columns:24px 1fr auto;gap:14px;align-items:center;padding:18px 20px;border:1px solid #ddd3c7;border-radius:8px;cursor:pointer}.service-list>label:has(input:checked){border-color:#9a262a;background:#fff8f5;box-shadow:0 0 0 1px #9a262a}.service-list>label span{display:flex;flex-direction:column;gap:5px}.service-list>label small{color:#85786c}.service-list>label strong{color:#8d2024}.amelia-panel fieldset{margin:24px 0 0;padding:0;border:0}.amelia-panel legend{margin-bottom:12px}.amelia-panel>label{display:block;margin-top:18px}.final-summary{margin-top:28px;padding:22px 24px;border-left:3px solid #b88948;background:#f8f2e9}.final-summary h3{margin-top:0}.final-summary p{display:grid;gap:8px;margin-bottom:0}.final-summary span{color:#756b62}.final-summary i{font-style:normal}.final-summary strong{color:#8d2024}@media(max-width:820px){.amelia-sidebar ol{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:14px}.amelia-sidebar li{display:flex;min-width:0;flex-direction:column;gap:4px;padding:9px 4px;text-align:center}.amelia-sidebar li>i{font-size:17px}.amelia-sidebar li>span{font-size:11px}.amelia-sidebar li small,.amelia-sidebar li>b{display:none}.amelia-logo{padding:0 6px 14px}.store-card span>b{font-size:16px}}

/* === offline-fixes.css === */
/* Stable direct file:// rendering without online web-font or CSS-mask support. */
body,
button,
input,
select,
textarea,
.hero h1,
.page-hero-copy h1,
.section-heading h2,
.sub-title,
.gallery-copy h2 {
  font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "MS PMincho", "Noto Serif CJK JP", serif;
}

.brand strong {
  background-color: transparent;
  background-image: url("../images/rei-mark-offline-black.webp");
  background-position: center;
  background-size: contain;
  background-repeat: no-repeat;
  -webkit-mask: none;
  mask: none;
}

.brand.inverse strong {
  background-color: transparent;
  background-image: url("../images/rei-mark-noren.webp");
}

@media (min-width: 801px) {
  .flow-page { max-width: 1120px; padding-top: 48px; }
  .step-row, .step-row:nth-child(even) { grid-template-columns: 44% 56%; margin-bottom: 18px; min-height: 260px; }
  .step-row:nth-child(even) { grid-template-columns: 56% 44%; }
  .step-row:nth-child(even) .step-icon { order: initial; }
  .step-row .step-photo { height: 260px; object-fit: cover; }
  .step-copy { padding: 34px 46px; }
  .step-heading { display: flex; align-items: center; gap: 28px; margin-bottom: 22px; }
  .step-copy b { font-size: 52px; line-height: 1; }
  .step-copy h2 { display: block; margin: 0; font-size: 24px; line-height: 1.5; white-space: nowrap; }
  .step-detail { display: grid; grid-template-columns: 74px 1fr; gap: 25px; align-items: center; }
  .step-detail .step-icon { width: 68px; height: 68px; object-fit: contain; }
  .step-detail .step-icon { opacity: .72; filter: brightness(1.12) saturate(.82); }
  .step-detail.no-icon { grid-template-columns: 1fr; padding-left: 99px; }
  .step-copy p { font-size: 15px; line-height: 2; margin: 0; }
  .notice { display: grid; grid-template-columns: 1fr 250px; gap: 28px; align-items: center; }
  .notice-icon { width: 250px; height: 155px; object-fit: contain; opacity: .72; filter: brightness(1.12) saturate(.82); }
}

@media (max-width: 800px) {
  .step-row .step-photo { height: 220px; }
  .step-heading { display: flex; align-items: center; gap: 16px; }
  .step-copy h2 { display: block; margin: 0; font-size: 18px; }
  .step-detail { display: grid; grid-template-columns: 58px 1fr; gap: 16px; align-items: center; margin-top: 18px; }
  .step-detail .step-icon { width: 54px; height: 54px; object-fit: contain; }
  .step-detail .step-icon { opacity: .72; filter: brightness(1.12) saturate(.82); }
  .step-detail.no-icon { grid-template-columns: 1fr; }
  .step-copy p { font-size: 13px; line-height: 1.9; margin: 0; }
  .notice { display: grid; grid-template-columns: 1fr; padding: 24px; }
  .notice-icon { width: min(280px, 100%); height: auto; justify-self: center; opacity: .72; filter: brightness(1.12) saturate(.82); }
}

/* Unified image logo: black in the header, matching white version in footers. */
.brand {
  display: block;
  width: 210px;
  height: 70px;
  min-width: 210px;
  background: url("../images/logo.webp") center / contain no-repeat;
}

.brand > span,
.brand > strong,
.brand > small {
  display: none;
}

.brand.inverse {
  position: relative;
  background-image: none;
}

.brand.inverse::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../images/logo.webp") center / contain no-repeat;
  filter: brightness(0) invert(1);
}

@media (max-width: 900px) {
  .brand {
    width: 165px;
    height: 55px;
    min-width: 165px;
  }
}

/* === reservation-language.css === */
.site-header .language-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;box-sizing:border-box;overflow:hidden;transition:opacity .2s,transform .2s}.site-header .language-button svg,.site-header .language-button img{display:block;width:34px;height:34px;border-radius:50%}.site-header .language-button:hover{opacity:.82;transform:scale(1.04)}@media(max-width:760px){.site-header .language-button{position:absolute;right:70px;top:50%;width:32px;height:32px;transform:translateY(-50%)}.site-header .language-button svg,.site-header .language-button img{width:32px;height:32px}.site-header .language-button:hover{transform:translateY(-50%) scale(1.04)}.site-header .header-reserve{display:none}}

/* === home-flow-six.css === */
@media(min-width:901px){.flow-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.flow-list li:not(:last-child):after{right:-14px}.flow-list i{width:90px;height:90px}.flow-list h3{font-size:14px;white-space:nowrap}}.flow-list li:nth-child(1) i{background-image:url("../images/flow-new-calendar.webp")}.flow-list li:nth-child(2) i{background-image:url("../images/flow-new-shop.webp")}.flow-list li:nth-child(3) i{background-image:url("../images/flow-new-fan.webp")}.flow-list li:nth-child(4) i{background-image:url("../images/flow-new-kimono.webp")}.flow-list li:nth-child(5) i{background-image:url("../images/flow-new-camera.webp")}.flow-list li:nth-child(6) i{background-image:url("../images/flow-new-return.webp")}.flow-list i{background-repeat:no-repeat;background-position:center;background-size:78% auto;color:transparent!important}

/* === home-flow-circle.css === */
.flow-list i{width:104px;height:104px;border:1px solid #d9c39b;border-radius:50%;background-size:68% auto;filter:opacity(.72);box-shadow:inset 0 0 0 4px #fff8ed66}.flow-list li:not(:last-child):after{color:#bd9255;opacity:.68}@media(min-width:901px){.flow-list i{width:94px;height:94px;background-size:67% auto}}@media(max-width:540px){.flow-list i{width:92px;height:92px}}

/* === wechat-mobile-fixes.css === */
/* iOS WeChat/WebKit: keep short Japanese punctuation with its phrase. */
@media (max-width: 540px) {
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body {
    overflow-x: hidden;
  }

  .hero {
    height: auto;
    min-height: 0;
  }

  .hero-copy {
    padding-bottom: 48px;
  }

  .hero-actions {
    width: 100%;
    margin-bottom: 24px;
  }

  .hero-actions .button {
    min-height: 54px;
    flex-shrink: 0;
  }

  .hero-copy .hero-subcopy {
    font-size: 13px !important;
    line-height: 1.9;
    letter-spacing: .055em !important;
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
  }

  .hero-subcopy span,
  .reserve-band h2 span {
    display: block;
    white-space: nowrap;
  }

  .reserve-band {
    padding-inline: 6%;
  }

  .reserve-band h2 {
    margin: 0 0 18px;
    font-size: 18px !important;
    line-height: 1.75;
    letter-spacing: .055em !important;
  }

  .reserve-band .button {
    width: 100%;
    max-width: 100%;
  }
}

/* mobile-menu-polish */
@media (max-width:900px){
  .site-header.open .global-nav{
    padding:10px 26px 16px;
    border-top:1px solid rgba(169,122,49,.22);
    box-shadow:0 12px 24px rgba(55,43,27,.13);
  }
  .site-header.open .global-nav a{
    min-height:59px;
    padding:17px 15px 16px;
    display:flex;
    align-items:center;
    border-bottom:1px solid rgba(169,122,49,.16);
    font-size:14px;
    line-height:1.7;
    letter-spacing:.13em;
  }
  .site-header.open .global-nav a:last-child{border-bottom:0}
  .site-header.open .global-nav a:after{display:none}
  .site-header.open .global-nav a.active{
    color:#791719;
    font-weight:600;
    background:linear-gradient(90deg,rgba(169,122,49,.09),transparent 72%);
    box-shadow:inset 2px 0 0 #a97a31;
  }
  .menu-button{padding:6px 2px;gap:6px}
  .menu-button span{width:27px}
  .menu-button b{margin-top:1px;letter-spacing:.08em}
}
/* stable-header-actions */
.site-header .language-button{
  flex:0 0 34px;
  width:34px;
  min-width:34px;
  max-width:34px;
  height:34px;
  min-height:34px;
  aspect-ratio:1/1;
  line-height:0;
}
.site-header .language-button img,
.site-header .language-button svg{
  width:100%;
  height:100%;
  min-width:100%;
  object-fit:cover;
  aspect-ratio:1/1;
}
.site-header .header-reserve{
  flex:0 0 auto;
  min-width:112px;
  min-height:50px;
  padding:14px 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  line-height:1.4;
}
@media (max-width:1100px) and (min-width:901px){
  .site-header{gap:18px;padding-inline:20px}
  .site-header .global-nav{gap:17px;font-size:12px}
  .site-header .header-reserve{min-width:96px;padding-inline:18px}
}
@media (max-width:900px){
  .site-header .language-button{
    flex-basis:32px;
    width:32px;
    min-width:32px;
    max-width:32px;
    height:32px;
    min-height:32px;
    right:68px;
  }
  .site-header .header-reserve{display:none}
  .site-header .menu-button{flex:0 0 32px;min-width:32px}
}
@media (max-width:380px){
  .site-header{padding-inline:12px}
  .site-header .brand{min-width:0;max-width:calc(100% - 86px)}
  .site-header .language-button{right:55px;width:30px;min-width:30px;max-width:30px;height:30px;min-height:30px}
  .site-header .menu-button{flex-basis:30px;min-width:30px}
}
/* footer-web-reservation */
.footer-web-reserve{
  grid-column:1/-1;
  justify-self:center;
  width:min(360px,100%);
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:6px;
  border:1px solid rgba(255,255,255,.72);
  background:#8c1718;
  color:#fff;
  font-size:15px;
  font-weight:600;
  letter-spacing:.16em;
  line-height:1.4;
  white-space:nowrap;
  transition:background .2s,transform .2s;
}
.footer-web-reserve:hover{background:#a31c1e;transform:translateY(-1px)}
@media(max-width:900px){
  .footer-web-reserve{width:min(100%,420px);min-height:56px;margin:8px auto 2px;font-size:16px}
}
/* compact-footer-reservation */
footer nav .footer-web-reserve,
.inner-footer nav .footer-web-reserve{
  grid-column:auto;
  width:auto;
  min-width:96px;
  min-height:36px;
  padding:7px 16px;
  margin:0;
  border-color:#b78a55;
  background:#94191b;
  font-size:12px;
  letter-spacing:.12em;
  box-shadow:0 3px 10px rgba(0,0,0,.16);
}
footer .footer-copyright,
.inner-footer .footer-copyright{
  grid-column:1/-1;
  display:block;
  width:100%;
  margin-top:2px;
  color:#aaa;
  text-align:center;
  font-size:9px;
  letter-spacing:.04em;
}
@media(max-width:900px){
  footer nav .footer-web-reserve,
  .inner-footer nav .footer-web-reserve{
    width:auto;
    min-width:104px;
    min-height:38px;
    padding:8px 17px;
    margin:0;
    font-size:12px;
  }
  footer .footer-copyright,
  .inner-footer .footer-copyright{margin-top:8px;font-size:9px;line-height:1.7}
}
/* footer-reservation-alignment */
footer nav,
.inner-footer nav{align-items:center}
footer nav .footer-web-reserve,
.inner-footer nav .footer-web-reserve{
  min-width:82px;
  min-height:29px;
  height:29px;
  padding:4px 11px;
  margin:0;
  font-size:10px;
  line-height:1;
  align-self:center;
  vertical-align:middle;
}
@media(max-width:900px){
  footer nav .footer-web-reserve,
  .inner-footer nav .footer-web-reserve{
    min-width:88px;
    min-height:31px;
    height:31px;
    padding:5px 12px;
    font-size:10px;
  }
}

/* location photography course details */
.photo-course-section{
  margin:64px 0 0;
  padding:48px 42px;
  border:1px solid rgba(177,139,75,.42);
  background:rgba(255,253,248,.84);
}
.photo-course-intro{display:grid;grid-template-columns:minmax(280px,42%) 1fr;align-items:stretch;margin:-48px -42px 34px;background:#fff}
.photo-course-intro>img{display:block;width:100%;height:100%;min-height:330px;object-fit:cover;object-position:center}
.photo-course-intro>div{position:relative;display:flex;flex-direction:column;justify-content:center;padding:40px 42px}
.photo-course-intro .plan-number{position:absolute;top:26px;right:30px;color:rgba(177,139,75,.48);font-family:Georgia,"Times New Roman",serif;font-size:2rem}
.photo-course-intro .photo-reservation-label{width:max-content;margin-bottom:13px;padding:5px 12px;background:#9a2f33;color:#fff;font-size:.68rem;letter-spacing:.12em}
.photo-course-intro h2{margin:0;font-size:2rem;font-weight:500;letter-spacing:.1em}
.photo-course-intro small{margin-top:8px;color:#9d7b3e;font-size:.7rem;letter-spacing:.22em}
.photo-course-intro p{margin:22px 0 0;color:#625a52;font-size:.9rem;line-height:2}
.photo-course-heading{text-align:center}
.photo-course-heading h2{margin:0;font-size:2rem;font-weight:500;letter-spacing:.12em}
.photo-course-heading span{display:block;margin-top:9px;color:#9d7b3e;font-size:.7rem;letter-spacing:.24em}
.photo-course-section>.section-heading{text-align:center}
.photo-course-section>.section-heading h2{margin:0;font-size:2rem;font-weight:500;letter-spacing:.12em}
.photo-course-section>.section-heading span{display:block;margin:9px 0 26px;color:#9d7b3e;font-size:.7rem;letter-spacing:.24em}
.photo-course-lead{max-width:760px;margin:20px auto 28px;text-align:center;line-height:2}
.photo-benefits{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin:0 0 30px;
  padding:18px;
  border:1px solid rgba(177,139,75,.35);
  background:#f8f1e4;
}
.photo-benefits span{display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;font-size:.9rem}
.photo-benefits span::before{content:"✓";color:#9d7337;font-size:1.15rem;font-weight:700}
.photo-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.photo-course-grid article{
  position:relative;
  min-height:220px;
  padding:26px 24px 22px;
  border:1px solid rgba(45,39,34,.13);
  background:#fff;
  box-shadow:0 9px 24px rgba(52,42,31,.06);
}
.photo-course-grid article.recommended{border-color:#b18b4b;background:#fffdf8}
.photo-course-grid article>em{
  position:absolute;
  top:-12px;
  right:14px;
  padding:5px 11px;
  border-radius:20px;
  background:#9a2f33;
  color:#fff;
  font-size:.68rem;
  font-style:normal;
  letter-spacing:.05em;
}
.photo-course-grid h3{margin:0 0 14px;font-size:1rem;font-weight:500}
.photo-course-grid article>strong{display:block;margin:0 0 18px;color:#a77b38;font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:600;letter-spacing:.02em}
.photo-course-grid .photo-tax{display:block;margin:-13px 0 17px;color:#736a61;font-size:.72rem}
.photo-course-grid .photo-price{margin:0 0 18px;color:#a77b38}
.photo-course-grid .photo-price strong{font-family:Georgia,"Times New Roman",serif;font-size:2rem;font-weight:600;letter-spacing:.02em}
.photo-course-grid .photo-price small{margin-left:5px;color:#736a61;font-size:.72rem}
.photo-course-grid article>p:last-child{margin:0;padding-top:16px;border-top:1px dashed rgba(45,39,34,.15);color:#6d655d;font-size:.83rem;line-height:1.8}
.photo-course-grid article>p:last-child b{display:block;color:#342f2b;font-weight:500}
.photo-course-grid article>p{margin:0;padding-top:15px;border-top:1px dashed rgba(45,39,34,.15);color:#342f2b;font-size:.84rem}
.photo-course-grid article>small{display:block;margin-top:7px;color:#6d655d;font-size:.76rem;line-height:1.7}
.photo-delivery{margin-top:26px;padding:24px 28px;background:#f1f3f3}
.photo-delivery h3{margin:0 0 12px;font-size:1.05rem;font-weight:500}
.photo-delivery ul{display:grid;gap:6px;margin:0;padding-left:1.3em;color:#5f5a55;font-size:.84rem;line-height:1.75}
.paid-options{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  margin:24px 0 0;
  padding:22px 30px;
  border:1px solid rgba(177,139,75,.42);
  background:#fff;
}
.paid-options>span{color:#9d7b3e;font-size:.68rem;letter-spacing:.2em}
.paid-options h2{margin:0;font-size:1.25rem;font-weight:500;letter-spacing:.12em}
.paid-options p{margin:0;white-space:nowrap;color:#6d655d;font-size:.78rem}
.paid-options strong{color:#9a2f33;font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;font-weight:600}

@media(max-width:900px){
  .photo-course-section{padding:42px 28px}
  .photo-course-intro{grid-template-columns:38% 1fr;margin:-42px -28px 30px}
  .photo-course-intro>img{min-height:300px}
  .photo-course-intro>div{padding:34px 28px}
  .photo-benefits{grid-template-columns:1fr}
  .photo-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
  .photo-course-section{margin-top:42px;padding:36px 16px}
  .photo-course-intro{grid-template-columns:1fr;margin:-36px -16px 28px}
  .photo-course-intro>img{height:230px;min-height:0}
  .photo-course-intro>div{padding:28px 22px 30px}
  .photo-course-intro .plan-number{top:24px;right:22px;font-size:1.7rem}
  .photo-course-intro h2{font-size:1.55rem}
  .photo-course-intro p{margin-top:17px;font-size:.85rem;line-height:1.85}
  .photo-course-heading h2{font-size:1.55rem}
  .photo-course-section>.section-heading h2{font-size:1.55rem}
  .photo-course-lead{text-align:left;font-size:.88rem;line-height:1.85}
  .photo-benefits{padding:16px 12px}
  .photo-benefits span{justify-content:flex-start}
  .photo-course-grid{grid-template-columns:1fr;gap:16px}
  .photo-course-grid article{min-height:0;padding:24px 20px 20px}
  .photo-course-grid .photo-price strong{font-size:1.85rem}
  .photo-delivery{padding:22px 18px}
  .paid-options{grid-template-columns:1fr;gap:8px;text-align:center;padding:20px}
}

/* mobile-fixed-contact-and-reservation */
.footer-contact-fixed{display:none}
.mobile-menu-action{display:none}
@media(max-width:800px){
  body{
    padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px));
  }
  footer nav .footer-contact-fixed,
  .inner-footer nav .footer-contact-fixed,
  footer nav .footer-web-reserve,
  .inner-footer nav .footer-web-reserve{
    display:flex;
    position:fixed;
    z-index:1200;
    bottom:calc(10px + env(safe-area-inset-bottom, 0px));
    width:calc(50% - 14px);
    height:46px;
    min-width:0;
    min-height:46px;
    margin:0;
    padding:0 8px;
    align-items:center;
    justify-content:center;
    gap:6px;
    border-radius:3px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.08em;
    line-height:1;
    box-shadow:0 7px 22px rgba(48,18,14,.28);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(calc(100% + 18px));
    transition:opacity .28s ease,transform .28s ease,visibility 0s linear .28s;
  }
  body.mobile-actions-visible footer nav .footer-contact-fixed,
  body.mobile-actions-visible .inner-footer nav .footer-contact-fixed,
  body.mobile-actions-visible footer nav .footer-web-reserve,
  body.mobile-actions-visible .inner-footer nav .footer-web-reserve{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
    transition:opacity .28s ease,transform .28s ease,visibility 0s;
  }
  footer nav .footer-contact-fixed,
  .inner-footer nav .footer-contact-fixed{
    left:8px;
    border:1px solid #94191b;
    background:#fffdf8;
    color:#94191b;
  }
  footer nav .footer-web-reserve,
  .inner-footer nav .footer-web-reserve{
    left:auto;
    right:8px;
    border:1px solid rgba(255,255,255,.78);
    background:#94191b;
    color:#fff;
  }
  .footer-contact-fixed:before,
  .footer-web-reserve:before{
    content:"";
    width:18px;
    height:18px;
    flex:0 0 18px;
    background:currentColor;
    -webkit-mask:center/contain no-repeat;
    mask:center/contain no-repeat;
  }
  .footer-contact-fixed:before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v14H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h16v14H4z'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
  }
  .footer-web-reserve:before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='1.5'/%3E%3Cpath d='M8 3v4M16 3v4M3.5 10h17M8 14h2M14 14h2M8 17h2M14 17h2'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='1.5'/%3E%3Cpath d='M8 3v4M16 3v4M3.5 10h17M8 14h2M14 14h2M8 17h2M14 17h2'/%3E%3C/svg%3E");
  }
  .site-header.open .global-nav .mobile-menu-action{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    margin-top:8px;
    border:1px solid #8c1718;
    font-weight:600;
    text-align:center;
  }
  .site-header.open .global-nav .mobile-menu-reserve{background:#8c1718;color:#fff}
}
/* mobile-subtitle-layout */
@media(max-width:800px){
  .subpage .sub-title{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
    gap:14px;
    margin:0 0 30px;
    padding:0;
    font-size:clamp(23px,7vw,29px);
    line-height:1.45;
    letter-spacing:.1em;
    white-space:nowrap;
    text-align:center;
  }
  .subpage .sub-title:before,
  .subpage .sub-title:after{
    content:"";
    display:block;
    flex:1 1 42px;
    width:auto;
    max-width:64px;
    min-width:24px;
    height:1px;
    margin:0;
    background:#ae7b31;
  }
  .contact-form .sub-title{margin-bottom:26px}
}
@media(max-width:360px){
  .subpage .sub-title{gap:9px;font-size:22px;letter-spacing:.06em}
  .subpage .sub-title:before,
  .subpage .sub-title:after{min-width:18px}
}
/* access-heading-spacing */
.access-info + .sub-title{margin-top:64px}
@media(max-width:800px){
  .subpage .access-info + .sub-title{margin-top:48px}
}
/* refined-feature-icons */
.feature-row .feature-icon{
  width:42px;
  height:42px;
  margin:0 auto 8px;
  display:grid;
  place-items:center;
  color:#ad7b2f;
}
.feature-row .feature-icon svg{
  width:38px;
  height:38px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
  overflow:visible;
}
.feature-row li:nth-child(2) .feature-icon svg{width:40px;height:40px}
@media(max-width:540px){
  .feature-row .feature-icon{width:40px;height:40px;margin-bottom:7px}
  .feature-row .feature-icon svg{width:36px;height:36px}
}
/* plans-page-renewal */
.plans-renewal{max-width:1180px;padding-top:64px;padding-bottom:72px}
.new-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.new-plan-card{display:grid;grid-template-columns:42% 58%;height:330px;overflow:hidden;border:1px solid #d9c7a8;border-radius:4px;background:rgba(255,253,248,.94);box-shadow:0 8px 24px rgba(78,56,25,.07)}
.new-plan-card>img{display:block;width:100%;height:330px;min-height:0;object-fit:cover;object-position:center}
.junior-card>img{object-position:center 22%}
.new-plan-content{position:relative;padding:34px 28px 27px}
.plan-number{position:absolute;top:20px;right:22px;color:rgba(169,122,49,.42);font:500 34px/1 Georgia,serif;letter-spacing:.03em}
.new-plan-content h2{max-width:82%;min-height:57px;margin:0 0 10px;font-size:19px;font-weight:500;line-height:1.55;letter-spacing:.05em}
.new-plan-content h2 small{display:block;margin-top:2px;color:#8f672c;font:500 10px/1.4 Georgia,serif;letter-spacing:.12em;text-transform:uppercase}
.new-plan-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 7px;margin:10px 0 18px;color:#8c1718}
.new-plan-price em{flex-basis:100%;font-size:12px;font-style:normal;color:#51483d}
.new-plan-price strong{font:500 31px/1.1 Georgia,"Yu Mincho",serif;letter-spacing:.02em}
.new-plan-price span{font-size:11px;color:#5d5143}
.new-plan-content h3{display:flex;align-items:center;gap:10px;margin:0 0 7px;color:#8c652e;font-size:12px;font-weight:600;letter-spacing:.16em}
.new-plan-content h3:after{content:"";height:1px;flex:1;background:#dfd0b7}
.new-plan-items{margin:0;color:#4b4339;font-size:11px;line-height:1.9}
.free-options{position:relative;display:grid;grid-template-columns:130px 1fr;align-items:center;gap:34px;margin-top:58px;padding:38px 52px;border:1px solid #c9a363;background:linear-gradient(135deg,#fffdf8,#f4ead9)}
.free-options-mark{width:104px;height:104px;display:grid;place-items:center;border:1px solid #b88a43;border-radius:50%;color:#8c1718;background:#fffaf1;font-size:25px;letter-spacing:.12em;box-shadow:inset 0 0 0 7px #f3e7d3}
.free-options-mark svg{width:68px;height:68px;fill:none;stroke:#a67732;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.free-options-en{color:#a37734;font:500 10px/1.2 Georgia,serif;letter-spacing:.22em}
.free-options h2{margin:5px 0 8px;font-size:27px;font-weight:500;letter-spacing:.12em}
.free-options p{margin:0;font-size:13px;line-height:2}
.free-options.paid-options{margin-top:18px;background:linear-gradient(135deg,#fffdf8,#f7eee5)}
.paid-options-mark svg{width:68px;height:68px;fill:none;stroke:#a67732;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.free-options.paid-options p{white-space:normal}
.free-options.paid-options p strong{margin-right:4px;color:#9a2f33;font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;font-weight:600}
.new-plan-note{margin:24px 0 0;text-align:center;color:#6c6255;font-size:11px}
.plans-renewal .cta-wide{max-width:620px;margin-top:38px}
.restored-set-section{margin-top:64px;padding:48px 28px 42px;border-top:1px solid #dfcfb4;border-bottom:1px solid #dfcfb4;background:rgba(255,253,248,.58)}
.restored-set-section .sub-title{margin-bottom:34px}
.restored-set-section .set-grid h3{margin:4px 0 5px;font-size:16px;font-weight:500;letter-spacing:.08em}
.restored-set-section .set-grid p{margin:0;color:#6b6154;font-size:11px;line-height:1.7}
@media(max-width:900px){
  .new-plan-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .plans-renewal{padding:44px 18px 58px}
  .new-plan-grid{gap:22px}
  .new-plan-card{grid-template-columns:1fr;height:auto;min-height:0}
  .new-plan-card>img{height:230px;min-height:230px;object-position:center 25%}
  .new-plan-content{padding:25px 22px 24px}
  .plan-number{top:18px;right:18px;font-size:30px}
  .new-plan-content h2{max-width:84%;min-height:0;padding-right:6px;font-size:18px}
  .new-plan-price{margin:13px 0 17px}
  .new-plan-price strong{font-size:29px}
  .new-plan-items{font-size:11px;line-height:1.85}
  .restored-set-section{margin-top:42px;padding:34px 10px 32px}
  .restored-set-section .sub-title{margin-bottom:28px}
  .restored-set-section .set-grid{gap:28px 16px}
  .restored-set-section .set-grid>div:last-child{grid-column:1/-1}
  .free-options{grid-template-columns:1fr;gap:18px;margin-top:42px;padding:30px 23px;text-align:center}
  .free-options-mark{width:82px;height:82px;margin:auto;font-size:21px}
  .free-options h2{font-size:23px;letter-spacing:.08em}
  .free-options p{font-size:12px;text-align:left}
  .free-options p br{display:none}
  .free-options.paid-options{margin-top:14px}
  .new-plan-note{text-align:left;line-height:1.8}
  .plans-renewal .cta-wide{font-size:17px;padding:15px}
}

/* homepage plans aligned with the renewed price page */
.plan-from-price{
  grid-column:1/-1;
  display:flex;
  align-items:baseline;
  justify-content:center;
  gap:6px;
  margin:10px 0 0;
  color:#8f1719;
  font-size:.9rem;
}
.plan-from-price strong{font-size:2rem;font-weight:500;letter-spacing:.04em}
.plan-from-price small{font-size:.72rem;color:#6c6258}

/* Gallery plan categories: one authoritative layout. */
.gallery-page .gallery-main{padding-top:44px;padding-bottom:68px}
.gallery-page .style-gallery-block{
  display:grid!important;
  grid-template-columns:minmax(280px,38%) minmax(0,62%)!important;
  gap:0!important;
  min-height:0!important;
  height:auto!important;
  margin:0 0 36px!important;
  padding:0!important;
  overflow:hidden;
  border-color:rgba(177,139,75,.24);
  background:rgba(255,253,248,.82);
}
.gallery-page .style-gallery-block:nth-of-type(even) .gallery-copy{order:2}
.gallery-page .style-gallery-block:nth-of-type(even) .gallery-photos{order:1}
.gallery-page .style-gallery-block .gallery-copy{
  padding:38px 42px!important;
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-width:0;
}
.gallery-page .style-gallery-block .gallery-copy h2{
  margin-bottom:16px;
  font-size:clamp(1.42rem,2vw,1.85rem);
  line-height:1.45;
}
.gallery-page .style-gallery-block .gallery-copy p{line-height:1.9}
.gallery-page .style-gallery-block .gallery-photos{
  height:320px!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:1fr!important;
  gap:8px!important;
  padding:8px;
  background:#f2ede4;
}
.gallery-page .style-gallery-block .gallery-photos img{
  display:block;
  grid-column:auto!important;
  grid-row:auto!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}
.gallery-page .style-gallery-block .gallery-photos--single{
  grid-template-columns:1fr!important;
}
.gallery-page .style-gallery-block .gallery-photos--single img{
  object-position:center 38%!important;
}

/* selectable obi arrangements */
.obi-options-gallery{
  margin:72px 0 40px;
  padding:58px 42px 44px;
  border:1px solid rgba(177,139,75,.38);
  background:rgba(255,253,248,.78);
}
.obi-options-gallery .section-heading{text-align:center}
.obi-options-gallery .section-heading h2{margin:0;font-size:2rem;font-weight:500;letter-spacing:.12em}
.obi-options-gallery .section-heading span{display:block;margin-top:9px;color:#9d7b3e;font-size:.7rem;letter-spacing:.24em}
.obi-lead{max-width:680px;margin:20px auto 34px;text-align:center;line-height:2}
.obi-photo-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.obi-photo-grid img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.obi-note{margin:20px 0 0;color:#6f655a;font-size:.78rem;text-align:center}

@media(max-width:980px) and (min-width:761px){
  .gallery-page .style-gallery-block{grid-template-columns:minmax(240px,38%) minmax(0,62%)!important}
  .gallery-page .style-gallery-block .gallery-copy{padding:30px 26px!important}
  .gallery-page .style-gallery-block .gallery-photos{height:286px!important}
  .obi-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

@media(max-width:760px){
  .gallery-page .gallery-main{padding-top:28px;padding-bottom:48px}
  .gallery-page .style-gallery-block{grid-template-columns:1fr!important;margin-bottom:26px!important}
  .gallery-page .style-gallery-block .gallery-copy,
  .gallery-page .style-gallery-block:nth-of-type(even) .gallery-copy{order:1;padding:26px 22px 24px!important}
  .gallery-page .style-gallery-block .gallery-photos,
  .gallery-page .style-gallery-block:nth-of-type(even) .gallery-photos{
    order:2;
    height:auto!important;
    min-height:0!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .gallery-page .style-gallery-block .gallery-photos img{height:auto!important;aspect-ratio:1/1!important;object-position:center 32%!important}
  .gallery-page .style-gallery-block .gallery-photos img:first-child{grid-column:1/-1!important;aspect-ratio:16/10!important}
  .gallery-page .style-gallery-block .gallery-photos--single{grid-template-columns:1fr!important}
  .gallery-page .style-gallery-block .gallery-photos--single img:first-child{aspect-ratio:4/3!important}
  .obi-options-gallery{margin:48px 0 30px;padding:42px 16px 30px}
  .obi-options-gallery .section-heading h2{font-size:1.7rem}
  .obi-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .plan-from-price strong{font-size:1.7rem}
}

/* final mobile footer navigation: exactly 3 columns × 2 rows */
@media(max-width:900px){
  footer.site-footer .footer-main>nav{
    display:grid!important;
    width:min(100%,390px);
    margin-inline:auto;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    justify-items:stretch;
    align-items:stretch;
    gap:5px 8px!important;
  }
footer.site-footer .footer-main>nav>a:not(.footer-contact-fixed):not(.footer-web-reserve){
    display:flex;
    width:100%;
    min-width:0;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
}

/* reservation: multiple plans and party size */
.reservation-page .plan-people{margin:-4px 0 20px;padding:15px 17px;border:1px solid #d7c5a8;background:#fbf6ed}
.reservation-page .plan-people label{display:grid;grid-template-columns:1fr 150px;align-items:center;gap:18px;color:#4e443a;font-size:13px;font-weight:600;letter-spacing:.06em}
.reservation-page .plan-people select{margin:0!important;padding:10px 34px 10px 12px!important;background-color:#fff!important;font-weight:500}
.reservation-page .form-row--date{grid-template-columns:1fr}
.reservation-page .service-list.selection-required{padding:6px;border:1px solid #a3262a;background:#fff5f3}
.reservation-page .service-list.selection-required::before{content:"プランを1つ以上選択してください";display:block;margin:2px 4px 8px;color:#982529;font-size:11px}
.reservation-page .final-summary #summary-service{line-height:1.8}
.reservation-page .final-summary #summary-price{line-height:1.65}
.reservation-page .last-reception-note{margin:12px 0 0;color:#8d2024;font-size:11px;text-align:right;letter-spacing:.08em}

@media(max-width:600px){
  .reservation-page .plan-people{margin-bottom:16px;padding:13px 14px}
  .reservation-page .plan-people label{grid-template-columns:1fr 118px;gap:12px}
}
