/* photo house iso — reset.css の後に読み込む */
:root{
  --bg:#fff; --bg-light:#f9f9f7; --ink:#333; --nav:#777; --muted:#999; --line:#eee; --accent:#7f98ab; --accent-dark:#657f93;
  --serif:'Noto Serif JP','YuMincho','Yu Mincho','Hiragino Mincho ProN',serif;
  --side:200px;
}
html{scroll-behavior:smooth}
body{font-family:var(--serif);font-weight:300;color:var(--ink);background:var(--bg);line-height:2;letter-spacing:.06em;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.logo img,.opening-logo{mix-blend-mode:multiply}
.text-center{text-align:center}
.container{max-width:760px;margin:0 auto;padding:0 20px}
.container.wide{max-width:1000px}
.section{padding:110px 0}
.section[id]{scroll-margin-top:20px}
.section-title{font-size:1.7rem;font-weight:500;letter-spacing:.14em;margin-bottom:48px}
.bg-light{background:var(--bg-light)}
.note{margin-top:40px;color:var(--muted);font-size:.88rem}
.text-link{display:inline-block;color:var(--accent-dark);border-bottom:1px solid currentColor;font-size:.9rem}

.btn{display:inline-block;padding:13px 36px;background:#95a081;border:1px solid #95a081;color:#fff;transition:background .3s,border-color .3s,color .3s}
.btn:hover{background:#eaefe1;border-color:#eaefe1;color:#95a081}
.btn-outline{background:transparent;color:#95a081;border:1px solid #95a081}
.btn-outline:hover{background:#eaefe1;color:#95a081}
.btn-small{padding:8px 24px;font-size:.85rem;margin-top:8px}
.btn-group{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:32px 0 64px}

/* Opening */
.opening{display:none}
.js:not(.skip-opening) .opening{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#fff;transition:transform 1.1s cubic-bezier(.77,0,.18,1)}
.js:not(.skip-opening) body:not(.is-ready){overflow:hidden}
.opening-logo{width:min(70vw,380px);opacity:0;transform:translateY(18px);filter:blur(6px);animation:logoIn 1.6s ease .3s forwards}
@keyframes logoIn{to{opacity:1;transform:none;filter:none}}
body.is-ready .opening{transform:translateY(-100%)}

/* Scroll reveal */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity 1.2s ease,transform 1.2s ease}
.js .reveal.is-visible{opacity:1;transform:none}

/* Hero */
.hero{padding:40px 0 20px}
.hero-copy{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;line-height:1.6;letter-spacing:.12em}
.hero-sub{margin-top:20px;font-size:1rem}
.hero-slider{position:relative;width:100%;max-width:900px;aspect-ratio:3/2;margin:56px auto 0;background:var(--bg-light)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.8s ease-in-out}
.hero-img.active{opacity:1}
.js:not(.skip-opening) body:not(.is-ready) .hero{opacity:0}
.hero{transition:opacity 1.4s ease .5s}

/* Infinite slider */
.infinite-slider-container{width:100%;overflow:hidden;padding:60px 0;background:#fff}
.slider-track{display:flex;width:max-content;animation:scroll 50s linear infinite}
.slider-track img{width:300px;height:200px;object-fit:cover;padding:0 10px}
@keyframes scroll{to{transform:translateX(-50%)}}

/* Profile */
.profile-img img{width:100%;max-width:320px;aspect-ratio:4/5;object-fit:cover;margin:0 auto 28px}
.profile-name{font-size:1.15rem;font-weight:500;margin-bottom:8px}

/* Plan */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.plan-item img{width:100%;aspect-ratio: 1/1;object-fit:cover;margin-bottom:18px;background:var(--bg-light)}
.plan-item h3{font-size:1.15rem;font-weight:500;margin-bottom:4px}
.plan-item p{font-size:.9rem;text-align:left}

/* Gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.gallery button{display:block;cursor:zoom-in;overflow:hidden}
.gallery img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:opacity .3s}
.gallery button:hover img{opacity:.85}
.gallery-more{margin-top:56px}
.gallery-more p{margin-bottom:24px;font-size:.92rem}
.btn-arrow::after{content:"";display:inline-block;width:.55em;height:.55em;margin-left:1em;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg);transition:transform .3s}
.btn-arrow:hover::after{transform:translateX(4px) rotate(45deg)}
.lightbox{border:0;padding:0;background:transparent;max-width:92vw;max-height:92vh;margin:auto}
.lightbox::backdrop{background:rgba(30,30,28,.88)}
.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}
.lightbox-close{position:absolute;top:-4px;right:0;color:#fff;font-size:2rem;line-height:1;padding:8px 12px}

/* Report */
.report-list{border-top:1px solid var(--line)}
.report-list a{display:flex;gap:24px;padding:20px 8px;border-bottom:1px solid var(--line);text-align:left;transition:background .3s}
.report-list a:hover{background:var(--bg-light)}
.report-list time{color:var(--muted);font-size:.85rem;flex-shrink:0}

/* Guide */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:step}
.flow li{counter-increment:step;padding-top:16px;border-top:1px solid var(--accent);text-align:left}
.flow h3::before{content:counter(step) ". ";color:var(--accent-dark)}
.flow h3{font-size:1rem;font-weight:500}
.flow p{font-size:.85rem;line-height:1.8}

/* FAQ */
details{border-bottom:1px solid var(--line);padding:18px 0}
summary{position:relative;cursor:pointer;padding-right:32px;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;color:var(--accent-dark)}
details[open] summary::after{content:"−"}
details p{margin-top:10px;color:var(--nav);font-size:.92rem}

/* Form */
.form{margin-bottom:64px}
.field{margin-bottom:24px;flex:1}
.field-row{display:flex;gap:20px}
.form label{display:block;font-size:.88rem;margin-bottom:4px}
.form em{margin-left:8px;font-style:normal;font-size:.7rem;color:var(--accent-dark)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=date],.form input[type=number],.form select,.form textarea{width:100%;padding:12px 14px;background:#fff;border:1px solid #ddd;border-radius:2px;font-size:16px}
.form select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.form textarea{resize:vertical}
.form .check{display:flex;align-items:center;gap:10px;margin:8px 0 28px}
.form input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-dark)}
.form [aria-invalid=true]{border-color:#b5675a}
.form-status{margin-top:20px;font-size:.9rem}
.access{font-size:.95rem}

.footer{padding:40px 0;font-size:.75rem;color:var(--muted);border-top:1px solid var(--line)}
.sns{display:flex;justify-content:center;gap:20px}
.sns img{width:28px;height:28px;transition:opacity .3s}
.sns a:hover img{opacity:.6}

/* PC：左サイドバー */
@media (min-width:769px){
  .header{position:fixed;top:0;left:0;width:var(--side);height:100vh;padding:40px 10px;border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column;align-items:center;z-index:100}
  .logo img{width:150px;height:auto}
  .nav{margin-top:48px}
  .nav-list{text-align:center}
  .nav-list li{margin-bottom:22px}
  .nav-list a{color:var(--nav);font-size:.88rem;transition:color .3s}
  .nav-list a:hover{color:#000}
  .sns{margin-top:auto}
  .menu-trigger{display:none}
  .main-content,.footer{margin-left:var(--side)}
}
/* Mobile */
@media (max-width:768px){
  .header{position:fixed;top:0;left:0;width:100%;height:60px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);z-index:1000}
  .logo img{height:40px;width:auto}
  .sns{display:none}
  .menu-trigger{position:relative;width:30px;height:24px;z-index:1001}
  .menu-trigger span{position:absolute;left:0;width:100%;height:1px;background:var(--ink);transition:.4s}
  .menu-trigger span:nth-child(1){top:0}
  .menu-trigger span:nth-child(2){top:11px}
  .menu-trigger span:nth-child(3){bottom:0}
  .menu-trigger.active span:nth-child(1){transform:translateY(11px) rotate(45deg)}
  .menu-trigger.active span:nth-child(2){opacity:0}
  .menu-trigger.active span:nth-child(3){transform:translateY(-12px) rotate(-45deg)}
  .nav{position:fixed;top:0;left:100%;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:#fff;transition:left .4s,visibility .4s;visibility:hidden;z-index:999}
  .nav.active{left:0;visibility:visible}
  .nav-list{text-align:center}
  .nav-list li{margin-bottom:28px;font-size:1.1rem}
  .main-content{padding-top:60px}
  .hero{padding:28px 20px 0}
  .hero-slider{margin-top:36px}
  .section{padding:72px 0}
  .section[id]{scroll-margin-top:60px}
  .plan-grid{grid-template-columns:1fr;gap:44px}
  .gallery{grid-template-columns:repeat(2,1fr);gap:8px}
  .flow{grid-template-columns:1fr 1fr}
  .report-list a{flex-direction:column;gap:0}
  .field-row{flex-direction:column;gap:0}
  .btn-group .btn,.gallery-more .btn{width:100%;text-align:center;}
  .infinite-slider-container{padding:32px 0}
  .slider-track img{width:220px;height:150px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}