body{font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif}
.contact-page{background:#fafcf9;color:#193c2b;line-height:1.85}
.contact-page *{box-sizing:border-box}
.contact-wrap{max-width:1160px;margin:auto;padding:0 28px}
.contact-hero{position:relative;overflow:hidden;background:linear-gradient(112deg,#f1f7ed,#f8faf0 70%,#edf5e9);padding:25px 0 63px}
.contact-breadcrumb{display:flex;gap:12px;align-items:center;font-size:12px;color:#647765;margin-bottom:38px;position:relative;z-index:1}
.contact-eyebrow{display:block;letter-spacing:.18em;font-size:11px;font-weight:700;color:#657e63}
.contact-hero h1{font-size:clamp(32px,4vw,49px);font-weight:700;line-height:1.48;letter-spacing:.04em;margin:14px 0 18px;position:relative;z-index:1}
.contact-hero p{font-size:15px;color:#526855;position:relative;z-index:1;margin:0}
.hero-ball{position:absolute;width:280px;height:280px;border-radius:50%;right:calc((100vw - min(100vw,1160px))/2 + 38px);top:60px;background:radial-gradient(circle at 35% 28%,#fff 0%,#f5f8ee 52%,#c8d9b8 100%);box-shadow:inset -14px -15px 28px #c3d4b26b,0 15px 40px #27562e0a;opacity:.65}
.hero-ball:after{content:"";position:absolute;inset:10px;border-radius:50%;background:radial-gradient(circle,#688a4b18 2px,transparent 4px);background-size:15px 15px}
.contact-layout{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.7fr);gap:65px;padding-top:56px;padding-bottom:80px;align-items:start}
.contact-aside{padding-top:13px}
.contact-aside h2{font-size:27px;line-height:1.65;margin:12px 0 20px;letter-spacing:.03em}
.contact-aside>p{font-size:14px;color:#627362;margin-bottom:30px}
.contact-phone{border-top:1px solid #dce5d8;border-bottom:1px solid #dce5d8;padding:25px 0;margin:0 0 30px}
.contact-phone span,.contact-phone small{display:block;font-size:12px;color:#647965}
.contact-phone a{display:block;font-size:27px;font-weight:700;letter-spacing:.02em;color:#07552b;white-space:nowrap;margin:5px 0}
.contact-shop{background:#eef4e9;border-radius:12px;padding:23px;position:relative}
.contact-mini-icon{position:absolute;right:20px;top:16px;font-size:22px;color:#6a825e}
.contact-shop h3{font-size:16px;margin:0 0 10px;padding-right:17px}
.contact-shop p{font-size:13px;color:#526953;margin-bottom:17px}
.contact-shop a{font-size:13px;font-weight:700;border-bottom:1px solid #8da081;padding-bottom:5px;display:block}
.contact-shop a span{float:right}
.contact-form-panel{background:#fff;border:1px solid #e1e8dc;border-radius:16px;padding:36px 38px;box-shadow:0 12px 35px #294e2510;min-width:0}
.form-heading{padding-bottom:25px;margin-bottom:27px;border-bottom:1px solid #e9eee5}
.form-heading h2{font-size:23px;margin:7px 0 12px;line-height:1.5}
.form-heading>p{font-size:12px;color:#647365;margin:0}
.required-badge{display:inline-block;vertical-align:middle;font-size:10px;line-height:1.6;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:#eaf1e5;color:#426437;margin-left:7px;font-weight:600}
.form-heading .required-badge{margin-left:0;margin-right:4px}
.optional-label{font-size:11px;color:#899487;margin-left:7px;font-weight:400}
.contact-page form{margin:0;display:block}
.topic-field{border:0;padding:0;margin:0 0 25px;min-width:0}
.topic-field legend,.form-field>label{font-size:14px;font-weight:600;margin-bottom:10px;display:block;float:none;width:auto}
.topic-options{display:grid;grid-template-columns:1fr 1.5fr .75fr;gap:8px}
.topic-options label{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #dce5d8;border-radius:7px;padding:11px 7px;font-size:12px;line-height:1.5;cursor:pointer;min-height:47px}
.topic-options label:has(input:checked){border-color:#07552b;background:#f0f6eb;color:#07552b;font-weight:700}
.topic-options input{accent-color:#07552b;width:14px;height:14px;margin:0;flex:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-field{margin-bottom:23px;min-width:0}
.form-field>input,.form-field>textarea{display:block;width:100%;max-width:100%;border:1px solid #d9e2d5;border-radius:7px;background:#fcfdfb;padding:12px 14px;font:inherit;font-size:16px;line-height:1.6;color:#193c2b;box-shadow:none;height:auto;min-height:49px}
.form-field>textarea{resize:vertical;min-height:175px}
.form-field input::placeholder,.form-field textarea::placeholder{color:#8b9788;opacity:1;font-size:13px}
.form-field input:focus,.form-field textarea:focus{outline:2px solid #b7ce9c;outline-offset:2px;border-color:#07552b}
.form-field small,.field-hint{font-size:12px;color:#71806e;display:block;margin:8px 0 0;line-height:1.8}
.field-hint{margin:0 0 10px}
.form-bottom{border-top:1px solid #e9eee5;padding-top:22px;text-align:center}
.form-bottom p{font-size:12px;color:#6e7e6a;margin-bottom:17px}
.contact-submit{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:15px 23px;width:100%;max-width:330px;margin:0 auto;border:1px solid #07552b;border-radius:7px;background:#07552b;color:white;font:inherit;font-size:15px;font-weight:600;cursor:pointer;min-height:54px}
.contact-submit:hover{background:#063f22}
.preview-form-note{font-size:11px;color:#7a8575;margin-top:15px;display:block}
.contact-review h3{font-size:22px;margin-bottom:18px}
.contact-review p{font-size:13px;color:#647365}
.contact-review dl{margin:24px 0}
.contact-review dt{font-size:12px;font-weight:700;margin-top:18px;color:#647365}
.contact-review dd{margin:5px 0 0;padding-bottom:15px;border-bottom:1px solid #e9eee5;white-space:pre-wrap;overflow-wrap:anywhere}
.contact-review button{border:1px solid #07552b;background:white;color:#07552b;border-radius:7px;padding:12px 20px;cursor:pointer;font:inherit}
.contact-page a:focus-visible,.contact-page button:focus-visible,.topic-options label:has(input:focus-visible){outline:3px solid #b29500;outline-offset:4px}
.contact-review[hidden],.contact-page form[hidden]{display:none}
@media(max-width:950px){.contact-layout{gap:30px;grid-template-columns:minmax(0,.85fr) minmax(0,1.6fr)}.contact-form-panel{padding:27px 24px}.contact-aside h2{font-size:23px}.contact-phone a{font-size:23px}.hero-ball{width:220px;height:220px;right:40px;top:90px}}
@media(max-width:700px){.contact-wrap{padding-left:20px;padding-right:20px}.contact-hero{padding-top:18px;padding-bottom:35px}.contact-breadcrumb{margin-bottom:25px;font-size:11px}.contact-hero h1{font-size:34px}.contact-hero p{font-size:13px;max-width:290px}.hero-ball{width:145px;height:145px;right:-42px;top:94px;opacity:.32}.desktop-break{display:none}.contact-layout{grid-template-columns:1fr;gap:28px;padding-top:30px;padding-bottom:45px}.contact-aside{padding-top:0}.contact-aside h2{font-size:24px;margin-bottom:12px}.contact-aside h2 br{display:none}.contact-aside>p{margin-bottom:18px}.contact-phone{padding:15px 0;margin-bottom:18px}.contact-phone a{font-size:27px}.contact-shop{padding:19px}.contact-form-panel{padding:25px 18px;border-radius:12px}.form-heading h2{font-size:21px}.form-row{grid-template-columns:1fr;gap:0}.topic-options{grid-template-columns:1fr}.topic-options label{justify-content:flex-start;padding:12px}.topic-options input{margin-right:3px}.form-field{margin-bottom:21px}.contact-submit{max-width:none}.form-bottom p{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Supplied golf-course image; keep form fields on their white panel. */
.contact-hero{min-height:280px;background-color:#eff5eb;background-image:linear-gradient(90deg,rgba(255,255,255,.95),rgba(255,255,255,.82) 38%,rgba(255,255,255,.12) 76%,rgba(255,255,255,0)),url("contact-background.webp");background-size:cover;background-position:right bottom;background-repeat:no-repeat;padding:18px 0 36px}
.contact-hero .contact-breadcrumb{margin-bottom:20px}
.contact-hero h1{font-size:clamp(34px,3.1vw,44px);line-height:1.4;margin:10px 0 12px}
.contact-hero h1 br{display:none}
.contact-hero .hero-ball{display:none}
.contact-hero p{color:#344f3d;max-width:620px}
.contact-hero .contact-eyebrow,.contact-hero .contact-breadcrumb{color:#48624d}
@media(max-width:700px){
 .contact-hero{min-height:280px;padding:16px 0 32px;background-image:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.72) 56%,rgba(255,255,255,.08) 85%,rgba(255,255,255,0)),url("contact-background.webp");background-position:right bottom}
 .contact-hero .contact-breadcrumb{margin-bottom:16px}
 .contact-hero p{max-width:calc(100% - 24px)}
 .contact-hero h1{font-size:clamp(28px,8vw,32px)}
 .contact-hero h1 br{display:block}
}

/* Shop-specific contact guidance, using the supplied photograph. */
.contact-aside{padding-top:0}
.contact-shop{min-height:300px;padding:26px 24px 108px;background-color:#eef3e7;background-image:linear-gradient(180deg,rgba(247,250,241,.96),rgba(247,250,241,.87) 45%,rgba(247,250,241,.08) 78%),url("shop-contact-background.webp");background-position:right bottom;background-size:cover;background-repeat:no-repeat;border:1px solid #e1e8d9}
.contact-shop h3{font-size:18px;line-height:1.6;padding-right:0}
.contact-shop p{font-size:14px;line-height:1.9;max-width:36em}
.contact-shop a{display:inline-block;background:#07552b;color:white;border:1px solid #07552b;border-radius:6px;padding:10px 13px;font-size:13px;line-height:1.6}
.contact-shop a:hover{background:#063f22}
.contact-shop .contact-mini-icon{display:none}
@media(max-width:700px){.contact-shop{min-height:240px;padding:22px 20px 78px}.contact-shop p{max-width:32em;margin-bottom:15px}}
