/* 5.3.2: descriptions appear INSIDE service cards; existing layout and photographs preserved. */
.site-header{position:relative;z-index:20}
.services-menu{position:relative}
.services-menu summary{cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center;gap:7px;color:var(--ink);font-size:14px}
.services-menu summary::-webkit-details-marker{display:none}
.services-submenu{position:absolute;left:-18px;top:100%;width:330px;max-width:calc(100vw - 36px);background:var(--cream);border:1px solid var(--border);padding:12px;box-shadow:0 12px 28px #062e3522;z-index:100;display:grid;gap:2px}
.site-nav .services-submenu a{white-space:normal;padding:11px 13px;font-size:15px;line-height:1.4;min-height:44px;border:0}
.site-nav .services-submenu a:hover,.site-nav .services-submenu a:focus-visible,.site-nav .services-submenu a[aria-current]{background:var(--mist)}
.page-subtitle{font-family:Georgia,serif;font-size:27px;color:#ead5ae;margin:0 0 20px}
.entry-content p{max-width:100%}
.home-content>h2{max-width:none}
.region-panel.region-text{display:block}
.region-text>h2{margin-top:0}
.region-text>p:last-child{margin-bottom:0}
.kkw-services-overview>h2{margin-top:0}
.kkw-services-overview .services-intro{max-width:950px}
.service-grid.service-grid-compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:1040px;margin:28px auto 42px;align-items:stretch}
.service-grid-compact a.service-card,.service-grid-compact a.service-card:last-child{display:flex;grid-column:auto;position:relative;flex-direction:column;align-items:center;justify-content:center;gap:0;min-width:0;min-height:0;aspect-ratio:1/1;padding:22px 18px;text-decoration:none;text-align:center;border:1px solid var(--border);border-top:2px solid #bca275;background:var(--mist);color:var(--ink);transition:background-color .16s ease,border-color .16s ease;overflow:visible}
.service-grid-compact .service-face{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;width:100%;min-width:0}
.service-grid-compact .service-card .icon{width:60px;height:60px;margin:0;flex:0 0 60px;grid-column:auto;grid-row:auto}
.service-grid-compact .service-card h3{font-size:clamp(20px,1.7vw,24px);line-height:1.18;margin:0;width:100%;overflow-wrap:normal;hyphens:none;font-family:Georgia,'Times New Roman',serif;font-weight:400;grid-column:auto;text-align:center}
/* The resting face stays centered. On hover/focus the icon gives way to the
   description INSIDE the same card, with the original service name still visible.
   No popover, duplicate title, extra click target, or external request is used. */
.service-grid-compact .service-card p.service-description{display:none;position:static;top:auto;right:auto;bottom:auto;left:auto;z-index:auto;flex:0 0 auto;grid-column:auto;max-width:100%;font:15px/1.45 Arial,Helvetica,sans-serif;text-align:center;margin:12px 0 0;padding:0;background:none;border:0;box-shadow:none;opacity:1;visibility:visible;pointer-events:none;overflow-wrap:break-word}
.service-grid-compact a.service-card:hover,.service-grid-compact a.service-card:focus-visible{background:#e5eeeb;border-color:#8ca8a2}
/* A real pointer is required for hover; touch cards remain direct links. */
@media(hover:hover) and (pointer:fine) and (min-width:721px){
 .service-grid-compact .has-service-description:not(.description-dismissed):hover .icon{display:none}
 .service-grid-compact .has-service-description:not(.description-dismissed):hover h3{font-size:20px;line-height:1.2}
 .service-grid-compact .has-service-description:not(.description-dismissed):hover p.service-description{display:block}
}
/* The same information is available to keyboard users. Escape restores the icon. */
@media(min-width:721px){
 .service-grid-compact .has-service-description:not(.description-dismissed):focus-visible .icon{display:none}
 .service-grid-compact .has-service-description:not(.description-dismissed):focus-visible h3{font-size:20px;line-height:1.2}
 .service-grid-compact .has-service-description:not(.description-dismissed):focus-visible p.service-description{display:block}
 .entry-content>p,.entry-content .wp-block-group>p,.page-lead>p,.hero-intro>p{text-align:justify;text-justify:inter-word}
 .entry-content .services-intro{text-align:left}
}
.kkw-example{background:#eef2ed;border-left:3px solid var(--gold);padding:26px;margin:28px 0}
.kkw-example h3{font-size:26px;margin:0 0 20px}
.example-steps{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px;counter-reset:step}
.example-steps li{position:relative;margin:0;background:var(--cream);padding:18px 18px 18px 51px;font-size:16px;line-height:1.45;counter-increment:step}
.example-steps li::before{content:counter(step);position:absolute;left:15px;top:17px;width:25px;height:25px;text-align:center;border:1px solid #bca275;border-radius:50%;color:var(--teal);font:16px/24px Georgia,serif}
.example-steps li:last-child{font-weight:700;color:var(--deep)}
.example-note{font-size:14px;color:var(--muted);margin:20px 0 0!important;text-align:left!important}
.site-footer .footer-grid>div:last-child>a,.site-footer .privacy-reopen{display:flex;align-items:center;min-height:40px;margin:0;padding:4px 0;line-height:1.45}
.site-footer .privacy-reopen{width:100%}
.footer-bottom span:last-child{max-width:480px;text-align:right}
@media(min-width:901px) and (max-width:1100px){
 .site-nav{gap:14px}
 .service-grid-compact a.service-card,.service-grid-compact a.service-card:last-child{padding:18px 14px}
 .service-grid-compact .service-card .icon{width:54px;height:54px;flex-basis:54px}
 .service-grid-compact .service-face{gap:12px}
 .service-grid-compact .service-card h3{font-size:21px}
}
@media(min-width:901px) and (max-width:1100px){
 .service-grid-compact .service-card p.service-description{font-size:14px;line-height:1.4;margin-top:10px}
 .service-grid-compact .has-service-description:not(.description-dismissed):focus-visible h3{font-size:18px;line-height:1.18}
}
@media(hover:hover) and (pointer:fine) and (min-width:901px) and (max-width:1100px){
 .service-grid-compact .has-service-description:not(.description-dismissed):hover h3{font-size:18px;line-height:1.18}
}
@media(min-width:721px) and (max-width:900px){
 .service-grid.service-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px}
 .services-menu{width:100%}.services-submenu{position:static;width:100%;box-shadow:none}
 .services-menu summary{padding:10px 0;font-size:15px}
 .service-grid-compact .service-card h3{font-size:23px}
}
@media(max-width:720px){
 .services-menu summary{padding:11px;font-size:15px;min-height:44px}
 .services-submenu{position:static;width:100%;max-width:none;border:none;border-left:2px solid #bca275;box-shadow:none;padding:2px 0 2px 10px;margin:0 0 10px}
 .site-nav .services-submenu a{font-size:15px;min-height:44px}
 .page-subtitle{font-size:23px}
 .entry-content p,.page-lead p,.hero-intro p{text-align:left}
 .service-grid.service-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:460px;margin:15px auto 28px;grid-auto-rows:1fr}
 .service-grid-compact a.service-card,.service-grid-compact a.service-card:last-child{aspect-ratio:auto;min-height:112px;padding:10px 9px;gap:0;flex-direction:column;align-items:center;justify-content:center}
 .service-grid-compact .service-face{gap:8px}
 .service-grid-compact .service-card .icon{width:30px;height:30px;margin:0;flex:0 0 30px}
 .service-grid-compact .service-card h3{font-size:14px;line-height:1.2;margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:500;text-align:center;overflow-wrap:normal;hyphens:none}
 .service-grid-compact .service-card p.service-description{display:none}
 .kkw-services-overview>h2{font-size:27px;line-height:1.12;margin-bottom:12px}
 .kkw-services-overview .services-intro{font-size:15px;line-height:1.45;margin-bottom:0}
 .example-steps{grid-template-columns:1fr;gap:10px}
 .kkw-example{padding:21px 18px}.kkw-example h3{font-size:24px}
 .footer-bottom span:last-child{text-align:left}
}
@media(max-width:720px) and (max-height:740px){
 .service-grid.service-grid-compact{gap:6px;margin-top:12px;margin-bottom:20px}
 .service-grid-compact a.service-card,.service-grid-compact a.service-card:last-child{min-height:100px;padding:8px}
 .service-grid-compact .service-face{gap:6px}
 .service-grid-compact .service-card .icon{width:26px;height:26px;flex-basis:26px}
 .service-grid-compact .service-card h3{font-size:13.5px}
}
@media(max-width:359px){
 .service-grid-compact a.service-card,.service-grid-compact a.service-card:last-child{padding:8px;min-height:110px}
 .service-grid-compact .service-card h3{font-size:13px}
 .service-grid-compact .service-face{gap:6px}
}
@media(prefers-reduced-motion:reduce){.service-grid-compact .service-card{transition:none}}
@media(forced-colors:active){.service-grid-compact a.service-card{border:1px solid CanvasText}.example-steps li::before{border-color:CanvasText}}
