/* KANIPPORI 3.3.0: flat UI, clear hierarchy, compact four-column footer. */
:root { --shadow:none; }
/* Enforce the approved flat appearance on theme, core and companion blocks.
   Preserve keyboard outlines and leave the WordPress administration bar alone. */
.kpf-flat-ui,
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer),
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer) *,
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer) *::before,
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer) *::after,
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer)::before,
.kpf-flat-ui :where(.topbar,.site-header,main,.site-footer)::after {
  box-shadow:none;
  text-shadow:none;
  filter: none !important;
}
.site-header .menu .current-menu-item > a {
  text-decoration: underline;
  text-decoration-color: var(--yellow);
  text-decoration-thickness: 3px;
  text-underline-offset: 10px;
}
.topbar { padding-block: 9px; }
.topbar > .wrap { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.topbar-offers { display:flex; flex-wrap:wrap; gap:7px 0; font-size:12px; letter-spacing:0; line-height:1.5; }
.offer-item { display:inline-flex; align-items:center; min-width:0; }
.offer-item > a, .offer-item > span:not(.offer-divider) { overflow-wrap:anywhere; }
.offer-divider { display:inline-block; padding-inline:13px; font-size:18px; flex-shrink:0; }
.topbar .socials { gap:8px; max-width:100%; }
.topbar .phone { font-size:12px; overflow-wrap:anywhere; }
.social-profile { border:1px solid var(--yellow); }
.social-profile:hover { transform:none; outline:2px solid currentColor; outline-offset:3px; }
.topbar .social-profile:focus-visible { outline:3px solid white; }
.eyebrow { background:none; border-radius:0; font-size:11px; letter-spacing:.075em; font-weight:750; }
.eyebrow:before { height:3px; border-radius:0; }
.section h2 { font-weight:750; letter-spacing:-.035em; }
.benefit { border-radius:10px; background:var(--cream); }
.benefit:before { display:none; }
.benefit strong { font-weight:750; }
.course-card:hover { transform:none; border-color:#b89000; }
.course-card,.post-card,.event-card { border-radius:12px; }
.course-art { background-color:#071d2c; }
.course-art > svg { stroke:#53d1e8; }
.course-body h3 { font-size:15px; line-height:1.35; font-weight:750; }
.about-grid > .classroom { border-radius:12px; }
.division-panel h2 { font-size:22px; }
.post-card h2,.post-card h3,.event-body h3 { font-size:22px; line-height:1.3; letter-spacing:-.025em; }
.post-card p,.event-body > p { line-height:1.65; }
.kpf-share { gap:9px; }
.share-icon:focus-visible { outline-offset:3px; }
.site-footer { background:#fffdf6; border-top:1px solid #e9e3ce; }
.footer-accent { height:3px; background:var(--yellow); }
.footer-grid { grid-template-columns:1.22fr .8fr 1fr 1.12fr; gap:32px; padding-block:32px; align-items:start; }
.footer-grid > div { min-width:0; }
.footer-grid > div:first-child { padding-right:0; }
.footer-grid > div:last-child { padding:20px; background:var(--cream); border:1px solid #eadfb3; border-radius:10px; }
.site-footer .brand-image { margin-bottom:14px; }
.site-footer .brand-image img,.kpf-footer-logo { width:225px; max-width:100%; height:auto; object-fit:contain; }
.kpf-footer-logo { margin-bottom:14px; }
.site-footer h2,.site-footer .widget-title { font-size:17px; line-height:1.3; font-weight:750; margin-bottom:15px; padding-bottom:10px; }
.site-footer h2:after,.site-footer .widget-title:after { width:28px; height:3px; border-radius:0; }
.site-footer p,.site-footer li,.site-footer a:not(.brand) { font-size:13px; line-height:1.7; }
.site-footer p { margin-bottom:10px; overflow-wrap:anywhere; }
.site-footer li { margin-bottom:6px; }
.site-footer li a { padding-block:1px; }
.site-footer li a:before { display:none; }
.site-footer .footer-tagline { font-size:15px; background:none; border:0; border-radius:0; padding:0; font-weight:750; }
.footer-socials { flex-wrap:wrap; gap:10px; margin-top:14px; }
.site-footer .footer-enquiry { min-height:42px; margin-top:6px; border-radius:7px; padding:9px 14px; }
.footer-bottom { background:var(--cream); border-top:1px solid #eadfb3; padding-block:13px; }
.footer-bottom .wrap > div { display:flex; align-items:center; flex-wrap:wrap; gap:15px; }
.footer-bottom .menu { display:flex; flex-wrap:wrap; gap:15px; }
.footer-bottom .menu li { margin:0; }
.footer-bottom a { margin:0; }
@media(max-width:1200px) {
  .topbar > .wrap { flex-wrap:wrap; }
  .topbar-offers { font-size:11px; }
  .offer-divider { padding-inline:10px; }
  .topbar .socials { margin-left:auto; }
}
@media(max-width:1000px) {
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px 30px; }
  .course-body h3 { font-size:16px; }
}
@media(max-width:760px) {
  .topbar > .wrap { flex-direction:column; gap:10px; }
  .topbar-offers { justify-content:center; font-size:11px; row-gap:7px; }
  .topbar .socials { margin-left:0; justify-content:center; gap:12px; }
  .offer-divider { padding-inline:8px; }
  .topbar .phone { flex-basis:100%; padding:0; }
  .course-body h3 { font-size:13px; }
  .division-panel h2 { font-size:25px; }
  .footer-grid { gap:24px 22px; padding-block:26px; }
  .footer-grid > div:first-child,.footer-grid > div:last-child { grid-column:1/-1; }
  .site-footer h2,.site-footer .widget-title { font-size:16px; }
  .footer-grid > div:last-child { padding:20px; }
  .footer-bottom > .wrap { flex-direction:column; align-items:flex-start; gap:9px; }
  .footer-bottom .wrap > div { gap:14px; }
  .footer-bottom a { margin:0; }
}
