.root-page { background: #fcf9f2; color: #4c3104; }
.root-page__hero { height: 366px; position: relative; background: #f9f2e5; overflow: hidden; }
.root-page__hero-inner { width: min(992px, calc(100% - 48px)); height: 100%; margin: 0 auto; position: relative; z-index: 1; }
.root-page__hero h1 { position: absolute; left: 0; top: 137px; margin: 0; font-size: 60px; letter-spacing: .05em; font-weight: 700; line-height: normal; background: linear-gradient(180deg, #795a26 0%, #b9881e 56.731%, #64491e 100%); color: transparent; background-clip: text; }
.root-page__hero-photo { position: absolute; top: 11px; left: calc(50% - 80px); width: 800px; height: 355px; border-radius: 100px 0 0 0; overflow: hidden; }
.root-page__hero-photo img { width: 857px; height: 571px; max-width: none; object-fit: cover; transform: translate(-24px, -106px); }
.root-page--faq .root-page__hero-photo img { width: 867px; height: 578px; transform: translate(-43px, -124px); }
.root-page__breadcrumb { position: absolute; bottom: 0; left: 0; font-size: 20px; font-weight: 400; color: #4c2f01; letter-spacing: 1px; line-height: 41.929px; margin: 0; }
.root-page__breadcrumb a { color: inherit; text-decoration: none; }
.root-page__container { width: min(1000px, calc(100% - 48px)); margin: 0 auto; }
.root-page__intro { font-size: 20px; line-height: 1.6; letter-spacing: .05em; margin: 54px 0 0; font-weight: 500; }
.root-page--faq .root-page__intro { color: #4c2f01; }
.contact-phone { margin: 53px auto 40px; width: min(478px, 100%); background: #fff; border: 1px solid #ddd1b0; border-radius: 20px; padding: 21px 24px; text-align: center; }
.contact-phone p { margin: 0; font-size: 20px; font-weight: 500; letter-spacing: 1px; line-height: 1.6; }
.contact-phone__number { font-size: 32px !important; }
.contact-phone__number a { text-decoration: none; color: inherit; }
.contact-line { background: #f9f2e5; padding: 44px 0 66px; }
.contact-subtitle { background: #fff; border: 1px solid #ddd1b0; border-radius: 20px; padding: 19px 26px; width: fit-content; min-width: 416px; margin: 0 auto 31px; font-size: 24px; font-weight: 700; color: #4c2f01; line-height: 41.929px; text-align: center; letter-spacing: .05em; }
.contact-line p { font-size: 20px; font-weight: 400; line-height: 41.929px; margin: 0; }
.contact-line__qr { width: 256px; height: 198px; background: #d9d9d9; margin: 26px auto 32px; display: grid; place-items: center; color: #575757; font-size: 14px; }
.contact-line__caption { text-align: center; }
.contact-mail { padding: 59px 0 68px; }
.contact-mail__inner { background: #fff; padding: 30px 48px 42px; }
.contact-mail .contact-subtitle { background: #fcf9f2; }
.contact-mail__description { font-size: 20px; font-weight: 400; line-height: 41.929px; letter-spacing: .05em; margin: 35px 0; }
.contact-mail__required-note { font-size: 20px; font-weight: 400; line-height: 41.929px; letter-spacing: 1px; margin: 0 0 30px; }
.contact-badge { color: #fff; background: #a13232; display: inline-block; font-size: 20px; font-weight: 400; min-width: 57px; text-align: center; padding: 0 7px; line-height: 29px; }
.contact-badge--optional { background: #9a9a9a; }
.contact-form { display: grid; gap: 31px; }
.contact-form__row { display: grid; grid-template-columns: 260px 1fr; gap: 24px; border: 0; padding: 0; margin: 0; min-width: 0; }
.contact-form__label { font-size: 20px; font-weight: 500; line-height: 41.929px; display: flex; align-items: flex-start; gap: 18px; }
.contact-form__label .contact-badge { margin-top: 6px; flex-shrink: 0; }
.contact-form__label-copy { display: block; }
.contact-form__label-note { display: block; font-size: 14px; line-height: 20px; color: #a13232; margin: 16px 0 0; }
.contact-form input[type='text'], .contact-form input[type='email'], .contact-form textarea { border: 1px solid transparent; border-radius: 0; font: inherit; width: 100%; background: #d9d9d9; padding: 8px 14px; min-height: 47px; color: #4c3104; }
.contact-form textarea { height: 200px; resize: vertical; line-height: 1.8; }
.contact-form input:focus, .contact-form textarea:focus { outline: 2px solid #a18132; outline-offset: 3px; }
.contact-form__radio-group { display: flex; flex-wrap: wrap; gap: 13px 19px; font-size: 20px; font-weight: 500; line-height: 41.929px; align-items: center; }
.contact-form__radio-group label { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; }
.contact-form input[type='radio'], .contact-form input[type='checkbox'] { width: 22px; height: 22px; margin: 0; accent-color: #a18132; vertical-align: middle; }
.contact-form input[type='file'] { font: inherit; width: 100%; font-size: 14px; font-weight: 500; line-height: 20px; }
.contact-form input[type='file']::file-selector-button { padding: 11px 20px; color: #4c3104; background: #f5f4f2; border: 1px solid #a18132; border-radius: 10px; cursor: pointer; margin-right: 12px; }
.contact-form__field-note { font-size: 14px; font-weight: 500; line-height: 20px; margin: 16px 0 0; }
.contact-form__consent { font-size: 20px; font-weight: 400; line-height: 41.929px; letter-spacing: 1px; }
.contact-form__consent label { display: flex; align-items: center; gap: 13px; }
.contact-form__consent p { margin: 9px 0 0 35px; }
.contact-form__consent a { color: #a13232; }
.contact-form__submit { display: block; background: #a18132; color: #fff; border: 0; border-radius: 10px; min-width: 208px; min-height: 71px; font: inherit; font-size: 24px; font-weight: 500; line-height: 41.929px; margin: 12px auto 0; padding: 12px 30px; cursor: pointer; }
.contact-form__demo-note { font-size: 14px; margin: 0; text-align: center; }
.contact-confirm { width: min(720px, calc(100% - 32px)); border: 1px solid #ddd1b0; border-radius: 18px; padding: 32px; color: #4c3104; background: #fcf9f2; }
.contact-confirm::backdrop { background: rgb(38 28 12 / 50%); }
.contact-confirm h2 { margin: 0; font-size: 26px; }
.contact-confirm__summary { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 15px 22px; margin: 26px 0; }
.contact-confirm__summary dt { font-weight: 700; }
.contact-confirm__summary dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.contact-confirm__actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; }
.contact-confirm__actions button { font: inherit; padding: 12px 20px; border: 1px solid #a18132; border-radius: 8px; background: #fff; color: #4c3104; cursor: pointer; }
.contact-confirm__actions button:last-child { background: #a18132; color: #fff; }
.contact-done { margin-top: 28px; padding: 25px; border: 1px solid #a18132; background: #f9f2e5; border-radius: 10px; }
.contact-done[hidden] { display: none; }
.contact-done h2 { margin: 0 0 8px; font-size: 21px; }
.faq-page { padding: 0 0 85px; }
.faq-page__list { margin-top: 80px; display: grid; gap: 20px; }
.faq-page__item { border-radius: 20px; background: #fff; box-shadow: 0 2px 3px rgb(161 129 50 / 20%); overflow: hidden; }
.faq-page__question { background: #f9f2e5; color: #4c2f01; font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif; font-weight: 400; line-height: normal; display: flex; gap: 16px; align-items: center; list-style: none; font-size: 20px; padding: 15px 40px; cursor: pointer; min-height: 59px; }
.faq-page__question::-webkit-details-marker { display: none; }
.faq-page__question::after { content: '+'; margin-left: auto; font-size: 23px; color: #a18132; }
.faq-page__item[open] .faq-page__question::after { content: '−'; }
.faq-page__answer { padding: 26px 40px 29px; display: flex; align-items: flex-start; gap: 16px; font-family: 'Noto Sans CJK JP', 'Noto Sans JP', sans-serif; font-weight: 400; color: #4c2f01; font-size: 16px; line-height: normal; }
.faq-page__answer p { margin: 0; }
.faq-page__letter { display: inline-grid; place-items: center; width: 27px; height: 27px; flex-shrink: 0; position: relative; font-family: Helvetica, Arial, sans-serif; font-weight: 700; font-size: 20px; color: #f2f9f9; }
.faq-page__letter img { position: absolute; inset: 0; max-width: none; }
.faq-page__letter b { z-index: 1; font: inherit; }
.faq-page__letter--answer { color: #a18132; }
.faq-page__cta { margin-top: 53px; text-align: center; }
.root-page__cta-button { display: inline-flex; align-items: center; justify-content: center; gap: 26px; background: #c3600e; border-radius: 5px; min-height: 54px; min-width: 344px; padding: 7px 25px; color: #fff; font-size: 24px; font-weight: 500; letter-spacing: normal; line-height: 40.853px; text-decoration: none; }
.root-page__cta-button img { max-width: none; }
.local-article { padding-top: 70px; padding-bottom: 100px; min-height: 480px; }
.local-article h1 { font-size: clamp(26px, 4vw, 42px); }
.local-article__eyebrow { color: #a18132; }
.local-article p { font-size: 18px; line-height: 2; }
@media (max-width: 1100px) {
  .root-page__hero h1 { font-size: 48px; }
  .root-page__hero-photo { left: 48%; }
  .contact-form__row { grid-template-columns: 225px 1fr; gap: 16px; }
  .contact-form__label { font-size: 18px; gap: 12px; }
  .contact-form__radio-group { font-size: 15px; }
}
@media (max-width: 1000px) {
  .root-page__hero { height: 310px; display: flex; }
  .root-page__hero-photo { width: 56%; height: 230px; top: 20px; left: 44%; border-radius: 60px 0 0 0; }
  .root-page__hero-photo img { width: 430px; height: 286px; transform: translate(-125px, -35px); }
  .root-page--faq .root-page__hero-photo img { width: 440px; height: 293px; transform: translate(-160px, -20px); }
  .root-page__hero-inner { width: calc(100% - 40px); }
  .root-page__hero h1 { top: 97px; font-size: clamp(26px, 7vw, 34px); letter-spacing: .02em; max-width: 58%; }
  .root-page__breadcrumb { bottom: 15px; font-size: 14px; }
  .root-page__container { width: calc(100% - 40px); }
  .root-page__intro { font-size: 15px; line-height: 1.9; margin-top: 35px; }
  .contact-phone { margin: 32px auto 35px; padding: 19px 15px; }
  .contact-phone p { font-size: 15px; }
  .contact-phone__number { font-size: 27px !important; }
  .contact-subtitle { font-size: 19px; min-width: 0; width: 100%; padding: 17px 12px; border-radius: 12px; }
  .contact-line { padding: 35px 0 40px; }
  .contact-line p { font-size: 15px; line-height: 1.9; }
  .contact-line__qr { margin: 25px auto; }
  .contact-mail { padding: 35px 0 45px; }
  .contact-mail__inner { padding: 26px 20px; }
  .contact-mail__description, .contact-mail__required-note { font-size: 14px; line-height: 1.9; letter-spacing: 0; }
  .contact-mail__description { margin: 25px 0; }
  .contact-form { gap: 26px; }
  .contact-form__row { grid-template-columns: 1fr; gap: 11px; }
  .contact-form__label { font-size: 16px; gap: 13px; align-items: center; }
  .contact-badge { font-size: 16px; }
  .contact-form__label .contact-badge { margin-top: 0; }
  .contact-form__label-note { margin: 5px 0 0; font-size: 12px; }
  .contact-form__radio-group { font-size: 14px; gap: 12px; }
  .contact-form__consent { font-size: 14px; }
  .contact-form__submit { font-size: 20px; min-height: 58px; }
  .contact-form__demo-note { font-size: 12px; }
  .contact-confirm { padding: 22px; }
  .contact-confirm__summary { grid-template-columns: 1fr; gap: 6px; }
  .contact-confirm__summary dd { margin-bottom: 15px; }
  .faq-page { padding-bottom: 50px; }
  .faq-page__list { margin-top: 35px; gap: 15px; }
  .faq-page__question { font-size: 16px; padding: 16px; gap: 12px; align-items: flex-start; }
  .faq-page__answer { padding: 20px 16px; gap: 12px; font-size: 14px; }
  .faq-page__cta { margin-top: 35px; }
  .root-page__cta-button { font-size: 19px; min-width: 0; width: 100%; gap: 16px; }
}

/* Production-style fields: white background, visible border and clear focus. */
.contact-form input[type='text'],.contact-form input[type='email'],.contact-form textarea { background:#fff; border:1px solid #cbd0d6; border-radius:5px; color:#25303c; }
.contact-form input:focus,.contact-form textarea:focus { border-color:#a18132; outline:2px solid rgba(161,129,50,.35); outline-offset:2px; }

/* Supplied LINE QR: preserve square modules and white quiet zone. */
@media (max-width:1000px) {
 .root-page__hero-photo img,.root-page--faq .root-page__hero-photo img { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:50% 40%; transform:none; }
 .contact-form__consent { line-height:1.8; letter-spacing:0; }
 .contact-form__consent label { align-items:flex-start; }
 .contact-form__consent input { flex-shrink:0; }
 .contact-form__consent p { margin:8px 0 0; font-size:13px; line-height:1.8; text-wrap:balance; }
}
.contact-line__qr{display:block;width:240px;height:auto;max-width:100%;background:#fff;margin:26px auto 20px;}
.contact-line__qr img{display:block;width:100%;height:auto;max-width:none;}
.contact-line .line-add-button{display:flex;width:fit-content;max-width:100%;margin:0 auto;align-items:center;justify-content:center;padding:14px 24px;background:#06c755;color:#fff;font-weight:700;text-decoration:none;border-radius:6px;}
.contact-line__qr:focus-visible,.line-add-button:focus-visible{outline:3px solid #735518;outline-offset:4px;}
