
:root{
  --ivory:#fffdf8;
  --cream:#f7f0e4;
  --lavender:#9a86b8;
  --deep:#3e3550;
  --gold:#c6a86f;
  --gray:#6f6b72;
  --soft:#f3edf7;
  --white:#ffffff;
  --shadow:0 20px 50px rgba(62,53,80,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Yu Gothic",Meiryo,serif;color:var(--deep);background:var(--ivory);line-height:1.85;font-size:17px}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1120px,92%);margin:0 auto}.narrow{max-width:800px;margin:0 auto}.center{text-align:center}
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,253,248,.92);backdrop-filter:blur(12px);border-bottom:1px solid rgba(198,168,111,.25)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:15px 0;gap:20px}.brand{display:flex;flex-direction:column;line-height:1.2}.brand-en{font-size:22px;letter-spacing:.04em;color:var(--deep)}.brand-ja{font-size:12px;color:var(--gray)}.nav{display:flex;gap:14px;font-size:14px;color:var(--gray);flex-wrap:wrap;justify-content:flex-end}.nav a{padding:4px 0;border-bottom:1px solid transparent}.nav a:hover,.nav a.active{color:var(--lavender);border-bottom-color:var(--lavender)}
.hero{position:relative;overflow:hidden;padding:88px 0 78px}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 10% 10%,rgba(198,168,111,.20),transparent 25%),radial-gradient(circle at 90% 20%,rgba(154,134,184,.22),transparent 28%),linear-gradient(135deg,#fffdf8 0%,#faf2ee 50%,#f3edf7 100%);z-index:-1}.hero-grid{display:grid;grid-template-columns:1fr .85fr;gap:48px;align-items:center}.eyebrow,.section-kicker{color:var(--lavender);letter-spacing:.14em;text-transform:uppercase;font-size:13px;font-family:"Times New Roman",serif;margin:0 0 12px}h1,h2,h3{line-height:1.35;margin:0 0 18px}h1{font-size:clamp(34px,5vw,58px);font-weight:500;letter-spacing:.04em}h2{font-size:clamp(28px,3.6vw,42px);font-weight:500}h3{font-size:22px;font-weight:500}.lead{font-size:20px;color:#51495f;margin-bottom:28px}.hero-buttons{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-block;padding:12px 24px;border-radius:999px;border:1px solid var(--lavender);font-weight:600;margin-top:14px}.button.primary{background:var(--lavender);color:white}.button.secondary{background:rgba(255,255,255,.7);color:var(--deep)}
.card-photo img,.profile-photo img,.service-card img,.image-stack img,.memorial-images img,.gallery-grid img,.photo-card img,.sub-hero img{border-radius:24px;box-shadow:var(--shadow);object-fit:cover}
/* 顔がある写真は、顔を優先して見せる */
.face-photo{
  object-position:center top !important;
}

/* トップページなどのカード内では、写真サイズをそろえ、下側を少しトリミングする */
.service-card img.face-photo{
  aspect-ratio:4/3 !important;
  width:100%;
  height:auto !important;
  object-fit:cover !important;
  object-position:center top !important;
  padding:0 !important;
}

/* 大きく見せる人物写真は、顔が切れないよう全体を見せる */
.profile-photo img.face-photo,
.sub-hero-grid img.face-photo,
.image-stack img.face-photo,
.photo-card img.face-photo,
.gallery-grid img.face-photo{
  object-fit:contain !important;
  object-position:center top !important;
  background:linear-gradient(180deg,#fffdf8,#f7f0e4);
}

.hero-photo img{aspect-ratio:4/3;width:100%}
.sub-hero{padding:64px 0}.sub-hero-grid{display:grid;grid-template-columns:1fr .75fr;gap:44px;align-items:center}.sub-hero img{width:100%;aspect-ratio:4/3}.sub-hero-grid .profile-photo img{aspect-ratio:3/4}
.section{padding:78px 0}.soft-bg{background:linear-gradient(180deg,rgba(243,237,247,.72),rgba(255,253,248,.9))}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}.reverse{grid-template-columns:.9fr 1.1fr}.intro-section p,.memorial-section p,.greeting-section p{margin:0 0 14px}.image-stack{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:end}.image-stack img:first-child{aspect-ratio:4/5}.image-stack img:last-child{aspect-ratio:1/1;margin-top:60px}.section-heading{text-align:center;max-width:760px;margin:0 auto 42px}.cards.three{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.service-card{background:white;border:1px solid rgba(198,168,111,.22);border-radius:28px;padding:18px;box-shadow:0 14px 40px rgba(62,53,80,.08);transition:.2s}.link-card:hover{transform:translateY(-4px);box-shadow:0 18px 54px rgba(62,53,80,.14)}.service-card img{width:100%;aspect-ratio:4/3;margin-bottom:18px}.service-card p{color:var(--gray);font-size:16px}.memorial-images{display:grid;grid-template-columns:1fr;gap:18px}.memorial-images img:first-child{aspect-ratio:4/3}.memorial-images img:last-child{aspect-ratio:16/9}.check-list{list-style:none;padding:0;margin:20px 0}.check-list li{position:relative;padding-left:28px;margin-bottom:8px}.check-list li:before{content:"✦";position:absolute;left:0;color:var(--gold)}.note{padding:18px 22px;background:rgba(255,255,255,.74);border-left:4px solid var(--gold);border-radius:14px}.profile-col{grid-template-columns:.75fr 1.25fr}.profile-photo img{width:100%;aspect-ratio:3/4}.signature{margin-top:24px;color:var(--deep)}
.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.info-box{background:#fff;border:1px solid rgba(198,168,111,.22);border-radius:24px;padding:26px;box-shadow:0 14px 36px rgba(62,53,80,.07)}.info-box p{color:var(--gray);font-size:16px;margin:0}.photo-card img{aspect-ratio:4/3;width:100%}
.recruit-box{background:white;border-radius:28px;padding:34px;border:1px solid rgba(198,168,111,.25);box-shadow:var(--shadow)}.recruit-box ul{padding-left:1.2em}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.gallery-grid img{width:100%;aspect-ratio:1/1}.gallery-grid.large{grid-template-columns:repeat(4,1fr);gap:22px}.gallery-grid figure{margin:0;background:#fff;padding:12px;border-radius:24px;box-shadow:0 14px 36px rgba(62,53,80,.07)}.gallery-grid figcaption{font-size:14px;color:var(--gray);text-align:center;padding:10px 4px 2px}
.contact-page{background:linear-gradient(135deg,#3e3550,#78649d);color:white}.contact-card{text-align:center;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.28);border-radius:34px;padding:48px 24px}.contact-card.light{background:rgba(255,255,255,.12)}.contact-card .section-kicker{color:#e9d9ff}.contact-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:24px 0}.contact-links a{background:white;color:var(--deep);padding:12px 22px;border-radius:999px}.contact-card address{font-style:normal;color:#f6efff}.site-footer{padding:30px 0;background:#2f263d;color:#eee;font-size:14px}.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand{font-size:18px;margin:0}.footer-contact{display:flex;gap:16px;flex-wrap:wrap}
@media (max-width:980px){.info-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid.large{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){body{font-size:16px}.header-inner{align-items:flex-start}.nav{font-size:13px;gap:10px}.hero{padding:60px 0}.hero-grid,.two-col,.reverse,.profile-col,.sub-hero-grid{grid-template-columns:1fr;gap:30px}.cards.three{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}.image-stack{grid-template-columns:1fr}.image-stack img:last-child{margin-top:0}.profile-photo img{max-width:420px;margin:auto}.contact-links{flex-direction:column}.contact-links a{width:100%}.footer-grid{display:block;text-align:center}.footer-contact{justify-content:center}.info-grid{grid-template-columns:1fr}.brand-en{font-size:19px}}
