/* Public editorial composition, adapted from VIS-001–004. No operational UI. */
:root {
  --ks-canvas: var(--wp--preset--color--canvas, #f5f1e8);
  --ks-surface: var(--wp--preset--color--surface, #fffcf6);
  --ks-sand: var(--wp--preset--color--sand, #e8e0d0);
  --ks-ink: var(--wp--preset--color--ink, #1d2923);
  --ks-green: var(--wp--preset--color--green, #285443);
  --ks-deep: var(--wp--preset--color--deep-green, #193b30);
  --ks-gold: var(--wp--preset--color--gold, #b68a3c);
  --ks-rule: var(--wp--custom--rule--color, #e5d4ac);
  --ks-serif: var(--wp--preset--font-family--editorial, Georgia, serif);
  --ks-sans: var(--wp--preset--font-family--body, Arial, sans-serif);
  --ks-gutter: var(--wp--custom--gutter, clamp(1.25rem, 5vw, 4rem));
}
* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { margin: 0; min-width: 320px; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + *, .ks-main > *, .ks-main .wp-block-post-content > * { margin-block-start: 0; }
.ks-main, .ks-main * { min-width: 0; }
.ks-main, .ks-masthead, .ks-footer { overflow-wrap: anywhere; }
.ks-main p { max-width: 62ch; }
.ks-main h1, .ks-main h2, .ks-main h3 { text-wrap: pretty; font-weight: 400; }
.ks-main h1 { max-width: 19ch; letter-spacing: -.035em; }
.ks-main h2 { letter-spacing: -.025em; }
.ks-main h3 { line-height: 1.2; }
.ks-main figure { margin: 0; }
.ks-main img { display: block; max-width: 100%; height: auto; border-radius: 0; }
.ks-main .wp-block-image { margin: 0; }
.ks-main .wp-block-image figcaption { color: var(--ks-ink); font-size: .75rem; padding: .75rem 1rem; background: var(--ks-surface); }
.ks-main :where(h1,h2,h3,p) { margin-block: 0 1.25rem; }
a { text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
:where(a,button,input,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--ks-deep); outline-offset: 4px;
  box-shadow: 0 0 0 7px var(--ks-surface);
}
:where(h2,h3):target { outline: 2px solid var(--ks-green); outline-offset: 6px; scroll-margin-block: 2rem; }
.ks-skip-link { position: absolute; top: .5rem; left: 1rem; transform: translateY(-200%); z-index: 99999; padding: .75rem 1rem; color: var(--ks-deep); background: var(--ks-surface); }
.ks-skip-link:focus { transform: none; }
.ks-preview { margin: 0; padding: .65rem var(--ks-gutter); font-size: .8rem; color: var(--ks-deep); background: var(--ks-sand); border-bottom: 1px solid var(--ks-rule); }
.ks-masthead { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem 2rem; padding: 1.1rem var(--ks-gutter); background: var(--ks-surface); color: var(--ks-deep); border-bottom: 1px solid var(--ks-rule); }
.ks-masthead > * { margin: 0; }
.ks-brand { display: inline-flex; align-items: center; gap: .8rem; color: inherit; text-decoration: none; letter-spacing: .025em; }
.ks-brand small { display: block; max-width: 28ch; font-size: .65rem; letter-spacing: .04em; line-height: 1.5; margin-top: .25rem; }
.ks-monogram { display: block; width: 2.75rem; height: auto; flex: 0 0 auto; }
.ks-navigation .wp-block-navigation__container { gap: 1rem; }
.ks-navigation a { padding-block: .6rem; }
.ks-navigation .wp-block-navigation__responsive-container.is-menu-open { padding: 2rem var(--ks-gutter); background: var(--ks-surface); color: var(--ks-deep); overflow-y: auto; }
.ks-navigation button { min-width: 44px; min-height: 44px; }
.ks-booking-unavailable { display: inline-block; padding: .65rem 1rem; border: 1px solid var(--ks-green); color: var(--ks-green); font-size: .8rem; line-height: 1.5; }
.ks-section { width: min(100%, 82rem); margin-inline: auto; padding: clamp(3.5rem, 7vw, 7rem) var(--ks-gutter); }
.ks-split, .ks-about { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(2rem,6vw,7rem); align-items: start; }
.ks-split > *, .ks-about > *, .ks-commercial-layout > *, .ks-contact-layout > *, .ks-document-layout > * { margin-block: 0; }
.ks-index, .ks-marker { font-family: var(--ks-sans); color: var(--ks-green); font-size: .75rem; font-weight: 650; letter-spacing: .09em; line-height: 1.7; }
.ks-index { text-transform: uppercase; }
.ks-requirement { padding-left: 1rem; border-left: 2px solid var(--ks-gold); margin-block: 1.5rem; }
.ks-requirement > :last-child { margin-bottom: 0; }
.ks-requirement p { font-size: .95rem; }
.ks-band, .ks-footer { background: var(--ks-deep); color: var(--ks-surface); border-block: 1px solid var(--ks-gold); }
.ks-band :where(h1,h2,h3,p,a), .ks-footer :where(h2,h3,p,a,small) { color: inherit; }
.ks-band .ks-requirement { border-color: var(--ks-gold); }
.ks-band a:focus-visible, .ks-footer a:focus-visible { outline-color: var(--ks-surface); box-shadow: 0 0 0 7px var(--ks-deep); }
.ks-route a { display: inline-block; padding-block: .65rem; font-size: .95rem; }
.ks-route span { margin-inline-start: .5rem; }
.ks-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); background: var(--ks-surface); border-bottom: 1px solid var(--ks-rule); }
.ks-hero-copy { padding: clamp(3rem,5vw,6rem) clamp(1.25rem,5.5vw,6rem); align-self: center; }
.ks-hero h1 { font-size: clamp(3rem,5.3vw,5.75rem); line-height: 1.04; max-width: 10ch; }
.ks-hero-name { font-size: 1.3rem; color: var(--ks-deep); }
.ks-hero-photo { align-self: stretch; background: var(--ks-sand); }
.ks-hero-photo img { width: 100%; height: clamp(32rem,54vw,48rem); object-fit: cover; object-position: center top; }
.ks-about { align-items: center; }
.ks-about-images { position: relative; padding-right: 12%; padding-bottom: 9%; }
.ks-editorial-photo, .ks-environmental-photo { border-bottom: 3px solid var(--ks-gold); }
.ks-editorial-photo img, .ks-environmental-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ks-about-images .ks-cutout { position: absolute; right: 0; bottom: 0; width: 45%; filter: none; }
.ks-about-images .ks-cutout img { width: 100%; height: auto; }
.ks-about-images .wp-block-image figcaption { padding-right: 42%; }
.ks-rows { margin-top: 3rem; }
.ks-row { display: grid; grid-template-columns: 2.5rem minmax(0,.9fr) minmax(0,1.1fr); gap: 1.5rem; padding-block: 2.5rem; border-top: 1px solid var(--ks-rule); }
.ks-row > * { margin: 0; }
.ks-row:last-child { border-bottom: 1px solid var(--ks-rule); }
.ks-number { color: var(--ks-green); font-variant-numeric: tabular-nums; font-size: .85rem; }
.ks-offer h3 { font-size: clamp(2rem,3.4vw,3.2rem); }
.ks-process { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 2rem; margin-top: 3rem; }
.ks-step { padding-top: 1.5rem; border-top: 1px solid var(--ks-gold); }
.ks-step h3 { font-size: 1.6rem; }
.ks-process-rows .ks-row { grid-template-columns: 4rem minmax(0,1fr); border-top-color: var(--ks-gold); }
.ks-process-rows .ks-row > div { grid-column: 2; }
.ks-process-rows .ks-number { font-family: var(--ks-serif); font-size: 3rem; grid-row: span 2; }
.ks-resources { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 3rem; margin-top: 3rem; }
.ks-resource { border-top: 1px solid var(--ks-gold); padding-top: 2rem; }
.ks-resource:first-child h3 { font-size: clamp(2rem,3.5vw,3.4rem); }
.ks-faq { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(2rem,6vw,7rem); }
.ks-faq-row { padding-block: 1.25rem; border-top: 1px solid var(--ks-rule); }
.ks-opening { padding-bottom: 3rem; }
.ks-opening h1 { margin-bottom: 2.5rem; }
.ks-opening-copy { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3rem; }
.ks-opening-copy > * { margin: 0; }
.ks-question { font-family: var(--ks-serif); font-size: clamp(1.4rem,2.3vw,2rem); line-height: 1.4; }
.ks-passage + .ks-passage { padding-top: 0; padding-left: max(var(--ks-gutter),12%); }
.ks-sand, .ks-commercial-status { background: var(--ks-sand); }
.ks-sand .ks-marker, .ks-commercial-status .ks-marker { color: var(--ks-deep); }
.ks-commercial-layout, .ks-document-layout { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: clamp(2rem,5vw,5rem); align-items: start; }
.ks-commercial-status { padding: 2rem; border-top: 1px solid var(--ks-gold); }
.ks-commercial-status h2 { font-size: 2rem; }
.ks-commercial .ks-row { grid-template-columns: 1.5rem minmax(0,1fr); }
.ks-commercial .ks-row > div { grid-column: 2; }
.ks-document { padding-bottom: 4rem; }
.ks-policy-opening { max-width: 68rem; }
.ks-policy-opening h1 { font-size: clamp(2.3rem,4.3vw,3.8rem); }
.ks-document-layout { max-width: 76rem; padding-top: 1rem; }
.ks-document-body { max-width: 68ch; }
.ks-document-section { border-top: 1px solid var(--ks-rule); padding-block: 2rem; }
.ks-document-section h2 { font-size: clamp(1.6rem,2.3vw,2.3rem); }
.ks-contents { border-top: 1px solid var(--ks-gold); padding-top: 1.5rem; }
.ks-contents h2 { font-size: 1.4rem; }
.ks-contents .ks-route { border-bottom: 1px solid var(--ks-rule); margin: 0; }
.ks-contents a { min-height: 44px; }
.ks-crisis-layout { max-width: 68rem; padding-top: 0; }
.ks-contact-layout { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: clamp(2rem,5vw,5rem); }
.ks-contact .ks-row { grid-template-columns: 1.5rem minmax(0,1fr); }
.ks-contact .ks-row > div { grid-column: 2; }
.ks-post-row { border-top: 1px solid var(--ks-rule); padding-block: 2rem; }
.ks-post-row h2 { font-size: clamp(1.8rem,3vw,2.8rem); }
.ks-article-body { padding: 0 var(--ks-gutter) 3rem; }
.ks-article-body > * { max-width: 68ch; margin-inline: auto; }
.wp-block-search__inside-wrapper { flex-wrap: wrap; gap: .75rem; }
.wp-block-search__input { min-width: 0; max-width: 100%; padding: .75rem; border: 1px solid var(--ks-green); border-radius: 0; font: inherit; }
.wp-block-search__button { margin: 0; padding: .75rem 1rem; border: 0; background: var(--ks-green); color: var(--ks-surface); font: inherit; }
.ks-footer-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr); gap: 3rem; padding-block: 4rem; }
.ks-footer-grid h2 { font-family: var(--ks-sans); font-size: 1rem; font-weight: 600; }
.ks-footer-grid .ks-route { margin: 0; }
.ks-footer-grid .ks-route a { padding-block: .4rem; }
.ks-footer-base { border-top: 1px solid var(--ks-gold); padding-block: 2rem; }
.ks-footer .ks-brand { color: var(--ks-surface); }
.ks-footer .ks-monogram { background: var(--ks-canvas); }
@media (max-width: 960px) {
  .ks-split, .ks-about, .ks-hero, .ks-faq, .ks-commercial-layout, .ks-document-layout, .ks-contact-layout, .ks-opening-copy { grid-template-columns: minmax(0,1fr); gap: 2rem; }
  .ks-hero { gap: 0; }
  .ks-hero-photo { order: -1; }
  .ks-hero-photo img { height: auto; aspect-ratio: 6 / 7; object-fit: cover; object-position: center top; }
  .ks-hero-copy { padding: 3rem var(--ks-gutter); }
  .ks-hero h1 { max-width: 13ch; }
  .ks-about-images { width: min(100%,38rem); }
  .ks-process, .ks-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ks-footer-grid > :first-child { grid-column: 1 / -1; }
  .ks-row { grid-template-columns: 2rem minmax(0,1fr); }
  .ks-row > :last-child { grid-column: 2; }
  .ks-resources { gap: 2rem; }
}
@media (max-width: 600px) {
  .ks-masthead { gap: 1rem; }
  .ks-masthead .ks-booking-unavailable { flex-basis: 100%; }
  .ks-navigation { margin-left: auto; }
  .ks-process, .ks-resources, .ks-footer-grid { grid-template-columns: minmax(0,1fr); }
  .ks-footer-grid > :first-child { grid-column: auto; }
  .ks-row, .ks-commercial .ks-row, .ks-process-rows .ks-row, .ks-contact .ks-row { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .ks-row > :last-child, .ks-commercial .ks-row > div, .ks-process-rows .ks-row > div, .ks-contact .ks-row > div { grid-column: 1; }
  .ks-process-rows .ks-number { grid-row: auto; }
  .ks-passage + .ks-passage { padding-left: var(--ks-gutter); }
  .ks-commercial-status { padding: 1.25rem; }
  .ks-brand { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
