.pm-pagehead{
  position:relative;
  padding:36px 0 24px;
  background:linear-gradient(180deg,#fafaf8 0%,#f1ece4 100%);
  border-bottom:1px solid var(--hl-color-line);
}
.pm-pagehead-inner{
  max-width:var(--hl-container);
  margin-inline:auto;
  padding-inline:24px;
}
.pm-pagehead-content{
  max-width:720px;
}
.pm-pagehead-eyebrow{
  display:block;
  font-family:var(--hl-font-en);
  font-size:12px;
  font-weight:600;
  letter-spacing:.32em;
  color:var(--hl-color-accent-2);
  text-transform:uppercase;
  margin:0 0 22px;
}
.pm-pagehead-title{
  font-family:var(--hl-font-en);
  font-size:clamp(40px,6vw,72px);
  font-weight:500;
  line-height:1.05;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  margin:0 0 22px;
}
.pm-pagehead-sub{
  font-family:var(--hl-font-jp);
  font-size:16px;
  font-weight:600;
  color:var(--hl-color-primary);
  letter-spacing:.08em;
  line-height:1.7;
  margin:0 0 28px;
}
.pm-pagehead-lead{
  font-family:var(--hl-font-jp);
  font-size:14.5px;
  line-height:1.95;
  color:var(--hl-color-text);
  max-width:600px;
  margin:0 0 34px;
}
.pm-pagehead-actions{
  margin:0;
}
.pm-pagehead-actions .hl-btn{
  min-width:220px;
}

.pm-pagehead--cover{
  min-height:640px;
  padding:0;
  display:flex;
  align-items:center;
  background:
    linear-gradient(110deg,rgba(250,250,248,.96) 0%,rgba(250,250,248,.82) 42%,rgba(241,236,228,.28) 72%,rgba(241,236,228,.10) 100%),
    url("../img/hero.png") center/cover no-repeat;
  border-bottom:none;
}
.pm-pagehead--cover .pm-pagehead-inner{
  padding-block:100px;
  width:100%;
}

@media (max-width:960px){
  .pm-pagehead{ padding:24px 0 16px; }
  .pm-pagehead--cover{
    min-height:520px;
    padding:0;
    background:
      linear-gradient(180deg,rgba(250,250,248,.94) 0%,rgba(250,250,248,.78) 60%,rgba(241,236,228,.22) 100%),
      url("../img/hero.png") center/cover no-repeat;
  }
  .pm-pagehead--cover .pm-pagehead-inner{ padding-block:72px; }
  .pm-pagehead--cover .pm-pagehead-content{
    max-width:100%;
    text-align:center;
    margin-inline:auto;
  }
  .pm-pagehead--cover .pm-pagehead-lead{ margin-inline:auto; }
}
@media (max-width:600px){
  .pm-pagehead--cover{ min-height:460px; }
  .pm-pagehead--cover .pm-pagehead-inner{ padding-block:56px; padding-inline:18px; }
  .pm-pagehead-title{ font-size:clamp(30px,8.4vw,40px); }
  .pm-pagehead-sub{ font-size:14.5px; }
  .pm-pagehead-lead{ font-size:14px; }
  .pm-pagehead-actions .hl-btn{
    width:100%;
    max-width:320px;
    min-width:auto;
  }
}




.pm-about .hl-about-image{
  aspect-ratio:4/5;
}
.pm-about-eyebrow{
  display:inline-block;
  font-family:var(--hl-font-en);
  font-size:12px;
  font-weight:600;
  letter-spacing:.32em;
  color:var(--hl-color-accent-2);
  text-transform:uppercase;
  margin:0 0 18px;
}
.pm-about-title{
  font-family:var(--hl-font-en);
  font-size:clamp(28px,3.8vw,40px);
  font-weight:500;
  line-height:1.1;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  margin:0 0 8px;
}
.pm-about-subtitle{
  font-family:var(--hl-font-jp);
  font-size:14px;
  color:var(--hl-color-text-muted);
  letter-spacing:.04em;
  margin:0 0 28px;
}
.pm-about-text p{
  margin:0 0 18px;
  line-height:2.05;
  font-size:15px;
  color:var(--hl-color-text);
}
.pm-about-signature{
  margin:28px 0 26px !important;
  padding-top:20px;
  border-top:1px solid var(--hl-color-line);
  font-size:13.5px;
  line-height:1.85;
  color:var(--hl-color-text);
}
.pm-about-signature-org{
  display:block;
  font-size:13px;
  color:var(--hl-color-text-muted);
  letter-spacing:.04em;
  margin-bottom:4px;
}
.pm-about-signature-role{
  font-family:var(--hl-font-en);
  font-size:12.5px;
  color:var(--hl-color-accent-2);
  letter-spacing:.14em;
  margin-right:10px;
}
.pm-about-signature-name{
  font-size:16px;
  font-weight:700;
  color:var(--hl-color-primary);
  letter-spacing:.08em;
}
.pm-about-actions{
  margin:0 !important;
}
.pm-about-actions .hl-btn{
  min-width:220px;
}

@media (max-width:960px){
  .pm-about .hl-about-image{ aspect-ratio:4/3; }
  .pm-about-actions{ text-align:center; }
}
@media (max-width:600px){
  .pm-about-text p{ font-size:14.5px; line-height:1.95; }
  .pm-about-actions .hl-btn{
    width:100%;
    max-width:320px;
    min-width:auto;
  }
}


.pm-services-head{
  text-align:center;
  margin-bottom:56px;
}
.pm-services-eyebrow{
  display:inline-block;
  font-family:var(--hl-font-en);
  font-size:12px;
  font-weight:600;
  letter-spacing:.32em;
  color:var(--hl-color-accent-2);
  text-transform:uppercase;
  margin:0 0 16px;
}
.pm-services-title{
  font-family:var(--hl-font-en);
  font-size:clamp(30px,3.8vw,40px);
  font-weight:500;
  line-height:1.1;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  margin:0 0 6px;
}
.pm-services-subtitle{
  font-family:var(--hl-font-jp);
  font-size:14px;
  color:var(--hl-color-text-muted);
  letter-spacing:.04em;
  margin:0 0 22px;
}
.pm-services-lead{
  font-family:var(--hl-font-jp);
  font-size:14.5px;
  line-height:2;
  color:var(--hl-color-text-muted);
  max-width:680px;
  margin:0 auto;
}

.pm-grid{
  display:grid;
  gap:28px;
}
.pm-grid--2up{ grid-template-columns:repeat(2,1fr); grid-auto-rows:1fr; }
.pm-grid--3up{ grid-template-columns:repeat(3,1fr); grid-auto-rows:1fr; }
.pm-grid--4up{ grid-template-columns:repeat(4,1fr); }
.pm-grid-actions{
  margin:48px 0 0;
  text-align:center;
}

.pm-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--hl-color-line);
  text-decoration:none;
  color:inherit;
  overflow:hidden;
  transition:transform .35s var(--hl-ease),box-shadow .35s var(--hl-ease),border-color .35s var(--hl-ease);
}
.pm-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--hl-shadow-md);
  border-color:transparent;
}
.pm-card-media{
  position:relative;
  width:100%;
  aspect-ratio:16/10;
  background-color:var(--hl-color-bg-soft);
  background-size:cover;
  background-position:center;
}
.pm-card-body{
  display:flex;
  flex-direction:column;
  flex-grow:1;
  padding:22px 22px 24px;
}
.pm-card-num{
  font-family:var(--hl-font-en);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.22em;
  color:var(--hl-color-accent);
  text-transform:uppercase;
  margin:0 0 10px;
}
.pm-card-title{
  font-family:var(--hl-font-en);
  font-size:22px;
  font-weight:500;
  line-height:1.1;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  margin:0 0 6px;
}
.pm-card-title-jp{
  font-family:var(--hl-font-jp);
  font-size:13.5px;
  font-weight:700;
  color:var(--hl-color-primary);
  letter-spacing:.03em;
  line-height:1.55;
  margin:0 0 12px;
}
.pm-card-text{
  font-family:var(--hl-font-jp);
  font-size:13px;
  line-height:1.85;
  color:var(--hl-color-text-muted);
  margin:0 0 16px;
  flex-grow:1;
}
.pm-card-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--hl-font-jp);
  font-size:12.5px;
  font-weight:600;
  color:var(--hl-color-primary);
  letter-spacing:.04em;
}
.pm-card-link .hl-btn-arrow{
  display:inline-block;
  transition:transform .25s var(--hl-ease);
}
.pm-card:hover .pm-card-link .hl-btn-arrow{
  transform:translateX(4px);
}

@media (max-width:960px){
  .pm-grid--4up,
  .pm-grid--3up{ grid-template-columns:repeat(2,1fr); }
  .pm-grid--2up{ grid-template-columns:1fr; }
  .pm-services-head{ margin-bottom:40px; }
}
@media (max-width:600px){
  .pm-grid--4up,
  .pm-grid--3up,
  .pm-grid--2up{ grid-template-columns:1fr; }
  .pm-grid{ gap:18px; }
  .pm-card-body{ padding:20px 20px 22px; }
  .pm-services-lead{ font-size:14px; }
}


.pm-pagehead-title--detail{
  font-family:var(--hl-font-en);
  font-size:clamp(30px,4.5vw,46px);
  font-weight:500;
  line-height:1.05;
  color:var(--hl-color-primary);
  margin:0 0 10px;
  letter-spacing:.02em;
}


.pm-divider{
  margin:0 0 40px;
  padding:0;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:32px;
}
@media (max-width:960px){
  .pm-divider{ margin:0 0 28px; gap:18px; }
}
.pm-divider::before,
.pm-divider::after{
  content:"";
  height:1px;
  background:var(--hl-color-line);
}
.pm-divider-label{
  font-family:var(--hl-font-en);
  font-size:14px;
  letter-spacing:.32em;
  color:var(--hl-color-accent-2);
  text-transform:uppercase;
  font-weight:600;
}
.pm-divider--sm{
  gap:18px;
  padding:0 24px;
}
.pm-divider--sm .pm-divider-label{
  font-size:11.5px;
  letter-spacing:.28em;
}


.pm-warranty{
  position:absolute;
  background:var(--hl-color-accent);
  color:#fff;
  font-family:var(--hl-font-jp);
  font-size:12px;
  padding:7px 18px;
  border-radius:999px;
  letter-spacing:.14em;
  font-weight:700;
  box-shadow:0 4px 10px rgba(184,135,70,.30);
  white-space:nowrap;
  z-index:2;
}
.pm-warranty--primary{
  background:var(--hl-color-primary);
  box-shadow:0 4px 10px rgba(31,58,77,.25);
}


.pm-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 14px;
}
.pm-chip{
  font-family:var(--hl-font-jp);
  font-size:11px;
  letter-spacing:.06em;
  background:#fff;
  border:1px solid var(--hl-color-line);
  color:var(--hl-color-primary);
  padding:4px 10px;
  border-radius:3px;
  font-weight:600;
}
.pm-chip--accent{
  background:#fff8ef;
  border-color:var(--hl-color-accent);
  color:var(--hl-color-accent-2);
}


.pm-stars{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:3px 16px;
  padding:14px 18px;
  background:var(--hl-color-bg-soft);
  border-radius:6px;
  width:fit-content;
  font-family:var(--hl-font-jp);
  font-size:12.5px;
  margin:0;
}
.pm-stars-label{
  color:var(--hl-color-text-muted);
  letter-spacing:.18em;
  align-self:center;
  font-weight:600;
}
.pm-stars-value{
  color:var(--hl-color-accent);
  letter-spacing:.18em;
  font-size:13px;
  line-height:1.7;
}
.pm-stars-value .pm-dim{ color:#d8d2c4; }
.pm-stars--sm{
  padding:10px 14px;
  gap:2px 12px;
  font-size:11.5px;
}
.pm-stars--sm .pm-stars-label{ font-size:11px; }
.pm-stars--sm .pm-stars-value{ font-size:12px; line-height:1.6; }


.pm-price-block{
  border-top:1px solid var(--hl-color-line);
  padding-top:14px;
}
.pm-price-label{
  display:inline-block;
  font-family:var(--hl-font-jp);
  font-size:11.5px;
  color:var(--hl-color-text-muted);
  letter-spacing:.14em;
  margin-bottom:6px;
  border-left:2px solid var(--hl-color-accent);
  padding-left:8px;
  line-height:1.4;
}
.pm-price-label-jp{
  font-family:var(--hl-font-jp);
  font-size:11.5px;
  color:var(--hl-color-text-muted);
  margin-left:8px;
  letter-spacing:.04em;
}
.pm-price-main{
  font-family:var(--hl-font-jp);
  font-size:36px;
  font-weight:700;
  color:var(--hl-color-primary);
  line-height:1.1;
  letter-spacing:.01em;
  margin:0;
}
.pm-price-main small{
  font-size:18px;
  font-weight:500;
  margin-left:2px;
}
.pm-price-tax{
  font-family:var(--hl-font-jp);
  font-size:12.5px;
  color:var(--hl-color-text-muted);
  letter-spacing:.04em;
  margin:4px 0 0;
}
.pm-price-block--sm{ padding-top:12px; }
.pm-price-block--sm .pm-price-main{ font-size:26px; }
.pm-price-block--sm .pm-price-main small{ font-size:14px; }


.pm-ba{
  position:absolute;
  top:24px;
  right:24px;
  display:flex;
  align-items:center;
  gap:10px;
  background:rgba(255,255,255,.96);
  padding:10px 12px;
  box-shadow:0 8px 20px rgba(0,0,0,.18);
  z-index:3;
}
.pm-ba-cell{
  position:relative;
  width:108px;
  height:78px;
  background-size:cover;
  background-position:center;
  flex:none;
  background-color:#d4c4a8;
}
.pm-ba-cell::after{
  content:attr(data-label);
  position:absolute;
  bottom:4px;
  left:4px;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-family:var(--hl-font-en);
  font-size:9px;
  letter-spacing:.22em;
  padding:1px 7px;
  text-transform:uppercase;
}
.pm-ba-arrow{
  font-size:18px;
  color:var(--hl-color-primary);
  font-weight:700;
  line-height:1;
}
.pm-ba--sm{
  top:auto;
  right:auto;
  bottom:12px;
  left:12px;
  padding:6px 8px;
  gap:6px;
  box-shadow:0 4px 12px rgba(0,0,0,.14);
}
.pm-ba--sm .pm-ba-cell{
  width:62px;
  height:46px;
}
.pm-ba--sm .pm-ba-cell::after{
  font-size:7.5px;
  bottom:2px;
  left:2px;
  padding:1px 4px;
  letter-spacing:.16em;
}
.pm-ba--sm .pm-ba-arrow{ font-size:12px; }


.pm-sales-badge{
  position:absolute;
  top:24px;
  left:24px;
  width:88px;
  height:88px;
  background:var(--hl-color-primary);
  color:#fff;
  border-radius:50%;
  display:grid;
  place-items:center;
  text-align:center;
  font-family:var(--hl-font-en);
  font-size:10.5px;
  letter-spacing:.22em;
  line-height:1.3;
  z-index:3;
  box-shadow:0 8px 20px rgba(31,58,77,.30);
  text-transform:uppercase;
}
.pm-sales-badge strong{
  display:block;
  font-size:22px;
  font-weight:600;
  letter-spacing:.02em;
  margin-top:2px;
}


.pm-hero-section{ padding:64px 0 56px; }
.pm-hero-inner{
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}
.pm-hero{
  position:relative;
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:0;
  min-height:560px;
  background:#fff;
  box-shadow:0 18px 50px rgba(31,58,77,.10);
}
.pm-hero-media{
  position:relative;
  background-size:cover;
  background-position:center;
  background-color:#3d2c1f;
  min-height:560px;
}
.pm-hero-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.18));
  pointer-events:none;
}
.pm-hero-body{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:64px 56px 52px;
}
.pm-hero-body .pm-warranty{
  top:-14px;
  left:56px;
}
.pm-hero-eyebrow{
  font-family:var(--hl-font-jp);
  font-size:13.5px;
  color:var(--hl-color-text-muted);
  letter-spacing:.10em;
  margin:0 0 6px;
}
.pm-hero-title{
  font-family:var(--hl-font-en);
  font-size:clamp(34px,3.6vw,46px);
  line-height:1.05;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  font-weight:500;
  margin:0 0 22px;
}
.pm-hero-title-jp{
  display:block;
  font-family:var(--hl-font-jp);
  font-size:14.5px;
  color:var(--hl-color-text-muted);
  letter-spacing:.06em;
  margin-top:6px;
  font-weight:500;
}
.pm-hero-body .pm-stars{ margin:0 0 22px; }
.pm-hero-text{
  font-family:var(--hl-font-jp);
  font-size:14px;
  line-height:1.95;
  color:var(--hl-color-text);
  margin:0 0 26px;
}


.pm-grid-section{ padding:48px 0 72px; }
.pm-grid-inner{
  max-width:1240px;
  margin:0 auto;
  padding:0 24px;
}
.pm-grid--detail{ gap:36px; }
.pm-card--detail{
  display:grid;
  grid-template-columns:0.9fr 1fr;
  flex-direction:initial;
  border:1px solid var(--hl-color-line);
  min-height:280px;
  background:#fff;
  overflow:visible;
}
.pm-card--detail:hover{
  transform:none;
  box-shadow:var(--hl-shadow-sm);
  border-color:var(--hl-color-line);
}
.pm-card--detail .pm-card-media{
  aspect-ratio:auto;
  height:100%;
  background-color:#e5e0d6;
}
.pm-card--detail .pm-card-body{
  padding:38px 32px 28px;
  justify-content:flex-start;
}
.pm-card--detail .pm-card-link{
  margin-top:auto;
}
.pm-card--detail .pm-warranty{
  top:-13px;
  left:32px;
  font-size:11px;
  padding:6px 14px;
  letter-spacing:.12em;
}
.pm-card-eyebrow{
  font-family:var(--hl-font-jp);
  font-size:12px;
  color:var(--hl-color-text-muted);
  letter-spacing:.08em;
  margin:0 0 4px;
}
.pm-card--detail .pm-card-title{
  font-family:var(--hl-font-en);
  font-size:28px;
  line-height:1.1;
  color:var(--hl-color-primary);
  letter-spacing:.02em;
  font-weight:500;
  margin:0 0 6px;
}
.pm-card--detail .pm-card-title-jp{
  font-size:13px;
  color:var(--hl-color-text-muted);
  margin:0 0 14px;
  letter-spacing:.04em;
  font-weight:500;
}
.pm-card--detail .pm-stars{ margin:0 0 16px; }
.pm-card--detail .pm-card-text{
  font-size:12.5px;
  line-height:1.85;
  color:var(--hl-color-text);
  margin:0 0 16px;
  flex-grow:0;
}


@media (max-width:960px){
  .pm-hero{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .pm-hero-media{ min-height:360px; }
  .pm-hero-body{ padding:56px 36px 44px; }
  .pm-hero-body .pm-warranty{ left:36px; }
  .pm-hero-title{ font-size:clamp(30px,5vw,38px); }
  .pm-grid--detail{ grid-template-columns:1fr; }
  .pm-card--detail{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .pm-card--detail .pm-card-media{
    min-height:240px;
    aspect-ratio:16/10;
  }
  .pm-card--detail .pm-card-body{ padding:36px 28px 28px; }
  .pm-divider{ gap:18px; }
  .pm-divider-label{ font-size:12.5px; }
  .pm-pagehead-title--detail{ font-size:clamp(32px,7vw,44px); }
}
@media (max-width:600px){
  .pm-hero-section{ padding:40px 0 32px; }
  .pm-hero-inner,
  .pm-grid-inner{ padding:0 18px; }
  .pm-hero-media{ min-height:280px; }
  .pm-hero-body{ padding:48px 24px 36px; }
  .pm-hero-body .pm-warranty{ left:24px; }
  .pm-hero-title{ font-size:clamp(26px,7vw,32px); }
  .pm-hero-text{ font-size:13.5px; }
  .pm-price-main{ font-size:30px; }
  .pm-price-main small{ font-size:16px; }
  .pm-sales-badge{
    top:14px;
    left:14px;
    width:72px;
    height:72px;
    font-size:9.5px;
  }
  .pm-sales-badge strong{ font-size:18px; }
  .pm-ba{
    top:14px;
    right:14px;
    padding:6px 8px;
    gap:6px;
  }
  .pm-ba-cell{ width:72px; height:54px; }
  .pm-ba-arrow{ font-size:14px; }
  .pm-grid-section{ padding:32px 0 48px; }
  .pm-card--detail .pm-card-media{ min-height:200px; }
  .pm-card--detail .pm-card-body{ padding:34px 22px 26px; }
  .pm-card--detail .pm-card-title{ font-size:24px; }
}


.hl-header .p-header-nav__list{ gap:22px; }
.hl-header .p-header-nav__list a{
  white-space:nowrap;
  font-size:13.5px;
  letter-spacing:.04em;
}
.hl-header-cta .hl-btn{
  padding:11px 20px;
  font-size:12.5px;
  letter-spacing:.06em;
  gap:8px;
}
@media (min-width:961px) and (max-width:1180px){
  .hl-header-inner{ gap:24px; }
  .hl-header .p-header-nav__list{ gap:16px; }
  .hl-header .p-header-nav__list a{ font-size:12.5px; letter-spacing:.02em; }
  .hl-header-cta .hl-btn{ padding:10px 16px; font-size:12px; }
}


.hl-message--cvo{
  display:grid;
  grid-template-columns:1fr 300px;
  gap:48px;
  align-items:start;
  max-width:1040px;
  margin:0 auto;
}
.hl-message--cvo .hl-message-body{ padding:0; }
.hl-message--cvo .hl-message-image{
  aspect-ratio:4/5;
  max-width:300px;
}
/* Phase 10: Sato photo — 人物が画像右側に写る構図を活かす
   object-fit:cover は style.css に既出。ここでは object-position だけ上書き */
.hl-message--cvo .hl-message-image img{
  object-position:right center;
}
.hl-message-date{
  display:block;
  font-family:var(--hl-font-en);
  font-size:12.5px;
  letter-spacing:.18em;
  color:var(--hl-color-accent-2);
  margin:0 0 28px;
}
.hl-message-text p + p{ margin-top:16px; }
.hl-message-intro{
  display:block;
  font-family:var(--hl-font-jp);
  font-size:17px;
  font-weight:600;
  color:var(--hl-color-primary);
  letter-spacing:.08em;
  margin:0 0 10px;
}
.hl-message--cvo .hl-message-signature{
  text-align:right;
}
.hl-message-signature-org{
  display:inline-block;
  font-family:var(--hl-font-jp);
  font-size:13px;
  color:var(--hl-color-text-muted);
  letter-spacing:.04em;
  line-height:1.7;
}
.hl-message--cvo .hl-message-signature-name{
  letter-spacing:.14em;
  font-weight:700;
}
@media (max-width:960px){
  .hl-message--cvo{
    grid-template-columns:1fr;
    gap:32px;
    max-width:720px;
  }
  .hl-message--cvo .hl-message-image{
    aspect-ratio:4/3;
    max-width:360px;
    margin:0 auto;
  }
  /* SPでもSato（人物右側）が切れないように右寄せキープ */
  .hl-message--cvo .hl-message-image img{
    object-position:right center;
  }
}


.hl-section--cvo-bg{
  background:
    linear-gradient(rgba(250,250,248,.94),rgba(241,236,228,.94)),
    url("../img/hero.png") center/cover no-repeat;
  background-attachment:fixed,scroll;
}
.hl-section--cvo-bg .hl-message-text p{
  color:var(--hl-color-text);
}
@media (max-width:960px){
  .hl-section--cvo-bg{
    background-attachment:scroll,scroll;
  }
}


.hl-intro p{
  text-align:center;
  max-width:640px;
  margin-left:auto;
  margin-right:auto;
}


.pm-card-list{
  margin:0 0 12px;
  padding:0;
  list-style:none;
  font-family:var(--hl-font-jp);
  font-size:12px;
  color:var(--hl-color-text);
  line-height:1.7;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px 10px;
  flex-grow:1;
  align-content:start;
}
.pm-card--detail:has(.pm-card-list){
  min-height:auto;
}
.pm-card--detail:has(.pm-card-list) .pm-card-body{
  padding:22px 22px 20px;
}
.pm-card--detail:has(.pm-card-list) .pm-card-eyebrow{
  margin:0 0 2px;
  font-size:11px;
}
.pm-card--detail:has(.pm-card-list) .pm-card-title{
  font-size:22px;
  margin:0 0 4px;
}
.pm-card--detail:has(.pm-card-list) .pm-card-title-jp{
  font-size:12.5px;
  margin:0 0 10px;
}
.pm-card--detail:has(.pm-card-list) .pm-card-media{
  min-height:180px;
}
@media (max-width:600px){
  .pm-card--detail:has(.pm-card-list) .pm-card-body{ padding:18px 20px 18px; }
  .pm-card--detail:has(.pm-card-list) .pm-card-media{ min-height:160px; aspect-ratio:16/10; }
}
.pm-card-list li{
  position:relative;
  padding-left:14px;
  letter-spacing:.02em;
}
.pm-card-list li::before{
  content:"—";
  position:absolute;
  left:0;
  color:var(--hl-color-accent);
}
@media (max-width:600px){
  .pm-card-list{ grid-template-columns:1fr; }
}


.pm-pagehead--compact{
  padding:24px 0 16px;
}
.pm-pagehead--compact .pm-pagehead-title--detail{
  font-size:clamp(26px,3.4vw,36px);
  margin:0 0 8px;
}
.pm-pagehead--compact .pm-pagehead-lead{
  font-size:13.5px;
  margin:0;
  max-width:640px;
}
@media (max-width:600px){
  .pm-pagehead--compact{ padding:20px 0 14px; }
}


/* =========================================================
   Phase 11: Contact page — Tel と Web Form を「ひとつの問い合わせ導線」に統合
   - hl-section--compact は contact-us.html のみで使用
   - hl-container を 840px に絞り、PCでも中央にまとまった印象に
   - Tel と Form の section は同じ soft 背景で連続して見せる
   ========================================================= */
.hl-section--compact{
  padding-block:28px;
}
.hl-section--compact .hl-container{
  max-width:840px;
}
/* Tel と Form を視覚的に連続させる: 上下隣接時のセクション間余白を詰める */
.hl-section--contact-tel{
  padding-top:36px;
  padding-bottom:12px;
}
.hl-section--contact-form{
  padding-top:12px;
}

.hl-section--compact .hl-tel-card{
  padding:28px 32px;
  max-width:680px;
  box-shadow:var(--hl-shadow-sm);
  background:#fff;
}
.hl-section--compact .hl-tel-card .hl-tel-eyebrow{
  margin-bottom:6px;
}
.hl-section--compact .hl-tel-card .hl-tel-title{
  margin:0 0 6px;
  font-size:18px;
}
.hl-section--compact .hl-tel-card .hl-tel-lead{
  margin:0 0 12px;
  font-size:13px;
  line-height:1.7;
}
.hl-section--compact .hl-tel-card .hl-tel-number a{
  font-family:var(--hl-font-jp);
  font-size:clamp(28px,4.2vw,36px);
  letter-spacing:.04em;
}

/* Web フォームの見出しブロック */
.hl-form-section-head{
  text-align:center;
  margin:0 auto 22px;
  max-width:680px;
}
.hl-form-section-eyebrow{
  display:inline-block;
  font-family:var(--hl-font-en);
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.32em;
  color:var(--hl-color-accent-2);
  text-transform:uppercase;
  margin:0 0 8px;
}
.hl-form-section-title{
  font-family:var(--hl-font-jp);
  font-size:20px;
  font-weight:700;
  color:var(--hl-color-primary);
  letter-spacing:.04em;
  margin:0 0 8px;
  line-height:1.4;
}
.hl-form-section-lead{
  font-family:var(--hl-font-jp);
  font-size:13.5px;
  line-height:1.8;
  color:var(--hl-color-text-muted);
  margin:0;
}

/* contact-us 専用: attr-selector の下マージン圧縮 */
.hl-page--contact .hl-attr-selector--buttons{
  margin:0 auto 24px;
}

@media (max-width:600px){
  .hl-section--compact{ padding-block:20px; }
  .hl-section--contact-tel{ padding-top:24px; padding-bottom:10px; }
  .hl-section--contact-form{ padding-top:10px; }
  .hl-section--compact .hl-tel-card{ padding:22px 20px; }
  .hl-section--compact .hl-tel-card .hl-tel-title{ font-size:16px; }
  .hl-form-section-title{ font-size:18px; }
  .hl-form-section-lead{ font-size:13px; }
}


.hl-attr-selector--buttons{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  margin:0 auto 36px;
}
.hl-attr-btn-group{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:14px;
}
.hl-attr-btn{
  min-height:48px;
  padding:12px 16px;
  font-family:var(--hl-font-jp);
  font-size:14px;
  font-weight:600;
  color:var(--hl-color-text);
  background:#fff;
  border:1px solid var(--hl-color-line);
  border-radius:var(--hl-radius-sm);
  cursor:pointer;
  text-align:center;
  line-height:1.5;
  letter-spacing:.02em;
  transition:border-color .25s var(--hl-ease),background .25s var(--hl-ease),color .25s var(--hl-ease),box-shadow .25s var(--hl-ease);
}
.hl-attr-btn:hover{
  border-color:var(--hl-color-accent);
  color:var(--hl-color-accent-2);
}
.hl-attr-btn.is-active{
  border-color:var(--hl-color-accent);
  background:#fff8ef;
  color:var(--hl-color-accent-2);
  box-shadow:0 4px 12px rgba(184,135,70,.18);
}
@media (max-width:960px){
  .hl-attr-btn-group{
    grid-template-columns:1fr;
    gap:8px;
  }
  .hl-attr-btn{
    min-height:52px;
    font-size:14.5px;
    padding:14px 18px;
  }
}


/* =========================================================
   Phase 8-1: Sticky Header
   - 既存 .l-header.hl-header の position:relative / z-index:50 を上書き
   - スクロール追従、上部固定、白背景、薄い影+下線で読みやすさ確保
   - 既存ナビ折返し解消CSS（gap/font/white-space）は変更しない
   ========================================================= */
.l-header.hl-header,
.hl-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:#fff;
  box-shadow:0 1px 0 rgba(31,58,77,.06), 0 2px 10px rgba(31,58,77,.05);
}
/* SP折返しレイアウトでもヘッダー高が変わらないよう、padding は既存値を踏襲 */
@media (max-width:960px){
  .l-header.hl-header,
  .hl-header{
    position:sticky;
    top:0;
    z-index:1000;
  }
}


/* =========================================================
   Phase 8-2: Scope Layout (対応範囲 + イメージ画像)
   - hl-section-head の下、hl-feature-list の上に画像を配置
   - PC: 画像左 / リスト右 の2カラム
   - SP: 画像上 / リスト下 の縦並び
   - 主役はリスト。画像は補助として控えめなサイズに
   ========================================================= */
.hl-scope-layout{
  display:grid;
  grid-template-columns:minmax(0,0.78fr) minmax(0,1.22fr);
  gap:36px;
  align-items:start;
  max-width:980px;
  margin:0 auto;
}
.hl-scope-image{
  margin:0;
  border-radius:10px;
  overflow:hidden;
  aspect-ratio:4/3;
  background:var(--hl-color-bg-soft,#f3eee5);
  box-shadow:0 6px 22px rgba(31,58,77,.08);
}
.hl-scope-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
/* hl-scope-layout 内部のリストは max-width を解除して右カラムを満たす */
.hl-scope-layout .hl-feature-list{
  max-width:none;
  margin:0;
}
@media (max-width:768px){
  .hl-scope-layout{
    grid-template-columns:1fr;
    gap:20px;
  }
  .hl-scope-image{
    aspect-ratio:16/9;
  }
}


/* =========================================================
   Phase 9: Scope Cards (対応範囲 各項目をサムネイル付きカードに)
   - hl-feature-list を hl-scope-cards に置き換えるための新コンポーネント
   - サムネイルは <img> を入れれば即反映、空でもプレースホルダで意図的に見える
   - data-scope-key 属性で後から差し替え対象を機械的に特定できる
   ========================================================= */
.hl-scope-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin:6px auto 0;
  max-width:1080px;
}
.hl-scope-card{
  background:#fff;
  border:1px solid var(--hl-color-line);
  border-radius:12px;
  padding:14px 14px 16px;
  display:flex;
  flex-direction:column;
  gap:12px;
  transition:transform .25s var(--hl-ease),box-shadow .25s var(--hl-ease);
}
.hl-scope-card:hover{
  transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(31,58,77,.08);
}
.hl-scope-card-thumb{
  margin:0;
  border-radius:8px;
  overflow:hidden;
  aspect-ratio:16/10;
  position:relative;
  background:linear-gradient(135deg,#f3eee5 0%,#e6dfd0 100%);
}
/* 空サムネイル用のさりげないイメージアイコン（後から img を入れると隠れる） */
.hl-scope-card-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b89476' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><circle cx='8.5' cy='10.5' r='1.5'/><path d='M21 17l-5-5L5 21'/></svg>");
  background-repeat:no-repeat;
  background-position:center;
  background-size:34px 34px;
  opacity:.45;
  pointer-events:none;
}
.hl-scope-card-thumb img{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hl-scope-card-title{
  margin:0;
  font-family:var(--hl-font-jp);
  font-size:14.5px;
  font-weight:600;
  color:var(--hl-color-primary);
  line-height:1.65;
  letter-spacing:.02em;
}
@media (max-width:960px){
  .hl-scope-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
  }
}
@media (max-width:560px){
  .hl-scope-cards{
    grid-template-columns:1fr;
    gap:12px;
  }
  .hl-scope-card{
    flex-direction:row;
    align-items:center;
    padding:10px 12px;
    gap:14px;
  }
  .hl-scope-card-thumb{
    flex:none;
    width:88px;
    aspect-ratio:1/1;
    border-radius:6px;
  }
  .hl-scope-card-thumb::after{
    background-size:22px 22px;
  }
  .hl-scope-card-title{
    font-size:14px;
    line-height:1.55;
  }
}
