/* Original design retained; additions for videos, editing and narrow screens. */
[hidden] { display:none !important; }
.embedded-video { aspect-ratio:16/9; background:#edf2f2; margin:20px 0 8px; overflow:hidden; }
.embedded-video iframe { display:block; width:100%; height:100%; border:0; }
.video-external { font-size:14px; color:var(--teal-dark); text-decoration:underline; text-underline-offset:4px; }
.preserve-lines { white-space:pre-line; overflow-wrap:anywhere; }
.news-category { font-size:13px; color:var(--teal-dark); margin:0 0 8px; }
.training-course-grid .button-row { margin-top:20px; padding-top:0; }
.faq-list { max-width:960px; margin:auto; }
.faq-item { border:1px solid var(--line); background:white; margin-bottom:16px; }
.faq-item summary { padding:22px; cursor:pointer; font-size:18px; font-weight:700; line-height:1.7; }
.faq-item summary span { color:var(--teal); margin-right:14px; }
.faq-answer { padding:0 24px 24px; }
.faq-answer .embedded-video { max-width:720px; }
.admin-status { color:var(--teal-dark); white-space:pre-line; }
.admin-layout>* { min-width:0; }
.admin-entry { padding:20px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.admin-form label { line-height:1.8; }
.admin-form small { display:block; font-size:13px; font-weight:400; line-height:1.8; color:var(--muted); margin-top:6px; }
.admin-form input:not([type=checkbox]),.admin-form textarea,[data-kind] { max-width:100%; padding:12px; border:1px solid #bfd0d0; font:inherit; }
.btn:disabled { opacity:.4; }
:focus-visible { outline:3px solid var(--teal); outline-offset:4px; }
.source-content { max-width:1300px; }
.source-section { padding:20px 0 32px; border-bottom:1px solid var(--line); }
.source-content h2 { font-size:26px; line-height:1.6; margin:24px 0 18px; }
.source-content h3 { font-size:21px; line-height:1.7; }
.source-content p { font-size:16px; line-height:1.9; }
.source-content img { max-width:100%; height:auto; max-height:420px; object-fit:contain; margin:20px auto; }
.source-content table { width:100%; border-collapse:collapse; }
.source-content td,.source-content th { border:1px solid var(--line); padding:16px; text-align:left; overflow-wrap:anywhere; }
.source-content th { background:var(--soft); }
.source-map { width:100%; min-height:320px; border:0; }
.source-grid-three { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.source-tile { padding:22px; border:1px solid var(--line); }
.source-grid-two { display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:center; }
.live-contact-form table { width:100%; border-collapse:collapse; }
.live-contact-form th,.live-contact-form td { padding:16px; border-bottom:1px solid var(--line); text-align:left; }
.live-contact-form th { width:28%; vertical-align:top; }
.live-contact-form input:not([type=checkbox]):not([type=submit]),.live-contact-form textarea { max-width:100%; width:100%; padding:12px; font:inherit; border:1px solid #bfd0d0; }
.live-contact-form input[type=submit] { padding:14px 26px; background:var(--teal); color:white; border:0; font:inherit; cursor:pointer; }
/* Avoid clipping the original two-column hero beside the 230px sidebar. */
@media(min-width:901px) {
 .hero { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
 .hero-copy { padding-left:clamp(28px,3vw,60px); padding-right:clamp(28px,3vw,60px); }
 .hero h1 { font-size:clamp(32px,3vw,58px); line-height:1.4; }
 .hero-visual { min-width:0; padding-right:28px; }
}
@media(max-width:900px) {
 .source-grid-three,.source-grid-two,.admin-layout { grid-template-columns:1fr; }
}
@media(max-width:600px) {
 .hero h1 { font-size:clamp(27px,6.5vw,36px); line-height:1.5; }
 .page-hero h1 { font-size:32px; line-height:1.5; overflow-wrap:anywhere; }
 .faq-item summary { padding:18px; font-size:16px; }
 .faq-answer { padding:0 18px 20px; }
 .live-contact-form tr,.live-contact-form th,.live-contact-form td { display:block; width:100%; }
 .source-content td,.source-content th { padding:10px; font-size:14px; }
}
@media(min-width:901px) { .drawer-inner>a { word-break:keep-all; overflow-wrap:normal; } }
/* Match the original slider frame without changing its layout. */
.visual-slide-3 { background-position:28% center; }
/* Contract diagrams: keep the labels legible and the original page styling. */
.contract-list { display:grid; gap:28px; }
.contract-card { min-width:0; }
.contract-heading { display:flex; align-items:center; gap:18px; margin-bottom:22px; }
.contract-heading>span { margin:0; flex-shrink:0; }
.contract-heading h3 { margin:0; }
.contract-content { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:28px; align-items:center; }
.contract-figure { min-width:0; margin:0; background:white; }
.contract-figure a { display:block; }
.contract-figure img { display:block; width:100%; max-width:640px; height:auto; margin:0 auto; }
.contract-figure figcaption { margin-top:10px; font-size:13px; line-height:1.7; color:var(--teal-dark); text-align:center; text-decoration:underline; text-underline-offset:3px; }
.contract-copy { min-width:0; }
.contract-copy .contract-summary { margin:0 0 16px; padding-left:16px; border-left:3px solid var(--teal); font-size:18px; font-weight:700; line-height:1.8; }
.contract-copy p { line-height:1.9; }
@media(max-width:1100px) { .contract-content { grid-template-columns:1fr; gap:20px; } }
@media(max-width:600px) { .contract-heading { gap:12px; } .contract-heading h3 { font-size:21px; } .contract-copy .contract-summary { font-size:17px; } }
body[data-page=medical] .point-photo { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; margin:0 0 20px; }
[data-news-cards].training-course-grid { grid-template-columns:minmax(0,1fr); }
[data-news-cards] .info-card.news-wide { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:28px; align-items:center; }
.news-details,.news-media { min-width:0; }
.news-media .embedded-video { margin-top:0; }
.news-wide .list { margin:18px 0; gap:8px; }
.news-wide .list li { padding:12px 14px; }
[data-news-cards] .info-card.news-wide:not(:has(.news-media)) { grid-template-columns:1fr; }
@media(max-width:767px) { [data-news-cards] .info-card.news-wide { grid-template-columns:1fr; gap:24px; } }
.course-point-photo { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; margin:0 0 20px; }
.course-detail-list { padding-left:1.25em; margin:14px 0 0; line-height:1.85; }
.course-detail-list li { margin:8px 0; }
.course-flow-image { display:block; width:100%; max-width:250px; height:auto; margin:0 auto 20px; }
.course-flow { position:relative; }
.course-related { margin-top:26px; }
.registered-overview { margin-top:24px; }
.card-grid:has(a[href="registered.html"]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:767px) { .card-grid:has(a[href="registered.html"]) { grid-template-columns:1fr; } }
body[data-page=nursingcare] .care-fee { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 16px; padding:18px 20px; margin:24px 0; background:var(--soft); border-left:4px solid var(--teal); }
body[data-page=nursingcare] .care-fee strong { color:var(--teal-dark); font-size:30px; line-height:1.4; }
body[data-page=nursingcare] .care-fee small { font-size:14px; }
body[data-page=nursingcare] #web-seminar img { width:100%; height:auto; }
body[data-page=registered] .registered-learning-illustration { display:block; width:100%; height:auto; aspect-ratio:1/1; max-height:200px; object-fit:contain; margin:0 auto 20px; }
@media(max-width:900px) { body[data-page=registered] .registered-learning-illustration { max-height:220px; } }
body[data-page=receipt] .receipt-review-illustration { display:block; width:100%; max-width:400px; height:auto; margin:auto; object-fit:contain; }
body[data-page=receipt] .receipt-course-intro { line-height:1.9; margin:0 0 24px; }
body[data-page=receipt] .point-card img[src*="illustration"] { object-fit:contain; background:#fff; }
/* Minecraft course introduction, within the existing kids design. */
.minecraft-banner-link { display:block; }
.minecraft-banner-link img { display:block; width:100%; height:auto; }
.minecraft-details-link { display:inline-block; margin-top:12px; color:var(--teal-dark); font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:4px; }
.minecraft-hero { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:36px; align-items:center; padding:60px clamp(24px,5vw,72px); background:linear-gradient(135deg,#fff8df,#f0fbff); }
.minecraft-hero h1 { margin:0; color:var(--ink); font-size:clamp(32px,3.5vw,48px); line-height:1.5; font-weight:900; }
.minecraft-lead { font-size:17px; line-height:1.9; }
.minecraft-hero-media { min-width:0; }
.minecraft-hero-media img { display:block; width:100%; height:auto; border:8px solid white; box-shadow:var(--shadow); }
.minecraft-hero-media p { margin:12px 0 0; text-align:center; font-size:13px; color:var(--muted); }
.minecraft-screen { display:block; margin:0 0 22px; background:#f7faf9; }
.minecraft-screen img { width:100%; height:auto; aspect-ratio:12/7; object-fit:contain; display:block; }
.minecraft-feature-grid .point-card { min-width:0; }
.minecraft-feature-grid .point-card h3 { font-size:21px; }
.minecraft-credit { margin:24px 0 0; font-size:12px; line-height:1.8; color:var(--muted); }
.minecraft-credit a { color:var(--teal-dark); text-decoration:underline; }
.minecraft-study-photo { width:100%; height:auto; }
.minecraft-page .faq-answer a { color:var(--teal-dark); text-decoration:underline; }
@media(max-width:900px) { .minecraft-hero { grid-template-columns:1fr; padding:38px 24px; } .minecraft-hero-media { max-width:640px; } }
@media(max-width:600px) { .minecraft-hero h1 { font-size:32px; } .minecraft-lead { font-size:16px; } .minecraft-hero-media img { border-width:5px; } }
.minecraft-hero-media>a { display:block; }
/* Compact location information before the homepage footer. */
.home-access-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:28px; align-items:stretch; }
.home-access-info { padding:26px; background:#fff; border:1px solid var(--line); min-width:0; }
.home-access-info h3 { margin:0 0 20px; font-size:23px; line-height:1.6; color:var(--ink); }
.home-access-info dl { margin:0; }
.home-access-info dl>div { display:grid; grid-template-columns:72px minmax(0,1fr); gap:16px; padding:14px 0; border-top:1px solid var(--line); }
.home-access-info dt { color:var(--teal-dark); font-weight:700; font-size:14px; }
.home-access-info dd { margin:0; font-size:15px; line-height:1.9; }
.home-access-info address { font-style:normal; }
.home-access-phone { font-size:21px; font-weight:700; color:var(--ink); white-space:nowrap; }
.home-access-info .button-row { margin-top:24px; gap:12px; }
.home-access-map { min-width:0; display:flex; flex-direction:column; }
.home-access-map iframe { display:block; border:1px solid var(--line); width:100%; min-height:340px; height:100%; flex:1; background:#eaf0ef; }
.home-access-map-link { display:inline-block; align-self:flex-start; margin-top:12px; font-size:14px; color:var(--teal-dark); text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1100px) { .home-access-grid { grid-template-columns:1fr; } .home-access-map iframe { height:320px; flex:none; } }
@media(max-width:600px) { .home-access-info { padding:20px; } .home-access-info dl>div { grid-template-columns:1fr; gap:4px; } .home-access-info .button-row { flex-direction:column; } .home-access-info .btn { width:100%; } .home-access-map iframe { min-height:280px; height:280px; } }

.admin-form fieldset{border:1px solid #d9e4e2;border-radius:12px;padding:18px;display:grid;gap:14px;min-width:0}.admin-form legend{font-weight:700;padding:0 8px}.admin-form select{width:100%;padding:12px;border:1px solid #cad9d6;border-radius:6px;font:inherit}.admin-form input[readonly]{background:#edf3f2}
.admin-form [hidden]{display:none!important}
.admin-form input[type="checkbox"]{width:auto;display:inline-block;margin:0 8px 0 0;vertical-align:middle}.admin-form label>span{display:block}.admin-form input[type="date"]{min-width:0;width:100%;box-sizing:border-box}

/* Keep each original site's message with its matching hero photograph. */
.visual-label.hero-caption{visibility:hidden;opacity:0;animation:heroCaptionSwitch 18s linear infinite;}
.visual-label.hero-caption-2{animation-delay:6s;}
.visual-label.hero-caption-3{animation-delay:12s;}
.hero-caption p{margin:12px 0 0;font-size:clamp(13px,1vw,15px);line-height:1.7;font-weight:500;}
@keyframes heroCaptionSwitch{0%,33.32%{visibility:visible;opacity:1}33.34%,100%{visibility:hidden;opacity:0}}
@media(prefers-reduced-motion:reduce){.visual-label.hero-caption{animation:none;visibility:hidden;opacity:0}.visual-label.hero-caption-1{visibility:visible;opacity:1}}

/* Original slide treatment: white copy directly over the photograph. */
.visual-card.worker .visual-slide::after{background:linear-gradient(90deg,rgba(10,28,32,.48),rgba(10,28,32,.27));}
.visual-card.worker .visual-label.hero-caption{left:20px;right:20px;top:50%;bottom:auto;transform:translateY(-50%);padding:14px 10px;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;color:#fff;text-align:center;}
.hero-caption strong{font-size:clamp(21px,2.1vw,34px);line-height:1.65;font-weight:500;text-shadow:0 1px 8px rgba(0,0,0,.18);}
.hero-caption p{margin:20px auto 0;max-width:34em;font-size:clamp(13px,1.1vw,17px);line-height:1.8;}
.hero-caption-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:28px;}
.hero-caption-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:16px 20px;font-size:13px;font-weight:700;letter-spacing:.08em;text-decoration:none;transition:filter .2s;}
.hero-caption-actions a:hover{filter:brightness(.94)}
.hero-slide-detail{background:#218c9b;color:#fff;}
.hero-slide-contact{background:#fff;color:#18262a;}
.hero-caption-actions a:focus-visible{outline:3px solid #e5bd63;outline-offset:4px;}
.visual-card.worker:focus-within .visual-slide,.visual-card.worker:focus-within .hero-caption{animation-play-state:paused;}
@media(max-width:767px){.visual-card.worker .visual-label.hero-caption{left:12px;right:12px;padding:10px 4px}.hero-caption strong{font-size:clamp(20px,5vw,28px)}.hero-caption p{font-size:13px;margin-top:14px}.hero-caption-actions{margin-top:20px}.hero-caption-actions a{min-height:50px;padding:14px;font-size:12px;letter-spacing:.03em}}

/* On phones, introduce each section with its visual before the explanation. */
@media(max-width:767px){
 .hero.hero-eyecatch{display:flex;flex-direction:column;align-items:stretch;}
 .hero-eyecatch>.hero-visual{order:-1;padding:24px 22px 0;}
 .hero-eyecatch>.hero-copy{order:0;}
 [data-news-cards] .news-media{order:-1;}
 [data-news-cards] .news-details{order:0;}
}

.pharmacist-service .pharmacist-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:20px}.pharmacist-service .section-title{margin-bottom:20px}@media(max-width:767px){.pharmacist-service .pharmacist-photo{order:-1}}
