/* Contact layout; width and typography follow the shared TOP stylesheet. */
.tg-contact-page{--tg-contact-title:clamp(37px,4.45vw,52px);--tg-contact-heading:25px;--tg-contact-copy:14px;--tg-contact-caption:17px;--tg-contact-label:15px;--tg-contact-submit:17px}
.tg-contact-page .tg-contact-banner{min-height:216px;display:flex;align-items:center;background:#f5f7e9 url('images/contact-banner.webp') right center/cover no-repeat}
.tg-contact-page .tg-contact-banner-inner{width:calc(100% - 152px);margin:0 auto;padding:34px 0}
.tg-contact-page .tg-contact-banner h1{font-size:var(--tg-contact-title);line-height:1.25;letter-spacing:.045em;font-weight:700;color:#082f2a}
.tg-contact-page .tg-contact-banner p{font-size:var(--tg-contact-caption);letter-spacing:.075em;line-height:1.4;margin-top:7px;color:#17463f}
.tg-contact-page .tg-contact-content{position:relative;isolation:isolate;background:#fff;overflow:hidden}
.tg-contact-page .tg-contact-sprout,.tg-contact-page .tg-contact-leaves{position:absolute;z-index:-1;bottom:0;pointer-events:none;object-fit:contain}
.tg-contact-page .tg-contact-sprout{width:280px;height:260px;left:0;object-position:left bottom}
.tg-contact-page .tg-contact-leaves{width:150px;height:190px;right:0;object-position:right bottom}
.tg-contact-page .tg-contact-shell{width:min(calc(100% - 60px),1024px);margin:0 auto;padding:40px 0 36px}
.tg-contact-page .tg-contact-intro{padding:0 28px}
.tg-contact-page .tg-contact-intro h2{font-size:var(--tg-contact-heading);line-height:1.35;letter-spacing:.035em;color:#082f2a}
.tg-contact-page .tg-contact-intro h2::after{content:"";display:block;width:62px;height:2px;background:var(--tg-orange);margin-top:16px}
.tg-contact-page .tg-contact-intro p{font-family:var(--tg-font-serif);font-size:var(--tg-contact-copy);line-height:1.55;margin-top:20px;color:#283b33}
.tg-contact-page .tg-contact-form{margin-top:16px}
.tg-contact-page .wpcf7{margin:0}
.tg-contact-page .wpcf7-form{margin:0;padding:0}
.tg-contact-page .tg-form-row{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:center;min-height:85px;padding:16px 28px;border-bottom:1px solid #e0e8dd}
.tg-contact-page .tg-form-row-message{align-items:start;border-bottom:0}
.tg-contact-page .tg-form-label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-family:var(--tg-font-serif);font-size:var(--tg-contact-label);line-height:1.5;font-weight:600;color:#143d34;cursor:pointer}
.tg-contact-page .tg-form-row-message .tg-form-label{padding-top:8px}
.tg-contact-page .tg-required{display:inline-block;border-radius:7px;background:#c52c16;color:#fff;font-family:Meiryo,sans-serif;font-size:11px;font-weight:600;line-height:1.4;padding:3px 7px;white-space:nowrap}
.tg-contact-page .wpcf7-form-control-wrap{display:block;min-width:0}
.tg-contact-page .wpcf7-form-control-wrap input,.tg-contact-page .wpcf7-form-control-wrap textarea{width:100%;max-width:100%;min-width:0;display:block;box-sizing:border-box;border:1px solid #8da69e;border-radius:6px;background:#fff;color:#142b20;font:400 16px/1.6 "Yu Gothic",Meiryo,sans-serif;padding:11px 14px;margin:0;box-shadow:none}
.tg-contact-page .wpcf7-form-control-wrap input{height:52px}
.tg-contact-page .wpcf7-form-control-wrap textarea{height:146px;min-height:146px;resize:vertical}
.tg-contact-page .wpcf7-form-control-wrap input:focus-visible,.tg-contact-page .wpcf7-form-control-wrap textarea:focus-visible{outline:2px solid var(--tg-green);outline-offset:3px}
.tg-contact-page .wpcf7-form-control-wrap .wpcf7-not-valid{border-color:#b94322}
.tg-contact-page .wpcf7-not-valid-tip{font-size:14px;line-height:1.7;margin-top:6px;color:#a82d18}
.tg-contact-page .tg-contact-privacy{padding:0 28px 0 252px;font-family:var(--tg-font-serif);font-size:12px;line-height:1.7;color:#36483e;margin-top:0}
.tg-contact-page .tg-submit-area{position:relative;display:flex;justify-content:center;align-items:center;min-height:52px;margin-top:16px}
.tg-contact-page .tg-form-submit{display:inline-flex;align-items:center;justify-content:center;gap:18px;width:200px;min-height:50px;padding:12px 22px;border:1px solid var(--tg-orange);border-radius:40px;background:var(--tg-orange);color:#fff;font:600 var(--tg-contact-submit)/1.5 "Yu Gothic",Meiryo,sans-serif;cursor:pointer;transition:background-color .18s}
.tg-contact-page .tg-form-submit .tg-icon{width:16px;height:16px}
.tg-contact-page .tg-form-submit:hover{background:#df5d17;border-color:#df5d17}
.tg-contact-page .tg-form-submit:disabled{opacity:.65;cursor:wait}
.tg-contact-page .tg-submit-area .wpcf7-spinner{position:absolute;left:calc(50% + 110px);margin:0}
.tg-contact-page .wpcf7 form .wpcf7-response-output{font-size:15px;line-height:1.7;margin:24px 28px 0;padding:14px 18px;border-radius:6px}
.tg-contact-page .tg-contact-form>p:empty{display:none}
.tg-contact-page .tg-footer{background:#f5f7ec}
@media(min-width:760px) and (max-width:1070px){
 .tg-contact-page{--tg-contact-title:37px;--tg-contact-heading:22px;--tg-contact-copy:10.5px;--tg-contact-caption:13px;--tg-contact-label:13px;--tg-contact-submit:13px}
 .tg-contact-page .tg-nav>a:last-child{display:block}
 .tg-contact-page .tg-contact-banner{min-height:184px}
 .tg-contact-page .tg-contact-banner-inner{width:calc(100% - 116px);padding:26px 0}
 .tg-contact-page .tg-contact-banner h1{line-height:1.2}
 .tg-contact-page .tg-contact-banner p{line-height:1.3}
 .tg-contact-page .tg-contact-shell{width:calc(100% - 44px);padding-top:32px}
 .tg-contact-page .tg-contact-intro{padding:0 16px}
 .tg-contact-page .tg-form-row{grid-template-columns:160px minmax(0,1fr);padding-left:16px;padding-right:16px;gap:20px}
 .tg-contact-page .tg-contact-privacy{padding-left:196px;padding-right:16px;font-size:10px}
}
@media(max-width:759px){
 .tg-contact-page{--tg-contact-title:30px;--tg-contact-heading:21px;--tg-contact-copy:11px;--tg-contact-caption:13px;--tg-contact-label:13px;--tg-contact-submit:12px}
 .tg-contact-page .tg-contact-banner{min-height:152px;background-position:72% center}
 .tg-contact-page .tg-contact-banner-inner{width:calc(100% - 44px);padding:26px 0}
 .tg-contact-page .tg-contact-banner h1{line-height:1.45;letter-spacing:.025em}
 .tg-contact-page .tg-contact-banner p{line-height:1.3;margin-top:5px}
 .tg-contact-page .tg-contact-shell{width:calc(100% - 36px);padding-top:28px;padding-bottom:32px}
 .tg-contact-page .tg-contact-intro{padding:0}
 .tg-contact-page .tg-contact-intro h2{line-height:1.4;letter-spacing:0}
 .tg-contact-page .tg-contact-intro h2::after{margin-top:12px;width:44px}
 .tg-contact-page .tg-contact-intro p{line-height:1.65;margin-top:18px}
 .tg-contact-page .tg-contact-form{margin-top:18px}
 .tg-contact-page .tg-form-row{display:block;padding:14px 0 18px;min-height:0}
 .tg-contact-page .tg-form-label{line-height:1.6;margin-bottom:9px;gap:12px}
 .tg-contact-page .tg-form-row-message .tg-form-label{padding-top:0}
 .tg-contact-page .wpcf7-form-control-wrap input{height:48px}
 .tg-contact-page .wpcf7-form-control-wrap textarea{height:156px;min-height:156px}
 .tg-contact-page .tg-contact-privacy{padding:0;font-size:10px;line-height:1.8}
 .tg-contact-page .tg-submit-area{min-height:48px;margin-top:22px}
 .tg-contact-page .tg-form-submit{min-height:48px;width:190px;padding:11px 20px;gap:14px}
 .tg-contact-page .tg-form-submit .tg-icon{width:12px;height:12px}
 .tg-contact-page .tg-submit-area .wpcf7-spinner{left:calc(50% + 102px)}
 .tg-contact-page .wpcf7 form .wpcf7-response-output{margin:20px 0 0;font-size:14px;padding:12px}
 .tg-contact-page .tg-contact-sprout{width:145px;height:135px;opacity:.28}
 .tg-contact-page .tg-contact-leaves{width:85px;height:108px;opacity:.3}
}
@media(max-width:360px){
 .tg-contact-page{--tg-contact-title:27px;--tg-contact-heading:17px;--tg-contact-copy:9px;--tg-contact-caption:11px;--tg-contact-submit:10.5px}
 .tg-contact-page .tg-contact-banner-inner{width:calc(100% - 38px)}
 .tg-contact-page .tg-contact-banner h1{line-height:1.25}
 .tg-contact-page .tg-contact-banner p{line-height:1.2}
 .tg-contact-page .tg-contact-shell{width:calc(100% - 34px)}
 .tg-contact-page .tg-contact-intro h2{line-height:1.3}
 .tg-contact-page .tg-contact-intro p{line-height:1.5}
 .tg-contact-page .tg-contact-privacy{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.tg-contact-page .tg-form-submit{transition:none}}
