@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700&family=Zen+Kaku+Gothic+New:wght@400;500;700;900&family=Yomogi&display=swap');

:root{
  --orange: #F39700;
  --orange-deep: #DF6D53;
  --brown: #6B4A2A;
  --brown-dark: #44311A;
  --yellow: #FBCE38;
  --blue: #6FC6DE;
  --blue-deep: #1B9DC0;
  --green: #2E975E;
  --surface-base: #FFFCF5;
  --surface-soft: #FFF8E8;
  --surface-accent: #FFF3C4;
  --surface-accent-soft: #FFF8DC;
  --surface-blue: #F2FAFC;
  --yellow-pale: var(--surface-accent);
  --cream: var(--surface-base);
  --cream-deep: #F1E7CE;
  --white: #FFFFFF;
  --text: #44311A;
  --text-soft: #8A6B4F;
  --radius-lg: 32px;
  --radius-md: 20px;
  --shadow: 0 8px 24px rgba(90, 60, 20, 0.12);
}

*{ box-sizing: border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; }
[id]{ scroll-margin-top:96px; }

body{
  font-family: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", sans-serif;
  color: var(--text);
  background: var(--cream);
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.is-loading{ overflow:hidden; }


.site-loader{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  background:var(--cream);
  opacity:1;
  visibility:visible;
  transition:opacity .65s cubic-bezier(.22,1,.36,1), visibility .65s;
}
.site-loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
.site-loader-inner{ display:flex; flex-direction:column; align-items:center; gap:18px; }
.site-loader-logo{ width:112px; height:auto; animation:loader-logo 1.1s cubic-bezier(.22,1,.36,1) both; }
.site-loader-rings{ display:flex; align-items:center; margin-top:-8px; }
.site-loader-rings-icon{ display:none; }
.site-loader-ring{ width:18px; height:18px; border:5px solid var(--blue-deep); border-radius:50%; background:var(--cream); animation:loader-ring-blue .9s ease-in-out infinite alternate; }
.site-loader-ring + .site-loader-ring{ margin-left:-3px; border-color:var(--orange); animation-name:loader-ring-orange; animation-delay:.12s; }
.site-loader-text{ color:var(--brown-dark); font-family:"Helvetica Neue",Arial,sans-serif; font-size:.68rem; font-weight:700; letter-spacing:.3em; padding-left:.3em; }
@keyframes loader-logo{ from{ opacity:0; transform:translateY(12px) scale(.94); } to{ opacity:1; transform:none; } }
@keyframes loader-ring-blue{ from{ transform:translateX(2px) scale(.9); } to{ transform:translateX(-2px) scale(1.08); } }
@keyframes loader-ring-orange{ from{ transform:translateX(-2px) scale(.9); } to{ transform:translateX(2px) scale(1.08); } }
@media (prefers-reduced-motion:reduce){
  .site-loader,.site-loader-logo,.site-loader-ring{ animation:none; transition-duration:.15s; }
}

img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ list-style:none; }

.container{
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 24px;
}

.accent-font{ font-family: "Montserrat", "Zen Kaku Gothic New", sans-serif; }


.site-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--white);
  border-top:1px solid rgba(68,49,26,.08);
  border-bottom:1px solid rgba(68,49,26,.06);
  box-shadow:0 3px 14px rgba(120,74,30,.06);
  transition:box-shadow .25s ease,border-color .25s ease;
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1200px;
  min-height:116px;
  gap:32px;
  padding-top:12px;
  padding-bottom:12px;
  transition:padding .25s ease;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height:68px; width:auto; transition:height .25s ease; }
.brand-text{ font-size: 0.72rem; color: var(--text-soft); font-weight:700; line-height:1.4; }
.brand-text strong{ display:block; font-size:1rem; color: var(--brown-dark); }

.main-nav{ margin-left:auto; }
.main-nav ul{ display:flex; align-items:center; gap:52px; }
.main-nav a{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:18px 2px;
  font-weight:700;
  font-size:.9rem;
  letter-spacing:.045em;
  color: var(--brown-dark);
  z-index:1;
  transition:color .2s ease,padding .25s ease;
}
.main-nav a::before{
  content:"";
  position:absolute;
  top:50%; left:50%;
  width:44px; height:44px;
  border-radius:50%;
  background: var(--yellow);
  transform:translate(-50%,-50%) scale(0);
  transition:transform .25s cubic-bezier(.22,1,.36,1);
  z-index:-1;
}
.main-nav a.active::before,
.main-nav a:hover::before{ transform:translate(-50%,-50%) scale(1); }
.nav-toggle{ display:none; }

.mobile-menu{display:none;}

.header-contact{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  min-width:170px;
  gap:8px;
  margin:-12px 0;
  padding:12px 28px;
  border-left:0;
  background:#fbce38;
  font-weight:700;
  font-size:.86rem;
  letter-spacing:.04em;
  color: var(--brown-dark);
  white-space:nowrap;
  transition:gap .25s ease,color .2s ease;
}
.header-contact-icon{
  flex:0 0 40px;
  width:40px; height:30px;
  border-radius:0;
  background:transparent;
  display:flex; align-items:center; justify-content:center;
  transition: transform .2s ease,width .25s ease,height .25s ease;
}
.header-contact-icon svg{ width:24px; height:18px; display:block; }
.header-contact-icon svg path:first-child{fill:none;stroke:#fff;stroke-width:1.5;}
.header-contact-icon svg path:last-child{stroke:#fff;}
.header-contact:hover .header-contact-icon{ transform: translateY(-2px); }
.header-contact.active{ color:var(--brown-dark); }
.header-contact-text{ position:relative; padding-bottom:5px; }
.header-contact-text::after{
  content:"";
  position:absolute; left:50%; bottom:0;
  width:70%; height:2px;
  background: var(--brown-dark);
  transform: translateX(-50%);
}
.header-contact.active .header-contact-text::after{ background:var(--brown-dark); }
.header-contact.active::after{
  display:none;
}

.site-header.is-compact{box-shadow:0 3px 16px rgba(120,74,30,.12);}
.site-header.is-compact .container{min-height:66px;padding-top:6px;padding-bottom:6px;}
.site-header.is-compact .brand img{height:48px;}
.site-header.is-compact .main-nav a{min-height:42px;padding-top:6px;padding-bottom:5px;}
.site-header.is-compact .header-contact{gap:3px;}
.site-header.is-compact .header-contact{margin-top:-6px;margin-bottom:-6px;}
.site-header.is-compact .header-contact-icon{width:40px;height:30px;}

@media (max-width: 760px){
  html{ scroll-padding-top:78px; }
  [id]{ scroll-margin-top:78px; }
  .site-header,.site-header.is-compact{position:fixed;top:12px;right:0;left:0;width:100%;background:transparent;border:0;box-shadow:none;}
  .brand{gap:8px;}
  .brand img{display:block;height:54px;}
  .brand-text{display:block;font-size:.58rem;line-height:1.25;letter-spacing:.01em;}
  .brand-text strong{font-size:.86rem;line-height:1.2;}
  .site-header .container,
  .site-header.is-compact .container{min-height:0;gap:12px;padding-top:9px;padding-bottom:9px;}
  .main-nav,.header-contact{display:none;}
  .nav-toggle{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:48px;height:48px;margin-left:auto;padding:0;border:0;border-radius:50%;background:var(--white);box-shadow:0 5px 18px rgba(68,49,26,.14);cursor:pointer;}
  .nav-toggle span{display:block;width:24px;height:2px;border-radius:999px;background:var(--orange);transition:transform .25s ease,opacity .2s ease;}
  .nav-toggle span:nth-child(2){background:var(--blue-deep);}
  .mobile-menu{display:block;position:fixed;inset:0;z-index:500;overflow-y:auto;background:var(--white);opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease;}
  .mobile-menu.is-open{opacity:1;visibility:visible;transform:none;}
  .mobile-menu-panel{min-height:100dvh;padding:20px 20px calc(36px + env(safe-area-inset-bottom));}
  .mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:30px;border-bottom:1px solid var(--cream-deep);}
  .mobile-menu-logo img{width:112px;height:auto;}
  .mobile-menu-close{position:relative;width:46px;height:46px;border:0;background:transparent;cursor:pointer;}
  .mobile-menu-close::before,.mobile-menu-close::after{content:"";position:absolute;top:22px;left:9px;width:30px;height:1.5px;background:var(--brown-dark);}
  .mobile-menu-close::before{transform:rotate(45deg);}
  .mobile-menu-close::after{transform:rotate(-45deg);}
  .mobile-menu-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:0;}
  .mobile-menu-nav a{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:12px 10px;border-bottom:1px solid var(--cream-deep);color:var(--brown-dark);font-size:.9rem;font-weight:700;letter-spacing:.04em;}
  .mobile-menu-nav a:nth-child(odd){margin-right:10px;}
  .mobile-menu-nav a:nth-child(even){margin-left:10px;}
  .mobile-menu-nav a::after{content:"›";color:var(--orange-deep);font-family:Arial,sans-serif;font-size:1.1rem;font-weight:700;}
  .mobile-menu-contact{margin:38px 10px 0;}
  .mobile-menu-contact-link{display:flex;align-items:center;justify-content:center;gap:14px;min-height:64px;padding:14px;border-radius:6px;background:var(--brown-dark);color:var(--white);font-size:1rem;font-weight:900;letter-spacing:.08em;}
  .mobile-menu-contact-link::after{content:"›";font-family:Arial,sans-serif;font-size:1.3rem;}
  .mobile-menu-phone{margin-top:12px;padding:14px;border-radius:6px;background:var(--surface-soft);color:var(--brown-dark);text-align:center;line-height:1.45;}
  .mobile-menu-phone a{font-family:"Helvetica Neue",Arial,sans-serif;font-size:1.45rem;font-weight:700;letter-spacing:.08em;}
  .mobile-menu-phone small{display:block;font-size:.76rem;font-weight:700;}
  body.menu-open{overflow:hidden;}
}
@media (max-width: 400px){
  .container{ padding: 0 16px; }
  .brand img{ height:50px; }
  .mobile-menu-panel{padding-left:14px;padding-right:14px;}
  .mobile-menu-nav a{font-size:.8rem;padding-left:7px;padding-right:7px;}
  .site-header.is-compact .brand img{height:42px;}
}


.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 16px 34px;
  border-radius: 999px;
  font-weight:700;
  font-size:1.05rem;
  box-shadow: var(--shadow);
  transition: transform .18s ease, box-shadow .18s ease;
  border: none;
  cursor:pointer;
}
.btn:hover{ transform: translateY(-3px); box-shadow: 0 12px 28px rgba(120,74,30,0.2); }
.btn-primary{ background: linear-gradient(135deg, var(--orange), var(--orange-deep)); color: var(--white); }
.btn-secondary{ background: var(--white); color: var(--orange-deep); border:2px solid var(--orange); }
.btn-block{ display:flex; justify-content:center; width:100%; }


section{ padding: 88px 0; position:relative; }
.section-head{ text-align:center; margin-bottom: 48px; }
.eyebrow{
  display:inline-block;
  font-family: "Yomogi", sans-serif;
  color: var(--orange-deep);
  background: var(--yellow-pale);
  padding: 6px 20px;
  border-radius: 999px;
  font-size: 0.9rem;
  margin-bottom: 14px;
  font-weight:700;
}
.eyebrow.accent-font{ font-family:"Montserrat","Zen Kaku Gothic New",sans-serif; font-weight:600; }
h2.section-title{
  font-size: clamp(1.5rem, 3.2vw, 2.3rem);
  color: var(--brown-dark);
  font-weight:900;
  line-height:1.6;
}
.section-sub{
  margin-top: 10px;
  color: var(--text-soft);
  font-size: 1.02rem;
}
.bg-cream{ background: var(--surface-soft); }
.bg-white{ background: var(--white); }
.bg-pale{ background: var(--surface-accent); }


.wave-top{
  position:absolute; top:-1px; left:0; width:100%; line-height:0; transform: rotate(180deg);
}
.wave-bottom{ position:absolute; bottom:-1px; left:0; width:100%; line-height:0; }
.wave-top svg, .wave-bottom svg{ width:100%; height:60px; display:block; }


.card{
  background: var(--white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow);
  padding: 28px;
}

.tag{
  display:inline-block;
  font-size: 0.78rem;
  font-weight:700;
  padding: 4px 14px;
  border-radius: 999px;
  background: var(--blue);
  color: var(--white);
}
.tag.tag-option{ background: var(--orange); }


.site-footer{
  position:relative;
  overflow:hidden;
  background:#fbc637;
  color: var(--brown-dark);
  padding:64px 0 28px;
  border-top:1px solid rgba(68,49,26,.18);
}
.site-footer::before,
.site-footer::after{
  content:"";
  position:absolute;
  z-index:0;
  border-radius:50%;
  pointer-events:none;
}
.site-footer::before{
  top:36px;
  left:-68px;
  width:150px;
  height:150px;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.78) 0 2px,transparent 2px 7px);
}
.site-footer::after{
  right:-38px;
  bottom:-54px;
  width:205px;
  height:205px;
  background:radial-gradient(circle,rgba(255,255,255,.78) 0 1.4px,transparent 1.8px) 0 0/7px 7px;
}
.site-footer > *{ position:relative; z-index:1; }
.site-footer .container{ display:grid; grid-template-columns:180px minmax(260px,1fr) minmax(300px,1fr); align-items:end; gap:42px; }
.footer-brand{ display:flex; align-items:flex-end; }
.footer-brand img{ width:130px; height:auto; opacity:1; }
.footer-info{ font-size:.88rem; line-height:1.85; opacity:1; }
.footer-info div{ margin-bottom:3px; }
.footer-info strong{ display:block; margin-bottom:8px; font-size:.98rem; font-weight:900; letter-spacing:.05em; }
.footer-name-break{ display:inline; }
.footer-map-link{ display:inline-flex; align-items:center; gap:7px; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.footer-map-link::before{ content:""; flex:0 0 12px; width:12px; height:16px; background:radial-gradient(circle at 50% 31%,#fff 0 2px,var(--blue-deep) 2.5px); clip-path:polygon(50% 100%,16% 56%,8% 38%,8% 25%,18% 8%,34% 0,66% 0,82% 8%,92% 25%,92% 38%,84% 56%); }
.footer-map-link:hover{ color:var(--orange-deep); }
.site-footer nav.footer-info{ display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; align-self:center; }
.site-footer nav.footer-info div{ margin:0; }
.site-footer nav.footer-info a{ display:flex; align-items:center; gap:9px; font-weight:700; line-height:1.45; transition:color .2s ease, transform .2s ease; }
.site-footer nav.footer-info a::before{ content:"›"; display:grid; place-items:center; flex:0 0 18px; width:18px; height:18px; padding-bottom:1px; border-radius:50%; background:#fff; color:var(--brown-dark); box-shadow:0 1px 4px rgba(68,49,26,.12); font-family:Arial,sans-serif; font-size:.88rem; font-weight:900; line-height:1; }
.site-footer nav.footer-info a:hover{ color:var(--orange-deep); transform:translateX(3px); }
.footer-bottom{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-top:38px;
  padding-top:18px;
  border-top:1px solid rgba(68,49,26,.18);
  font-family:"Helvetica Neue",Arial,sans-serif;
  font-size:.76rem;
  letter-spacing:.08em;
  opacity:.72;
}
.footer-privacy-link{ font-weight:700; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; transition:color .2s ease; }
.footer-privacy-link:hover{ color:var(--orange-deep); }
@media (max-width:820px){
  .site-footer .container{ grid-template-columns:140px 1fr; align-items:start; }
  .site-footer nav.footer-info{ grid-column:1 / -1; width:100%; padding-top:22px; border-top:1px solid rgba(68,49,26,.18); }
}
@media (max-width:520px){
  .site-footer{ padding:48px 0 24px; }
  .site-footer::before{ top:24px; left:-46px; width:96px; height:96px; background-size:auto; }
  .site-footer::after{ right:-48px; bottom:-24px; width:130px; height:130px; background-size:6px 6px; }
  .site-footer .container{ grid-template-columns:1fr; gap:24px; }
  .footer-brand img{ width:110px; }
  .footer-name-break{ display:block; }
  .site-footer nav.footer-info{ grid-column:auto; grid-template-columns:1fr; gap:11px; }
  .footer-bottom{ align-items:flex-start; flex-direction:column; gap:14px; margin-top:30px; }
}


.blob-frame{
  border-radius: 44% 56% 62% 38% / 46% 40% 60% 54%;
  overflow:hidden;
  box-shadow: var(--shadow);
  background: var(--blue);
}
.blob-frame img, .blob-frame svg{ width:100%; height:100%; object-fit:cover; }


table.styled-table{ width:100%; border-collapse: collapse; background: var(--white); border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow);}
table.styled-table th, table.styled-table td{ padding: 16px 18px; text-align:left; border-bottom: 1px solid var(--cream-deep); font-size:0.95rem;}
table.styled-table th{ background: var(--orange); color:#fff; font-weight:700; }
table.styled-table tr:last-child td{ border-bottom:none; }
table.styled-table tr:nth-child(even) td{ background: var(--cream); }


.text-center{ text-align:center; }
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.mt-24{ margin-top:24px; }
.mt-48{ margin-top:48px; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.grid-2col{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }

@media (max-width: 860px){
  section{ padding: 64px 0; }
  .grid-2{ grid-template-columns:1fr; gap:32px; }
  .grid-4{ grid-template-columns:1fr 1fr; }
  .grid-2col{ grid-template-columns:1fr; }
}
@media (max-width: 520px){
  .grid-4{ grid-template-columns:1fr; }
}


.mobile-cta{ display:none; }
@media (max-width: 760px){
  .site-footer{ padding-bottom:84px; }
  .mobile-cta{
    display:grid;
    grid-template-columns:1fr 1fr;
    position:fixed; bottom:0; left:0; width:100%;
    padding:0 0 env(safe-area-inset-bottom);
    background:var(--yellow);
    box-shadow:none;
    z-index: 200;
  }
  .mobile-cta-link{display:flex;align-items:center;justify-content:center;gap:9px;height:49.5px;padding:8px 14px;color:var(--brown-dark);font-size:.86rem;font-weight:700;line-height:1.3;}
  .mobile-cta-link + .mobile-cta-link{border-left:1px dotted rgba(68,49,26,.5);}
  .mobile-cta-link svg{flex:0 0 23px;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
  body{ padding-bottom:0; }
}
.free-service-banner{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  overflow:visible;
  padding:24px 32px;
  border:2px solid var(--yellow);
  border-radius:28px;
  background-color:#fff;
  background-image:radial-gradient(rgba(243,151,0,.16) 1px,transparent 1px);
  background-size:5px 5px;
  color:var(--brown-dark);
  text-align:left;
}
.free-service-icon{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--yellow);}
.free-service-icon img{width:42px;height:42px;object-fit:contain;filter:brightness(0) saturate(100%) invert(17%) sepia(28%) saturate(1158%) hue-rotate(356deg) brightness(91%) contrast(91%);}
.free-service-copy{position:relative;z-index:1;margin:0;line-height:1.5;}
.free-service-copy small{display:block;margin-bottom:3px;color:var(--orange-deep);font-size:.85rem;font-weight:800;letter-spacing:.08em;}
.free-service-copy strong{display:block;color:#44311a;font-size:clamp(1.15rem,2.4vw,2rem);font-weight:900;letter-spacing:.05em;white-space:nowrap;}
.free-service-copy em{color:var(--orange);font-size:1.2em;font-style:normal;}
.free-service-art{position:relative;z-index:2;align-self:end;display:block;width:230px;height:auto;margin:-72px -18px -25px 0;object-fit:contain;object-position:right bottom;}
@media(max-width:600px){
  .free-service-banner{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:18px 16px;border-radius:20px;}
  .free-service-icon{width:58px;height:58px;}.free-service-icon img{width:38px;height:38px;}
  .free-service-copy small{font-size:.7rem;letter-spacing:.02em;}.free-service-copy strong{font-size:clamp(.96rem,4.3vw,1.18rem);white-space:normal;}
  .free-service-art{display:none;}
}
