:root{
  --color-ink:#3B2E22;
  --color-text:#4A3B2C;
  --color-text-light:#8A7660;
  --color-bg:#FFFBF3;
  --color-white:#FFFFFF;

  /* original-site inspired palette */
  --color-primary:#C15A2E;      /* terracotta — "hibikore/サービス" */
  --color-primary-dark:#8C3F1E;
  --color-primary-light:#F7E9DE;
  --color-accent:#E8541F;       /* vivid red-orange — original CTA red #FF3300, softened */
  --color-accent-dark:#C43F10;
  --color-accent-light:#FDE7DD;
  --color-green:#4C7A1A;        /* about section identity color, from original #366B01 */
  --color-green-light:#EDF3E2;
  --color-maroon:#6B231F;       /* soudan/consult identity color, from original #360101 */
  --color-maroon-light:#F3E5E3;
  --color-footer:#8C5A12;       /* gold-brown, from original footer #AD7204 */

  --radius:16px;
  /* the original site's signature hand-drawn "graffiti" blob shape */
  --radius-blob:255px 15px 225px 15px / 15px 225px 15px 255px;
  --radius-blob-soft:120px 18px 90px 18px / 18px 90px 18px 120px;
  --shadow:0 10px 24px rgba(90,60,30,.10);
  --maxw:1120px;
  --font-heading:'Klee One', "Hiragino Maru Gothic ProN", sans-serif;
  --font-body:'BIZ UDPGothic', "Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  font-size:18px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-heading);
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--color-primary);text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%;display:block;}
h1,h2,h3,h4{margin:0 0 .6em;line-height:1.4;font-weight:600;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:16px 32px;border-radius:999px;font-weight:700;font-size:1.05rem;
  border:2px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;
  min-height:52px;
}
.btn:hover{text-decoration:none;transform:translateY(-2px);}
.btn-primary{background:var(--color-accent);color:#fff;box-shadow:0 8px 18px rgba(196,63,16,.34);}
.btn-primary:hover{background:var(--color-accent-dark);}
.btn-outline{background:transparent;border-color:#fff;color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.15);}
.btn-outline-blue{background:transparent;border-color:var(--color-primary);color:var(--color-primary);}
.btn-outline-blue:hover{background:var(--color-primary-light);}
.icon{width:26px;height:26px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.eyebrow{
  display:inline-block;font-size:.9rem;font-weight:700;letter-spacing:.05em;
  color:var(--color-accent-dark);background:var(--color-accent-light);
  padding:6px 16px;border-radius:999px;margin-bottom:14px;
  border:2px solid var(--color-accent);
  transform:rotate(-1.5deg);
}
.eyebrow.theme-green{color:var(--color-green);background:var(--color-green-light);border-color:var(--color-green);}
.eyebrow.theme-maroon{color:var(--color-maroon);background:var(--color-maroon-light);border-color:var(--color-maroon);}
.section-title{font-size:1.75rem;}
.section-lead{color:var(--color-text-light);max-width:640px;margin:0 0 32px;}
section{padding:64px 0;}

/* ===== "graffiti border" hand-drawn blob box — the original site's signature module ===== */
.blob-box{
  border:5px solid var(--color-accent);
  border-radius:var(--radius-blob);
  background:var(--color-accent-light);
  padding:32px;
}
.blob-box.theme-green{border-color:var(--color-green);background:var(--color-green-light);}
.blob-box.theme-maroon{border-color:var(--color-maroon);background:var(--color-maroon-light);}
.blob-box.theme-primary{border-color:var(--color-primary);background:var(--color-primary-light);}
.blob-box.solid{background:#fff;}

/* ===== Header ===== */
.site-header{
  position:sticky;top:0;z-index:100;
  background:#FFFCF6;
  border-bottom:3px solid var(--color-accent-light);
}
.header-inner{
  max-width:var(--maxw);margin:0 auto;padding:0 20px;
  display:flex;align-items:center;justify-content:space-between;
  height:68px;position:relative;
}
.logo{display:flex;align-items:center;gap:10px;color:var(--color-primary-dark);}
.logo:hover{text-decoration:none;}
.logo-mark{
  width:50px;height:50px;border-radius:var(--radius-blob-soft);
  background:#fff;border:3px solid var(--color-accent);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  padding:4px;
}
.logo-mark img{width:100%;height:100%;object-fit:contain;}
.logo-text{line-height:1.25;}
.logo-text small{display:block;font-size:.8rem;color:var(--color-accent);font-weight:700;}
.logo-text strong{font-size:1.2rem;font-weight:800;color:var(--color-accent);}

.main-nav{display:flex;align-items:center;gap:26px;}
.main-nav a{font-size:1.05rem;font-weight:600;color:var(--color-text);}
.main-nav a:hover{color:var(--color-accent);text-decoration:none;}
.main-nav a.active{color:var(--color-accent);}

.header-actions{display:flex;align-items:center;gap:16px;}
.phone-cta{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--color-primary-dark);font-size:1.08rem;white-space:nowrap;}
.phone-cta .icon{width:20px;height:20px;color:var(--color-accent);}
.phone-cta small{display:block;font-size:.8rem;font-weight:500;color:var(--color-text-light);}
.header-actions .btn{padding:10px 20px;font-size:1rem;min-height:auto;}

.nav-toggle-checkbox{display:none;}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;cursor:pointer;flex-shrink:0;}
.hamburger span{display:block;width:100%;height:2px;background:var(--color-primary-dark);border-radius:2px;transition:.2s;}
.nav-mobile-only{display:none;}

/* ===== Hero (homepage) — original's photo, kept full-bleed with a warm scrim ===== */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background-image:
    linear-gradient(to top, rgba(202,90,24,.86) 0%, rgba(224,132,52,.58) 34%, rgba(240,175,100,.20) 64%, rgba(240,175,100,0) 85%),
    url("https://fanquga.jp/images/top_banner.jpg");
  background-size:cover, cover;
  background-position:center, center;
  min-height:560px;
  display:flex;align-items:flex-end;
  padding:0 0 48px;
}
.hero-inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:0 20px;width:100%;}
.hero-textbox{max-width:620px;}
.hero-kicker{
  display:inline-block;font-size:.95rem;font-weight:700;letter-spacing:.08em;
  color:#fff;
  padding:6px 18px;background:var(--color-accent);border:2px solid #fff;
  border-radius:var(--radius-blob-soft);margin-bottom:18px;
  transform:rotate(-1.5deg);
}
.hero h1{font-size:2.3rem;max-width:680px;text-shadow:0 2px 10px rgba(70,30,10,.55);}
.hero p{font-size:1.18rem;max-width:560px;color:#fff;margin-bottom:32px;text-shadow:0 2px 8px rgba(70,30,10,.55);}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* ===== Page banner (sub pages) ===== */
.page-banner{
  position:relative;overflow:hidden;color:#fff;
  background-image:
    linear-gradient(120deg, rgba(196,80,24,.84) 0%, rgba(216,110,40,.78) 60%, rgba(232,150,70,.58) 100%),
    url("https://fanquga.jp/images/top_banner.jpg");
  background-size:cover;background-position:center;
  padding:52px 0;
}
.page-banner .breadcrumb{font-size:.92rem;color:rgba(255,255,255,.75);margin-bottom:10px;}
.page-banner .breadcrumb a{color:rgba(255,255,255,.85);}
.page-banner h1{font-size:1.85rem;margin:0;text-shadow:0 2px 8px rgba(0,0,0,.35);}

/* ===== Trust bar ===== */
.trust-bar{background:transparent;padding:0;margin-top:-40px;position:relative;z-index:2;}
.trust-grid{
  max-width:var(--maxw);margin:0 auto;padding:0 20px;
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;
  background:#fff;border:5px solid var(--color-accent);border-radius:var(--radius-blob);
  padding:28px 32px;
}
.trust-item{display:flex;align-items:center;gap:12px;font-size:1rem;font-weight:700;color:var(--color-primary-dark);}
.trust-item .icon{width:22px;height:22px;color:var(--color-accent);}

/* ===== Services ===== */
.service-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-bottom:48px;
}
.service-card{
  background:#fff;border-radius:var(--radius-blob-soft);box-shadow:var(--shadow);overflow:hidden;
  border:3px solid var(--color-primary);display:flex;flex-direction:column;
}
.service-card.theme-maroon{border-color:var(--color-maroon);}
.service-card .card-image{
  background:var(--color-primary-light);height:190px;display:flex;align-items:center;justify-content:center;
}
.service-card.theme-maroon .card-image{background:var(--color-maroon-light);}
.service-card .card-image img{width:100%;height:100%;object-fit:contain;padding:14px;}
.service-card .card-body{padding:28px 24px;display:flex;flex-direction:column;gap:12px;flex-grow:1;}
.service-card.detail .card-body{gap:16px;}
.service-card .icon-badge{
  width:50px;height:50px;border-radius:var(--radius-blob-soft);background:#fff;border:2px solid var(--color-primary);
  display:flex;align-items:center;justify-content:center;color:var(--color-primary);
  transform:rotate(-3deg);
}
.service-card.theme-maroon .icon-badge{border-color:var(--color-maroon);color:var(--color-maroon);}
.service-card h4{font-size:1.2rem;margin:0;}
.service-card p{margin:0;color:var(--color-text-light);font-size:1.03rem;flex-grow:1;}
.service-card .more{font-size:1rem;font-weight:700;}
.service-card .reco-list{margin:0;padding-left:1.2em;color:var(--color-text-light);font-size:1rem;}
.service-card .reco-list li{margin-bottom:6px;}
.service-card .sub-block{border-top:1px dashed #E9D9C4;padding-top:14px;}
.service-card .sub-block h5{font-size:1.05rem;margin:0 0 6px;color:var(--color-primary-dark);}
.service-card .sub-block p{color:var(--color-text-light);font-size:1rem;}
.service-card .card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px;}
.service-card .card-actions .btn{padding:10px 18px;font-size:.95rem;min-height:auto;}

/* ===== Pricing ===== */
.pricing{background:var(--color-primary-light);}
.pricing-box{
  background:#fff;border:5px solid var(--color-accent);border-radius:var(--radius-blob);
  padding:36px 40px;display:flex;gap:32px;flex-wrap:wrap;align-items:center;justify-content:space-between;
}
.pricing-figure{display:flex;align-items:baseline;gap:6px;color:var(--color-accent-dark);}
.pricing-figure .num{font-size:2.8rem;font-weight:800;}
.pricing-figure .unit{font-size:1.15rem;font-weight:700;}
.pricing-note{color:var(--color-text-light);font-size:1rem;max-width:340px;}

/* ===== News ===== */
.news-list{display:flex;flex-direction:column;gap:2px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid #EFDFC9;}
.news-item{
  background:#fff;padding:20px 24px;display:flex;gap:20px;align-items:baseline;
  border-bottom:1px solid #F1E3CB;
}
.news-item:last-child{border-bottom:none;}
.news-date{font-weight:700;color:var(--color-accent);font-size:1rem;white-space:nowrap;}
.news-title{font-size:1.08rem;}
.news-more{display:block;text-align:right;margin-top:16px;font-weight:700;font-size:1.03rem;}
.news-empty{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:32px;text-align:center;color:var(--color-text-light);font-size:1.05rem;}

/* ===== About ===== */
.about-box{
  background:#fff;border:5px solid var(--color-green);border-radius:var(--radius-blob);
  padding:36px 40px;display:grid;grid-template-columns:1.3fr 1fr;gap:36px;
}
.about-box p{color:var(--color-text-light);font-size:1.08rem;}
.about-meta{border-left:1px dashed #C9DAB1;padding-left:32px;}
.about-meta dt{font-size:.9rem;color:var(--color-text-light);margin-top:14px;}
.about-meta dt:first-child{margin-top:0;}
.about-meta dd{margin:2px 0 0;font-weight:700;font-size:1.08rem;color:var(--color-green);}

/* ===== Long-form prose (thought / privacy pages) ===== */
.prose-card{position:relative;overflow:hidden;background:#fff;border:4px solid var(--color-primary);border-radius:var(--radius-blob-soft);padding:40px;max-width:800px;margin:0 auto;}
.prose-card h2{font-size:1.45rem;color:var(--color-primary-dark);}
.prose-card h3{font-size:1.2rem;color:var(--color-primary-dark);margin-top:2em;}
.prose-card p{color:var(--color-text);font-size:1.1rem;line-height:2;margin:0 0 1.2em;}
.prose-card ol,.prose-card ul{color:var(--color-text);font-size:1.08rem;padding-left:1.4em;}
.prose-card li{margin-bottom:.6em;}
.prose-card .prose-lead{color:var(--color-text-light);font-size:1rem;margin-bottom:2em;}
.thought-lines{font-size:1.3rem;font-weight:700;color:var(--color-primary-dark);line-height:2.5;text-align:center;letter-spacing:.03em;margin:0 0 1.6em;}
.thought-lines .emphasis{color:var(--color-accent);}
.thought-divider{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 0 2em;}
.thought-divider span{width:8px;height:8px;border-radius:50%;background:var(--color-accent);opacity:.55;}
.thought-divider span:nth-child(2){width:13px;height:13px;opacity:.9;}
.thought-closing{font-size:1.2rem;font-weight:600;color:var(--color-text);text-align:left;max-width:100%;line-height:2.1;margin:0 auto;background:rgba(232,84,31,.06);border-left:4px solid var(--color-accent);border-radius:var(--radius-blob-soft);padding:26px 30px;}
.thought-closing strong{color:var(--color-primary-dark);font-weight:800;}

.prose-watermark{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:480px;max-width:70%;
  opacity:.40;
  z-index:0;
  pointer-events:none;
  user-select:none;
}
.prose-card > p,
.prose-card > h3,
.prose-card > table{
  position:relative;
  z-index:1;
}

/* ===== CTA band ===== */
.cta-band{
  background:var(--color-accent);
  color:#fff;text-align:center;padding:56px 0;
  border-top:6px solid #fff;border-bottom:6px solid #fff;
}
.cta-band h2{font-size:1.65rem;}
.cta-band p{color:rgba(255,255,255,.9);margin-bottom:28px;font-size:1.1rem;}
.cta-band .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta-band .btn-primary{background:#fff;color:var(--color-accent-dark);}
.cta-band .btn-primary:hover{background:#FFF3EA;}

/* ===== Footer ===== */
footer{background:var(--color-footer);color:rgba(255,255,255,.9);padding:56px 0 24px;font-size:1rem;}
.footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.25);margin-bottom:24px;}
.footer-grid h5{color:#fff;font-size:1.05rem;margin:0 0 14px;}
.footer-grid a{display:block;color:rgba(255,255,255,.78);margin-bottom:8px;}
.footer-grid a:hover{color:#fff;}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:rgba(255,255,255,.65);font-size:.93rem;}

/* ===== Estimate calculator ===== */
.calc-card{
  background:#FFFCF6;border:3px dashed var(--color-accent);border-radius:var(--radius-blob-soft);
  padding:28px;margin:20px 0 40px;
}
.calc-title{display:flex;align-items:center;gap:10px;font-size:1.2rem;color:var(--color-primary-dark);margin:0 0 4px;}
.calc-title .badge{
  display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  border-radius:var(--radius-blob-soft);background:var(--color-accent);color:#fff;flex-shrink:0;
}
.calc-title .badge svg{width:18px;height:18px;stroke:#fff;}
.calc-sub{color:var(--color-text-light);font-size:.98rem;margin:0 0 22px;}
.calc-section{margin-bottom:20px;}
.calc-label{display:block;font-weight:700;font-size:1.02rem;color:var(--color-primary-dark);margin-bottom:10px;}
.calc-radio-group,.calc-checkbox-group{display:flex;flex-direction:column;gap:10px;}
.calc-option{
  display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid #EFDFC9;
  border-radius:14px;padding:12px 16px;cursor:pointer;font-size:1rem;transition:border-color .15s ease;
}
.calc-option:hover{border-color:var(--color-accent);}
.calc-option input[type=radio],.calc-option input[type=checkbox]{
  width:20px;height:20px;margin-top:3px;accent-color:var(--color-accent);flex-shrink:0;
}
.calc-option .opt-body{flex-grow:1;}
.calc-option .opt-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.calc-option .opt-price{font-weight:700;color:var(--color-primary-dark);white-space:nowrap;}
.calc-option .opt-desc{color:var(--color-text-light);font-size:.88rem;display:block;margin-top:4px;line-height:1.6;}
.calc-number-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.calc-number-row input[type=number]{
  width:90px;padding:9px 12px;border:1px solid #E2CFB1;border-radius:10px;font-size:1rem;font-family:var(--font-body);
}
.calc-select{
  padding:11px 14px;border-radius:10px;border:1px solid #E2CFB1;font-size:1rem;font-family:var(--font-body);
  background:#fff;width:100%;max-width:360px;
}
.calc-total-box{
  background:var(--color-accent);color:#fff;border-radius:var(--radius-blob-soft);
  padding:22px 26px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:22px;
}
.calc-total-box .label{font-size:1.02rem;}
.calc-total-box .amount{font-size:2.1rem;font-weight:800;color:#fff;}
.calc-breakdown{font-size:.92rem;color:var(--color-text-light);margin-top:14px;border-top:1px dashed #EFDFC9;padding-top:12px;}
.calc-breakdown .row{display:flex;justify-content:space-between;padding:3px 0;}
.calc-note{font-size:.9rem;color:var(--color-accent-dark);margin-top:12px;}
.calc-cap-note{background:var(--color-accent-light);color:var(--color-accent-dark);border-radius:10px;padding:10px 14px;font-size:.92rem;margin-top:12px;}
.calc-disclaimer{font-size:.85rem;color:var(--color-text-light);margin-top:10px;}

/* ===== Tabs ===== */
.tab-switch{display:flex;gap:10px;margin-bottom:36px;flex-wrap:wrap;}
.tab-switch button{
  font-family:var(--font-heading);font-size:1.05rem;font-weight:700;padding:12px 26px;border-radius:999px;
  border:2px solid var(--color-accent);background:#fff;color:var(--color-accent-dark);cursor:pointer;
}
.tab-switch button.active{background:var(--color-accent);color:#fff;}
.tab-panel{display:none;}
.tab-panel.active{display:block;}

/* ===== Mobile ===== */
@media (max-width:860px){
  .main-nav{
    position:absolute;top:68px;left:0;right:0;background:#fff;
    flex-direction:column;align-items:flex-start;gap:0;
    box-shadow:0 12px 20px rgba(0,0,0,.08);
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .main-nav a{width:100%;padding:14px 20px;border-bottom:1px solid #F1E3CB;}
  .nav-toggle-checkbox:checked ~ .main-nav{max-height:480px;}
  .hamburger{display:flex;}
  .header-actions .phone-cta,
  .header-actions > .btn{display:none;}
  .nav-mobile-only{display:block;}
  .main-nav .nav-mobile-only.phone-link{color:var(--color-primary-dark);font-weight:800;}
  .main-nav .nav-mobile-only.cta-link{background:var(--color-accent);color:#fff;text-align:center;margin:10px 20px;padding:12px;border-radius:999px;width:calc(100% - 40px);}
  .about-box{grid-template-columns:1fr;padding:28px;}
  .about-meta{border-left:none;padding-left:0;border-top:1px dashed #C9DAB1;padding-top:20px;}
  .footer-grid{grid-template-columns:repeat(2,1fr);}
  .hero h1{font-size:1.75rem;}
  .trust-grid{grid-template-columns:1fr;padding:22px;}
  section{padding:44px 0;}
  .pricing-box{flex-direction:column;align-items:flex-start;padding:28px;}
  .page-banner{padding:36px 0;}
  .page-banner h1{font-size:1.5rem;}
  .prose-card{padding:24px;}
  .hero{min-height:460px;}
  .calc-card{padding:20px;}
  .calc-total-box{flex-direction:column;align-items:flex-start;}
  .calc-total-box .amount{font-size:1.7rem;}
  .tab-switch button{padding:10px 18px;font-size:.95rem;}
}
@media (max-width:480px){
  .footer-grid{grid-template-columns:1fr;}
  .hero{padding:56px 0 64px;min-height:420px;}
  .hero h1{font-size:1.55rem;}
  .header-actions .btn{padding:9px 15px;font-size:.92rem;}
}
