:root{
  --artboard:1920;
  --heroH:990;
  --scale:1;
  --base:#fbefeb;
  --brown:#7c6259;
  --brown-dark:#69514b;
  --pink:#f05d76;
  --pink2:#ef5f76;
  --white:#fff;
  --serif:"A1 Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --sans:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--base);color:var(--brown);font-family:var(--sans);letter-spacing:.06em}
a{text-decoration:none;color:inherit}img{vertical-align:middle;max-width:100%}
.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:20px;top:20px;z-index:100000;background:var(--pink);color:#fff;padding:10px 14px;border-radius:999px}

/* ========= preview scaler ========= */
.preview-shell{position:relative;width:100%;height:calc(var(--heroH) * 1px * var(--scale));overflow:hidden;background:var(--base)}
.fv-artboard{position:absolute;left:0;top:0;width:1920px;height:990px;transform:scale(var(--scale));transform-origin:top left;overflow:hidden;background:var(--base)}

/* ========= FV ========= */
.fv{position:relative;width:1920px;height:990px;overflow:hidden;background:linear-gradient(90deg,#fbebe7 0%,#fbf0ec 34%,#fff9f6 100%)}
.hero-slider{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;overflow:hidden;background:#fbefeb;contain:layout paint;transform:translateZ(0)}
.hero-slide{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center center;opacity:0;transition:opacity 2.35s ease-in-out,transform 8.2s ease-out;transform:scale(1.015);transform-origin:center center;will-change:opacity,transform;backface-visibility:hidden}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-deco{display:none}
.hero-image-softedge{display:none}
/* left text readability overlay, not image replacement */
.fv::before{content:"";position:absolute;left:0;top:0;width:36.4%;height:990px;z-index:3;background:linear-gradient(90deg,rgba(251,235,230,.42) 0%,rgba(251,235,230,.30) 46%,rgba(255,247,245,.13) 78%,rgba(255,247,245,0) 100%);pointer-events:none}
.fv::after{content:"";position:absolute;left:184px;top:147px;width:760px;height:645px;z-index:3;background:radial-gradient(ellipse at center,rgba(255,255,255,.9) 0%,rgba(255,255,255,.72) 35%,rgba(255,255,255,.33) 58%,rgba(255,255,255,0) 80%);filter:blur(8px);pointer-events:none}

/* ========= Header ========= */
.site-header{position:absolute;left:100px;top:32px;width:1720px;height:110px;z-index:50;display:flex;align-items:center;border-radius:999px;background:rgba(255,255,255,.965);box-shadow:0 12px 28px rgba(128,91,84,.14);backdrop-filter:blur(2px)}
.logo-link{position:absolute;left:102px;top:15px;width:260px;height:80px;display:flex;align-items:center;justify-content:center}
.site-logo{width:258px;height:110px;object-fit:contain;display:block}
.header-copy{position:absolute;left:368px;top:50%;transform:translateY(-50%);margin:0;font-size:17px;line-height:1.75;font-weight:500;color:#5f4c45;letter-spacing:.06em;white-space:nowrap}
.header-tel{position:absolute;left:965px;top:14px;width:352px;height:84px;display:flex;align-items:center}
.header-tel img{display:block;width:100%;height:auto}
.header-btn{
  position:absolute;
  left:1328px;
  top:18px;
  width:238px;
  height:74px;
  border-radius:999px;
  background:#F46276;
  background-image:linear-gradient(90deg,#F46276 0%,#F46276 35%,#EFA05C 62%,#F46276 100%);
  background-size:220% 100%;
  background-position:0% 0;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:14px;
  font-weight:400;
  letter-spacing:.04em;
  box-shadow:0 9px 18px rgba(244,98,118,.18);
  transition:transform .24s ease,background-position .42s ease,box-shadow .24s ease;
  z-index:1;
}
.header-btn img{width:23px;height:auto;filter:brightness(0) invert(1);opacity:.95display:block;}
.header-btn:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 12px 22px rgba(239,160,92,.30);
}
.d-menu{position:absolute;left:1576px;top:15px;width:80px;height:80px;border:0;border-radius:50%;background:#81665d;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;cursor:pointer;box-shadow:none;padding:0z-index:2;}
.d-menu span{display:block;width:30px;height:2px;background:#fff;border-radius:99px;transition:transform .25s ease,opacity .25s ease}
.d-menu:hover{filter:brightness(1.05)}

/* ========= FV text ========= */
.fv-copy{position:absolute;left:0;top:0;width:1920px;height:990px;z-index:5;pointer-events:none}
.fv-copy a,.fv-copy button{pointer-events:auto}
.glow{text-shadow:0 0 4px rgba(255,255,255,1),0 0 10px rgba(255,255,255,1),0 0 22px rgba(255,255,255,1),0 0 42px rgba(255,255,255,.96),0 0 64px rgba(255,255,255,.82),0 2px 0 rgba(255,255,255,.98)}
.hero-kicker{position:absolute;left:197px;top:242px;margin:0;font-family:var(--serif);font-size:31px;line-height:1.45;font-weight:500;letter-spacing:.15em;color:#735a52}
.hero-title{position:absolute;left:195px;top:302px;margin:0;font-family:var(--serif);font-size:68px;line-height:1.28;font-weight:500;letter-spacing:.12em;color:var(--pink2);white-space:nowrap;filter:drop-shadow(0 0 12px rgba(255,255,255,.92))}
.hero-title .brown{color:#6f5750;font-size:.62em;letter-spacing:.06em;margin-left:.02em;margin-right:.04em}
.hero-title-main,.hero-title-sub{display:inline-block}
.hero-lead{position:absolute;left:200px;top:526px;width:610px;margin:0;font-family:var(--serif);font-size:22px;line-height:2.08;font-weight:500;letter-spacing:.09em;color:#765d55;white-space:nowrap;filter:drop-shadow(0 0 9px rgba(255,255,255,.82))}
.hero-lead .accent{color:#ef6076}
.price-card{position:absolute;left:200px;top:735px;width:492px;height:242px;padding:0;background:rgba(255,255,255,.88);border:1px solid rgba(246,211,215,.9);border-radius:16px;box-shadow:0 12px 30px rgba(221,121,134,.14);overflow:hidden;backdrop-filter:blur(2px)}
.price-card::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.86) 60%,rgba(255,236,238,.64) 100%)}
.price-location{position:absolute;left:68px;top:41px;margin:0;font-size:18px;line-height:1.3;font-weight:700;color:#ef6076;letter-spacing:.08em;white-space:nowrap;z-index:1}
.price-label{position:absolute;left:94px;top:91px;margin:0;font-family:var(--serif);font-size:25px;line-height:1.2;font-weight:600;color:#72584f;letter-spacing:.06em;white-space:nowrap;z-index:1}
.price-label small{font-size:.72em;font-weight:600}
.price-main{position:absolute;left:60px;top:132px;z-index:1;display:flex;align-items:flex-end;gap:5px;color:#ef6076;white-space:nowrap}
.price-main strong{font-family:var(--serif);font-size:76px;line-height:.9;font-weight:400;letter-spacing:.035em;color:#ef6076}
.price-main .yen{font-family:var(--serif);font-size:30px;line-height:1.05;font-weight:500;margin-bottom:8px;color:#ef6076}
.price-main .from{font-family:var(--serif);font-size:25px;line-height:1.05;font-weight:500;margin-bottom:10px;color:#72584f;letter-spacing:.08em}
.rainbow-copy{position:absolute;left:1172px;top:356px;margin:0;font-family:var(--serif);font-size:34px;line-height:1.72;font-weight:500;letter-spacing:.18em;color:#ef6076;text-align:left;white-space:nowrap;text-shadow:0 0 6px rgba(255,255,255,1),0 0 18px rgba(255,255,255,1),0 0 36px rgba(255,255,255,1),0 0 62px rgba(255,255,255,1),0 0 94px rgba(255,255,255,.92),0 0 118px rgba(255,255,255,.72),0 2px 0 rgba(255,255,255,1);filter:drop-shadow(0 0 22px rgba(255,255,255,1));transition:opacity 1.0s ease,filter 1.0s ease,transform 1.0s ease}
.rainbow-copy.is-changing{opacity:0;transform:translateY(8px);filter:drop-shadow(0 0 28px rgba(255,255,255,1)) blur(.2px)}

/* first-view entry animation */
.fade-load{opacity:0;transform:translateY(12px);animation:fadeLoad .9s ease forwards}.delay-1{animation-delay:.18s}.delay-2{animation-delay:.34s}@keyframes fadeLoad{to{opacity:1;transform:translateY(0)}}

/* ===== menu drawer: v4仕様を維持 ===== */
.site-menu{position:fixed;inset:0;z-index:99999;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,visibility .32s ease;font-family:var(--sans);letter-spacing:.08em}.site-menu.is-open{opacity:1;visibility:visible;pointer-events:auto}.site-menu__backdrop{position:absolute;inset:0;border:0;background:rgba(95,76,69,.25);backdrop-filter:blur(5px);cursor:pointer}.site-menu__panel{position:absolute;right:clamp(16px,5vw,96px);top:clamp(18px,4vw,58px);width:min(430px,calc(100vw - 32px));padding:30px 32px 32px;background:rgba(255,255,255,.96);border:1px solid #f3d0d4;border-radius:34px;box-shadow:0 18px 48px rgba(129,100,91,.24);transform:translateY(-10px);transition:transform .32s ease;overflow:hidden}.site-menu.is-open .site-menu__panel{transform:translateY(0)}.site-menu__panel:before{content:"";position:absolute;right:-72px;top:-72px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(246,177,190,.42) 0%,rgba(255,255,255,0) 68%);pointer-events:none}.site-menu__head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;position:relative}.site-menu__logo{width:176px;height:auto;object-fit:contain}.site-menu__close{width:56px;height:56px;border:0;border-radius:50%;background:#81645b;box-shadow:0 8px 18px rgba(129,100,91,.18);cursor:pointer;position:relative;flex:0 0 auto}.site-menu__close:before,.site-menu__close:after{content:"";position:absolute;left:18px;top:27px;width:21px;height:2px;background:#fff;border-radius:99px}.site-menu__close:before{transform:rotate(45deg)}.site-menu__close:after{transform:rotate(-45deg)}.site-menu__title{margin:0 0 17px;font-family:var(--serif);font-size:18px;line-height:1.8;color:#81645b;text-align:center;position:relative}.site-menu__nav{display:grid;gap:9px;position:relative}.site-menu__nav a{display:flex;align-items:center;min-height:49px;padding:10px 18px;border-radius:999px;background:#fff8f8;border:1px solid #f6dadd;color:#70564f;font-size:15px;font-weight:700;box-shadow:0 6px 14px rgba(129,100,91,.07);transition:transform .22s ease,background .22s ease,color .22s ease,box-shadow .22s ease;text-decoration:none}.site-menu__nav a:before{content:"";width:8px;height:8px;border-radius:50%;background:#e97383;margin-right:12px;box-shadow:0 0 0 4px rgba(233,115,131,.12)}.site-menu__nav a:after{content:"";margin-left:auto;width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.55}.site-menu__nav a:hover{transform:translateX(4px);background:#f46276;color:#fff;box-shadow:0 10px 18px rgba(244,98,118,.18)}.site-menu__nav a:hover:before{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.18)}.site-menu__tel{display:block;margin-top:18px;padding:17px 18px;border-radius:22px;background:#fff;border:1px solid #f2cfd4;text-align:center;color:#81645b;text-decoration:none;box-shadow:0 6px 14px rgba(129,100,91,.06);position:relative}.site-menu__tel small{display:block;font-size:12px;margin-bottom:2px;color:#9a7a70}.site-menu__tel strong{display:block;font-family:var(--serif);font-size:31px;line-height:1;color:#81645b;font-weight:500;letter-spacing:.06em}body.is-menu-open{overflow:hidden}body.is-menu-open .d-menu span:nth-child(1){transform:translateY(11px) rotate(45deg)}body.is-menu-open .d-menu span:nth-child(2){opacity:0}body.is-menu-open .d-menu span:nth-child(3){transform:translateY(-11px) rotate(-45deg)}



/* ========= Campaign card section ========= */
.campaign-section{
  position:relative;
  background:#FDF7F2;
  padding:110px 20px 126px;
  overflow:hidden;
}
.campaign-card{
  position:relative;
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
  padding:54px 78px 58px;
  background:rgba(255,255,255,.95);
  border:1px solid rgba(245,209,212,.95);
  border-radius:10px;
  box-shadow:0 9px 24px rgba(205,118,124,.14);
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0, 47.15%) minmax(0, 45.55%);
  column-gap:7.3%;
  align-items:center;
  box-sizing:border-box;
}
.campaign-sakura{
  position:absolute;
  top:55px;
  width:136px;
  height:auto;
  pointer-events:none;
  user-select:none;
}
.campaign-sakura.left{left:46px;}
.campaign-sakura.right{right:55px;}
.campaign-title{
  grid-column:1 / -1;
  margin:0 auto 30px;
  font-family:var(--serif);
  color:#7b625b;
  font-size:36px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:.11em;
  text-align:center;
  white-space:nowrap;
  position:relative;
  z-index:1;
}
.campaign-title .pink{color:#ef6076;}
.campaign-photo{
  display:block;
  width:100%;
  max-width:528px;
  height:auto;
  justify-self:start;
  align-self:center;
}
.campaign-body{
  width:100%;
  max-width:510px;
  justify-self:start;
  align-self:center;
}
.campaign-text{
  margin:0;
  font-size:clamp(15px, 1.15vw, 17px);
  line-height:2.05;
  font-weight:400;
  color:#7c6259;
  letter-spacing:.075em;
}
.campaign-text .pink{color:#ef6076;}
.campaign-price{
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:10px 0;
  margin-top:34px;
  white-space:nowrap;
  color:#7c6259;
}
.campaign-price .total{
  font-family:var(--serif);
  font-size:30px;
  line-height:1;
  font-weight:600;
  letter-spacing:.05em;
  margin:0 18px 14px 0;
}
.campaign-price .count{
  display:inline-flex;
  width:54px;
  height:34px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:#86685f;
  color:#fff;
  font-family:var(--serif);
  font-size:19px;
  line-height:1;
  letter-spacing:.04em;
  font-weight:500;
  margin:0 25px 10px 0;
}
.campaign-price strong{
  font-family:var(--serif);
  font-size:clamp(56px, 5.2vw, 74px);
  line-height:.86;
  font-weight:400;
  letter-spacing:.025em;
  color:#ef6076;
}
.campaign-price .yen{
  font-family:var(--serif);
  font-size:clamp(28px, 2.5vw, 34px);
  line-height:1;
  font-weight:500;
  color:#ef6076;
  margin:0 6px 7px 7px;
}
.campaign-price .from{
  font-family:var(--serif);
  font-size:clamp(21px, 1.9vw, 25px);
  line-height:1;
  font-weight:500;
  color:#6f5750;
  margin-bottom:10px;
  letter-spacing:.08em;
}
.campaign-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:500px;
  min-height:86px;
  padding:0 56px 0 28px;
  margin-top:39px;
  border-radius:999px;
  background:#F46276;
  background-image:linear-gradient(90deg,#F46276 0%,#F46276 35%,#EFA05C 62%,#F46276 100%);
  background-size:220% 100%;
  background-position:0% 0;
  color:#fff;
  font-size:18px;
  font-weight:400;
  letter-spacing:.07em;
  box-shadow:0 9px 18px rgba(244,98,118,.18);
  transition:transform .24s ease,background-position .42s ease,box-shadow .24s ease;
  box-sizing:border-box;
}
.campaign-btn::after{
  content:"";
  position:absolute;
  right:33px;
  top:50%;
  width:16px;
  height:16px;
  border-top:4px solid currentColor;
  border-right:4px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
  border-radius:1px;
}
.campaign-btn:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 12px 22px rgba(239,160,92,.30);
}
@media (max-width:1100px){
  .campaign-card{
    padding:54px clamp(28px,4vw,56px) 58px;
    grid-template-columns:minmax(0, 45%) minmax(0, 49%);
    column-gap:6%;
  }
  .campaign-title{
    font-size:clamp(29px, 3vw, 36px);
    white-space:normal;
  }
  .campaign-sakura{width:112px;}
  .campaign-sakura.left{left:24px;}
  .campaign-sakura.right{right:28px;}
}
@media (max-width:900px){
  .campaign-section{
    padding:72px 16px 86px;
  }
  .campaign-card{
    width:calc(100vw - 32px);
    padding:44px 24px 40px;
    grid-template-columns:minmax(0,1fr);
    row-gap:24px;
  }
  .campaign-title{
    margin:0 auto 2px;
    font-size:27px;
    line-height:1.55;
    letter-spacing:.08em;
  }
  .campaign-sakura{
    top:24px;
    width:88px;
  }
  .campaign-sakura.left{left:16px;}
  .campaign-sakura.right{right:16px;}
  .campaign-photo,
  .campaign-body{
    justify-self:center;
  }
  .campaign-body{
    max-width:560px;
  }
  .campaign-text{
    line-height:1.95;
  }
}
@media (max-width:640px){
  .campaign-card{
    padding:34px 18px 28px;
  }
  .campaign-title{
    font-size:22px;
    line-height:1.7;
    padding:0 34px;
  }
  .campaign-sakura{width:68px;}
  .campaign-photo{max-width:100%;}
  .campaign-text{
    font-size:14px;
    line-height:1.9;
  }
  .campaign-price{
    margin-top:24px;
  }
  .campaign-price .total{
    font-size:24px;
    margin:0 14px 8px 0;
  }
  .campaign-price .count{
    width:48px;
    height:30px;
    font-size:17px;
    margin:0 18px 7px 0;
  }
  .campaign-price strong{
    font-size:48px;
  }
  .campaign-price .yen{
    font-size:26px;
    margin:0 4px 4px 4px;
  }
  .campaign-price .from{
    font-size:19px;
    margin-bottom:6px;
  }
  .campaign-btn{
    min-height:68px;
    margin-top:26px;
    padding:0 42px 0 20px;
    font-size:15px;
    letter-spacing:.05em;
  }
  .campaign-btn::after{
    right:24px;
    width:12px;
    height:12px;
    border-top-width:3px;
    border-right-width:3px;
  }
}

/* ========= Worry section ========= */
.worry-section{
  position:relative;
  padding:82px 0 92px;
  background:#FDF7F2;
}
.worry-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
  text-align:center;
}
.worry-title{
  margin:0;
  font-family:var(--serif);
  font-size:33px;
  line-height:1.9;
  font-weight:500;
  letter-spacing:.14em;
  color:#7c6259;
}
.worry-title .pink{
  color:#ef6076;
  font-size:1.15em;
}
.worry-image{
  display:block;
  width:100%;
  max-width:1200px;
  height:auto;
  margin:28px auto 34px;
}
.worry-lead{
  margin:0;
  font-family:var(--serif);
  font-size:20px;
  line-height:2.15;
  font-weight:500;
  letter-spacing:.12em;
  color:#7c6259;
  text-align:center;
}
@media (max-width:768px){
  .worry-section{
    padding:56px 0 62px;
  }
  .worry-inner{
    width:calc(100vw - 32px);
  }
  .worry-title{
    font-size:22px;
    line-height:1.75;
    letter-spacing:.08em;
  }
  .worry-image{
    margin:24px auto 26px;
  }
  .worry-lead{
    font-size:15px;
    line-height:2;
    letter-spacing:.06em;
  }
}




/* ========= Contact CTA section ========= */
.contact-cta-section{
  position:relative;
  background:#FDF7F2;
  padding:12px 20px 110px;
}
.contact-cta-box{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
  background:#f9ebea;
  border:2px solid rgba(244, 148, 160, .95);
  border-radius:18px;
  padding:40px 35px;
  display:grid;
  grid-template-columns:minmax(0,37.4336%) minmax(0,31.8584%) minmax(0,25.7522%);
  column-gap:2.4779%;
  align-items:center;
}
.contact-cta-copy{
  color:#7c6259;
  min-width:0;
}
.contact-cta-copy p{
  margin:0;
  font-family:var(--serif);
  font-size:16px;
  line-height:1.9;
  letter-spacing:.10em;
  font-weight:500;
  white-space:normal;
}
.contact-cta-copy .accent{
  display:block;
  margin-top:10px;
  font-size:26px;
  color:#ef7c90;
  letter-spacing:.08em;
}
.contact-tel-link{
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  aspect-ratio:360 / 128;
  border-radius:16px;
  transition:transform .24s ease, filter .24s ease;
}
.contact-tel-link:hover{
  transform:translateY(-2px);
  filter:drop-shadow(0 12px 20px rgba(202,143,143,.20));
}
.contact-tel-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.contact-mail-btn{
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  height:auto;
  min-height:128px;
  aspect-ratio:291 / 128;
  border-radius:16px;
  color:#fff;
  text-decoration:none;
  padding:18px 42px 18px 52px;
  background:#F46276;
  background-image:linear-gradient(90deg,#F46276 0%,#F46276 35%,#EFA05C 62%,#F46276 100%);
  background-size:220% 100%;
  background-position:0% 0;
  box-shadow:0 9px 18px rgba(244,98,118,.18);
  transition:transform .24s ease,background-position .42s ease,box-shadow .24s ease;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}
.contact-mail-btn:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 12px 22px rgba(239,160,92,.30);
}
.contact-mail-btn img{
  position:absolute;
  left:22px;
  top:50%;
  width:20px;
  height:16px;
  transform:translateY(-50%);
}
.contact-mail-btn::after{
  content:"";
  position:absolute;
  right:20px;
  top:50%;
  width:14px;
  height:14px;
  border-top:3px solid currentColor;
  border-right:3px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
  border-radius:1px;
}
.contact-mail-btn .text{
  display:block;
  text-align:left;
  font-size:14px;
  line-height:1.75;
  font-weight:400;
  letter-spacing:.055em;
  white-space:normal;
}
@media (max-width:1180px){
  .contact-cta-section{padding:12px 16px 90px;}
  .contact-cta-box{
    width:min(1200px, calc(100vw - 32px));
    padding:32px 24px;
  }
  .contact-cta-copy p{
    font-size:clamp(14px, 1.35vw, 16px);
    line-height:1.8;
  }
  .contact-cta-copy .accent{
    font-size:clamp(22px, 2.15vw, 26px);
    margin-top:8px;
  }
  .contact-mail-btn{
    min-height:112px;
    padding:16px 36px 16px 44px;
  }
  .contact-mail-btn .text{
    font-size:clamp(13px, 1.2vw, 16px);
    line-height:1.65;
  }
  .contact-mail-btn::after{right:14px; width:12px; height:12px;}
  .contact-mail-btn img{left:16px;}
}
@media (max-width:980px){
  .contact-cta-box{
    grid-template-columns:1fr;
    gap:18px;
    padding:28px 22px;
  }
  .contact-cta-copy p{
    text-align:center;
  }
  .contact-cta-copy .accent{
    text-align:center;
  }
  .contact-tel-link,
  .contact-mail-btn{
    width:100%;
    max-width:420px;
    margin:0 auto;
  }
}
@media (max-width:768px){
  .contact-cta-section{padding:10px 0 64px;}
  .contact-cta-box{
    width:calc(100vw - 32px);
    grid-template-columns:1fr;
    gap:18px;
    padding:26px 18px;
  }
  .contact-cta-copy p{
    font-size:15px;
    line-height:1.75;
    text-align:center;
    white-space:normal;
  }
  .contact-cta-copy .accent{font-size:24px;}
  .contact-tel-link,
  .contact-mail-btn{
    width:100%;
    max-width:100%;
    margin:0 auto;
  }
  .contact-mail-btn{
    min-height:118px;
    padding:16px 42px 16px 54px;
  }
  .contact-mail-btn img{left:18px;width:20px;height:16px;}
  .contact-mail-btn .text{
    font-size:15px;
    line-height:1.65;
    white-space:normal;
  }
}


/* ========= Point section ========= */
.point-section{
  position:relative;
  background:#dcefff url("../images/section03_back.jpg") center top / cover no-repeat;
  padding:118px 20px 138px;
  overflow:hidden;
}
.point-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
  text-align:center;
}
.point-sub{
  margin:0 0 6px;
  font-family:var(--serif);
  font-size:21px;
  line-height:1.5;
  letter-spacing:.12em;
  font-weight:500;
  color:#7c6259;
  text-shadow:0 0 8px rgba(255,255,255,.96),0 0 18px rgba(255,255,255,.86);
}
.point-title{
  margin:0 0 58px;
  font-family:var(--serif);
  font-size:45px;
  line-height:1.35;
  letter-spacing:.11em;
  font-weight:500;
  color:#7c6259;
  text-shadow:0 0 8px rgba(255,255,255,1),0 0 22px rgba(255,255,255,.9);
}
.point-title .num,
.point-title .pink{
  color:#ef6076;
}
.point-title .num{
  font-size:1.45em;
  letter-spacing:.03em;
}
.point-cards{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:28px;
  max-width:1080px;
  margin:0 auto;
}
.point-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(245,209,212,.95);
  border-radius:8px;
  box-shadow:0 9px 20px rgba(205,118,124,.14);
  padding:36px 24px 34px;
  min-height:600px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.point-icon{
  width:84px;
  height:84px;
  object-fit:contain;
  margin:0 0 26px;
}
.point-card h3{
  margin:0 0 24px;
  font-family:var(--serif);
  font-size:23px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.075em;
  color:#ef6076;
  white-space:nowrap;
}
.point-photo{
  display:block;
  width:100%;
  max-width:256px;
  height:auto;
  margin:0 auto 28px;
}
.point-card p{
  margin:auto 0 0;
  font-family:var(--serif);
  font-size:15px;
  line-height:2;
  font-weight:500;
  letter-spacing:.08em;
  color:#7c6259;
}
@media (max-width:1100px){
  .point-cards{
    max-width:1020px;
    gap:22px;
  }
  .point-card{
    padding:34px 20px 32px;
  }
  .point-card h3{
    font-size:21px;
    letter-spacing:.055em;
  }
}
@media (max-width:900px){
  .point-card h3{white-space:normal;}
  .point-section{
    padding:86px 16px 96px;
  }
  .point-inner{
    width:min(680px, calc(100vw - 32px));
  }
  .point-title{
    font-size:36px;
    margin-bottom:36px;
  }
  .point-cards{
    grid-template-columns:1fr;
    max-width:430px;
    gap:24px;
  }
  .point-card{
    min-height:auto;
  }
}
@media (max-width:640px){
  .point-section{
    padding:70px 16px 80px;
  }
  .point-sub{
    font-size:16px;
  }
  .point-title{
    font-size:29px;
    letter-spacing:.08em;
  }
  .point-card{
    padding:30px 18px 28px;
  }
  .point-icon{
    width:72px;
    height:72px;
    margin-bottom:20px;
  }
  .point-card h3{
    font-size:20px;
    margin-bottom:20px;
  }
  .point-card p{
    font-size:14px;
  }
}


/* ========= Plan section ========= */
.plan-section{
  position:relative;
  background-color:#FDF7F2;
  background-image:url("../images/plan_bg.jpg");
  background-position:center top;
  background-size:100% auto;
  background-repeat:no-repeat;
  padding:96px 20px 118px;
  overflow:hidden;
}
.plan-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
  text-align:center;
}
.plan-title{
  margin:0 0 18px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:36px;
  line-height:1.45;
  font-weight:500;
  letter-spacing:.12em;
}
.plan-sub{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  margin:0 auto 30px;
  font-family:var(--serif);
  color:#ef6076;
  font-size:17px;
  line-height:1.7;
  letter-spacing:.10em;
  font-weight:500;
}
.plan-sub::before,
.plan-sub::after{
  content:"";
  width:94px;
  height:1px;
  background:#ef6076;
  opacity:.75;
}
.plan-lead{
  margin:0 auto 54px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:18px;
  line-height:2;
  font-weight:500;
  letter-spacing:.10em;
}
.plan-cards{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:70px;
  width:min(980px, 100%);
  margin:0 auto;
  align-items:start;
}
.plan-card{
  position:relative;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(245,209,212,.95);
  border-radius:8px;
  box-shadow:0 10px 22px rgba(205,118,124,.14);
  padding:118px 28px 34px;
  min-height:910px;
  text-align:center;
}
.plan-ribbon{
  position:absolute;
  left:50%;
  top:-6px;
  transform:translateX(-50%);
  width:210px;
  height:96px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-family:var(--serif);
  font-size:19px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.12em;
  clip-path:polygon(0 0,100% 0,100% 86%,50% 100%,0 86%);
}
.plan-ribbon.blue{background:#566fb7;}
.plan-ribbon.green{background:#52a35a;}
.plan-card-title{
  margin:0 0 12px;
  font-family:var(--serif);
  font-size:29px;
  line-height:1.35;
  font-weight:500;
  letter-spacing:.10em;
}
.plan-card.is-blue .plan-card-title{color:#566fb7;}
.plan-card.is-green .plan-card-title{color:#4fa059;}
.plan-desc{
  margin:0 0 24px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:15px;
  line-height:1.85;
  font-weight:500;
  letter-spacing:.08em;
}
.plan-main-photo{
  display:block;
  width:100%;
  border-radius:8px;
  object-fit:cover;
  box-shadow:0 0 0 1px rgba(231,214,210,.75);
}
.plan-thumbs{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:8px;
  margin:10px 0 18px;
}
.plan-thumbs img{
  width:100%;
  border-radius:6px;
  object-fit:cover;
  display:block;
  aspect-ratio:1 / 1;
}
.plan-chips{
  display:grid;
  gap:12px;
  margin:18px 0 14px;
}
.plan-chips.three{
  grid-template-columns:repeat(3, minmax(0,1fr));
}
.plan-chips.six{
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:11px 12px;
}
.plan-chip{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:37px;
  padding:0 8px;
  border-radius:999px;
  font-family:var(--serif);
  font-size:16px;
  line-height:1.1;
  letter-spacing:.06em;
  white-space:nowrap;
}
.is-blue .plan-chip{background:#edf2ff;color:#566fb7;}
.is-green .plan-chip{background:#e9f6ea;color:#4fa059;}
.plan-price-box{
  border:none;
  border-radius:0;
  padding:17px 18px 18px;
  margin:12px 0 18px;
}
.plan-price{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  flex-wrap:wrap;
  white-space:nowrap;
}
.plan-price .prefix{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin:0 10px 8px 0;
  font-family:var(--serif);
  font-weight:600;
  letter-spacing:.04em;
  line-height:1.1;
}
.plan-price .prefix small{
  font-size:13px;
}
.plan-price .prefix strong{
  font-size:31px;
  font-weight:600;
}
.plan-price .badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:#fff;
  font-family:var(--serif);
  font-size:17px;
  line-height:1;
  height:42px;
  min-width:42px;
  padding:0 8px;
  margin:0 8px 6px 0;
}
.is-blue .plan-price .badge{background:#566fb7;}
.is-green .plan-price .badge{background:#4fa059;}
.plan-price .amount{
  font-family:var(--serif);
  font-size:52px;
  line-height:.88;
  font-weight:500;
  letter-spacing:.02em;
}
.plan-price .yen{
  font-family:var(--serif);
  font-size:25px;
  line-height:1;
  font-weight:500;
  margin:0 0 5px 4px;
}
.plan-price .from{
  font-family:var(--serif);
  font-size:20px;
  margin:0 0 6px 5px;
}
.is-blue .plan-price{color:#566fb7;}
.is-green .plan-price{color:#4fa059;}
.plan-note{
  margin:14px 0 0;
  text-align:left;
  color:#7c6259;
  font-size:12px;
  line-height:1.8;
  letter-spacing:.04em;
}
.plan-lower{
  display:grid;
  grid-template-columns:42% 1fr;
  gap:12px;
  margin:16px 0 12px;
}
.plan-fee-table{
  border:1px solid rgba(188,181,176,.75);
  border-radius:6px;
  padding:13px 11px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:13px;
  line-height:1.75;
  text-align:left;
}
.plan-fee-table h4{
  margin:0 0 8px;
  text-align:center;
  font-size:14px;
  line-height:1.4;
  font-weight:500;
  border-bottom:1px solid rgba(188,181,176,.55);
  padding-bottom:7px;
}
.plan-map{
  width:100%;
  height:100%;
  min-height:124px;
  object-fit:cover;
  border-radius:6px;
}
@media (max-width:1100px){
  .plan-cards{
    gap:36px;
    width:100%;
  }
  .plan-card{
    padding:110px 22px 30px;
  }
  .plan-title{
    font-size:34px;
  }
  .plan-card-title{
    font-size:27px;
  }
  .plan-price .amount{
    font-size:46px;
  }
  .plan-chip{
    font-size:14px;
  }
}
@media (max-width:900px){
  .plan-section{
    padding:76px 16px 88px;
  }
  .plan-inner{
    width:min(620px, calc(100vw - 32px));
  }
  .plan-sub{
    gap:14px;
    font-size:15px;
  }
  .plan-sub::before,
  .plan-sub::after{
    width:42px;
  }
  .plan-lead{
    font-size:15px;
    margin-bottom:38px;
  }
  .plan-cards{
    grid-template-columns:1fr;
    gap:36px;
    max-width:520px;
  }
  .plan-card{
    min-height:auto;
  }
}
@media (max-width:640px){
  .plan-title{
    font-size:27px;
  }
  .plan-sub{
    display:block;
    line-height:1.8;
  }
  .plan-sub::before,
  .plan-sub::after{
    display:none;
  }
  .plan-card{
    padding:96px 16px 26px;
  }
  .plan-ribbon{
    width:180px;
    height:84px;
    font-size:17px;
  }
  .plan-card-title{
    font-size:24px;
  }
  .plan-desc{
    font-size:14px;
  }
  .plan-price-box{
    padding:14px 10px;
  }
  .plan-price .amount{
    font-size:40px;
  }
  .plan-price .prefix strong{
    font-size:25px;
  }
  .plan-chips.six,
  .plan-chips.three{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .plan-lower{
    grid-template-columns:1fr;
  }
}


/* ========= Access & Pet type section ========= */
.access-section{
  position:relative;
  background-color:#fff6f5;
  background-image:url("../images/access_bg.jpg");
  background-position:center top;
  background-size:100% auto;
  background-repeat:no-repeat;
  padding:96px 20px 118px;
  overflow:hidden;
}
.access-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
}
.access-title{
  margin:0 0 58px;
  text-align:center;
  font-family:var(--serif);
  color:#7c6259;
  font-size:26px;
  line-height:1.6;
  font-weight:500;
  letter-spacing:.14em;
}
.access-layout{
  display:grid;
  grid-template-columns:36.0833% 61.3333%;
  gap:2.5834%;
  align-items:stretch;
  max-width:1200px;
  width:100%;
  margin:0 auto 86px;
}
.access-info{
  display:grid;
  gap:18px;
  width:100%;
  height:100%;
}
.access-box{
  width:100%;
  background:rgba(255,255,255,.95);
  border:1px solid #82a96d;
  border-radius:8px;
  padding:28px 28px 26px;
  box-shadow:0 8px 18px rgba(205,118,124,.10);
  box-sizing:border-box;
}
.access-box.carnavi{
  border-color:#ef7b86;
}
.access-box h3{
  margin:0 0 24px;
  text-align:center;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.4;
  font-weight:500;
  letter-spacing:.10em;
}
.access-box.transport h3{color:#4f9b49;}
.access-box.carnavi h3{color:#ef6076;}
.access-list{
  list-style:none;
  padding:0;
  margin:0;
}
.access-list li{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:16px;
  align-items:center;
  padding:16px 0;
  border-top:1px solid rgba(124,98,89,.16);
  font-size:15px;
  line-height:1.8;
  color:#7c6259;
  letter-spacing:.06em;
}
.access-list li:first-child{
  border-top:0;
  padding-top:0;
}
.access-icon{
  width:36px;
  height:36px;
  border-radius:50%;
  background:#96b779;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:21px;
  font-weight:700;
}
.access-icon-img{
  width:40px;
  height:40px;
  object-fit:contain;
  display:block;
}
.carnavi-row{
  display:grid;
  grid-template-columns:46px 1fr;
  gap:16px;
  align-items:start;
  color:#7c6259;
  font-size:15px;
  line-height:1.9;
  letter-spacing:.06em;
}
.carnavi-row .access-icon{
  background:#ef8b96;
}
.carnavi-row .red{
  color:#ef6076;
}
.map-wrap{
  width:100%;
  height:100%;
  background:#fff;
  border:1px solid rgba(124,98,89,.20);
  box-shadow:0 8px 18px rgba(205,118,124,.10);
  overflow:hidden;
  box-sizing:border-box;
}
.map-wrap iframe{
  display:block;
  width:100%;
  height:100%;
  min-height:0;
  border:0;
}
.pet-types-card{
  max-width:960px;
  margin:0 auto;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(245,209,212,.95);
  border-radius:8px;
  box-shadow:0 10px 22px rgba(205,118,124,.14);
  padding:46px 60px 40px;
  text-align:center;
}
.pet-types-title{
  margin:0 0 32px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:26px;
  line-height:1.5;
  font-weight:500;
  letter-spacing:.12em;
}
.pet-type-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:12px;
  margin-bottom:28px;
}
.pet-type{
  border:1px solid currentColor;
  border-radius:7px;
  padding:18px 12px 19px;
  min-height:178px;
}
.pet-type img{
  width:94px;
  height:94px;
  object-fit:contain;
  margin:0 auto 13px;
  display:block;
}
.pet-type h3{
  margin:0 0 13px;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.2;
  font-weight:500;
  letter-spacing:.08em;
}
.pet-type p{
  margin:0;
  font-size:12px;
  line-height:1.7;
  color:#7c6259;
  letter-spacing:.06em;
}
.pet-type.dog{color:#ef9aa5;}
.pet-type.small{color:#86b879;}
.pet-type.bird{color:#77acd8;}
.pet-type.reptile{color:#d8a967;}
.pet-type.fish{color:#67bfc0;}
.pet-types-note{
  margin:0 auto;
  max-width:800px;
  text-align:left;
  color:#7c6259;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.06em;
}
@media (max-width:1000px){
  .access-layout{
    grid-template-columns:1fr;
    max-width:720px;
    gap:24px;
    align-items:start;
  }
  .map-wrap{
    height:auto;
  }
  .map-wrap iframe{
    height:360px;
    min-height:360px;
  }
  .pet-type-grid{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }
}
@media (max-width:768px){
  .access-section{
    padding:72px 16px 82px;
  }
  .access-inner{
    width:calc(100vw - 32px);
  }
  .access-title{
    font-size:21px;
    margin-bottom:36px;
  }
  .access-box{
    padding:24px 20px 22px;
  }
  .map-wrap iframe{
    height:300px;
  }
  .pet-types-card{
    padding:34px 18px 30px;
  }
  .pet-types-title{
    font-size:22px;
  }
  .pet-type-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}
@media (max-width:480px){
  .pet-type-grid{
    grid-template-columns:1fr;
  }
}


/* ========= Contact form section ========= */
.form-section{
  position:relative;
  background:#FDF7F2;
  padding:92px 20px 112px;
}
.form-inner{
  width:min(1000px, calc(100vw - 80px));
  margin:0 auto;
}
.form-title{
  margin:0 0 18px;
  text-align:center;
  font-family:var(--serif);
  color:#7c6259;
  font-size:31px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.12em;
}
.form-lead{
  margin:0 0 44px;
  text-align:center;
  color:#7c6259;
  font-size:15px;
  line-height:1.8;
  letter-spacing:.06em;
}
.contact-form-table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  border:1px solid #c7c7c7;
  background:#f3f3f3;
}
.contact-form-table th,
.contact-form-table td{
  border-bottom:1px solid #fff;
  vertical-align:middle;
}
.contact-form-table tr:last-child th,
.contact-form-table tr:last-child td{
  border-bottom:0;
}
.contact-form-table th{
  width:250px;
  background:#dedede;
  color:#4d4d4d;
  font-size:17px;
  line-height:1.7;
  font-weight:600;
  letter-spacing:.04em;
  text-align:left;
  padding:28px 34px;
}
.contact-form-table td{
  background:#f2f2f2;
  padding:18px 24px;
  color:#333;
  font-size:16px;
  line-height:1.8;
}
.label-flex{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.required,
.optional-note{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:45px;
  height:27px;
  padding:0 9px;
  border-radius:3px;
  background:#cf4046;
  color:#fff;
  font-size:14px;
  line-height:1;
  font-weight:600;
  letter-spacing:.02em;
  white-space:nowrap;
}
.optional-note{
  min-width:98px;
}
.form-row-2{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 32px minmax(0,1fr);
  gap:12px 18px;
  align-items:center;
}
.form-address{
  display:grid;
  grid-template-columns:110px minmax(0,1fr);
  gap:14px 20px;
  align-items:center;
  max-width:620px;
}
.form-checks,
.form-visits{
  display:grid;
  gap:12px;
}
.form-visits{
  max-width:440px;
}
.visit-label{
  display:block;
  margin:0 0 9px;
  color:#333;
  font-weight:600;
}
.input-text,
.input-select,
.input-date,
.input-time,
.form-textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #d7d7d7;
  background:#fff;
  color:#333;
  border-radius:0;
  font-size:16px;
  line-height:1.6;
  padding:10px 12px;
  min-height:44px;
}
.input-text.short{
  max-width:220px;
}
.input-select{
  max-width:120px;
  min-height:34px;
  padding:5px 8px;
  font-size:14px;
}
.input-date{
  width:220px;
}
.input-time{
  width:142px;
}
.form-textarea{
  display:block;
  min-height:278px;
  resize:vertical;
}
.form-checks label,
.form-visits label{
  display:flex;
  align-items:center;
  gap:10px;
  color:#333;
  font-size:16px;
  line-height:1.7;
}
.form-checks input,
.form-visits input{
  width:16px;
  height:16px;
  accent-color:#cf4046;
}
.form-privacy{
  margin:34px 0 22px;
  text-align:center;
  color:#333;
  font-size:16px;
  line-height:1.8;
  letter-spacing:.06em;
}
.form-submit{
  display:flex;
  justify-content:center;
}
.form-submit button{
  width:360px;
  height:64px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  color:#fff;
  font-size:17px;
  font-weight:600;
  letter-spacing:.06em;
  background:#cf4046;
  background-image:linear-gradient(90deg,#cf4046 0%,#cf4046 35%,#EFA05C 62%,#cf4046 100%);
  background-size:220% 100%;
  background-position:0 0;
  box-shadow:0 9px 18px rgba(207,64,70,.18);
  transition:transform .24s ease,background-position .42s ease,box-shadow .24s ease;
}
.form-submit button:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 12px 22px rgba(239,160,92,.30);
}
@media (max-width:900px){
  .form-section{
    padding:72px 16px 86px;
  }
  .form-inner{
    width:min(680px, calc(100vw - 32px));
  }
  .form-title{
    font-size:25px;
  }
  .contact-form-table,
  .contact-form-table tbody,
  .contact-form-table tr,
  .contact-form-table th,
  .contact-form-table td{
    display:block;
    width:100%;
    box-sizing:border-box;
  }
  .contact-form-table th{
    padding:18px 20px;
  }
  .contact-form-table td{
    padding:18px 20px 24px;
  }
  .form-row-2{
    grid-template-columns:34px minmax(0,1fr);
  }
  .form-address{
    grid-template-columns:1fr;
    gap:8px;
  }
  .input-date,
  .input-time,
  .input-select{
    width:100%;
    max-width:none;
  }
}
@media (max-width:520px){
  .form-title{
    font-size:22px;
  }
  .form-submit button{
    width:100%;
  }
}


/* ========= EntryForm ========= */

.entryform {
position: relative;
    background: #FDF7F2;
    padding: 92px 20px 112px;
}
.entryform .title {
margin: 0 0 18px;
    text-align: center;
    font-family: var(--serif);
    color: #7c6259;
    font-size: 31px;
    line-height: 1.55;
    font-weight: 500;
    letter-spacing: .12em;
}
.main-entryform-001 p.text-001 {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(15px, 1.8vw, 18px);
  letter-spacing: 0.04em;
  text-align: center;
  margin: 60px 0;
}
.entryform table {
  font-family: 'Noto Sans JP', sans-serif;
}
.entryform p {
  font-size: clamp(15px, 1.8vw, 18px);
  letter-spacing: 0.04em;
  text-align: center;
  margin-top: 44px;
}
.entryform label.error {
  position: absolute;
  margin: -52px 0px 0px 0px;
  display: block;
  background-color: #ee0000;
  color: #ffffff;
  font-size: 10px;
  padding: 2px 15px;
  border-radius: 5px;
  -moz-opacity: 0.60;
  -khtml-opacity: 0.60;
  opacity: 0.60;
  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha"(Opacity=60);
  filter: progid:DXImageTransform.Microsoft.Alpha(opacity=60);
  filter:alpha(opacity=60);
}
.entryform label.error:before {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 18px;
  border: 5px solid transparent;
  border-top: 5px solid #ee0000;
}
.entryform input.error {
  border: solid 1px #ff7777;
}
.entryform dl {
  margin: 0px;
  padding: 0px;
}
.entryform dl dt {
  float: left;
}
.entryform dl dt:nth-of-type(2) {
clear:both;
}
.entryform dl dd {
  padding: 0px;
  margin: 0px 0px 0px 8px;
  margin: 0px 0px 0px 0.5em;
  float: left;
}
.entryform dl:after {
clear: both;
content: "";
display: block;
}
.entryform textarea {
  width: 100%;
  max-width: 480px;
}
.entryform table {
  max-width: 1000px;
  margin: 0px auto;
  padding: 0px;
  border: solid 1px #aaaaaa;
  border-collapse: collapse;
}
.entryform table td:nth-of-type(odd) {
  width: 256px;
  padding: 16px 16px;
  border-right: solid 1px #ffffff;
  border-bottom: solid 1px #ffffff;
  background-color: #E3E3E3;
  vertical-align: middle;
  font-size: 18px;
  letter-spacing: 0.03em;
  line-height: 1.6;
}
.entryform table td:nth-of-type(even) {
  padding: 16px 16px;
  background-color: #F5F5F5;
  border-bottom: solid 1px #ffffff;
  line-height: 2.4;
}
.entryform table td.bold {
  font-weight: 700;
}
.entryform table td.bold label {
  font-weight: 500;
}
.entryform table tr:last-of-type td {
  border-bottom: solid 1px #aaaaaa;
}
.entryform span {
  padding: 5px 9px;
  font-size: 16px;
  color: #ffffff;
  background-color: #D04343;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  vertical-align: middle;
}
.entryform input,
.entryform select {
  padding: 5px 8px;
  margin: 0 0.5em;
  font-size: 16px;
  border: solid 1px #dddddd;
}
.entryform textarea {
  padding: 5px 8px;
  font-size: 16px;
}
.entryform .submit {
  max-width: 384px;
  margin: 46px auto 0;
}
.entryform .submit input {
  font-size: clamp(15px, 1.8vw, 18px);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  color: #ffffff;
  background-color: #C70E2E;
  border-radius: 44px;
  width: 100%;
  max-width: 360px;
  margin: auto;
  padding: 21px 0;
  text-align: center;
}
.entryform .submit input:hover {
  cursor: pointer;
  background-color: #cc3333;
}

/* -768px
------------------------------ */
@media screen and (max-width:768px) {

.entryform table {
  width: 100%;
  }
.entryform span {
  color: #fff;
  font-size: 15px;
  font-weight: normal;
  padding: 3px 5px;
  line-height: 1.5;
  }  
  .entryform label {
  display: block;
  }
  .entryform td.bold label:last-of-type input {
    max-width: 152px;
  }
  .entryform table td:nth-of-type(odd) {
    display: block;
    width: 100%;
    text-indent: 8px;
    font-size: 16px;
    font-weight: bold;
    border-radius: 6px 6px 0px 0px;
  }
  .entryform table td:nth-of-type(even) {
    display: block;
    max-width: 100%;
    padding: 20px 8px;
    font-size: 16px;
    text-align: center;
    border-radius: 0px 0px 6px 6px;
    line-height: 1.8;
  }

}

/* ========= Footer ========= */
.site-footer{
  background:#9f6871;
  color:#fff;
  padding:90px 20px 0;
  font-family:var(--sans);
}
.footer-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
}
.footer-main{
  display:grid;
  grid-template-columns:1.25fr .7fr .8fr;
  gap:90px;
  align-items:start;
  min-height:330px;

  margin-bottom:170px;
}
.footer-brand{
  color:#fff;
}
.footer-kicker{
  margin:0 0 8px;
  font-size:22px;
  line-height:1.55;
  font-weight:600;
  letter-spacing:.08em;
}
.footer-name{
  margin:0 0 20px;
  font-family:var(--serif);
  font-size:32px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.14em;
}
.footer-tel{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-size:34px;
  line-height:1;
  font-weight:700;
  letter-spacing:.04em;
  margin-bottom:14px;
}
.footer-tel::before{
  content:"";
  width:22px;
  height:22px;
  background:#fff;
  -webkit-mask:url("../images/footer_tel_icon.png") center / contain no-repeat;
  mask:url("../images/footer_tel_icon.png") center / contain no-repeat;
}
.footer-time{
  margin:0 0 10px;
  font-size:18px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.08em;
}
.footer-address{
  margin:0;
  font-size:18px;
  line-height:1.75;
  font-weight:400;
  letter-spacing:.08em;
}
.footer-nav{
  display:grid;
  gap:28px;
  margin-top:6px;
}
.footer-nav a{
  color:#fff;
  text-decoration:none;
  font-size:14px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.08em;
  transition:opacity .2s ease;
}
.footer-nav a:hover{
  opacity:.72;
}
.footer-notice{
  margin:0px auto 10px;
  text-align:center;
  font-size:12px;
  line-height:1.8;
  font-weight:300;
  letter-spacing:.08em;
  color:rgba(255,255,255,.95);
}
.footer-copy{
  margin:0;
  border-top:1px solid rgba(255, 255, 255, .22);
  text-align:center;
  padding:5px 20px 58px;
  font-size:12px;
  line-height:1.8;
  font-weight:400;
  letter-spacing:.10em;
  color:rgba(255,255,255,.96);
}
@media (max-width:900px){
  .site-footer{
    padding:90px 20px 0;
  }
  .footer-inner{
    width:min(680px, calc(100vw - 40px));
  }
  .footer-main{
    grid-template-columns:1fr;
    gap:36px;
    min-height:auto;
  }
  .footer-name{
    margin-bottom:28px;
    font-size:28px;
  }
  .footer-nav{
    gap:18px;
  }
  .footer-notice{
    margin-top:54px;
    text-align:left;
  }
}
@media (max-width:520px){
  .footer-kicker{
    font-size:18px;
  }
  .footer-name{
    font-size:24px;
  }
  .footer-tel{
    font-size:28px;
  }
  .footer-time,
  .footer-address,
  .footer-nav a{
    font-size:14px;
  }
  .footer-copy{
  margin:0;
  border-top:1px solid rgba(255, 255, 255, .22);
  text-align:center;
  padding:5px 20px 58px;
  font-size:12px;
  line-height:1.8;
  font-weight:400;
  letter-spacing:.10em;
  color:rgba(255,255,255,.96);
}
}

/* ========= Mobile FV / bottom fixed CTA ========= */
.sp-fixed-contact{display:none}
@media (max-width:768px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom, 0px));}
  .hero-slider{left:0;right:0;width:100%;height:100%}
  .hero-image-softedge,.hero-deco{display:none}
  .preview-shell{height:auto;overflow:visible;background:var(--base)}
  .fv-artboard{position:relative;left:0;transform:none;width:100%;height:auto}
  .fv{
    width:100%;
    height:min(calc(100vw * 1665 / 768), 980px);
    min-height:790px;
    background:var(--base);
  }
  .hero-slide{
    left:0;top:0;width:100%;height:100%;min-height:0;
    transform:scale(1.015);object-fit:cover;object-position:center top;
  }
  .hero-slide.is-active{transform:scale(1)}
  .fv::before,.fv::after{display:none}
  .site-header{left:14px;top:12px;width:calc(100% - 28px);height:72px;border-radius:999px}
  .logo-link{left:16px;top:7px;width:154px;height:58px;justify-content:flex-start}
  .site-logo{width:154px;height:auto}
  .header-copy,.header-tel,.header-btn{display:none}
  .d-menu{left:auto;right:10px;top:8px;width:56px;height:56px;gap:6px}
  .d-menu span{width:24px;height:2px}
  .fv-copy{width:100%;height:100%}
  .hero-kicker{left:24px;top:45.8%;font-size:clamp(16px,4.8vw,18px);line-height:1.5;letter-spacing:.11em}
  .hero-title{left:24px;top:50.2%;width:calc(100% - 48px);font-size:clamp(30px,11.6vw,46px);line-height:1.2;white-space:normal;letter-spacing:.04em}
  .hero-title-main{font-size:.8em;line-height:1.15}
  .hero-title-sub{font-size:1em;line-height:1.02}
  .hero-title .brown{font-size:.82em;letter-spacing:.04em}
  .hero-lead{left:24px;top:64.4%;width:calc(100% - 48px);font-size:14px;line-height:2.0;white-space:normal;letter-spacing:.07em}
  .price-card{left:16px;top:79.4%;width:calc(100% - 32px);height:182px;border-radius:14px}
  .price-location{left:0;right:0;top:18px;padding:0 16px;text-align:center;font-size:12px;line-height:1.45;white-space:normal}
  .price-label{left:0;right:0;top:56px;text-align:center;font-size:16px;line-height:1.35;white-space:normal}
  .price-main{left:0;right:0;top:104px;display:flex;justify-content:center;gap:4px}
  .price-main strong{font-size:56px}
  .price-main .yen{font-size:21px;margin-bottom:6px}
  .price-main .from{font-size:18px;margin-bottom:8px}
  .rainbow-copy{display:block;left:16px;right:auto;top:27.8%;font-size:clamp(18px,5.3vw,22px);line-height:1.55;letter-spacing:.07em;text-align:left;white-space:normal;max-width:48%}
  .site-menu__panel{right:16px;top:16px;padding:24px 22px 26px;border-radius:26px}
  .site-menu__logo{width:150px}
  .site-menu__title{font-size:16px}
  .site-menu__nav a{min-height:48px;font-size:14px}
  .site-menu__tel strong{font-size:26px}
  .sp-fixed-contact{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:99990;
    min-height:76px;padding-bottom:env(safe-area-inset-bottom, 0px);
    box-shadow:0 -6px 18px rgba(129,100,91,.14);
    background:#fff;
  }
  .sp-fixed-contact__tel{
    flex:0 0 70%;min-width:0;background:#fff;color:#7c6259;
    padding:8px 12px;display:flex;align-items:center;justify-content:center;overflow:hidden;
  }
  .sp-fixed-contact__tel img{
    display:block;max-width:100%;width:100%;height:auto;max-height:58px;object-fit:contain;object-position:center center;
  }
  .sp-fixed-contact__mail{
    flex:0 0 30%;display:flex;align-items:center;justify-content:center;gap:7px;
    background:#e65f76;color:#fff;padding:0 8px;text-align:center;
    font-size:12px;line-height:1.45;font-weight:400;letter-spacing:.03em;
    background-image:linear-gradient(90deg,#F46276 0%,#F46276 35%,#EFA05C 62%,#F46276 100%);
    background-size:220% 100%;background-position:0% 0;
    transition:background-position .42s ease;
  }
  .sp-fixed-contact__mail:hover{background-position:100% 0}
  .sp-fixed-contact__mail img{width:16px;height:12px;filter:brightness(0) invert(1);flex:0 0 auto}
  .sp-fixed-contact__mail-text{display:block}
}
@media (max-width:390px){
  .hero-kicker{top:44.8%;font-size:15px}
  .hero-title{top:49.3%;font-size:clamp(28px,10.5vw,42px)}
  .hero-title-main{font-size:.8em}
  .hero-lead{top:63.4%;font-size:13px}
  .price-card{top:78.8%;height:174px}
  .price-main strong{font-size:50px}
  .price-main .from{font-size:17px}
  .rainbow-copy{left:16px;right:auto;top:26.8%;font-size:18px;max-width:48%;text-align:left}
  .sp-fixed-contact__tel{padding:8px 10px}
  .sp-fixed-contact__tel img{max-height:54px}
  .sp-fixed-contact__mail{font-size:11px;padding:0 7px;gap:6px}
}

/* menu content simplified: logo + links only */
.site-menu__head{margin-bottom:22px}
.site-menu__nav{gap:10px}
@media (max-width:768px){.site-menu__head{margin-bottom:18px}}

@media (max-width:768px){
  .campaign-section{padding:54px 18px 68px;}
  .campaign-card{width:100%;min-height:auto;padding:34px 22px 34px;border-radius:12px;}
  .campaign-sakura{top:22px;width:82px;opacity:.86;}
  .campaign-sakura.left{left:14px;}
  .campaign-sakura.right{right:14px;}
  .campaign-title{position:relative;left:auto;top:auto;width:auto;font-size:22px;line-height:1.55;white-space:normal;margin:0 auto 24px;}
  .campaign-photo{position:relative;left:auto;top:auto;width:100%;max-width:480px;margin:0 auto 22px;}
  .campaign-body{position:relative;left:auto;top:auto;width:auto;}
  .campaign-text{font-size:14px;line-height:1.95;font-weight:600;}
  .campaign-price{margin-top:22px;align-items:flex-end;justify-content:center;flex-wrap:wrap;}
  .campaign-price .total{font-size:22px;margin:0 10px 10px 0;}
  .campaign-price .count{width:44px;height:28px;font-size:15px;margin:0 12px 9px 0;}
  .campaign-price strong{font-size:56px;}
  .campaign-price .yen{font-size:24px;margin-bottom:6px;}
  .campaign-price .from{font-size:18px;margin-bottom:8px;}
  .campaign-btn{width:100%;height:64px;margin-top:26px;font-size:15px;}
  .campaign-btn::after{right:24px;width:12px;height:12px;border-width:3px;}
}

/* ========= Privacy policy page ========= */
body.privacy-page{
  background:#FDF7F2;
}
.privacy-header-area{
  position:relative;
  height:170px;
  background:#FDF7F2;
  overflow:visible;
  z-index:10;
}
.privacy-header-artboard{
  position:absolute;
  left:50%;
  top:0;
  width:1920px;
  height:170px;
  transform:translateX(-50%) scale(var(--scale, 1));
  transform-origin:top center;
}
.privacy-main{
  background:#FDF7F2;
  padding:42px 20px 104px;
}
.privacy-inner{
  width:min(1000px, calc(100vw - 80px));
  margin:0 auto;
}
.privacy-page-title{
  margin:0 0 18px;
  text-align:center;
  font-family:var(--serif);
  color:#7c6259;
  font-size:31px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.12em;
}
.privacy-page-lead{
  margin:0 auto 42px;
  text-align:center;
  color:#7c6259;
  font-size:15px;
  line-height:1.9;
  letter-spacing:.06em;
}
.privacy-card{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(245,209,212,.95);
  border-radius:10px;
  box-shadow:0 9px 22px rgba(205,118,124,.12);
  padding:58px 72px 62px;
}
.privacy-block{
  padding:0 0 34px;
  margin:0 0 34px;
  border-bottom:1px solid rgba(124,98,89,.12);
}
.privacy-block:last-child{
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:0;
}
.privacy-block h2{
  margin:0 0 18px;
  font-family:var(--serif);
  color:#7c6259;
  font-size:22px;
  line-height:1.6;
  font-weight:500;
  letter-spacing:.08em;
}
.privacy-block p,
.privacy-block li{
  color:#5f4c45;
  font-size:16px;
  line-height:2;
  letter-spacing:.045em;
  font-weight:400;
}
.privacy-block p{
  margin:0 0 10px;
}
.privacy-block ul{
  margin:14px 0 0;
  padding-left:1.35em;
}
.privacy-block li{
  margin:0 0 6px;
}
.privacy-date{
  margin-top:28px!important;
  text-align:right;
}
body.privacy-page .contact-cta-section{
  background:#FDF7F2;
}
body.privacy-page .site-footer{
  margin-top:0;
}

.privacy-tel-link{
  color:#5f4c45;
  text-decoration:underline;
  text-underline-offset:3px;
}
.privacy-tel-link:hover{
  opacity:.72;
}

@media (max-width:900px){
  .privacy-header-area{
    height:100px;
  }
  .privacy-main{
    padding:34px 16px 72px;
  }
  .privacy-inner{
    width:min(680px, calc(100vw - 32px));
  }
  .privacy-card{
    padding:38px 24px 42px;
  }
  .privacy-page-title{
    font-size:25px;
  }
  .privacy-block h2{
    font-size:20px;
  }
  .privacy-block p,
  .privacy-block li{
    font-size:15px;
    line-height:1.9;
  }
}
@media (max-width:520px){
  .privacy-page-title{
    font-size:22px;
  }
  .privacy-card{
    padding:30px 18px 34px;
  }
}

html{scroll-behavior:auto!important;}

/* ========= Fixed header / footer refinements ========= */
.fv > .site-header,
.privacy-header-artboard > .site-header{
  visibility:hidden;
  pointer-events:none;
}
.global-fixed-header.site-header{
  position:fixed!important;
  left:50%!important;
  top:32px!important;
  width:1720px!important;
  height:110px!important;
  transform:translateX(-50%) scale(var(--scale,1))!important;
  transform-origin:top center!important;
  z-index:99998!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
section[id],
footer[id],
main[id]{
  scroll-margin-top:150px;
}
.footer-inner{
  width:min(1200px, calc(100vw - 80px));
  margin:0 auto;
}
.footer-main{
  display:grid;
  grid-template-columns:minmax(0, 520px) minmax(140px, 1fr) minmax(190px, 1fr);
  gap:clamp(46px, 6vw, 94px);
  align-items:start;
  min-height:315px;
}
.footer-kicker{
  margin:0 0 8px;
  font-size:18px;
  line-height:1.55;
  font-weight:500;
  letter-spacing:.08em;
}
.footer-name{
  margin:0 0 20px;
  font-family:var(--serif);
  font-size:27px;
  line-height:1.62;
  font-weight:500;
  letter-spacing:.13em;
}
.footer-tel{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#fff;
  text-decoration:none;
  font-size:34px;
  line-height:1;
  font-weight:700;
  letter-spacing:.04em;
  margin-bottom:14px;
  font-variant-numeric:lining-nums;
}
.footer-tel::before{
  content:"";
  flex:0 0 25px;
  width:25px;
  height:25px;
  background:#fff;
  -webkit-mask:url("../images/footer_tel_icon.png") center / contain no-repeat;
  mask:url("../images/footer_tel_icon.png") center / contain no-repeat;
  transform:translateY(1px);
}
.footer-time{
  margin:0 0 10px;
  font-size:15px;
  line-height:1.6;
  font-weight:400;
  letter-spacing:.08em;
}
.footer-address{
  margin:0;
  font-size:16px;
  line-height:1.8;
  font-weight:400;
  letter-spacing:.08em;
}
.footer-nav{
  display:grid;
  gap:22px;
  margin-top:6px;
}
.footer-nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  color:#fff;
  text-decoration:none;
  font-family:"Noto Sans JP","Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",sans-serif;
  font-size:14px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.08em;
  transition:opacity .2s ease;
}
.footer-nav a::before{
  content:"＞";
  display:inline-block;
  margin-right:8px;
  font-size:10px;
  line-height:1;
  transform:translateY(-1px);
}
.footer-nav a:hover{
  opacity:.72;
}
@media (max-width:900px){
  .global-fixed-header.site-header{
    left:14px!important;
    top:14px!important;
    width:calc(100% - 28px)!important;
    height:72px!important;
    transform:none!important;
  }
  section[id],
  footer[id],
  main[id]{
    scroll-margin-top:96px;
  }
  .footer-inner{
    width:min(680px, calc(100vw - 40px));
  }
  .footer-main{
    grid-template-columns:1fr;
    gap:34px;
    min-height:auto;
  }
}
@media (max-width:520px){
  .footer-kicker{font-size:16px;}
  .footer-name{font-size:23px;}
  .footer-tel{font-size:28px;}
  .footer-time,
  .footer-address,
  .footer-nav a{font-size:14px;}
}


/* footer final text adjustment */
.footer-nav a{
  font-size:14px;
  line-height:1.5;
  font-weight:400;
}
.footer-notice{
  margin:0px auto 10px;
  font-size:12px;
  font-weight:300;
}


/* footer final spacing adjustment */
.site-footer{
  padding:90px 20px 0;
}
.footer-main{
  margin-bottom:170px;
}
.footer-name{
  margin:0 0 20px;
}
.footer-time{
  margin:0 0 10px;
  font-weight:400;
}
.footer-address{
  font-weight:400;
}
.footer-notice{
  margin:0px auto 10px;
}
@media (min-width:901px){
  .footer-address{
    white-space:nowrap;
  }
}


/* footer final notice/copy adjustment */
.footer-notice{
  margin:0px auto 10px;
  font-size:12px;
  font-weight:300;
}
.footer-copy{
  margin:0;
  border-top:1px solid rgba(255, 255, 255, .22);
  text-align:center;
  padding:5px 20px 58px;
  font-size:12px;
  line-height:1.8;
  font-weight:400;
  letter-spacing:.10em;
  color:rgba(255,255,255,.96);
}


/* footer tel text adjustment */
.footer-tel{
  display:inline-flex;
  align-items:baseline;
  gap:0;
  color:#fff;
  text-decoration:none;
  font-size:20px;
  line-height:1.5;
  font-weight:400;
  letter-spacing:.06em;
  margin-bottom:10px;
}
.footer-tel::before{
  content:none!important;
  display:none!important;
}


/* footer final compact contact adjustment */
.footer-name{
  margin:0 0 10px;
}
.footer-tel{
  margin-bottom:5px;
}
.footer-time{
  margin:0 0 5px;
  font-size:14px;
}
.footer-address{
  font-size:14px;
}


/* footer name final adjustment */
.footer-name-main{
  font-size:20px;
  font-weight:500;
}
.footer-name-sub{
  font-size:26px;
  font-weight:700;
}


/* footer kicker/name final adjustment */
.footer-kicker{
  margin:0px;
  font-size:16px;
  line-height:1.55;
  font-weight:400;
  letter-spacing:.08em;
}
.footer-name{
  line-height:1.18;
}
.footer-name-main{
  display:inline-block;
  font-size:20px;
  line-height:1.12;
}
.footer-name-sub{
  display:inline-block;
  font-size:26px;
  line-height:1.08;
  font-weight:600;
}
