:root {
  --ink: #332d27;
  --muted: #71685d;
  --forest: #183f34;
  --forest-deep: #123229;
  --olive: #303323;
  --olive-deep: #171a10;
  --legal: #0e0f0a;
  --gold: #a97b36;
  --warm: #c79b58;
  --paper: #fffefa;
  --cream: #f7f1e7;
  --ivory: #eee2ce;
  --line: #e2dacd;
  --line-green: #355a51;
  --line-color: #06c755;
  --shadow: 0 14px 38px rgba(55, 45, 30, .1);
  --radius: 10px;
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif; line-height: 1.65; }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .28; background-image: radial-gradient(rgba(77, 62, 41, .16) .55px, transparent .7px); background-size: 8px 8px; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 200; top: 8px; left: 8px; padding: 10px 16px; background: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.eyebrow, .hero-kicker { margin: 0 0 8px; color: var(--gold); font-size: .74rem; font-weight: 800; letter-spacing: .2em; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Noto Serif TC", "PMingLiU", Georgia, serif; line-height: 1.28; }
h1 { margin-bottom: 15px; font-size: clamp(2.5rem, 3.55vw, 3.35rem); letter-spacing: -.035em; }
h1 span { display: block; color: var(--ink); }
h2 { margin-bottom: 7px; font-size: clamp(1.55rem, 2.15vw, 2rem); letter-spacing: .04em; }
h3 { margin-bottom: 6px; font-size: 1.18rem; }
.lead { color: var(--muted); font-size: .96rem; }

.announcement { position: relative; z-index: 30; color: #4d4336; background: linear-gradient(90deg, #d2ad69, #f4ead8 30%, #e6cfaa 70%, #bd8b42); font-size: 1rem; }
.announcement-row { min-height: 42px; display: flex; align-items: center; gap: 12px; }
.announcement-title { font-weight: 800; }
.announcement-message { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.announcement-message > span { display: inline-block; opacity: 0; animation: announcement-breathe 12s ease-in-out infinite; }
@keyframes announcement-breathe {
  0% { opacity: 0; }
  4.1667%, 87.5% { opacity: 1; }
  91.6667%, 100% { opacity: 0; }
}
.hero-controls { display: flex; align-items: center; gap: 7px; }
.hero-controls button { width: 34px; height: 34px; border: 1px solid currentColor; border-radius: 50%; color: inherit; background: transparent; cursor: pointer; }

.site-header { position: sticky; top: 0; z-index: 25; border-bottom: 1px solid rgba(70,60,45,.13); background: rgba(255,253,248,.94); backdrop-filter: blur(14px); }
.header-row { min-height: 84px; display: flex; align-items: center; gap: 28px; }
.brand { width: 228px; flex: 0 0 auto; }
.brand-logo { width: 100%; height: auto; aspect-ratio: 800 / 253; object-fit: contain; }
.site-nav { margin-left: auto; }
.nav-list { display: flex; align-items: center; gap: clamp(15px, 2.5vw, 34px); margin: 0; padding: 0; list-style: none; }
.nav-list a { display: grid; text-align: center; line-height: 1.15; }
.nav-list strong { font-size: 1.08rem; }
.nav-list small { margin-top: 5px; color: #9a8f7c; font-size: .68rem; letter-spacing: .14em; }
.nav-list a:hover strong { color: var(--gold); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.header-actions > .line-button { display: none; }
.header-search { width: 168px; height: 42px; display: flex; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 23px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
.header-search:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(169,123,54,.12); }
.header-search input { min-width: 0; width: 100%; height: 100%; padding: 0 4px 0 14px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: .82rem; }
.header-search input::placeholder { color: #8f8577; opacity: 1; }
.header-search button { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; padding: 0; border: 0; color: var(--forest); background: transparent; cursor: pointer; }
.header-search svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; }
.icon-button, .menu-button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.icon-button { font-size: .75rem; }
.menu-button { display: none; }

.button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 10px 23px; border: 1px solid transparent; border-radius: 24px; font-weight: 800; line-height: 1.1; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: #fff; background: linear-gradient(135deg, #b58b49, #92672c); box-shadow: 0 9px 20px rgba(146,103,44,.2); }
.button-secondary { color: #fff; background: var(--forest); }
.button-outline { border-color: var(--forest); color: var(--forest); background: transparent; }
.button-outline-light { border-color: rgba(255,255,255,.65); color: #fff; }
.button-light { color: var(--forest-deep); background: #fff; }
.button-small { min-height: 40px; padding: 9px 17px; font-size: .84rem; }
.line-button { gap: 7px; padding-inline: 14px 17px; color:#fff; background:var(--line-color); box-shadow:0 10px 24px rgba(6,199,85,.22); }
.line-button-logo { width: 20px; height: 20px; flex: 0 0 20px; color: #fff; }
.text-link { padding: 0; border: 0; color: var(--gold); background: transparent; font-weight: 800; text-decoration: underline; text-underline-offset: 5px; cursor: pointer; }

.hero { position: relative; min-height: 400px; overflow: hidden; border-bottom: 1px solid var(--line); background: var(--paper); }
.hero-grid { position: relative; min-height: 400px; }
.hero-copy { position: relative; z-index: 4; width: 36%; max-width: 430px; padding: 66px 18px 58px 0; transform: translateX(60px); }
.hero-message { min-height: 200px; opacity: 1; transform: translateY(0); transition: opacity .45s ease, transform .45s ease; }
.hero-message.is-swapping { opacity: 0; transform: translateY(7px); }
.hero-copy h1 { min-height: 2.55em; margin-bottom: 17px; font-family: "Microsoft JhengHei", "Noto Sans TC", system-ui, sans-serif; font-size: clamp(2.5rem, 3.25vw, 2.8rem); font-weight: 900; line-height: 1.18; letter-spacing: -.05em; text-shadow: .35px 0 currentColor, -.35px 0 currentColor; }
.hero-copy h1 span { display: block; white-space: nowrap; }
.hero-copy .hero-kicker { font-size: 1rem; }
.hero-copy .lead { max-width: 360px; line-height: 1.72; }
.hero-actions, .contact-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 21px; }
.hero-actions .button-primary { color: #fff; background: linear-gradient(135deg, #b58b49, #92672c); box-shadow: 0 9px 20px rgba(146,103,44,.2); }
.hero-actions .line-button { background:var(--line-color); box-shadow:0 10px 24px rgba(6,199,85,.22); }
.hero-actions .button-outline { border-color: var(--forest); background: rgba(255,254,250,.88); }
.hero-visual { position: absolute; z-index: 1; inset: 0 calc((100vw - min(100vw - 40px, var(--container))) / -2); overflow: hidden; }
.hero-visual::before { content: ""; position: absolute; z-index: 2; top: 0; bottom: 0; left: clamp(-420px, calc(-1307px + 86.6vw), -200px); height: 100%; width: auto; aspect-ratio: 4000 / 1821; pointer-events: none; background: var(--paper); -webkit-mask-image: url("../images/hero-splashed-ink-user-v7.png"); mask-image: url("../images/hero-splashed-ink-user-v7.png"); -webkit-mask-position: left center; mask-position: left center; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; }
.hero-slides, .hero-slide { position: absolute; inset: 0; margin: 0; }
.hero-slide { opacity: 0; transition: opacity .7s ease; }
.hero-slide.is-active { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.hero-slide-crop-alt img { object-position: 62% center; }
.eyebrow-cn { font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif; font-size:.78rem; font-weight:600; line-height:1.5; letter-spacing:.08em; }
.hero-controls { position: relative; z-index: 5; width: max-content; max-width: 100%; margin-top: 13px; padding: 5px 8px; border: 1px solid rgba(24,63,52,.28); border-radius: 30px; color: var(--forest); background: rgba(255,254,250,.82); box-shadow: 0 7px 18px rgba(51,45,39,.08); backdrop-filter: blur(7px); }
.hero-controls > button { width: 29px; height: 29px; }
.hero-counter { min-width: 51px; text-align: center; font-size: .72rem; font-variant-numeric: tabular-nums; }
.hero-dots { display: flex; align-items: center; gap: 6px; }
.hero-controls .hero-dot { width: 8px; height: 8px; min-width: 8px; padding: 0; border: 1px solid rgba(24,63,52,.75); background: transparent; }
.hero-controls .hero-dot.is-active { background: var(--forest); box-shadow: 0 0 0 2px rgba(24,63,52,.12); }

.section { padding: 18px 0; }
.section-soft { background: var(--cream); }
.section-paper { border-block: 1px solid var(--line); background: var(--paper); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.section-head p { max-width: 710px; margin-bottom: 0; color: var(--muted); }
.section-head.centered { display: block; text-align: center; }
.section-head.centered p { margin-inline: auto; }
.section-head.centered .text-link { margin-top: 16px; }

.ornament-title { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0 0 9px; font-size: clamp(1.35rem, 1.75vw, 1.7rem); letter-spacing: .09em; text-align: center; }
.ornament-title::before, .ornament-title::after { content: ""; width: 70px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold)); }
.ornament-title::after { background: linear-gradient(90deg, var(--gold), transparent); }

.promise-section { padding: 9px 0; border-bottom: 1px solid var(--line); background: #fffdf8; }
.promise-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.promise-card { min-height: 96px; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.9); box-shadow: 0 6px 15px rgba(61,48,31,.045); }
.promise-icon { flex: 0 0 42px; width: 42px; height: 42px; display: grid; place-items: center; color: var(--gold); }
.promise-icon svg { width: 39px; height: 39px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.promise-card h3 { margin-bottom: 5px; font-size: 1.05rem; }
.promise-card p { margin: 0; color: var(--muted); font-size: .78rem; }

.purpose-panel { padding: 10px 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.8); box-shadow: 0 10px 24px rgba(61,48,31,.05); }
.purpose-title { margin-bottom: 9px; }
.purpose-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.purpose-card { min-height: 184px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; overflow: hidden; padding: 12px 14px 4px; border: 1px solid var(--line); border-radius: 8px; background: #fff; text-align: center; box-shadow: 0 5px 12px rgba(73,58,38,.05); transition: transform .2s ease, box-shadow .2s ease; }
.purpose-card:hover { transform: translateY(-4px); box-shadow: 0 12px 22px rgba(73,58,38,.1); }
.purpose-card h3 { margin-bottom: 4px; font-size: 1.08rem; }
.purpose-visual { width: 100%; height: 109px; flex: 0 0 109px; display: block; margin: auto 0 0; background-repeat: no-repeat; background-size: contain; background-position: center bottom; }
.purpose-visual-1 { background-image: url("../images/generated/purpose-friends-v3.webp"); }
.purpose-visual-2 { background-image: url("../images/generated/purpose-company-event-v3.webp"); }
.purpose-visual-3 { background-image: url("../images/generated/purpose-parent-child-v3.webp"); }
.purpose-visual-4 { background-image: url("../images/generated/purpose-birthday-v3.webp"); }
.purpose-visual-5 { background-image: url("../images/generated/purpose-team-building-v3.webp"); }
.purpose-visual-6 { background-image: url("../images/generated/purpose-family-gathering-v3.webp"); }
.purpose-card p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }

.updating-main { min-height: calc(100vh - 170px); padding: clamp(34px, 6vw, 76px) 0; background: radial-gradient(circle at 78% 18%, rgba(199,173,119,.12), transparent 30%), var(--paper); }
.updating-shell { display: grid; grid-template-columns: minmax(260px, .75fr) minmax(440px, 1.25fr); align-items: center; gap: clamp(26px, 5vw, 74px); }
.updating-figure { align-self: end; margin: 0; text-align: center; }
.updating-figure img { width: min(100%, 405px); height: auto; display: block; margin: 0 auto; mix-blend-mode: multiply; }
.updating-copy h1 { margin: 0 0 14px; color: var(--green-deep); font-family: var(--serif); font-size: clamp(2.4rem, 5vw, 4.8rem); line-height: 1.12; letter-spacing: .08em; }
.updating-copy > p { max-width: 650px; margin: 0 0 18px; color: var(--ink); font-size: clamp(1rem, 1.55vw, 1.28rem); line-height: 1.85; }
.updating-note { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 24px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.72); color: var(--muted); }
.updating-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 28px; }
.updating-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 760px; }
.updating-link { padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.8); color: var(--ink); text-align: center; }
.updating-link strong { display: block; margin-bottom: 3px; color: var(--green-deep); font-size: 1rem; }
.updating-link span { color: var(--muted); font-size: .8rem; }
.updating-footer { padding: 18px 0; background: var(--green-deep); color: rgba(255,255,255,.82); text-align: center; font-size: .82rem; }

.route-section { padding: 17px 0; background: var(--paper); }

.route-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.route-card { position: relative; min-height: 232px; display: flex; align-items: end; overflow: hidden; border-radius: 9px; color: #fff; background-position: center; background-size: cover; box-shadow: var(--shadow); }
.route-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,23,19,.06) 20%, rgba(9,31,26,.91) 100%); }
.route-card.park { background-image: url("../images/generated/park-forest-v1.webp"); }
.route-card.mobile { background-image: url("../images/generated/mobile-setup-v1.webp"); }
.route-copy { position: relative; z-index: 1; padding: 25px; }
.route-label { display: inline-flex; padding: 5px 10px; margin-bottom: 12px; border: 1px solid rgba(255,255,255,.6); font-size: .7rem; letter-spacing: .16em; }
.route-card h3 { font-size: 1.5rem; }
.route-card p { max-width: 520px; color: rgba(255,255,255,.86); }
.feature-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 17px; }
.feature-chips span { padding: 5px 10px; background: rgba(255,255,255,.16); font-size: .76rem; }

.activity-stage { position: relative; padding-inline: 24px; }
.activity-track { display: flex; gap: 14px; overflow-x: auto; padding: 3px 4px 16px; scroll-snap-type: x mandatory; scrollbar-width: none; }
.activity-track::-webkit-scrollbar { display: none; }
.carousel-side { position: absolute; z-index: 3; top: 42%; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; padding: 0 0 3px; border: 1px solid rgba(24,63,52,.28); border-radius: 50%; color: var(--forest); background: rgba(255,255,255,.78); box-shadow: 0 7px 16px rgba(20,45,36,.16); backdrop-filter: blur(4px); font-family: Arial, sans-serif; font-size: 3rem; font-weight: 300; line-height: .75; cursor: pointer; transform: translateY(-50%); }
.carousel-side:hover { color: var(--gold); background: rgba(255,255,255,.96); }
.carousel-side-prev { left: 0; }
.carousel-side-next { right: 0; }
.activity-card { min-width: calc((100% - 56px) / 5); overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); scroll-snap-align: start; box-shadow: 0 5px 15px rgba(48,44,38,.065); transition: transform .2s ease; }
.activity-card:hover { transform: translateY(-5px); }
.activity-media { aspect-ratio: 1.35 / 1; overflow: hidden; background: #d7c8ad; }
.activity-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.activity-card:hover img { transform: scale(1.04); }
.activity-copy { padding: 11px 13px 13px; }
.activity-copy span { color: var(--gold); font-size: .62rem; font-weight: 800; letter-spacing: .15em; }
.activity-copy p { margin: 0; color: var(--muted); font-size: .78rem; }
.education-section { position: relative; overflow: hidden; border-block: 1px solid var(--line); background: #fbf8f1; }
.education-section::before, .education-section::after { content: ""; position: absolute; width: 240px; height: 240px; border: 1px solid rgba(176,132,64,.12); border-radius: 48% 52% 55% 45%; pointer-events: none; }
.education-section::before { top: -150px; left: -95px; box-shadow: 0 0 0 24px rgba(176,132,64,.045), 0 0 0 48px rgba(176,132,64,.025); }
.education-section::after { right: -125px; bottom: -175px; box-shadow: 0 0 0 26px rgba(176,132,64,.045), 0 0 0 52px rgba(176,132,64,.025); }
.education-section .container { position: relative; z-index: 1; }
.section-intro { max-width: 760px; margin: -8px auto 6px; color: var(--muted); font-size: .86rem; text-align: center; }
.education-panel { position: relative; margin-top: 12px; padding: 28px 10px 9px; border: 1px solid rgba(166,125,61,.32); border-radius: 14px; background: rgba(255,255,255,.72); box-shadow: 0 7px 22px rgba(81,66,43,.045); }
.education-panel::before { content: ""; position: absolute; top: 18px; right: 34px; left: 34px; height: 1px; background: linear-gradient(90deg, transparent, rgba(166,125,61,.38) 9%, rgba(166,125,61,.38) 91%, transparent); }
.education-audience { position: absolute; top: 18px; left: 50%; margin: 0; padding: 0 15px; color: #6a6258; background: #fdfbf7; font-size: .72rem; letter-spacing: .06em; transform: translate(-50%,-50%); white-space: nowrap; }
.education-audience span { margin-right: 7px; color: #8c652c; font-weight: 800; }
.education-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.education-card { position: relative; min-height: 194px; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; padding: 0 14px 13px; border: 0; border-right: 1px solid rgba(166,125,61,.23); background: transparent; text-align: center; }
.education-card:last-child { border-right: 0; }
.education-card::before { content: ""; position: absolute; top: -15px; left: 50%; width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: #b48742; box-shadow: 0 0 0 1px rgba(166,125,61,.3); transform: translateX(-50%); }
.education-card:hover { background: linear-gradient(180deg, rgba(243,233,216,.5), transparent 78%); }
.education-card-priority { background: linear-gradient(180deg, rgba(231,207,165,.34), rgba(255,255,255,.1) 82%); }
.education-priority { position: absolute; z-index: 1; top: 7px; right: 9px; padding: 3px 7px; border-radius: 12px; color: #fff; background: #a87830; font-size: .62rem; font-weight: 800; letter-spacing: .08em; }
.education-visual { width: 100%; height: 116px; flex: 0 0 116px; display: block; margin-bottom: 7px; background-repeat: no-repeat; background-size: contain; background-position: center; }
.education-visual-0 { background-image: url("../images/generated/education-vacation-program-v3.webp"); }
.education-visual-1 { background-image: url("../images/generated/education-field-trip-v3.webp"); }
.education-visual-2 { background-image: url("../images/generated/education-preschool-nature-v3.webp"); }
.education-visual-3 { background-image: url("../images/generated/education-reptile-center-v3.webp"); }
.education-visual-4 { background-image: url("../images/generated/education-aquaponics-v3.webp"); }
.education-card h3 { margin-bottom: 4px; }
.education-card p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.education-support { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 12px; margin: 4px 14px 0; padding: 8px 14px 0; border-top: 1px solid rgba(166,125,61,.23); color: #625a50; font-size: .72rem; }
.education-support strong { color: #8c652c; letter-spacing: .1em; }
.education-support em { margin-left: auto; color: #23483d; font-style: normal; font-weight: 800; }

.service-trust-wrap { overflow: hidden; background: var(--paper); }
#services { min-height: 184px; }
#services .container { position: relative; padding-right: 185px; }
.service-instructor-stage { position: absolute; z-index: 3; top: 0; right: 4px; width: 176px; height: 166px; display: flex; align-items: flex-end; justify-content: center; overflow: hidden; pointer-events: none; }
.service-instructor-stage img { position: absolute; bottom: 0; left: 50%; width: auto; height: 166px; max-width: none; transform: translateX(-50%); }
.service-instructor-body { z-index: 1; }
.service-instructor-arm { z-index: 2; transform-origin: 35.2% 65.5%; animation: instructor-arm-cycle 8s ease-in-out infinite; will-change: transform; }
@keyframes instructor-arm-cycle {
  0% { transform: translateX(-50%) rotate(-10deg); }
  18.75%, 81.25% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-10deg); }
}
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 10px 8px; border-radius: 9px; background: #f1e7d8; }
.service-card { min-height: 90px; display: flex; align-items: center; gap: 11px; padding: 11px 15px; border-left: 1px solid #d5c4aa; text-align: left; }
.service-card:last-child { border-right: 1px solid var(--line); }
.service-icon { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border: 1px solid #a97b36; border-radius: 50%; color: #815d26; }
.service-icon svg { width: 29px; height: 29px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.service-icon-shapes { border: 0; border-radius: 0; }
.service-card h3 { margin-bottom: 4px; font-size: 1.05rem; }
.service-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.section-dark { position: relative; overflow: hidden; color: var(--ink); background: var(--paper); }
.section-dark::before { content: ""; position: absolute; inset: 0; opacity: .28; background: linear-gradient(90deg, transparent, #f1e6d4 50%, transparent); }
.section-dark .container { position: relative; }
.section-dark .section-head p { color: var(--muted); }
.trust-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-block: 1px solid var(--line); }
.trust-item { min-height: 100px; display: flex; align-items: center; gap: 10px; padding: 13px 11px; border-right: 1px solid var(--line); text-align: left; }
.trust-item:last-child { border-right: 0; }
.trust-icon { width: 48px; height: 48px; flex: 0 0 48px; display: grid; place-items: center; color: #86612c; }
.trust-icon svg { width: 42px; height: 42px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.trust-item strong { display: block; color: #2e3928; font: 700 1rem "Noto Serif TC", serif; }
.trust-item div > span { display: block; margin-top: 5px; color: #625a50; font-size: .72rem; line-height: 1.55; }
.aed-home-section { padding: 20px 0 34px; background: var(--paper); }
.aed-home-card { display: grid; grid-template-columns: 78px minmax(0,1fr) auto; align-items: center; gap: 22px; padding: 24px 28px; border: 1px solid #d8cbb8; border-radius: 18px; color: #2e3928; background: linear-gradient(120deg,#fff 0%,#fff8f4 62%,#f5e3df 100%); box-shadow: 0 13px 30px rgba(66,47,35,.07); text-decoration: none; transition: transform .2s ease,box-shadow .2s ease; }
.aed-home-card:hover { transform: translateY(-2px); box-shadow: 0 17px 36px rgba(66,47,35,.11); }
.aed-home-mark { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: transparent; }
.aed-home-mark img { display:block; width:100%; height:100%; border-radius:inherit; }
.aed-home-copy { display: grid; gap: 5px; }
.aed-home-copy small { color: #a36a2e; font-size: .67rem; font-weight: 900; letter-spacing: .14em; }
.aed-home-copy strong { font-size: 1.2rem; }
.aed-home-copy > span { color: #6c6257; font-size: .86rem; line-height: 1.6; }
.aed-home-link { color: #8e292d; font-size: .85rem; font-weight: 900; white-space: nowrap; }

.contact-section { position: relative; overflow: hidden; padding: 16px 0 20px; color: #fff; background-color: #263024; background-image: linear-gradient(180deg, rgba(42,52,38,.08), #222a20 100%), url("../images/footer-contact-spray.png"); background-repeat: no-repeat; background-position: center center; background-size: cover; }
.contact-section::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #263024 0, transparent 7%, transparent 93%, #263024 100%); pointer-events: none; }
.contact-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 178px 330px minmax(0, 1fr); gap: 14px; align-items: stretch; }
.contact-copy { grid-column: 1 / -1; text-align: center; }
.contact-copy h2 { margin-bottom: 2px; font-size: clamp(1.5rem, 2.05vw, 1.9rem); letter-spacing: .08em; }
.qr-card { width: 178px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; border: 1px solid rgba(255,255,255,.72); border-radius: 17px; color: #4c463d; background: rgba(255,253,248,.97); box-shadow: 0 9px 22px rgba(10,16,8,.2); }
.qr-card img { width: 142px; overflow: hidden; margin: 0 auto; border-radius: 10px; }
.qr-card > span { margin-top: 5px; font-size: .7rem; font-weight: 800; letter-spacing: .05em; }
.contact-links { display: grid; grid-template-rows: repeat(2, 1fr); gap: 10px; }
.contact-action { min-height: 78px; display: grid; grid-template-columns: 48px minmax(0,1fr) 20px; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid rgba(255,255,255,.62); border-radius: 17px; color: #fff; background: rgba(255,255,255,.1); box-shadow: 0 8px 20px rgba(10,16,8,.14); backdrop-filter: blur(3px); }
.contact-action:hover { color: #fff; background: rgba(255,255,255,.16); transform: translateY(-1px); }
.contact-action-icon { width: 44px; height: 44px; display: grid; place-items: center; flex: 0 0 44px; color: transparent; background-color: transparent; background-position: center; background-size: contain; background-repeat: no-repeat; font-size: 0; }
.line-mark { background-image: url("../images/brand-official/line-brand-icon.png"); }
.facebook-mark { background-image: url("../images/brand-official/facebook-logo-primary.png"); }
.contact-action strong, .contact-action small { display: block; }
.contact-action strong { font-size: 1rem; letter-spacing: .04em; }
.contact-action small { margin-top: 3px; color: rgba(255,255,255,.7); font-size: .72rem; }
.contact-action em { font-style: normal; font-size: 1.15rem; }
.map-card { min-height: 220px; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(250px,.85fr); overflow: hidden; padding: 10px; border: 1px solid rgba(255,255,255,.72); border-radius: 17px; color: var(--ink); background: rgba(255,253,248,.97); box-shadow: 0 9px 22px rgba(10,16,8,.2); }
.map-embed { min-width: 0; min-height: 200px; overflow: hidden; border-radius: 11px; background: #e8e2d8; }
.map-embed iframe { width: 100%; height: 100%; min-height: 200px; display: block; border: 0; }
.map-details { display: flex; flex-direction: column; justify-content: center; padding: 14px 17px; }
.map-details strong, .map-details > span { display: block; }
.map-details strong { font: 700 .98rem "Noto Serif TC", serif; }
.map-details > span { margin-top: 4px; color: var(--muted); font-size: .78rem; }
.map-details .map-route-notice { margin-top: 10px; color: #8c332d; font-size: .78rem; font-style: normal; font-weight: 760; line-height: 1.55; }
.map-details .map-action { align-self: flex-start; margin-top: 14px; padding: 7px 14px; border-radius: 18px; color: #fff; background: var(--olive); font-weight: 800; }

.site-footer { position: relative; isolation: isolate; overflow: hidden; padding: 18px 0 0; color: #d8d0c3; background: #222a20; }
.site-footer::before { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .16; background: url("../images/footer-mist-overlay.png") center bottom / cover no-repeat; filter: blur(3px); }
.footer-grid { position: relative; display: grid; grid-template-columns: minmax(270px,1fr) minmax(390px,1.35fr) minmax(190px,.7fr); align-items: start; gap: 24px; }
.footer-logo-lockup { position: relative; width: 240px; max-width: 100%; }
.footer-logo-lockup img { width: 100%; height: auto; aspect-ratio: 800 / 253; object-fit: contain; opacity: 1; }
.footer-logo-lockup .footer-logo-white { position: absolute; inset: 0; filter: brightness(0) invert(1); clip-path: inset(0 0 0 26%); }
.footer-intro .footer-brand-contact { margin: 8px 0 0 64px; }
.social-links { display: flex; flex-wrap: nowrap; gap: 15px; margin-left: 0; }
.social-links a { width: 34px; height: 34px; display: grid; place-items: center; border: 0; border-radius: 0; color: #fff; background-color: transparent; transition: transform .2s ease, opacity .2s ease; }
.social-links a:hover { color: #fff; border-color: transparent; background-color: transparent; opacity: .78; transform: translateY(-2px); }
.social-links svg { width: 30px; height: 30px; display: block; fill: currentColor; stroke: none; }
.social-links a[data-track="facebook_click"] { background-image: url("../images/brand-official/facebook-logo-secondary.png"); background-position: center; background-size: 30px 30px; background-repeat: no-repeat; }
.social-links a[data-track="facebook_click"] svg { display: none; }
.social-links a[data-track="instagram_click"] svg, .social-links a[data-track="youtube_click"] svg { width: 34px; height: 34px; }
.social-links a[data-track="line_click"] { position: relative; width: 36px; }
.social-links a[data-track="line_click"] svg { display: block; width: 36px; height: 36px; }
.social-links a[data-track="line_click"]::after { content: "LINE"; position: absolute; left: 50%; top: 43%; color: #222a20; font: 900 7px/1 Arial, sans-serif; letter-spacing: -.55px; transform: translate(-50%, -50%); pointer-events: none; }
.social-links rect, .social-links circle { fill: none; stroke: currentColor; stroke-width: 1.8; }
.social-links .social-dot { fill: currentColor; stroke: none; }
.social-links .social-cutout { fill: #222a20; }
.social-links .social-line-mark { display: none; }
.social-links a:hover .social-cutout { fill: #303a2d; }
.social-links a[data-track="line_click"]:hover::after { color: #303a2d; }
.footer-links a:hover { color: #fff; }
.footer-title { color: #fff; font-size: 1rem; font-weight: 800; }
.footer-nav-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding-top: 32px; }
.footer-links { margin: 6px 0 0; padding: 0; list-style: none; }
.footer-links li { margin: 3px 0; line-height: 1.45; }
.footer-links a, .footer-links button { color: #c1baae; font-size: .86rem; text-decoration: none; }
.footer-contact { color: #aaa898; font-size: .86rem; }
.footer-social-column { min-width: 0; display: flex; align-self: end; align-items: flex-end; padding-bottom: 9px; }
.footer-legal { position: relative; margin-top: 16px; background: var(--legal); }
.footer-bottom { padding: 10px 0; color: #9d9e91; font-size: .72rem; text-align: center; }

.mobile-dock { position: fixed; z-index: 35; right: 0; bottom: 0; left: 0; display: none; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d8cdbb; background: rgba(255,252,245,.97); box-shadow: 0 -8px 24px rgba(31,38,27,.12); backdrop-filter: blur(12px); }

/* APPR MOBILE / shared inner-page system */
.inner-page { background: #fbf8f1; }
.inner-page .site-header { position: sticky; top: 0; z-index: 30; }
.inner-breadcrumb { padding: 14px 0; color: #766f64; font-size: .82rem; }
.inner-breadcrumb a { color: #3d4938; text-decoration: none; }
.inner-ribbon { border-block: 1px solid #e5dac9; background: rgba(247,241,231,.96); }
.inner-ribbon-row { min-height: 72px; display: grid; grid-template-columns: minmax(220px,.8fr) minmax(600px,2fr); align-items: center; gap: 28px; }
.inner-ribbon-title { margin: 0; font-family: Georgia,"Times New Roman","Noto Serif TC",serif; font-size: clamp(1.55rem,2.2vw,2.15rem); letter-spacing: .04em; }
.inner-section-nav { display: grid; grid-template-columns: repeat(9,1fr); gap: 3px; }
.inner-section-nav a { padding: 13px 8px; border-radius: 8px; color: #5b4d3b; font-weight: 700; text-align: center; text-decoration: none; }
.inner-section-nav a:hover,.inner-section-nav a[aria-current="page"] { color: #fff; background: #35412f; }
.inner-hero { position: relative; min-height: 500px; display: grid; align-items: center; overflow: hidden; border-bottom:6px solid #b98539; background: #263222; }
.inner-hero::before { content:""; position:absolute; z-index:1; right:-7vw; bottom:-125px; width:390px; height:390px; border:1px dashed rgba(239,215,168,.58); border-radius:50%; box-shadow:0 0 0 42px rgba(239,215,168,.06),0 0 0 84px rgba(239,215,168,.035); }
.inner-hero::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg,rgba(15,23,14,.82) 0%,rgba(20,29,18,.42) 55%,rgba(22,29,20,.08) 82%); }
.inner-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.inner-hero-slides { z-index:0; }
.inner-hero-slides .hero-slide { z-index:0; opacity:0; transition:opacity 2s ease; }
.inner-hero-slides.is-initial-render .hero-slide { transition:none; }
.inner-hero-slides .hero-slide.is-active { z-index:1; opacity:1; }
.inner-hero-slides .hero-slide.is-leaving { z-index:0; opacity:1; }
.inner-hero-slides .hero-slide.is-blind-transition > img { opacity:0; }
.hero-blinds { position:absolute; z-index:2; inset:0; display:grid; grid-template-columns:repeat(var(--blind-count),1fr); overflow:hidden; }
.hero-blind { position:relative; overflow:hidden; opacity:0; transform:scaleX(0); transform-origin:right center; animation:hero-blind-open 2.1s cubic-bezier(.22,.72,.25,1) forwards; animation-delay:calc(var(--blind-order) * 36ms); }
.hero-blind img { position:absolute; top:0; left:calc(var(--blind-index) * -100%); width:calc(var(--blind-count) * 100%); height:100%; max-width:none; object-fit:cover; object-position:center 52%; }
.hero-slide-crop-alt .hero-blind img { object-position:62% center; }
@keyframes hero-blind-open { 0% { opacity:0; transform:scaleX(0); } 18% { opacity:1; } 100% { opacity:1; transform:scaleX(1); } }
.inner-hero-content { position:relative; z-index:2; width:min(92%,570px); margin-left:max(4vw,calc((100vw - var(--container))/2)); padding:38px 40px 34px; border:1px solid rgba(255,255,255,.5); border-radius:18px 18px 72px 18px; color:#fff; background:linear-gradient(145deg,rgba(24,34,22,.92),rgba(24,34,22,.73)); box-shadow:0 24px 54px rgba(7,12,6,.25); backdrop-filter:blur(8px); }
.inner-hero-content::after { content:""; position:absolute; top:34px; right:34px; width:72px; height:34px; border-top:2px solid #dab978; border-right:2px solid #dab978; opacity:.72; }
.mobile-hero-brand { position:absolute; top:-17px; left:32px; display:flex; align-items:center; gap:12px; padding:8px 15px; border-radius:3px 3px 12px 3px; color:#fff; background:#a8742d; box-shadow:0 8px 20px rgba(0,0,0,.15); }
.mobile-hero-brand span { font:800 .82rem/1 Arial,sans-serif; letter-spacing:.08em; }
.mobile-hero-brand small { padding-left:11px; border-left:1px solid rgba(255,255,255,.45); font-size:.62rem; letter-spacing:.12em; }
.inner-hero-content .eyebrow { color:#dec48e; }
.inner-hero h1 { margin:6px 0 12px; font-size:clamp(2.15rem,4.4vw,4rem); line-height:1.14; }
.inner-hero .lead { margin:0; color:#f1ede5; font-size:1.05rem; }
.inner-hero-points { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin:24px 0 0; }
.inner-hero-points::before { content:""; position:absolute; top:15px; right:13%; left:13%; border-top:1px dashed rgba(228,200,145,.65); }
.inner-hero-points span { position:relative; z-index:1; display:grid; grid-template-columns:32px 1fr; align-items:center; gap:7px; font-size:.82rem; font-weight:700; }
.inner-hero-points span:not(:last-child)::after { content:"›"; position:absolute; right:-18px; color:#ddbc7a; font-size:1.4rem; }
.inner-hero-points b { width:32px; height:32px; display:grid; place-items:center; border:1px solid #d7b36d; border-radius:50%; color:#f5d998; background:#2f3d2b; font:700 .7rem/1 Arial,sans-serif; }
.inner-hero-actions { display:flex; gap:10px; margin-top:24px; }
.inner-hero-actions .button { min-height:42px; }
.mobile-hero-content-with-mascot { width:min(94%,720px); padding-right:210px; }
.mobile-hero-mascot { position:absolute; z-index:2; right:16px; bottom:12px; width:190px; height:205px; margin:0; overflow:hidden; pointer-events:none; filter:drop-shadow(0 14px 18px rgba(0,0,0,.22)); }
.mobile-hero-mascot img { position:absolute; inset:auto 0 0; width:100%; height:auto; }
.mobile-hero-mascot-body { z-index:1; }
.mobile-hero-mascot-arm { z-index:2; transform-origin:35.2% 65.5%; animation:faq-instructor-arm-cycle 8s ease-in-out infinite; will-change:transform; }
.outfield-page .inner-hero::after { background:linear-gradient(90deg,rgba(25,34,23,.13),rgba(25,34,23,.02) 58%,rgba(25,34,23,.08)); }
.outfield-page .inner-hero::before { display:none; }
.outfield-page .mobile-hero-content-with-mascot { box-sizing:border-box; width:clamp(520px,calc(50vw - max(4vw,calc((100vw - var(--container))/2))),590px); padding-right:40px; border-color:rgba(145,119,76,.28); color:#293229; background:rgba(255,254,250,.97); box-shadow:0 24px 54px rgba(20,28,18,.2); backdrop-filter:none; }
.outfield-page .mobile-hero-content-with-mascot::after { border-color:#b78942; }
.outfield-page .mobile-hero-content-with-mascot .eyebrow { color:#946422; }
.outfield-page .mobile-hero-content-with-mascot h1 { max-width:365px; color:#253126; font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif; font-size:clamp(2.15rem,3.5vw,3.2rem); font-weight:900; line-height:1.2; letter-spacing:.012em; }
.outfield-page .mobile-hero-content-with-mascot .lead { max-width:370px; padding-right:110px; color:#625f57; font-size:.97rem; }
.outfield-page .mobile-hero-content-with-mascot .inner-hero-points { color:#354035; }
.outfield-page .mobile-hero-content-with-mascot .inner-hero-points::before { border-color:rgba(157,112,47,.48); }
.outfield-page .mobile-hero-content-with-mascot .inner-hero-points span:not(:last-child)::after { color:#9f7133; }
.outfield-page .mobile-hero-content-with-mascot .inner-hero-points b { border-color:#b98b47; color:#76511e; background:#f4eee2; }
.outfield-page .mobile-hero-content-with-mascot .button-outline-light { border-color:rgba(24,63,52,.55); color:var(--forest); background:#fff; }
.outfield-page .mobile-hero-mascot { top:14px; right:0; bottom:auto; width:225px; height:249px; filter:drop-shadow(0 12px 16px rgba(39,48,35,.2)); }
.inner-content-section { padding:52px 0; }
.inner-content-section,.inner-hero { scroll-margin-top:84px; }
.inner-content-section + .inner-content-section { border-top:1px solid #e5ddcf; }
.inner-section-head { width:min(760px,100%); margin:0 auto 28px; text-align:center; }
.inner-section-head h2 { margin:0 0 8px; font-size:clamp(1.65rem,3vw,2.35rem); }
.inner-section-head p { margin:0; color:#726b61; }
.service-models-section { background:#f3ede3; }
.service-model-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.service-model-card { position:relative; overflow:hidden; min-height:390px; padding:27px 25px 24px; border:1px solid #dcd1c1; border-radius:16px; background:#fff; box-shadow:0 12px 28px rgba(49,42,33,.07); }
.service-model-card::before { content:""; position:absolute; top:0; right:0; left:0; height:5px; background:#b98b46; }
.service-model-card.is-primary { color:#f8f3e9; border-color:#3d4c38; background:#35422f; }
.service-model-card.is-primary::before { background:#e0bd77; }
.service-model-number { position:absolute; top:22px; right:21px; color:#b38643; font:700 2.2rem/1 Georgia,serif; opacity:.42; }
.service-model-card.is-primary .service-model-number { color:#f0d294; }
.service-model-label { margin:0 0 25px; color:#9a6b2e; font-size:.7rem; font-weight:900; letter-spacing:.13em; }
.service-model-card.is-primary .service-model-label { color:#e7c987; }
.service-model-card h3 { margin:0 0 10px; font-size:1.35rem; }
.service-model-card > p:not(.service-model-label),.service-model-build-copy > p:not(.service-model-label) { color:#756d62; font-size:.87rem; line-height:1.7; }
.service-model-card.is-primary > p:not(.service-model-label) { color:#d4d1ca; }
.service-model-card ul { margin:20px 0 24px; padding:0; list-style:none; }
.service-model-card li { position:relative; padding:8px 0 8px 22px; border-top:1px solid #e9e2d7; color:#5e564b; font-size:.82rem; }
.service-model-card li::before { content:"✓"; position:absolute; left:0; color:#a77531; font-weight:900; }
.service-model-card.is-primary li { border-color:rgba(255,255,255,.15); color:#e7e3dc; }
.service-model-card.is-primary li::before { color:#eccd8c; }
.service-model-card a { position:absolute; right:25px; bottom:23px; left:25px; color:#8a5d25; font-size:.82rem; font-weight:900; text-decoration:none; }
.service-model-card.is-primary a { color:#f1d79e; }
.service-model-build { padding:0; }
.service-model-visual { position:relative; height:142px; overflow:hidden; background:#10160f; }
.service-model-visual img { width:100%; height:100%; object-fit:cover; opacity:.82; }
.service-model-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(13,19,12,.8)); }
.service-model-visual > span { position:absolute; z-index:1; right:13px; bottom:11px; padding:5px 9px; border-radius:999px; color:#fff; background:#a33b2f; font-size:.65rem; font-weight:900; }
.service-model-build-copy { position:relative; padding:20px 25px 58px; }
.service-model-build-copy .service-model-label { margin-bottom:12px; }
.service-model-build-copy .service-model-number { top:17px; }
.service-model-build-copy ul { margin-top:14px; }
.service-model-note { margin:14px 0 0; color:#7b7266; font-size:.75rem; text-align:center; }
.process-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:0; margin:0; padding:18px 0 22px; list-style:none; }
.process-step { position:relative; min-height:156px; margin-left:-12px; padding:25px 20px 18px 30px; color:#473e32; background:#eee2cf; clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%,20px 50%); text-align:center; filter:drop-shadow(0 10px 12px rgba(47,40,30,.12)); }
.process-step:first-child { margin-left:0; padding-left:18px; border-radius:12px 0 0 12px; clip-path:polygon(0 0,calc(100% - 22px) 0,100% 50%,calc(100% - 22px) 100%,0 100%); }
.process-step:nth-child(even) { z-index:2; color:#fff; background:#43503d; transform:translateY(14px); }
.process-step:nth-child(3),.process-step:nth-child(7) { background:#e2c994; }
.process-step b { display:grid; width:38px; height:38px; margin:0 auto; place-items:center; border:1px solid currentColor; border-radius:50%; color:#966726; font:700 1rem/1 Georgia,serif; }
.process-step:nth-child(even) b { color:#f1d89f; }
.process-step strong { display:block; margin:11px 0 7px; font-size:.98rem; }
.process-step small { display:block; color:inherit; font-size:.75rem; line-height:1.45; opacity:.76; }
.process-scroll-hint { display:none; margin:8px 0 0; color:#8a6b3d; font-size:.76rem; font-weight:700; text-align:right; }
.mobile-activity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.mobile-activity-card { overflow:hidden; border:1px solid #e0d7c8; border-radius:14px; color:inherit; background:#fff; text-decoration:none; box-shadow:0 10px 24px rgba(43,37,29,.06); transition:transform .2s ease,box-shadow .2s ease; }
.mobile-activity-card:hover { transform:translateY(-3px); box-shadow:0 15px 30px rgba(43,37,29,.1); }
.mobile-activity-card img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.mobile-activity-card div { padding:16px 18px 18px; }
.mobile-activity-card h3 { margin:0 0 5px; font-size:1.15rem; }
.mobile-activity-card p { margin:0; color:#746c61; font-size:.9rem; }
.mobile-scenarios-section { background:#f8f3ea; }
.mobile-scenario-route { position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.mobile-scenario-route::before { content:""; position:absolute; top:28px; right:11%; left:11%; border-top:2px solid #d2b175; }
.mobile-scenario-route article { position:relative; z-index:1; min-width:0; padding:0 18px 22px; text-align:center; }
.mobile-scenario-route b { display:grid; width:58px; height:58px; margin:0 auto 15px; place-items:center; border:7px solid #f8f3ea; border-radius:50%; color:#f4e5c6; background:#394735; box-shadow:0 0 0 1px #b78a46; font:700 .78rem/1 Georgia,serif; }
.mobile-scenario-route h3 { margin:0 0 8px; color:#34402f; font-size:1.12rem; }
.mobile-scenario-route p { margin:0; color:#746b5f; font-size:.86rem; line-height:1.7; }
.mobile-scenario-check { display:flex; align-items:center; justify-content:center; gap:9px; margin-top:17px; padding:14px 18px; border-radius:12px; color:#eae6df; background:#3e493a; }
.mobile-scenario-check strong { margin-right:8px; color:#f2d49a; }
.mobile-scenario-check span { padding:6px 10px; border:1px solid rgba(255,255,255,.24); border-radius:999px; font-size:.78rem; }
.mobile-scenario-note { margin:12px 0 0; color:#84796b; font-size:.74rem; text-align:center; }
.responsibility-panel { display:grid; grid-template-columns:minmax(300px,1.2fr) 1fr 1fr; gap:18px; padding:22px; border-radius:18px; color:#f3efe7; background:#33412f; }
.responsibility-visual { min-width:0; margin:0; overflow:hidden; border-radius:12px; background:#f5ecdd; }
.responsibility-visual img { width:100%; height:100%; min-height:220px; object-fit:cover; }
.responsibility-card { padding:22px; border:1px solid rgba(255,255,255,.2); border-radius:12px; background:rgba(255,255,255,.06); }
.responsibility-card h3 { margin:0 0 12px; color:#f2d9a4; }
.responsibility-card ul { margin:0; padding-left:1.2em; line-height:1.85; }
.mobile-cases-section { overflow:hidden; color:#f2ede3; background:#2f3b2b; }
.mobile-cases-head { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:24px; }
.mobile-cases-head header { width:min(690px,100%); }
.mobile-cases-head .eyebrow { margin:0 0 6px; color:#d5b676; }
.mobile-cases-head h2 { margin:0 0 7px; color:#fff; font-size:clamp(1.65rem,3vw,2.35rem); }
.mobile-cases-head p { margin:0; color:#cfc8bc; }
.mobile-cases-head .button { flex:0 0 auto; border-color:rgba(255,255,255,.55); color:#fff; }
.mobile-case-carousel { position:relative; }
.mobile-case-gallery { display:flex; gap:16px; overflow-x:auto; padding:2px; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }
.mobile-case-gallery::-webkit-scrollbar { display:none; }
.mobile-case-card { position:relative; flex:0 0 100%; height:clamp(320px,52vw,540px); margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.22); border-radius:14px; background:#111; scroll-snap-align:start; }
.mobile-case-card img { width:100%; height:100%; object-fit:cover; opacity:.88; transition:transform .35s ease,opacity .35s ease; }
.mobile-case-card:hover img { opacity:1; transform:scale(1.025); }
.mobile-case-card::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(0deg,rgba(8,13,7,.92),transparent); }
.mobile-case-card figcaption { position:absolute; z-index:1; right:18px; bottom:16px; left:18px; }
.mobile-case-card strong,.mobile-case-card span { display:block; }
.mobile-case-card strong { color:#fff; font-size:1.08rem; }
.mobile-case-card span { margin-top:3px; color:#d8cfbf; font-size:.78rem; }
.mobile-case-controls { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:18px; }
.mobile-case-buttons { display:flex; gap:8px; }
.mobile-case-buttons button,.mobile-case-toggle { display:grid; width:42px; height:42px; padding:0; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; color:#fff; background:transparent; font-size:1.1rem; cursor:pointer; }
.mobile-case-buttons button:hover,.mobile-case-toggle:hover { color:#273123; background:#f0d49b; border-color:#f0d49b; }
.mobile-case-status { display:flex; min-width:0; align-items:center; justify-content:center; gap:15px; }
.mobile-case-status > span { min-width:52px; color:#f0d49b; font:700 .8rem/1 Arial,sans-serif; letter-spacing:.08em; }
.mobile-case-dots { display:flex; flex-wrap:wrap; justify-content:center; gap:7px; }
.mobile-case-dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:rgba(255,255,255,.34); cursor:pointer; transition:width .2s ease,background .2s ease; }
.mobile-case-dot.is-active { width:25px; border-radius:999px; background:#e4c17c; }
.mobile-cases-note { margin:13px 0 0; color:#aaa597; font-size:.72rem; }
.mobile-inquiry-section { position:relative; overflow:hidden; background:#eee4d5; }
.mobile-inquiry-section::before { content:""; position:absolute; top:-170px; left:-130px; width:390px; height:390px; border:1px solid rgba(155,108,45,.2); border-radius:50%; box-shadow:0 0 0 42px rgba(155,108,45,.035),0 0 0 84px rgba(155,108,45,.025); pointer-events:none; }
.mobile-inquiry-layout { position:relative; display:grid; grid-template-columns:minmax(250px,.72fr) minmax(0,1.55fr); gap:34px; align-items:start; }
.mobile-inquiry-intro { position:sticky; top:96px; padding:32px; border-radius:18px 56px 18px 18px; color:#f7f2e8; background:#34412f; box-shadow:0 18px 38px rgba(36,42,31,.14); }
.mobile-inquiry-intro .eyebrow { color:#d9bc7e; }
.mobile-inquiry-intro h2 { margin:6px 0 14px; color:#fff; font-size:clamp(1.8rem,3.2vw,2.75rem); line-height:1.16; }
.mobile-inquiry-intro > p:not(.eyebrow) { margin:0; color:#d5d1c8; line-height:1.75; }
.inquiry-benefits { margin:24px 0 20px; padding:0; list-style:none; }
.inquiry-benefits li { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:14px 0; border-top:1px solid rgba(255,255,255,.16); }
.inquiry-benefits b { display:grid; width:32px; height:32px; place-items:center; border:1px solid #d2ad68; border-radius:50%; color:#f1d89f; font:700 .68rem/1 Arial,sans-serif; }
.inquiry-benefits strong,.inquiry-benefits small { display:block; }
.inquiry-benefits strong { color:#fff; font-size:.94rem; }
.inquiry-benefits small { margin-top:3px; color:#bfc2ba; font-size:.76rem; line-height:1.55; }
.inquiry-line-link { color:#f1d89f; font-weight:800; text-decoration:none; }
.inquiry-line-link:hover { color:#fff; }
.outfield-inquiry-form { position:relative; padding:28px; border:1px solid #ddd0bc; border-radius:18px; background:#fff; box-shadow:0 15px 34px rgba(54,45,32,.08); }
.form-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.inquiry-form-head { position:relative; display:flex; min-height:106px; align-items:center; justify-content:space-between; gap:18px; margin-bottom:21px; padding:0 154px 15px 0; border-bottom:1px solid #e7dfd3; }
.inquiry-form-head strong { color:#2e392a; font-size:1.22rem; }
.inquiry-form-head span { position:absolute; right:148px; bottom:18px; color:#81776a; font-size:.76rem; }
.inquiry-form-head i,.form-field i,.privacy-check i { color:#b24335; font-style:normal; }
.inquiry-form-mascot { position:absolute; right:4px; bottom:-15px; width:136px; height:132px; margin:0; overflow:visible; }
.inquiry-form-mascot img { position:absolute; inset:auto 0 0; width:100%; height:auto; }
.inquiry-mascot-body { z-index:1; }
.inquiry-mascot-arm { z-index:2; transform-origin:35.2% 65.5%; animation:faq-instructor-arm-cycle 8s ease-in-out infinite; will-change:transform; }
.service-request-type { margin:0 0 20px; padding:0; border:0; }
.service-request-type legend { margin-bottom:10px; color:#51493f; font-size:.86rem; font-weight:800; }
.service-request-type legend i { color:#b24335; font-style:normal; }
.service-request-type > div { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.service-request-type label { cursor:pointer; }
.service-request-type input { position:absolute; opacity:0; pointer-events:none; }
.service-request-type span { display:grid; min-height:72px; padding:12px; align-content:center; border:1px solid #d9d0c2; border-radius:10px; color:#5c544a; background:#faf8f4; transition:.18s ease; }
.service-request-type b,.service-request-type small { display:block; }
.service-request-type b { font-size:.86rem; }
.service-request-type small { margin-top:4px; color:#847b70; font-size:.68rem; line-height:1.4; }
.service-request-type input:checked + span { border-color:#43503d; color:#fff; background:#43503d; box-shadow:0 6px 15px rgba(48,63,43,.14); }
.service-request-type input:checked + span small { color:#d8dbd4; }
.service-request-type input:focus-visible + span { outline:3px solid rgba(169,119,49,.3); outline-offset:2px; }
.inquiry-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-field { display:grid; gap:7px; color:#51493f; font-size:.86rem; font-weight:700; }
.form-field-wide { grid-column:1 / -1; }
.form-date-field { min-width:0; margin:0; padding:0; border:0; }
.form-date-field legend { margin-bottom:7px; padding:0; color:#51493f; font-size:.86rem; font-weight:700; }
.form-date-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:8px; }
.form-date-grid label { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:6px; min-width:0; color:#756c61; font-size:.76rem; }
.form-date-grid label > span { margin:0; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-width:0; padding:12px 13px; border:1px solid #d8d0c4; border-radius:9px; outline:none; color:#2e2c28; background:#fbfaf7; font:inherit; font-weight:400; transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.form-field textarea { resize:vertical; line-height:1.6; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:#a97731; background:#fff; box-shadow:0 0 0 3px rgba(169,119,49,.12); }
.activity-interest { margin:20px 0; padding:0; border:0; }
.activity-interest legend { margin-bottom:10px; color:#51493f; font-size:.86rem; font-weight:800; }
.activity-interest > div { display:flex; flex-wrap:wrap; gap:8px; }
.activity-interest label { cursor:pointer; }
.activity-interest input { position:absolute; opacity:0; pointer-events:none; }
.activity-interest span { display:block; padding:9px 13px; border:1px solid #d9d0c2; border-radius:999px; color:#5f5548; background:#faf8f4; font-size:.8rem; font-weight:700; transition:.18s ease; }
.activity-interest input:checked + span { border-color:#44523e; color:#fff; background:#44523e; box-shadow:0 4px 12px rgba(48,63,43,.14); }
.activity-interest input:focus-visible + span { outline:3px solid rgba(169,119,49,.3); outline-offset:2px; }
.privacy-check { display:flex; align-items:flex-start; gap:9px; margin-top:17px; color:#6f665a; font-size:.78rem; line-height:1.55; }
.privacy-check input { flex:0 0 auto; margin-top:3px; accent-color:#43503d; }
.inquiry-form-actions { display:flex; align-items:center; gap:16px; margin-top:20px; }
.inquiry-form-actions small { color:#847a6d; font-size:.72rem; line-height:1.5; }
.form-result-page { min-height:100vh; display:grid; padding:24px; place-items:center; background:#eee4d5; }
.form-result-card { width:min(620px,100%); padding:42px; border:1px solid #d9cbb6; border-radius:22px 64px 22px 22px; background:#fff; box-shadow:0 22px 55px rgba(44,39,31,.14); }
.form-result-card h1 { margin:6px 0 12px; color:#303b2c; font-size:clamp(2rem,5vw,3rem); }
.form-result-card > p:not(.eyebrow) { color:#6e665b; line-height:1.75; }
.form-result-card.is-error { border-top:5px solid #ad4a3d; }
.form-result-card.is-success { border-top:5px solid #5a734f; }
.form-result-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.faq-layout { display:grid; grid-template-columns:minmax(0,1fr) 230px; align-items:end; gap:22px; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.faq-grid details { border:1px solid #ded5c7; border-radius:10px; background:#fff; }
.faq-grid details:last-child:nth-child(odd) { grid-column:1 / -1; }
.faq-grid summary { cursor:pointer; padding:16px 18px; font-weight:800; }
.faq-grid details p { margin:0; padding:0 18px 18px; color:#6f685e; }
.home-faq-section { scroll-margin-top:84px; border-top:1px solid var(--line); }
.home-faq-intro { max-width:760px; margin:10px auto 0; text-align:center; }
.home-faq-grid { max-width:1040px; margin:28px auto 0; }
.home-faq-grid details { overflow:hidden; border-radius:14px; box-shadow:0 8px 22px rgba(55,45,33,.035); }
.home-faq-grid summary { display:flex; align-items:center; justify-content:space-between; gap:18px; list-style:none; line-height:1.55; }
.home-faq-grid summary::-webkit-details-marker { display:none; }
.home-faq-grid summary::after { content:"＋"; flex:0 0 auto; color:var(--gold); font-size:1.35rem; font-weight:500; line-height:1; }
.home-faq-grid details[open] summary::after { content:"−"; }
.home-faq-grid details p { line-height:1.75; }
.home-faq-grid details p a { color:#7c5421; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.home-faq-actions { display:flex; justify-content:center; margin-top:24px; }
.faq-mascot { position:relative; align-self:end; height:245px; margin:0; overflow:hidden; text-align:center; }
.faq-mascot img { position:absolute; inset:auto 0 0; width:100%; height:auto; max-height:245px; object-fit:contain; object-position:center bottom; }
.faq-mascot-body { z-index:1; }
.faq-mascot-arm { z-index:2; transform-origin:35.2% 65.5%; animation:faq-instructor-arm-cycle 8s ease-in-out infinite; will-change:transform; }
@keyframes faq-instructor-arm-cycle {
  0% { transform:rotate(-10deg); }
  18.75%,81.25% { transform:rotate(0deg); }
  100% { transform:rotate(-10deg); }
}
.updating-mascot-motion { position:relative; min-height:430px; overflow:hidden; }
.updating-mascot-motion img { position:absolute; inset:auto 0 0; width:100%; height:auto; }
.updating-mascot-body { z-index:1; }
.updating-mascot-arm { z-index:2; transform-origin:35.2% 65.5%; animation:faq-instructor-arm-cycle 8s ease-in-out infinite; will-change:transform; }
.inner-cta { padding:38px 0; background:#eee4d5; }
.inner-cta-row { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.inner-cta h2 { margin:0 0 5px; font-size:clamp(1.5rem,2.5vw,2rem); }
.inner-cta p { margin:0; color:#72695e; }

@media (max-width: 980px) {
  .inner-ribbon-row { grid-template-columns:1fr; gap:10px; padding:16px 0; }
  .inner-section-nav { grid-template-columns:repeat(9,minmax(92px,1fr)); overflow-x:auto; }
  .service-model-grid { grid-template-columns:1fr 1fr; }
  .service-model-build { grid-column:1 / -1; display:grid; grid-template-columns:minmax(250px,.8fr) 1fr; min-height:0; }
  .service-model-visual { height:100%; min-height:300px; }
  .process-grid { display:flex; gap:0; overflow-x:auto; margin-inline:-14px; padding:18px 14px 30px; scroll-padding-inline:14px; scroll-snap-type:x mandatory; scrollbar-color:#aa7b35 #eee4d5; }
  .process-step { flex:0 0 178px; scroll-snap-align:start; }
  .process-scroll-hint { display:block; }
  .mobile-activity-grid { grid-template-columns:repeat(2,1fr); }
  .responsibility-panel { grid-template-columns:1fr 1fr; }
  .outfield-page .mobile-hero-content-with-mascot { width:min(92%,570px); }
  .outfield-page .mobile-hero-mascot { top:22px; right:0; width:204px; height:226px; }
  .responsibility-visual { grid-column:1 / -1; height:250px; }
  .mobile-inquiry-layout { grid-template-columns:1fr; }
  .mobile-inquiry-intro { position:relative; top:auto; display:grid; grid-template-columns:minmax(210px,.85fr) 1fr; gap:0 28px; border-radius:18px 48px 18px 18px; }
  .mobile-inquiry-intro .eyebrow,.mobile-inquiry-intro h2,.mobile-inquiry-intro > p,.mobile-inquiry-intro .inquiry-line-link { grid-column:1; }
  .inquiry-benefits { grid-column:2; grid-row:1 / span 4; margin:0; }
  .faq-layout { grid-template-columns:minmax(0,1fr) 190px; }
}

@media (max-width: 680px) {
  .home-faq-section { scroll-margin-top:140px; }
  .inner-breadcrumb { padding:10px 0; }
  .inner-ribbon-title { font-size:1.4rem; }
  .inner-section-nav { margin-inline:-14px; padding-inline:14px; }
  .inner-hero { min-height:430px; align-items:end; }
  .inner-hero::after { background:linear-gradient(0deg,rgba(20,27,19,.94),rgba(20,27,19,.12) 82%); }
  .inner-hero-content { width:auto; margin:0 14px 18px; padding:28px 22px 22px; border-radius:15px 15px 44px 15px; }
  .mobile-hero-content-with-mascot { padding-right:22px; padding-bottom:126px; }
  .mobile-hero-mascot { right:8px; bottom:7px; width:122px; height:124px; }
  .outfield-page .inner-hero::after { background:linear-gradient(0deg,rgba(20,27,19,.18),rgba(20,27,19,.02) 82%); }
  .outfield-page .mobile-hero-content-with-mascot { width:auto; padding-right:22px; padding-bottom:186px; }
  .outfield-page .mobile-hero-content-with-mascot h1 { max-width:none; font-size:2.15rem; }
  .outfield-page .mobile-hero-content-with-mascot .lead { max-width:none; padding-right:0; }
  .outfield-page .mobile-hero-mascot { top:auto; right:8px; bottom:7px; width:183px; height:186px; }
  .mobile-hero-brand { top:-15px; left:18px; }
  .inner-hero-content::after { display:none; }
  .inner-hero h1 { font-size:2.15rem; }
  .inner-hero-points { gap:12px; }
  .inner-hero-points span { grid-template-columns:1fr; justify-items:center; gap:5px; text-align:center; }
  .inner-hero-points span:not(:last-child)::after { right:-9px; }
  .inner-hero-actions { flex-wrap:wrap; }
  .inner-content-section { padding:38px 0; }
  .process-grid { position:relative; display:grid; grid-template-columns:1fr; gap:11px; overflow:visible; margin:0; padding:8px 0 8px 28px; scroll-snap-type:none; }
  .process-grid::before { content:""; position:absolute; top:20px; bottom:20px; left:13px; border-left:2px solid #c99e58; }
  .process-step,.process-step:first-child { min-height:0; margin:0; padding:15px 18px 15px 60px; border-radius:10px; clip-path:none; text-align:left; transform:none; filter:none; }
  .process-step::before { content:""; position:absolute; top:50%; left:-22px; width:14px; height:14px; border:4px solid #fbf8f1; border-radius:50%; background:#a97731; transform:translateY(-50%); }
  .process-step:not(:last-child)::after { content:"↓"; position:absolute; z-index:2; right:16px; bottom:-17px; color:#a97731; font-weight:900; }
  .process-step b { position:absolute; top:50%; left:14px; margin:0; transform:translateY(-50%); }
  .process-step strong { margin:0 0 3px; }
  .process-scroll-hint { display:none; }
  .responsibility-panel,.faq-grid,.faq-layout { grid-template-columns:1fr; }
  .faq-grid details:last-child:nth-child(odd) { grid-column:auto; }
  .service-model-grid { grid-template-columns:1fr; }
  .service-model-card { min-height:360px; }
  .service-model-build { grid-column:auto; display:block; }
  .service-model-visual { height:180px; min-height:0; }
  .responsibility-visual { grid-column:auto; height:210px; }
  .mobile-inquiry-layout { gap:18px; }
  .mobile-inquiry-intro { display:block; padding:25px 22px; border-radius:15px 40px 15px 15px; }
  .mobile-inquiry-intro h2 br { display:none; }
  .inquiry-benefits { margin:20px 0 16px; }
  .outfield-inquiry-form { padding:21px 18px; }
  .inquiry-form-grid { grid-template-columns:1fr; gap:13px; }
  .form-field-wide { grid-column:auto; }
  .inquiry-form-head { min-height:96px; align-items:start; padding:8px 100px 15px 0; }
  .inquiry-form-head span { right:auto; bottom:18px; left:0; }
  .inquiry-form-mascot { right:-2px; bottom:-15px; width:100px; height:101px; }
  .service-request-type > div { grid-template-columns:1fr; }
  .service-request-type span { min-height:0; }
  .inquiry-form-actions { align-items:stretch; flex-direction:column; }
  .inquiry-form-actions .button { width:100%; }
  .faq-mascot { height:190px; }
  .faq-mascot img { max-height:190px; }
  .mobile-cases-head { display:grid; }
  .mobile-cases-head .button { justify-self:start; }
  .mobile-case-card { height:270px; }
  .mobile-case-controls { gap:10px; }
  .mobile-case-status { gap:9px; }
  .mobile-scenario-route { grid-template-columns:1fr 1fr; gap:20px 12px; }
  .mobile-scenario-route::before { display:none; }
  .mobile-scenario-route article { padding:0 10px 12px; }
  .mobile-scenario-check { flex-wrap:wrap; }
  .mobile-scenario-check strong { width:100%; margin:0 0 3px; text-align:center; }
  .inner-cta-row { display:grid; text-align:center; }
  .inner-cta-row .button { justify-self:center; }
}

@media (max-width: 520px) {
  .mobile-activity-grid { grid-template-columns:1fr; }
  .mobile-scenario-route { display:grid; grid-template-columns:1fr; gap:0; padding-left:32px; }
  .mobile-scenario-route::before { display:block; top:24px; right:auto; bottom:24px; left:15px; border-top:0; border-left:2px solid #d2b175; }
  .mobile-scenario-route article { display:grid; grid-template-columns:46px 1fr; gap:0 12px; padding:10px 0; text-align:left; }
  .mobile-scenario-route b { grid-row:1 / span 2; width:46px; height:46px; margin:0; border-width:5px; }
  .mobile-scenario-route h3 { align-self:end; margin:0 0 3px; }
}
.mobile-dock a { min-height: 58px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 5px; border-right: 1px solid #ded4c4; color: #453c31; font-size: .78rem; font-weight: 800; }
.mobile-dock a:last-child { border-right: 0; }
.mobile-dock a span { color: var(--gold); font-size: .74rem; }
.mobile-dock .dock-line { color: #fff; background: var(--line-color); }
.mobile-dock .dock-line span { color: #fff; }
.search-dialog { width: min(720px, calc(100% - 28px)); padding: 0; border: 0; border-radius: var(--radius); box-shadow: var(--shadow); }
.search-dialog::backdrop { background: rgba(16,30,27,.72); backdrop-filter: blur(4px); }
.search-panel { padding: 30px; background: var(--paper); }
.search-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.search-input { width: 100%; padding: 14px 17px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.search-results { margin: 20px 0 0; padding: 0; list-style: none; }
.search-results li + li { border-top: 1px solid var(--line); }
.search-results a { display: block; padding: 14px 4px; }
.search-results strong, .search-results span { display: block; }
.search-results span { color: var(--muted); font-size: .82rem; }

/* Style-guide helpers retained for internal component pages. */
.page-hero { padding: 72px 0 38px; background: var(--cream); }
.component-stack { display: grid; gap: 28px; }
.card, .feature-panel { padding: 28px; border: 1px solid var(--line); background: var(--paper); box-shadow: 0 10px 30px rgba(48,44,38,.07); }
.feature-panel.warm { background: var(--ivory); }
.swatches { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; }
.swatch { min-height: 120px; padding: 18px; border: 1px solid var(--line); }
.swatch-color { min-height: 64px; margin: -18px -18px 14px; }
.swatch-name, .footer-brand { font-weight: 800; }
.demo-row { display: flex; flex-wrap: wrap; gap: 12px; }
.status { display: inline-flex; padding: 3px 8px; border-radius: 99px; font-size: .7rem; }
.status-new { color: #fff; background: var(--forest); }
.status-legacy { color: #684b20; background: #ead4ad; }
.status-intro { color: #fff; background: var(--gold); }

@media (max-width: 1100px) {
  .site-nav { position: absolute; top: 100%; right: 20px; left: 20px; display: none; padding: 20px; border: 1px solid var(--line); background: var(--paper); box-shadow: var(--shadow); }
  .site-nav.is-open { display: block; }
  .nav-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .nav-list a { padding: 12px; background: var(--cream); }
  .menu-button { display: grid; }
  .activity-card { min-width: calc((100% - 36px) / 3); }
  .contact-grid { grid-template-columns: minmax(0,1fr) 178px minmax(420px,480px) minmax(0,1fr); }
  .contact-copy { grid-column: 1 / -1; }
  .qr-card { grid-column: 2; }
  .contact-links { grid-column: 3; }
  .map-card { grid-column: 1 / -1; }
  .social-links { gap: 12px; }
  .social-links a { width: 34px; height: 34px; }
  .social-links svg { width: 30px; height: 30px; }
  .footer-grid { grid-template-columns: minmax(260px,.95fr) minmax(300px,1.2fr) minmax(190px,.7fr); gap: 24px; }
  .footer-nav-columns { gap: 14px; padding-top: 36px; }
}

@media (max-width: 820px) {
  .aed-home-card { grid-template-columns: 64px minmax(0,1fr); }
  .aed-home-mark { width: 62px; height: 62px; }
  .aed-home-link { grid-column: 2; }
  .updating-shell { grid-template-columns: .75fr 1.25fr; gap: 20px; }
  .updating-copy h1 { font-size: clamp(2rem, 6vw, 3.2rem); }
  .updating-links { grid-template-columns: 1fr; gap: 8px; }
  .container { width: min(calc(100% - 28px), var(--container)); }
  .header-row { min-height: 72px; gap: 8px; }
  .brand { width: 174px; }
  .header-actions { margin-left: auto; gap: 8px; }
  .header-search { width: 150px; }
  .header-actions .button { display: none; }
  .hero { min-height: 420px; background: var(--cream); }
  .hero-grid { position: relative; min-height: 420px; display: block; }
  .hero-copy { position: relative; z-index: 4; width: 60%; max-width: 460px; padding: 52px 0 38px; transform: translateX(15px); }
  .hero-message { min-height: 210px; }
  .hero-visual { position: absolute; inset: 0 -14px; min-height: 0; margin: 0; }
  .hero-slide img { object-position: 58% center; }
  .section { padding: 19px 0; }
  .purpose-grid, .education-grid, .service-grid { grid-template-columns: repeat(2, 1fr); }
  .education-card:nth-child(2), .education-card:nth-child(4) { border-right: 0; }
  .education-card:nth-child(-n+4) { border-bottom: 1px solid rgba(166,125,61,.23); }
  .education-card:last-child { grid-column: 1 / -1; }
  .promise-grid { grid-template-columns: repeat(2, 1fr); }
  .purpose-card:nth-child(even) { transform: none; }
  .route-grid { grid-template-columns: 1fr; }
  .route-card { min-height: 255px; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-item:nth-child(2n) { border-right: 0; }
  .trust-item:last-child { grid-column: 1 / -1; }
  .service-card:nth-child(2) { border-right: 1px solid var(--line); }
  .contact-grid { grid-template-columns: 178px minmax(0,1fr); }
  .qr-card, .contact-links { grid-column: auto; }
  .footer-grid { grid-template-columns: minmax(225px,.95fr) minmax(240px,1.2fr) minmax(190px,.7fr); gap: 12px; }
  .social-links a[data-track="facebook_click"] { background-size: 30px 30px; }
  .footer-logo-lockup { width: 225px; }
  .footer-intro { grid-column: auto; }
  .footer-nav-columns { gap: 9px; padding-top: 24px; }
  .mobile-dock { display: grid; }
  body { padding-bottom: 58px; }
}

@media (max-width: 700px) {
  .aed-home-section { padding: 14px 0 24px; }
  .aed-home-card { grid-template-columns: 52px minmax(0,1fr); gap: 14px; padding: 20px; }
  .aed-home-mark { width: 52px; height: 52px; border-radius: 14px; }
  .aed-home-mark img { width:100%; height:100%; }
  .aed-home-copy strong { font-size: 1.03rem; line-height: 1.45; }
  .aed-home-link { grid-column: 1 / -1; padding-left: 66px; white-space: normal; }
  .hero, .hero-grid { min-height: 360px; }
  .hero-copy { width: 52%; max-width: 350px; padding: 36px 0 24px; transform: translateX(0); }
  .hero-message { min-height: 170px; }
  .hero-copy h1 { min-height: 2.45em; margin-bottom: 12px; font-size: clamp(1.75rem, 4.8vw, 2rem); line-height: 1.16; }
  .hero-copy .hero-kicker { font-size: .82rem; }
  .hero-copy .lead { max-width: 300px; font-size: .82rem; line-height: 1.62; }
  .hero-actions { gap: 7px; margin-top: 14px; }
  .hero-actions .button { min-height: 38px; padding: 7px 13px; font-size: .75rem; }
  .hero-visual::before { left: clamp(-390px, calc(-420px + 10vw), -350px); }
  .footer-grid { grid-template-columns: minmax(235px,.9fr) minmax(0,1.35fr); gap: 10px 18px; }
  .footer-logo-lockup { width: 225px; }
  .footer-intro { grid-column: 1; grid-row: 1; display: block; }
  .footer-intro .footer-brand-contact { margin: 8px 0 0 64px; }
  .footer-nav-columns { grid-column: 2; grid-row: 1; gap: 8px; padding-top: 24px; }
  .footer-social-column { grid-column: 1 / -1; grid-row: 2; justify-content: center; padding: 2px 0 0; }
}

@media (max-width: 560px) {
  .section-intro { margin-top: -5px; margin-bottom: 4px; padding-inline: 10px; font-size: .78rem; }
  #services .container { padding-right: 0; }
  #services { min-height: 0; }
  .service-instructor-stage { position: relative; top: auto; right: auto; width: min(270px, 78vw); height: 160px; margin: 5px auto -19px; }
  .service-instructor-stage img { width: auto; height: 160px; }
  .updating-main { padding: 24px 0 86px; }
  .updating-shell { grid-template-columns: 1fr; gap: 14px; }
  .updating-figure { order: 2; }
  .updating-figure img { width: min(78vw, 320px); }
  .updating-copy { text-align: center; }
  .updating-copy h1 { font-size: 2.05rem; letter-spacing: .04em; }
  .updating-copy > p { font-size: .94rem; line-height: 1.7; }
  .updating-note { font-size: .78rem; }
  .updating-actions { justify-content: center; }
  .updating-links { display: none; }
  h1 { font-size: 2rem; }
  h2 { font-size: 1.55rem; }
  .announcement-title { display: none; }
  .announcement-row { gap: 6px; }
  .header-row { flex-wrap: wrap; padding-block: 10px; }
  .header-actions { width: 100%; }
  .header-search { flex: 1 1 auto; width: auto; }
  .nav-list { grid-template-columns: 1fr; }
  .hero, .hero-grid { min-height: 360px; }
  .hero-copy { width: 70%; padding-top: 34px; transform: translateX(0); }
  .hero-message { min-height: 170px; }
  .hero-copy h1 { font-size: 1.7rem; letter-spacing: -.045em; }
  .hero-copy .lead { font-size: .78rem; line-height: 1.65; }
  .hero-copy .hero-kicker { font-size: .78rem; }
  .hero-actions { gap: 6px; margin-top: 14px; }
  .hero-actions .button { min-height: 38px; padding: 7px 12px; font-size: .74rem; }
  .hero-visual { left: -14px; }
  .hero-visual::before { left: -345px; }
  .hero-badge { right: 18px; bottom: 66px; width: calc(100% - 36px); }
  .hero-controls { width: max-content; max-width: 100%; gap: 5px; }
  .hero-controls > button { width: 27px; height: 27px; }
  .hero-dots { gap: 5px; }
  .hero-counter { display: none; }
  .section-head { display: block; }
  .section-head > .text-link { display: inline-block; margin-top: 15px; }
  .purpose-grid, .education-grid, .service-grid { grid-template-columns: repeat(2, 1fr); }
  .promise-card { min-height: 112px; flex-direction: column; justify-content: center; gap: 5px; padding: 10px 8px; text-align: center; }
  .promise-icon { flex-basis: 42px; width: 42px; height: 42px; }
  .promise-icon svg { width: 39px; height: 39px; }
  .promise-card h3 { font-size: .98rem; }
  .purpose-panel { padding: 8px; }
  .purpose-grid { gap: 8px; }
  .purpose-card { min-height: 174px; padding: 10px 9px 4px; }
  .purpose-visual { width: 100%; height: 97px; flex-basis: 97px; margin-inline: 0; }
  .purpose-card h3, .education-card h3 { font-size: 1rem; }
  .purpose-card p, .education-card p { font-size: .72rem; }
  .education-card { min-height: 174px; padding-inline: 7px; }
  .education-visual { height: 112px; flex-basis: 112px; }
  .education-panel { padding: 28px 5px 5px; }
  .education-audience { max-width: calc(100% - 34px); overflow: hidden; text-overflow: ellipsis; }
  .education-support { flex-wrap: wrap; gap: 3px 9px; padding-bottom: 7px; text-align: center; }
  .education-support em { width: 100%; margin-left: 0; }
  .route-copy { padding: 22px 20px; }
  .activity-card { min-width: 82%; }
  .service-card, .service-card:nth-child(2), .service-card:last-child { min-height: 124px; flex-direction: column; justify-content: center; gap: 6px; padding: 11px 7px; border: 0; border-bottom: 1px solid var(--line); text-align: center; }
  .service-card:nth-child(odd) { border-right: 1px solid var(--line); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-item, .trust-item:nth-child(2n) { grid-column: auto; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .trust-item:nth-child(2n) { border-right: 0; }
  .trust-item:last-child { grid-column: 1 / -1; border-right: 0; }
  .contact-grid { grid-template-columns: 1fr; }
  .qr-card { display: none; }
  .map-card { grid-template-columns: 1fr; }
  .map-embed iframe { height: 220px; }
  .footer-grid { grid-template-columns: 1fr; gap: 18px; }
  .footer-intro { grid-column: 1 / -1; grid-row: auto; display: block; }
  .footer-intro .footer-brand-contact { margin: 8px 0 0 64px; }
  .footer-nav-columns { grid-column: 1; grid-row: auto; gap: 10px; padding-top: 0; }
  .footer-social-column { grid-column: 1 / -1; grid-row: auto; justify-content: center; }
  .footer-bottom { text-align: center; }
  .ornament-title { gap: 9px; margin-bottom: 8px; font-size: 1.3rem; white-space: nowrap; }
  .ornament-title::before, .ornament-title::after { width: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .announcement-message > span { opacity: 1; animation: none; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .service-instructor-arm { animation: none !important; transform: translateX(-50%) rotate(0deg); }
  .faq-mascot-arm,.updating-mascot-arm { animation:none !important; transform:rotate(0deg); }
}
