/* Services and Contact: shared visual language for inner pages. */
.inner-banner { padding: 76px 0 64px; background: #f7f4eb; border-bottom: 1px solid #e6e7dd; }
.inner-banner h1 { max-width: 850px; color: #123c30; font-size: clamp(38px,5vw,62px); line-height: 1.12; letter-spacing: -1.8px; font-weight: 600; }
.inner-banner h1 span { color: #637968; font-weight: 400; }
.inner-banner .container > p:last-of-type { max-width: 560px; margin-top: 24px; color: #59645b; font-size: 15px; line-height: 1.9; }
.inner-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 50px; padding: 14px 23px; margin-top: 22px; border-radius: 28px; color: #fff; background: #123c30; font-size: 12px; font-weight: 500; transition: background-color .2s, transform .2s; }
.inner-button:hover { color: #123c30; background: #e8c677; transform: translateY(-2px); }
.inner-button span { font-size: 19px; }
.service-layout { display: grid; grid-template-columns: 235px minmax(0,1fr); gap: 50px; padding-top: 64px; padding-bottom: 64px; }
.service-jump { position: sticky; top: 110px; align-self: start; padding: 24px 20px; border: 1px solid #e3e7df; border-radius: 16px; }
.service-jump > p { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: #746035; margin-bottom: 14px; }
.service-jump a { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid #e3e7df; color: #123c30; font-size: 12px; line-height: 1.6; }
.service-jump a:hover { color: #746035; }
.service-details { display: grid; gap: 44px; }
.service-detail { overflow: hidden; border: 1px solid #e3e7df; border-radius: 20px; scroll-margin-top: 105px; background: #fff; }
.service-detail:target { border-color: #a88c45; }
.service-detail-photo { position: relative; background: #e6eadf; }
.service-detail-photo img { display: block; width: 100%; height: 310px; object-fit: cover; }
.service-detail-photo > span { position: absolute; bottom: 20px; left: 28px; border-radius: 20px; padding: 8px 15px; color: #123c30; background: #f7f4eb; font-size: 11px; }
.service-detail-body { padding: 32px; }
.service-detail h2 { font-size: clamp(27px,3vw,35px); line-height: 1.3; letter-spacing: -.8px; color: #123c30; margin-bottom: 15px; }
.service-detail-body .service-lead { font-size: 17px; font-weight: 500; color: #536952; margin-bottom: 14px; }
.service-detail-body > p { color: #59645b; font-size: 13px; line-height: 1.9; }
.service-detail-body ul { padding: 0; margin: 22px 0 0; }
.service-detail-body li { position: relative; padding: 10px 0 10px 20px; border-bottom: 1px solid #e9ece5; font-size: 12px; line-height: 1.8; color: #59645b; }
.service-detail-body li::before { content: ''; position: absolute; left: 0; top: 18px; width: 6px; height: 6px; border-radius: 50%; background: #a68a45; }
.service-steps { background: #f7f4eb; }
.steps-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 35px; margin-top: 35px; }
.steps-grid > div > span { color: #8c7540; font-size: 12px; }
.steps-grid h3 { color: #123c30; font-size: 19px; line-height: 1.4; margin: 15px 0 12px; }
.steps-grid p { color: #59645b; font-size: 13px; line-height: 1.9; }
.channel-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.channel-card { padding: 28px; border: 1px solid #e3e7df; border-radius: 18px; display: flex; flex-direction: column; }
.channel-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #f2efe3; color: #123c30; font-size: 21px; margin-bottom: 24px; }
.channel-card h2 { color: #123c30; font-size: 22px; margin-bottom: 15px; }
.channel-card p { color: #59645b; font-size: 13px; line-height: 1.9; margin-bottom: 20px; }
.channel-card > a { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 44px; margin-top: auto; color: #123c30; font-size: 12px; font-weight: 600; overflow-wrap: anywhere; }
.channel-card > a:hover { color: #746035; }
.opening-hours { margin-bottom: 15px; }
.opening-hours > div { display: flex; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1px solid #e9ece5; color: #59645b; font-size: 11px; }
.opening-hours dt { font-weight: 500; }
.opening-hours dd { margin: 0; }
.channel-card .channel-note { font-size: 11px; margin: 0; }
.visit-section { background: #f7f4eb; }
.visit-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; align-items: center; }
.visit-address { color: #123c30; font-size: 14px; line-height: 1.9; font-style: normal; margin-top: 22px; }
.map-note { max-width: 400px; font-size: 11px; line-height: 1.8; margin-top: 16px; color: #59645b; }
.branch-panel { padding: 32px; background: #fff; border: 1px solid #e3e7df; border-radius: 20px; }
.branch-panel h3 { color: #123c30; font-size: 24px; margin-bottom: 15px; }
.branch-panel > p, .branch-panel li p { color: #59645b; font-size: 12px; line-height: 1.8; }
.branch-panel ul { margin-top: 22px; }
.branch-panel li { display: flex; align-items: center; gap: 20px; padding: 18px 0; border-top: 1px solid #e3e7df; }
.branch-panel li > span { color: #8c7540; font-size: 11px; }
.branch-panel h4 { color: #123c30; font-size: 17px; margin-bottom: 4px; }
.branch-panel > a { display: inline-flex; align-items: center; min-height: 44px; gap: 20px; color: #123c30; font-size: 12px; font-weight: 600; margin-top: 10px; }
.enquiry-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 55px; }
.contact-faq details { border-bottom: 1px solid #dce3d8; padding: 0 0 18px; margin-bottom: 18px; }
.contact-faq summary { padding: 10px 0; cursor: pointer; color: #123c30; font-size: 15px; font-weight: 500; }
.contact-faq details p { margin-top: 12px; color: #59645b; font-size: 13px; line-height: 1.9; }
.inner-banner a:focus-visible, .service-layout a:focus-visible, .contact-channels a:focus-visible, .visit-section a:focus-visible, .contact-faq summary:focus-visible { outline: 3px solid #92722c; outline-offset: 5px; }
@media(max-width:991px) { .service-layout { grid-template-columns: 190px minmax(0,1fr); gap: 28px; } .channel-grid { grid-template-columns: 1fr 1fr; } .channel-card:last-child { grid-column: 1 / -1; } .visit-layout { gap: 35px; } }
@media(max-width:767px) {
 .inner-banner { padding: 50px 0; }
 .service-layout { display: block; padding-top: 32px; padding-bottom: 40px; }
 .service-jump { position: static; margin-bottom: 30px; }
 .service-detail-photo img { height: 240px; }
 .service-detail-body { padding: 24px; }
 .steps-grid, .visit-layout, .enquiry-layout { grid-template-columns: 1fr; gap: 30px; }
 .channel-grid { grid-template-columns: 1fr; }
 .branch-panel { padding: 26px; }
}
@media(prefers-reduced-motion:reduce) { .inner-button { transition: none; } .inner-button:hover { transform: none; } }