:root{--ink:#111;--muted:#777;--line:#e8e8e8;--soft:#f7f7f5;--accent:#111;--green:#317354;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-size:16px;line-height:1.8;letter-spacing:.01em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-wrap{width:min(var(--max),calc(100% - 64px));margin:0 auto}.global-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.header-row{height:86px;display:flex;align-items:center;gap:48px}.site-logo{display:flex;flex-direction:column;line-height:1.05;letter-spacing:.18em}.site-logo span{font-size:11px;color:#777}.site-logo strong{font-size:20px;margin-top:6px}.desktop-nav{margin-left:auto;display:flex;gap:30px}.desktop-nav a{font-size:12px;letter-spacing:.14em;color:#888;padding:30px 0}.desktop-nav a:hover,.desktop-nav a.active{color:#111}.menu-button{display:none;margin-left:auto;border:0;background:none;font:inherit;font-size:12px;letter-spacing:.14em}.mobile-menu{border-top:1px solid var(--line);padding:12px 32px 24px;background:#fff}.mobile-menu a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.12em}.hero-full{min-height:calc(100vh - 86px);display:grid;grid-template-columns:1.02fr .98fr}.hero-copy-main{padding:10vw 7vw 7vw max(5vw,calc((100vw - var(--max))/2));display:flex;flex-direction:column;justify-content:center}.eyebrow{margin:0 0 22px;font-size:11px;letter-spacing:.2em;color:#888;font-weight:600}.hero-copy-main h1{margin:0;font-weight:500;font-size:clamp(54px,7.3vw,118px);line-height:.95;letter-spacing:-.055em}.hero-copy-main .lead{max-width:560px;margin:34px 0 0;font-size:18px;line-height:2;color:#444}.hero-actions{display:flex;gap:12px;margin-top:44px;flex-wrap:wrap}.solid-button,.outline-button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;border:1px solid #111;font-size:12px;letter-spacing:.14em}.solid-button{background:#111;color:#fff}.outline-button{background:#fff}.hero-image{min-height:650px;background:#eee}.hero-image img{width:100%;height:100%;object-fit:cover}.section{padding:120px 0;border-top:1px solid var(--line)}.section.compact{padding:84px 0}.section-head{display:grid;grid-template-columns:260px 1fr;gap:44px;margin-bottom:56px}.section-head h2,.page-hero h1{font-size:clamp(38px,5vw,72px);font-weight:500;letter-spacing:-.04em;line-height:1.05;margin:0}.section-head p:last-child{max-width:700px;margin:0;color:#666}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.feature-card{padding:34px 28px 38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:250px}.feature-card .num{font-size:11px;color:#999;letter-spacing:.15em}.feature-card h3{font-size:23px;font-weight:500;margin:54px 0 12px}.feature-card p{margin:0;color:#666;font-size:14px}.gallery{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.gallery figure{margin:0;background:#f1f1f1;overflow:hidden}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.gallery figure:hover img{transform:scale(1.02)}.gallery .wide{grid-column:span 8;aspect-ratio:16/9}.gallery .small{grid-column:span 4;aspect-ratio:4/5}.gallery .half{grid-column:span 6;aspect-ratio:4/3}.price-snapshot{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.price-card{padding:34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.price-card h3{font-size:14px;letter-spacing:.1em;font-weight:600;margin:0 0 28px}.price-row{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid #eee;font-size:14px}.price-row strong{font-size:16px}.price-note{margin-top:22px;color:#777;font-size:13px}.cta-band{background:#111;color:#fff;padding:100px 0}.cta-band .site-wrap{display:flex;align-items:end;justify-content:space-between;gap:40px}.cta-band h2{font-size:clamp(44px,7vw,96px);line-height:1;margin:0;font-weight:500;letter-spacing:-.04em}.cta-band p{color:#bbb;max-width:460px}.cta-band .outline-button{background:#111;border-color:#fff;color:#fff}.page-hero{padding:110px 0 72px;border-bottom:1px solid var(--line)}.page-hero .eyebrow{margin-bottom:18px}.page-hero p{max-width:680px;margin:28px 0 0;color:#666}.studio-block{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding:80px 0;border-bottom:1px solid var(--line)}.studio-block:nth-child(even) .studio-photo{order:2}.studio-photo{aspect-ratio:4/3;background:#f2f2f2;overflow:hidden}.studio-photo img{width:100%;height:100%;object-fit:cover}.studio-copy h2{font-size:36px;font-weight:500;letter-spacing:-.03em;margin:0 0 18px}.studio-copy p{color:#555}.bullet-list{padding:0;margin:24px 0 0;list-style:none}.bullet-list li{padding:10px 0;border-top:1px solid var(--line);font-size:14px}.price-table{width:100%;border-collapse:collapse}.price-table th,.price-table td{padding:18px 16px;border-bottom:1px solid var(--line);text-align:left}.price-table th{font-size:12px;color:#777;font-weight:500}.price-table td strong{font-size:18px}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.plan-box{background:#fff;padding:32px}.plan-box h3{margin:0 0 16px;font-size:22px;font-weight:500}.plan-box p{font-size:14px;color:#666;margin:0}.rental-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rental-card{background:var(--soft);padding:28px;min-height:220px}.rental-card h3{margin:0 0 18px;font-size:18px;font-weight:500}.rental-card ul{padding-left:18px;margin:0;color:#555;font-size:14px}.rule-block{padding:48px 0;border-top:1px solid var(--line)}.rule-block h2{font-size:30px;font-weight:500;margin:0 0 24px}.rule-block h3{font-size:18px;margin:36px 0 12px}.rule-block p,.rule-block li{color:#444}.rule-block ul{padding-left:1.4em}.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.access-card{border-top:1px solid var(--line);padding-top:24px}.access-card h3{font-size:18px;font-weight:500}.map{width:100%;height:520px;border:0;filter:grayscale(1)}.global-footer{border-top:1px solid var(--line);padding:70px 0 28px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}.global-footer p{color:#777;font-size:13px}.global-footer a{text-decoration:underline;text-underline-offset:4px}.footer-reserve{display:flex;justify-content:flex-end;align-items:start}.copyright{margin-top:60px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:#aaa}.status-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.status-strip div{padding:24px;border-right:1px solid var(--line)}.status-strip div:last-child{border-right:0}.status-strip span{display:block;font-size:11px;letter-spacing:.12em;color:#888}.status-strip strong{display:block;margin-top:8px;font-size:18px}.note-box{background:var(--soft);padding:24px 28px;font-size:14px;color:#555}.remote-photo{background:linear-gradient(135deg,#eee,#fafafa)}
@media(max-width:900px){.site-wrap{width:min(100% - 40px,var(--max))}.desktop-nav{display:none}.menu-button{display:block}.header-row{height:74px}.hero-full{grid-template-columns:1fr;min-height:auto}.hero-copy-main{padding:80px 24px 60px}.hero-image{min-height:62vw}.section{padding:84px 0}.section-head{grid-template-columns:1fr;gap:18px}.feature-grid{grid-template-columns:1fr 1fr}.gallery .wide,.gallery .small,.gallery .half{grid-column:span 6}.price-snapshot,.plan-grid{grid-template-columns:1fr}.studio-block{grid-template-columns:1fr;gap:28px}.studio-block:nth-child(even) .studio-photo{order:0}.rental-grid{grid-template-columns:1fr 1fr}.access-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-reserve{justify-content:flex-start}.cta-band .site-wrap{align-items:flex-start;flex-direction:column}.status-strip{grid-template-columns:1fr}.status-strip div{border-right:0;border-bottom:1px solid var(--line)}.status-strip div:last-child{border-bottom:0}}
@media(max-width:560px){body{font-size:15px}.site-wrap{width:calc(100% - 32px)}.site-logo strong{font-size:18px}.hero-copy-main{padding:68px 20px 48px}.hero-copy-main h1{font-size:55px}.hero-copy-main .lead{font-size:16px}.hero-image{min-height:82vw}.section{padding:68px 0}.section.compact{padding:54px 0}.section-head{margin-bottom:36px}.section-head h2,.page-hero h1{font-size:42px}.feature-grid{grid-template-columns:1fr}.feature-card{min-height:auto}.feature-card h3{margin-top:34px}.gallery{gap:8px}.gallery .wide,.gallery .small,.gallery .half{grid-column:span 12;aspect-ratio:4/3}.price-card{padding:24px}.page-hero{padding:70px 0 48px}.studio-block{padding:54px 0}.studio-copy h2{font-size:30px}.rental-grid{grid-template-columns:1fr}.price-table th,.price-table td{padding:14px 8px;font-size:13px}.footer-grid{grid-template-columns:1fr}.global-footer{padding-top:54px}.map{height:380px}}


/* 2026-09-13 fixes */
.map-wrap{position:relative}
.map{filter:none}
.map-open{display:inline-flex;margin-top:14px;border:1px solid var(--line);padding:10px 16px;font-size:12px;letter-spacing:.05em}


/* GALLERY */
.portrait-gallery{columns:4 240px;column-gap:14px}
.portrait-item{display:block;break-inside:avoid;margin:0 0 14px;background:#f3f3f3;overflow:hidden}
.portrait-item img{width:100%;height:auto;transition:transform .35s ease}
.portrait-item:hover img{transform:scale(1.015)}
.gallery-empty{padding:80px 0;text-align:center;color:#999;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media(max-width:900px){.portrait-gallery{columns:3 200px}}
@media(max-width:560px){.portrait-gallery{columns:2 140px;column-gap:8px}.portrait-item{margin-bottom:8px}}


/* =========================================================
   SITE-WIDE PHOTO RATIO
   横 = 3:2 / 縦 = 2:3
   ========================================================= */

/* Common image behavior */
.auto-photo-frame{
  overflow:hidden !important;
  background:#f2f2f2;
}

.auto-photo-frame.photo-landscape{
  aspect-ratio:3 / 2 !important;
}

.auto-photo-frame.photo-portrait{
  aspect-ratio:2 / 3 !important;
}

.auto-photo-frame .auto-photo-image{
  display:block;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center;
}

/* HOME hero image: remove old viewport-height stretching */
.hero-image.auto-photo-frame{
  min-height:0 !important;
  align-self:center;
}

/* HOME / STUDIO lower photo collections:
   remove old wide/small/half fixed ratios and uneven 12-column layout.
   Two clean masonry-like columns on desktop. */
.gallery{
  display:block !important;
  columns:2;
  column-gap:14px;
}

.gallery figure,
.gallery .wide,
.gallery .small,
.gallery .half{
  width:100%;
  max-width:100%;
  grid-column:auto !important;
  break-inside:avoid;
  margin:0 0 14px !important;
}

.gallery figure.photo-landscape,
.gallery .wide.photo-landscape,
.gallery .small.photo-landscape,
.gallery .half.photo-landscape{
  aspect-ratio:3 / 2 !important;
}

.gallery figure.photo-portrait,
.gallery .wide.photo-portrait,
.gallery .small.photo-portrait,
.gallery .half.photo-portrait{
  aspect-ratio:2 / 3 !important;
}

/* STUDIO detail images */
.studio-photo.photo-landscape{
  aspect-ratio:3 / 2 !important;
}

.studio-photo.photo-portrait{
  aspect-ratio:2 / 3 !important;
}

/* A portrait Studio image is deliberately narrower so it does not
   become excessively tall beside the copy. */
.studio-photo.photo-portrait{
  width:min(78%,620px);
  margin-inline:auto;
}

/* Public people GALLERY: keep multi-column layout, but force each
   uploaded image to the correct 3:2 / 2:3 frame. */
.portrait-item.auto-photo-frame{
  position:relative;
}

.portrait-item.photo-landscape{
  aspect-ratio:3 / 2 !important;
}

.portrait-item.photo-portrait{
  aspect-ratio:2 / 3 !important;
}

.portrait-item img{
  margin:0 !important;
}

/* Prevent old fixed ratios from winning before/after image detection */
.gallery .wide,
.gallery .small,
.gallery .half,
.studio-photo{
  height:auto;
}

/* Tablet */
@media(max-width:900px){
  .hero-image.auto-photo-frame.photo-landscape{
    width:100%;
  }

  .hero-image.auto-photo-frame.photo-portrait{
    width:min(72%,620px);
    margin-inline:auto;
  }

  .studio-photo.photo-portrait{
    width:min(72%,560px);
  }
}

/* Smartphone */
@media(max-width:560px){
  .gallery{
    columns:1;
    column-gap:0;
  }

  .gallery figure,
  .gallery .wide,
  .gallery .small,
  .gallery .half{
    margin-bottom:10px !important;
  }

  .hero-image.auto-photo-frame.photo-portrait,
  .studio-photo.photo-portrait{
    width:min(82%,440px);
    margin-inline:auto;
  }

  .hero-image.auto-photo-frame.photo-landscape,
  .studio-photo.photo-landscape{
    width:100%;
  }
}


/* RENTAL photos: automatic landscape 3:2 / portrait 2:3 */
.rental-photo{width:100%;margin:0 0 18px;overflow:hidden;background:#f2f2f2}
.rental-photo.photo-landscape{aspect-ratio:3 / 2 !important}
.rental-photo.photo-portrait{aspect-ratio:2 / 3 !important}
.rental-photo img{width:100% !important;height:100% !important;object-fit:cover !important;display:block}


/* v7 RENTAL photo slots */
.rental-card .rental-photo{
  width:100%;
  margin:-28px -28px 22px;
  width:calc(100% + 56px);
  border-bottom:1px solid var(--line);
}
.rental-photo-empty{
  aspect-ratio:3 / 2;
  display:grid;
  place-items:center;
  background:#f1f1f1;
  color:#b0b0b0;
  font-size:10px;
  letter-spacing:.22em;
}
.rental-photo-empty span{display:block}
@media(max-width:640px){
  .rental-card .rental-photo{
    margin:-22px -22px 18px;
    width:calc(100% + 44px);
  }
}


@media(max-width:520px){
  .home-x-grid{gap:8px;margin:24px 0 20px}
  .home-x-action .outline-button{width:100%;text-align:center}
}


/* HOME latest information / X */
.home-x-section{
  border-top:1px solid var(--line);
  padding:54px 0 28px;
}
.home-x-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding:28px 32px;
  border:1px solid var(--line);
  background:#fafafa;
}
.home-x-copy{
  max-width:760px;
}
.home-x-copy .eyebrow{
  margin-bottom:10px;
}
.home-x-copy h3{
  margin:0 0 10px;
  font-size:30px;
  line-height:1.2;
  letter-spacing:.02em;
}
.home-x-copy p:last-child{
  margin:0;
  color:var(--muted);
  line-height:1.9;
}
.home-x-links{
  flex:0 0 auto;
}
.x-follow-button{
  min-width:220px;
  text-align:center;
}
.home-x-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-top:12px;
}
.home-x-thumb{
  display:block;
  aspect-ratio:3 / 2;
  overflow:hidden;
  background:#f3f3f3;
}
.home-x-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}
.home-x-thumb:hover img{
  transform:scale(1.02);
}

@media(max-width:900px){
  .home-x-card{
    flex-direction:column;
    align-items:flex-start;
    gap:18px;
    padding:24px;
  }
  .home-x-copy h3{
    font-size:26px;
  }
}
@media(max-width:720px){
  .home-x-section{
    padding:40px 0 18px;
  }
  .home-x-strip{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:520px){
  .home-x-card{
    padding:18px;
  }
  .home-x-copy h3{
    font-size:22px;
  }
  .x-follow-button{
    width:100%;
    min-width:0;
  }
  .home-x-links{
    width:100%;
  }
}


/* PRICE UI redesign */
.price-ui-block{border:1px solid var(--line);padding:28px;margin-top:28px}
.price-ui-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.price-ui-heading h3{margin:0;font-size:24px}
.minimum-badge{display:inline-block;padding:8px 12px;border:1px solid #111;font-size:11px;letter-spacing:.08em;white-space:nowrap}
.price-compare-wrap{width:100%;overflow-x:auto}
.price-compare-table{width:100%;border-collapse:collapse;min-width:520px}
.price-compare-table th,.price-compare-table td{padding:15px 16px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}
.price-compare-table th{font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.05em}
.price-compare-table td{font-size:14px}
.price-compare-table td strong{font-size:16px}
.price-example{margin:16px 0 0;padding:14px 16px;background:#f7f7f7;font-size:13px}
.price-example strong{margin-left:5px;font-size:16px}
.pack-ui-block{margin-top:18px}
.pack-time-guide{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.pack-time-guide span{padding:10px 14px;background:#f6f6f6;font-size:12px}
.pack-time-guide b{margin-right:6px}
.pack-time-guide.large{margin:0 0 32px}
.pack-time-guide.large span{padding:14px 18px;font-size:13px}
.pack-time-guide small{margin-left:5px;color:var(--muted)}
.pack-table-title{margin:36px 0 12px;font-size:18px}
.price-example-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.price-example-grid>div{padding:14px 16px;background:#f7f7f7}
.price-example-grid span{display:block;font-size:11px;color:var(--muted)}
.price-example-grid strong{display:block;margin-top:5px;font-size:18px}
.pack-section{border-top:1px solid var(--line)}
@media(max-width:720px){.price-ui-block{padding:20px 16px}.price-ui-heading{align-items:flex-start}.price-ui-heading h3{font-size:21px}.price-example-grid{grid-template-columns:1fr}.pack-time-guide{display:grid;grid-template-columns:1fr}}
