/* HotCircle Ver.5 */
:root{
  --main:#e95d73;
  --main-dark:#9d315f;
  --soft:#fff4f8;
  --soft2:#fde8f0;
  --text:#2c2528;
  --muted:#6f6468;
  --shadow:0 18px 48px rgba(157,49,95,.16);
  --radius:26px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  line-height:1.8;
  background:#fff;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}

.site-header{
    position:sticky;
    top:0;
    z-index:100;

    background:rgba(255,255,255,.82);
    backdrop-filter:blur(12px);

    box-shadow:0 4px 18px rgba(0,0,0,.04);

    transition:
        background .35s ease,
        box-shadow .35s ease,
        backdrop-filter .35s ease;
}
.site-header{
    transition: all .35s ease;
}
.site-header.shrink{
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(18px);
    box-shadow:0 10px 30px rgba(0,0,0,.10);
}
.site-header.shrink .header-inner{
    padding:0px 5vw;
}

.site-header.shrink .brand img{
    width:100px;
}
.header-inner{
  max-width:1280px;
  margin:auto;
  padding:6px 5vw;
  transition:padding .35s ease;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.brand{flex:0 0 170px}
.brand img{width:130px;height:auto;transition: width .35s ease;}
.nav{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.nav a{padding:8px 4px}
.nav-contact{
  padding:8px 16px!important;
  border-radius:999px;
  background:linear-gradient(135deg,var(--main),#ee8091);
  color:#fff;
  box-shadow:0 12px 25px rgba(233,93,115,.24);
}
.menu-button{
  display:none;
  border:0;
  width:44px;
  height:44px;
  border-radius:14px;
  background:var(--main);
  color:#fff;
  font-size:22px;
}

.hero{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,255,255,.80),rgba(255,244,248,.76)),
    url("images/leaf-frame.png") center/cover no-repeat;
}
.hero-inner{
  max-width:1280px;
  margin:auto;
  min-height:690px;
  padding:72px 5vw;
  display:grid;
  grid-template-columns:.95fr 1.05fr;
  gap:36px;
  align-items:center;
}
.eyebrow,
.section-label{
  margin:0 0 12px;
  color:var(--main-dark);
  font-size:13px;
  letter-spacing:.16em;
  font-weight:900;
}

h1,h2,h3{
  line-height:1.35;
  margin-top:0;
}

h1{
  font-size:clamp(36px,4.2vw,56px);
  letter-spacing:.04em;
  margin-bottom:22px;
}

h1 span{
  color:#c75f85;
}

.lead{
  font-size:18px;
  font-weight:700;
  margin-bottom:28px;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:24px;
}

.btn{
  min-height:56px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 36px;
  border-radius:999px;
  font-weight:800;
  box-shadow:var(--shadow);
}
.btn.primary{background:linear-gradient(135deg,var(--main),#f08494);color:#fff}
.btn.secondary{background:#fff;color:var(--main-dark);border:2px solid var(--soft2)}
.mini-points{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.mini-points div{background:rgba(255,255,255,.82);border-radius:18px;padding:14px;box-shadow:0 8px 20px rgba(157,49,95,.08)}
.mini-points b,.mini-points small{display:block}
.mini-points b{color:var(--main-dark)}
.mini-points small{color:var(--muted)}

.hero-visual{position:relative;min-height:470px}
.noah-card{position:absolute;left:0;top:42px;width:95%;padding:22px;border-radius:34px;background:rgba(255,255,255,.80);box-shadow:var(--shadow)}
.noah-illustration{min-height:285px;display:grid;place-items:center;text-align:center}
.noah-body{position:relative;width:min(460px,86vw);height:170px;border-radius:48px 70px 38px 38px;background:linear-gradient(180deg,#fff,#f6f6f6);border:5px solid #ececec;box-shadow:0 24px 28px rgba(0,0,0,.13)}
.window{position:absolute;top:28px;height:52px;background:linear-gradient(135deg,#e6fbff,#fff);border:3px solid #d9e4e8;border-radius:12px}
.w1{left:42px;width:82px}.w2{left:138px;width:82px}.w3{left:234px;width:92px}
.front{position:absolute;right:-9px;bottom:35px;width:36px;height:45px;border-radius:8px;background:#f5dfe7}
.wheel{position:absolute;bottom:-23px;width:52px;height:52px;border-radius:50%;background:#333;border:9px solid #777}
.wheel.left{left:80px}.wheel.right{right:80px}
.side-logo{position:absolute;left:42px;bottom:38px;color:var(--main-dark);font-weight:900;line-height:1.2}
.noah-illustration p{margin-top:44px;color:var(--main-dark);font-weight:900}
.noah-illustration small{color:var(--muted)}
.profile-card{
  position:absolute;
  right:0;
  bottom:0;
  width:220px;
  height:285px;
  display:grid;
  place-items:center;
  text-align:center;
  border:3px dashed #efb6c8;
  border-radius:28px 28px 0 0;
  background:linear-gradient(180deg,#fff,#ffe9f0);
  box-shadow:var(--shadow);
  color:var(--main-dark);
  font-weight:900;
}
.profile-card small{display:block;color:var(--muted)}

.section{max-width:1180px;margin:auto;padding:48px 5vw}
.section h2{text-align:center;font-size:clamp(28px,3.2vw,44px)}
.story h2{
    font-size:clamp(40px,5vw,56px);
    font-weight:900;
}
.story{text-align:center}
.story-grid{display:grid;grid-template-columns:1,15fr 1.15fr;gap:30px;margin-top:34px}
.story-grid article,.price article,.strength aside,.contact-box,details,.reason article{
  background:rgba(255,255,255,.92);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.story-grid article{padding:30px;text-align:left;border:1px solid #f9d9e4}
.story-grid span{display:inline-block;background:var#f6d7df;font-size:16px;font-weight:700;color:#c75f85;border-radius:999px;padding:8px 18px;}
.story-grid h3{color:var(--main-dark);font-size:clamp(40px,3vw,48px);font-weight:900;line-height:1.3;}
.story-grid p{
    color:#555;
    line-height:1.9;
}
.story-message{max-width:900px;margin:28px auto 0;padding:24px;border-radius:22px;background:linear-gradient(135deg,#fff6f9,#fff);color:var(--main-dark);font-weight:800}

.service{max-width:none;background:linear-gradient(180deg,#fff,var(--soft))}
.service>*{max-width:1180px;margin-left:auto;margin-right:auto}
.service-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;margin-top:34px}
.service article{
  min-height:138px;
  padding:14px 8px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.9);
  box-shadow:0 8px 22px rgba(157,49,95,.10);
  text-align:center;
  transition:.25s ease;
}
.service article:hover,.reason article:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(157,49,95,.18)}
.icon{width:92px;height:92px;margin:0 auto 8px;display:grid;place-items:center}
.icon img{width:92px;height:92px;object-fit:contain}
.service h3{margin:0;color:#222;font-size:14px;font-weight:900;line-height:1.35}

.reason-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:34px}
.reason article{padding:24px 18px;transition:.25s ease}
.reason strong{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--soft2);color:var(--main-dark);margin-bottom:12px}
.reason h3{color:var(--main-dark);font-size:19px}
.reason p{font-size:14px;color:var(--muted);margin:0}

.strength{display:grid;grid-template-columns:1.05fr .95fr;gap:34px}
.strength h2{text-align:left}
.strength ul{padding:0;list-style:none;display:grid;gap:12px}
.strength li{padding:14px 18px;border-radius:16px;background:var(--soft);font-weight:800}
.strength li::before{content:"✓";color:var(--main);font-weight:900;margin-right:8px}
.strength aside{padding:34px;background:linear-gradient(180deg,#fff,#fff7fa)}
.strength aside h3{color:var(--main-dark)}

.price{max-width:none;background:linear-gradient(180deg,#fff,#fff4f8)}
.price>*{max-width:1180px;margin-left:auto;margin-right:auto}
.price-grid{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:18px;margin-top:28px}
.price article{padding:28px}
.price h3{color:var(--main-dark)}
.big{color:var(--main);font-size:22px;font-weight:900}
.notice{text-align:center;color:var(--muted);font-size:13px}
.price-extra{
  margin-top:32px;
  padding:28px;
  background:rgba(255,255,255,.88);
  border:1px solid #ead9de;
  border-radius:24px;
  box-shadow:0 10px 26px rgba(157,49,95,.08);
}

.price-extra h3{
  margin:0 0 22px;
  color:var(--main-dark);
  text-align:center;
  font-size:22px;
}

.price-extra-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px 24px;
}

.price-extra-item{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:14px 0;
  border-bottom:1px solid #eee2e6;
}

.price-extra-item span{
  color:#666;
}

.price-extra-item strong{
  color:#444;
  text-align:right;
}

.flow ol{counter-reset:flow;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;padding:0;list-style:none}
.flow li{position:relative;background:rgba(255,255,255,.9);border-radius:22px;box-shadow:var(--shadow);padding:58px 20px 24px}
.flow li::before{counter-increment:flow;content:counter(flow);position:absolute;top:18px;left:20px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--main);color:#fff;font-weight:900}
.flow b,.flow span{display:block}
.flow span{font-size:14px;color:var(--muted)}
.faq details{padding:20px 24px;margin:14px auto;max-width:860px}
.faq summary{cursor:pointer;color:var(--main-dark);font-weight:900}
.business-info{
  text-align:center;
  background:#fffafc;
}

.business-info-card{
  max-width:860px;
  margin:36px auto 0;
  padding:32px;
  background:#fff;
  border:1px solid #ead9de;
  border-radius:24px;
  box-shadow:0 10px 26px rgba(157,49,95,.08);
  text-align:left;
}

.business-info-card dl{
  margin:0;
}

.business-info-card dl > div{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:24px;
  padding:16px 0;
  border-bottom:1px solid #eee2e6;
}

.business-info-card dl > div:last-child{
  border-bottom:none;
}

.business-info-card dt{
  color:var(--main-dark);
  font-weight:900;
}

.business-info-card dd{
  margin:0;
  color:#555;
  line-height:1.8;
}
.privacy{
  background:#fffafc;
}

#privacy{
  scroll-margin-top:120px;
}

.privacy-card{
  max-width:900px;
  margin:36px auto 0;
  padding:36px;
  background:#fff;
  border:1px solid #ead9de;
  border-radius:24px;
  box-shadow:0 10px 26px rgba(157,49,95,.08);
}

.privacy-card h3{
  margin:28px 0 10px;
  color:var(--main-dark);
  font-size:18px;
}

.privacy-card p{
  margin:0;
  color:#555;
  line-height:1.9;
}

.privacy-card h3:first-of-type{
  margin-top:20px;
}
.privacy-details{
  max-width:900px;
  margin:0 auto;
  text-align:center;
}

.privacy-details summary{
  cursor:pointer;
  list-style:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 26px;
  border-radius:999px;
  background:var(--main);
  color:#fff;
  font-weight:900;
  box-shadow:0 10px 24px rgba(157,49,95,.18);
}

.privacy-details summary::-webkit-details-marker{
  display:none;
}

.privacy-details[open] summary{
  margin-bottom:24px;
}

.contact{text-align:center}
.contact>p:not(.section-label){max-width:720px;margin:0 auto 24px}
.contact-box{max-width:720px;margin:auto;padding:32px;background:linear-gradient(135deg,#fff,#fff1f6)}
.contact-main{color:var(--main-dark);font-size:24px;font-weight:900}
.required{

  display:inline-block;
  margin-left:6px;
  padding:2px 8px;
  border-radius:999px;
  background:#c75f85;
  color:#fff;
  font-size:12px;
  font-weight:700;
}

.form-hidden{
  display:none;
}
.contact-form-area{
  max-width:720px;
  margin:42px auto 0;
  padding:32px;
  background:#fff;
  border:1px solid #ead9de;
  border-radius:24px;
  box-shadow:0 10px 26px rgba(157,49,95,.08);
  text-align:left;
}

.contact-form-area h3{
  margin:0 0 12px;
  color:var(--main-dark);
  text-align:center;
  font-size:26px;
}

.contact-form-lead{
  margin:0 auto 28px;
  text-align:center;
  color:var(--muted);
  line-height:1.8;
}

.contact-form{
  display:grid;
  gap:20px;
}

.form-group{
  display:grid;
  gap:8px;
}

.form-group label{
  color:#555;
  font-weight:700;
}

.form-group input,
.form-group select,
.form-group textarea{
  width:100%;
  box-sizing: border-box;
  padding:13px 14px;
  border:1px solid #d9c9ce;
  border-radius:12px;
  background:#fff;
  color:#333;
  font:inherit;
}

.form-group textarea{
  resize:vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
  outline:none;
  border-color:#c75f85;
  box-shadow:0 0 0 3px rgba(199,95,133,.12);
}

.contact-form-note{
  margin:0;
  padding:16px;
  background:#fff7f9;
  border-radius:14px;
  color:#66555a;
  font-size:14px;
  line-height:1.8;
}

.privacy-consent{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
}
.privacy-link{
  color:var(--main-dark);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.privacy-link:hover{
  color:var(--main);
}

.contact-form-button{
  display:block;
  width:100%;
  max-width:320px;
  margin:0 auto;
  padding:14px 24px;
  border:none;
  border-radius:999px;
  background:var(--main);
  color:#fff;
  font-size:17px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(157,49,95,.18);
}

.instagram-guide{
  text-align:center;
  background:#fffafc;
}

.instagram-guide-text{
  max-width:680px;
  margin:0 auto 28px;
  color:var(--muted);
  line-height:1.9;
}

.instagram-guide-card{
  max-width:300px;
  margin:0 auto;
  padding:26px;
  background:#fff;
  border:1px solid #ead9de;
  border-radius:24px;
  box-shadow:0 10px 26px rgba(157,49,95,.08);
}

.instagram-guide-card img{
  width:180px;
  max-width:100%;
  height:auto;
  display:block;
  margin:0 auto 14px;
}

.instagram-guide-card p{
  margin:0;
  color:var(--main-dark);
}

.footer{background:#9c315e;color:#fff;text-align:center;padding:42px 5vw}
.footer img{width:150px;margin:0 auto 14px;padding:12px;background:#fff;border-radius:20px}
.footer p{margin:4px 0}.footer small{display:block;margin-top:12px;opacity:.75}

.fixed-contact{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:120;
  transition:opacity 1s ease, transform 1s ease;
}
.fixed-contact.is-hidden{
  opacity:0;
  transform:translateY(20px);
  pointer-events:none;
}
.fixed-contact a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:10px 18px;
  border-radius:999px;
  color:#fff;
  font-weight:900;
  background:linear-gradient(135deg,var(--main),#ee8091);
  box-shadow:0 16px 34px rgba(157,49,95,.24);
}

.reveal{opacity:0;transform:translateY(18px);transition:.7s ease}
.reveal.is-visible{opacity:1;transform:none}

.sp-only{display:none}

.pc-break{
  display:block;
}
@media(max-width:980px){

  .pc-break{
  display:none;
}
  .header-inner{display:grid;grid-template-columns:150px 1fr}
  .menu-button{display:block;justify-self:end}
  .nav{grid-column:1/-1;display:none;flex-direction:column;align-items:stretch;gap:8px}
  .nav.is-open{display:flex}
  .nav a{background:var(--soft);border-radius:12px;padding:10px 12px}
  .nav-contact{text-align:center}
  .hero-inner,.strength{grid-template-columns:1fr}
  .hero-inner{min-height:auto}
  .story-grid,.price-grid,.flow ol{grid-template-columns:1fr}
  .price-extra-grid{
  grid-template-columns:1fr;
}

.price-extra-item{
  flex-direction:column;
  gap:5px;
}

.price-extra-item strong{
  text-align:left;
}
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .reason-grid{grid-template-columns:repeat(2,1fr)}
  .hero-visual{min-height:500px}
  .noah-card{position:relative;top:0;width:100%}
  .profile-card{right:20px;bottom:-20px;width:170px;height:210px}
  .profile-wide-card{
  grid-template-columns:1fr !important;
}

.profile-photo,
.profile-content{
  width:100%;
  min-width:0;
}

.profile-photo img{
  width:100%;
  max-width:280px;
  height:auto;
  display:block;
  margin:0 auto 24px;
}

.profile-content{
  text-align:left;
}
}
.no-break{
  white-space:nowrap;
}
.sp-break{
  display:none;
}

.hero-mobile-photo{
  display:none;
}

@media(max-width:560px){
  .hero-mobile-photo{
  display:block;
  margin:24px -5vw;
}

.hero-mobile-photo img{
  display:block;
  width:100%;
  height:auto;
  border-radius:22px;
}

.hero-visual{
  display:none;
}
  .brand img{width:130px}
  .sp-only{display:block}
  .section{padding:58px 5vw}
  .hero-actions{flex-direction:column}
  .hero-actions .primary{
  display:none;
}
  .btn{width:100%}
  .mini-points{grid-template-columns:1fr}
  .service-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .service article{min-height:128px}
  .icon,.icon img{width:78px;height:78px}
  .reason-grid{grid-template-columns:1fr}
  .hero-visual{min-height:430px}
  .noah-card{padding:16px}
  .noah-body{transform:scale(.86)}
  .profile-card{position:relative;right:auto;bottom:auto;width:100%;height:150px;margin-top:16px;border-radius:22px}
  .fixed-contact{left:16px;right:16px}
  .fixed-contact a{width:100%}
  .business-info-card{
  padding:24px 20px;
}
.pc-break-text{
  display:inline;
}
.sp-break{
  display:block;
}

.business-info-card dl > div{
  grid-template-columns:1fr;
  gap:6px;
}
.privacy-card{
  padding:24px 20px;
}
.sp-break{
  display:block;
}
}
.qr-area{
display:flex;
justify-content:center;
gap:40px;
margin-top:30px;
flex-wrap:wrap;
}

.sns-link{
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:18px;
  color:var(--main-dark);
  text-decoration:none;
  font-weight:800;
  transition:transform .25s ease, opacity .25s ease;
}

.sns-link img{
  width:110px !important;
  height:110px !important;
  object-fit:contain;
  display:block;
}

.sns-link span{
  font-size:18px;
}

.sns-link:hover{
  transform:translateY(-4px);
  opacity:.85;
}

.qr-card{
text-align:center;
}

.qr-card img{
width:170px;
border-radius:18px;
box-shadow:0 8px 25px rgba(0,0,0,.12);
}

.qr-card p{
margin-top:10px;
font-weight:700;
color:#a85c7a;
}
.qr-card:first-child img{
    width:162px;
}

.qr-card:last-child img{
    width:170px;
}
.hero-copy{
  animation: heroFadeUp 1.5s ease forwards;
}

@keyframes heroFadeUp{
  from{
    opacity:0;
    transform:translateY(30px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.hero-accent{
    color:#d86b8c;
    display:inline-block;
    opacity:0;
    transform:translateY(20px);
    animation:accentFade 2.5s ease forwards;
    animation-delay:0.5s;
}

@keyframes accentFade{
    from{
        opacity:0;
        transform:translateY(20px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}
/* 選ばれる理由 */
.reason-grid h3{
    color:#d96d8a;
    font-size:28px;
    font-weight:800;
    margin-bottom:14px;
}

.reason-grid article{
    transition:0.35s;
    cursor:pointer;
}

.reason-grid article:hover{
    transform:translateY(-8px);
    box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.reason-grid strong{
    font-size:30px;
    color:#d96d8a;
}
.reason-list{
  display:grid;
  gap:22px;
  margin-top:36px;
}

.reason-list article{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:24px;
  align-items:center;
  padding:28px 32px;
  border-radius:28px;
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 36px rgba(157,49,95,.12);
  border:1px solid #f8d7e3;
  transition:.35s;
}

.reason-list article:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 42px rgba(157,49,95,.18);
}

.reason-number{
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:linear-gradient(135deg,#f06b8d,#b65be0);
  color:#fff;
  font-size:42px;
  font-weight:900;
}

.reason-list h3{
  margin:0 0 10px;
  color:#d96d8a;
  font-size:26px;
  line-height:1.4;
}

.reason-list p{
  margin:0;
  color:#3d3639;
  font-size:16px;
  font-weight:600;
  line-height:1.9;
}

@media(max-width:560px){
  .reason-list article{
    grid-template-columns:1fr;
    padding:24px 22px;
  }

  .reason-number{
    width:64px;
    height:64px;
    font-size:34px;
  }

  .reason-list h3{
    font-size:20px;
  }
  .story-grid article p{
  text-align:left !important;
  text-align-last:left !important;
  word-spacing:normal !important;
  letter-spacing:normal !important;
  white-space:normal;
  }

  .reason-list p{
    font-size:15px;
  }
}
.reason-list{
  display:grid;
  gap:22px;
  margin-top:36px;
}

.reason-list article{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:24px;
  align-items:center;
  padding:28px 32px;
  border-radius:28px;
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 36px rgba(157,49,95,.12);
  border:1px solid #f8d7e3;
  transition:.35s;
}

.reason-list article:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 42px rgba(157,49,95,.18);
}

.reason-number{
  width:76px;
  height:76px;
  display:grid;
  place-items:center;
  border-radius:24px;
  background:linear-gradient(135deg,#f06b8d,#b65be0);
  color:#fff;
  font-size:42px;
  font-weight:900;
}

.reason-list h3{
  margin:0 0 10px;
  color:#d96d8a;
  font-size:26px;
  line-height:1.4;
}

.reason-list p{
  margin:0;
  color:#3d3639;
  font-size:16px;
  font-weight:600;
  line-height:1.9;
}

@media(max-width:560px){
  .reason-list article{
    grid-template-columns:1fr;
    padding:24px 22px;
  }

  .reason-number{
    width:64px;
    height:64px;
    font-size:34px;
  }

  .reason-list h3{
    font-size:20px;
  }

  .reason-list p{
    font-size:15px;
  }
}
.reason{
  max-width:1000px;
}

.reason-list article{
  grid-template-columns:90px minmax(0, 1fr);
}

.reason-list p{
  max-width:760px;
}
.reveal{
    opacity:0;
    transform:translateY(40px);
    transition:all 0.8s ease;
}

.reveal.show{
    opacity:1;
    transform:translateY(0);
}
.hero-title{
    overflow:hidden;
}

.hero-title,
.hero-title .hero-accent{
    display:inline-block;
    opacity:0;
    transform:translateY(150px);
    filter:blur(10px);
    animation:heroFade 2.2s cubic-bezier(.22,1,.36,1) forwards;
}

.hero-title .hero-accent{
    animation-delay:.7s;
}

@keyframes heroFade{
    from{
        opacity:0;
        transform:translateY(150px);
        filter:blur(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
    }
}
.flow li{
  transition:transform .35s ease, box-shadow .35s ease;
}

.flow li:hover{
  transform:translateY(-8px);
  box-shadow:0 18px 35px rgba(0,0,0,.10);
}
.profile{
  text-align:center;
}

.profile .section-intro{
  max-width:760px;
  margin:0 auto 36px;
  color:var(--muted);
  font-weight:700;
}

.profile-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  max-width:980px;
  margin:0 auto;
}

.profile-card{
  background:rgba(255,255,255,.92);
  border-radius:28px;
  padding:34px 28px;
  box-shadow:var(--shadow);
}

.profile-image{
  width:190px;
  height:190px;
  border-radius:50%;
  background:none;
  color:#c75f85;
  display:grid;
  place-items:center;
  margin:0 auto 22px;
  font-weight:900;
  line-height:1.7;
}

.profile-card h3{
  font-size:26px;
  color:var(--main-dark);
  margin:0 0 8px;
}

.profile-role{
  color:var(--main);
  font-weight:900;
}
.profile{
  padding-bottom:40px;
}

.profile-grid{
  margin-top:28px;
}

.profile-card{
  min-height:320px;
}
.profile .profile-card{
  position:relative;
  right:auto;
  bottom:auto;
  width:auto;
  height:auto;
  display:block;
}
.profile-card{
  padding-top:42px;
}

.profile-image{
  width:190px;
  height:190px;
  margin:0 auto 34px;
}

.profile-card h3{
  margin-top:0;
  clear:both;
}
.profile-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:50%;
}
.profile-small img{
    width:93%;
    height:93%;
    margin-top:1px
}
.profile-list{
  max-width:980px;
  margin:40px auto 0;
  display:grid;
  gap:28px;
}

.profile-wide-card{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:32px;
  align-items:center;
  background:rgba(255,255,255,.92);
  border:1px solid #edd9df;
  border-radius:30px;
  padding:42px;
  box-shadow:var(--shadow);
}

.profile-photo img{
  width:230px;
  height:230px;
  object-fit:contain;
}

.profile-content{
  text-align:left;
}

.profile-content h3{
  font-size:28px;
  color:var(--main-dark);
  margin:0;
}

.profile-content h4{
  color:#b25b72;
  margin:20px 0 8px;
}

.profile-content p,
.profile-content li{
  line-height:1.9;
  color:#555;
}

.profile-content ul{
  list-style:none;
  padding:0;
  margin:0;
}
.couple-message{
    margin-top:20px;
    padding:36px;
    background:#fff7f9;
    border:1px solid #f0d8df;
    border-radius:24px;
    text-align:center;
}

.couple-message h3{
    color:#b25b72;
    margin-bottom:18px;
    font-size:28px;
}

.couple-message p{
    max-width:700px;
    margin:0 auto 14px;
    line-height:2;
    color:#555;
}
.profile-card img{
    width:220px;
    height:220px;
    object-fit:cover;
    border-radius:50%;
    display:block;
    margin:0 auto 18px;
    margin-top:-15px
}

.profile-card h3{
    margin:0;
    color:#8c5062;
    font-size:24px;
}

.profile-card p{
    margin-top:8px;
    color:#666;
}
.hero-visual{
  transform:translateX(20px);
}
.hero-noah{
    width:100%;
    max-width:650px;
    border-radius:20px;
    display:block;
    margin:0 auto;
}
.vehicle-text{
    text-align:center;
    margin-top:18px;
    color:#7a5b63;
    font-weight:700;
}

.vehicle-text small{
    display:block;
    margin-top:6px;
    font-size:15px;
    color:#777;
    font-weight:500;
}
.representative-profile{
    text-align:center;
    padding:34px;
    background:rgba(255,255,255,.92);
    border:1px solid #edd9df;
    border-radius:28px;
    box-shadow:var(--shadow);
}

.representative-photo{
    width:300px;
    height:300px;
    object-fit:contain;
    border-radius:50%;
    display:block;
    margin:0 auto 20px;
    background:#fff;
}

.representative-profile h3{
    margin:0;
    font-size:28px;
    color:#8c5062;
}

.representative-role{
    margin:8px 0 22px;
    color:#b46d82;
    font-weight:700;
}

.representative-career{
    list-style:none;
    padding:0;
    margin:0 0 22px;
    text-align:left;
    line-height:1.9;
}

.career-indent{
  display:inline-block;
  margin-left:24px;
}

.representative-career li::before{
    content:"✓";
    color:#c75f75;
    margin-right:8px;
}

.representative-message{
    line-height:1.9;
    color:#555;
    text-align:left;
    margin-bottom:22px;
}

.representative-link{
    display:inline-block;
    color:#9c5468;
    font-weight:700;
    text-decoration:none;
    border-bottom:1px solid #d8a7b4;
    padding-bottom:3px;
}
#representative{
    scroll-margin-top:100px;
}
/* ===== 詳しいサービス紹介 ===== */

.service-detail-list{
  max-width:1100px;
  margin:70px auto 0;
}

.service-detail-card{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
  gap:42px;
  align-items:center;
  padding:38px;
  background:rgba(255,255,255,.94);
  border:1px solid #edd9df;
  border-radius:30px;
  box-shadow:0 14px 36px rgba(157,49,95,.10);
  transition:transform .35s ease, box-shadow .35s ease;
}

.service-detail-card:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 44px rgba(157,49,95,.16);
}

.service-detail-image img{
  width:100%;
  height:100%;
  max-height:420px;
  display:block;
  object-fit:cover;
  border-radius:24px;
}

.service-detail-content{
  text-align:left;
}

.service-number{
  margin:0 0 8px;
  color:#c75f85;
  font-size:13px;
  font-weight:900;
  letter-spacing:.15em;
}

.service-detail-content h3{
  margin:0 0 18px;
  color:#8c5062;
  font-size:clamp(28px,3vw,40px);
  line-height:1.35;
}

.service-lead{
  margin:0 0 24px;
  color:#555;
  font-size:16px;
  line-height:1.9;
}

.service-detail-content h4{
  margin:0 0 14px;
  color:#b25b72;
  font-size:19px;
}

.service-detail-points{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 20px;
  margin:0 0 24px;
  padding:0;
  list-style:none;
}

.service-detail-points li{
  position:relative;
  padding-left:22px;
  color:#444;
  line-height:1.7;
}

.service-detail-points li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:#c75f85;
  font-weight:900;
}

.service-note{
  margin:0;
  padding:16px 18px;
  background:#fff7f9;
  border-radius:16px;
  color:#66555a;
  line-height:1.8;
}

@media(max-width:780px){
  .service-detail-card{
    grid-template-columns:1fr;
    gap:28px;
    padding:24px 20px;
  }

  .service-detail-points{
    grid-template-columns:1fr;
  }

  .service-detail-image img{
    max-height:none;
  }
}@media(max-width:560px){

  .profile-wide-card{
    grid-template-columns:1fr !important;
    gap:24px;
    padding:24px 20px;
  }

  .profile-photo{
    width:100%;
    min-width:0;
    text-align:center;
  }

  .profile-photo img{
    width:180px;
    height:180px;
    max-width:100%;
    margin:0 auto;
  }

  .profile-content{
    width:100%;
    min-width:0;
    text-align:left;
  }

  .profile-content h3{
    font-size:24px;
  }
}
@media(max-width:560px){

  .story-grid article{
    padding:28px 22px;
  }

  .story-grid article h3{
    font-size:32px !important;
    line-height:1.4;
  }

  .story-grid article p{
    font-size:17px !important;
    line-height:1.9;
    letter-spacing:0;
  }

  .story-message{
    font-size:18px !important;
    line-height:1.8;
    padding:28px 20px;
  }

}
.story-grid article p span.no-break{
  display:inline !important;
  color:inherit !important;
  font-size:inherit !important;
  font-weight:inherit !important;
  letter-spacing:inherit !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap;
}
/* スマホだけ改行 */
.mobile-break {
    display: none;
}

@media (max-width: 768px) {
    .mobile-break {
        display: inline;
    }
}
.mobile-indent {
    display: inline;
}

@media (max-width: 768px) {
    .mobile-indent {
        display: inline-block;
        padding-left: 1.6em;
    }
}
.price-time-note {
    grid-column: 1 / -1;
    margin: -6px 0 18px;
    padding: 0;
    background: transparent;
    border: none;
}

.price-time-note p {
    margin: 6px 0;
    padding-left: 12px;
    font-size: 0.95rem;
    color: #666;
    line-height: 1.8;
}
.price-extra-item.no-border {
    border-bottom: none;
}

.price-time-note {
    grid-column: 1 / -1;
    margin: -6px 0 18px;
    padding: 0 0 18px;
    border-bottom: 1px solid #eee2e6;
}

.price-time-note p {
    display: flex;
    align-items: flex-start;
    margin: 6px 0;
    padding-left: 12px;
    font-size: 0.95rem;
    color: #666;
    line-height: 1.8;
}

.note-mark {
    flex-shrink: 0;
    margin-right: 2px;
}

.note-text {
    flex: 1;
}
section {
    scroll-margin-top: 100px;
}
/* 電話番号 */
.contact-phone {
  text-align: center;
  margin: 24px 0;
}

.contact-phone a {
  font-size: 30px;
  font-weight: 700;
  color: #b85c75;
  text-decoration: none;
}

.contact-phone a:hover {
  opacity: 0.8;
}
/* 丸い電話アイコン */
.phone-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background-color: #b85c75;
    margin-right: 12px;
    flex-shrink: 0;
}

.phone-icon svg {
    width: 27px;
    height: 27px;
    fill: #ffffff;
}
/* 電話番号を途中で改行させない */
.contact-phone a {
  white-space: nowrap;
}
/* スマホ用の電話番号調整 */
@media (max-width: 600px) {
  .contact-phone a {
    white-space: nowrap;
    font-size: 28px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
  }

  .phone-icon {
    width: 40px;
    height: 40px;
    margin-right: 0;
    flex-shrink: 0;
  }

  .phone-icon svg {
    width: 23px;
    height: 23px;
  }

  .phone-number {
    white-space: nowrap;
  }
}
/* LINEお問い合わせを中央揃え */
.qr-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.qr-area a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
/* 利用希望日の幅を他の入力欄と揃える */
input[type="date"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
/* PCでは改行しない */
.sp-br {
  display: none;
}

/* スマホだけ指定位置で改行 */
@media (max-width: 600px) {
  .sp-br {
    display: block;
  }
}
/* スマホだけ「ご相談ください」を字下げ */
@media (max-width: 600px) {
  .sp-indent {
    display: block;
    padding-left: 1em;
  }
}
@media (max-width: 600px) {
  #faq summary {
    font-size: 15px;
    white-space: nowrap;
  }
}
@media (max-width: 600px) {
  #flow .flow-short {
    font-size: 14px;
    white-space: nowrap;
  }
}
/* iPhone Safariの日付入力欄対策 */
.form-group input[type="date"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}
@media (max-width: 600px) {
  .fixed-contact {
    left: 28px;
    right: 28px;
    bottom: calc(18px + env(safe-area-inset-bottom));
  }

  .fixed-contact a {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
}
.fare-distance {
  color: #444;
  font-size: 0.65em;
  font-weight: 500;
  margin-left: 12px;
}