.shji-main,
.shji-listing,
.shji-detail { --shji-bg: var(--color-content-bg,#F6F7FF); --shji-surface: var(--color-content-bg-alt,#fff); --shji-border: var(--color-content-border,rgba(218,219,240,.5)); --shji-heading: var(--color-content-heading,#1A243E); --shji-text: var(--color-content-text,#334866); --shji-primary: var(--color-content-primary,#224D9D); --shji-secondary: var(--color-content-secondary,#1A243E); --shji-faded: var(--color-content-faded,#798699); --shji-radius: .4rem; font: inherit; color: var(--shji-text); }
.shji-listing *, .shji-detail * { box-sizing: border-box; }
.shji-listing { padding-block: clamp(1.75rem,3.5vw,3.5rem); }
.shji-main > .l-section > .l-section-h { padding-top: clamp(3.5rem,7vw,7rem); padding-bottom: clamp(2.5rem,5vw,5rem); }
.shji-main .shji-detail { padding-top: clamp(2.75rem,5vw,5rem); }
.shji-filters { margin: 0 0 1.5rem; overflow: hidden; border: 1px solid var(--shji-border); border-radius: var(--shji-radius); background: var(--shji-surface); }
.shji-filter-toggle { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .8rem; width: 100%; min-height: 4.2rem; padding: .75rem 1rem; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.shji-filter-toggle:hover { background: var(--shji-bg); }
.shji-filter-toggle > span:nth-child(2) { display: grid; gap: .08rem; }
.shji-filter-toggle strong { font-size: .98rem; line-height: 1.25; }
.shji-filter-toggle small { font-size: .76rem; line-height: 1.3; opacity: .65; }
.shji-filter-icon { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: var(--shji-border); color: var(--shji-text); font-size: .8rem; line-height: 1; }
.shji-filter-chevron { display: grid; place-items: center; font-size: .9rem; transition: transform .2s ease; }
.shji-filter-toggle[aria-expanded="true"] .shji-filter-chevron { transform: rotate(180deg); }
.shji-filter-panel { padding: 1rem; border-top: 1px solid var(--shji-border); }
.shji-filter-panel[hidden], .shji-filter-more[hidden] { display: none !important; }
.shji-filter-primary, .shji-filter-more { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; align-items: end; }
.shji-filter-more { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--shji-border); }
.shji-field, .shji-form-grid label { display: grid; gap: .4rem; margin: 0; font: inherit; }
.shji-field > span:not(.shji-select-wrap), .shji-form-grid label > span:not(.shji-select-wrap), .shji-marketing legend { font-size: .82em; font-weight: 600; }
.shji-field input, .shji-field select, .shji-form-grid input, .shji-form-grid select, .shji-form-grid textarea { width: 100%; min-height: 2.65rem; margin: 0; padding: .55rem .7rem; border: 1px solid var(--shji-border); border-radius: .2rem; background: var(--inputs-background,var(--shji-bg)); color: var(--inputs-text-color,var(--shji-text)); font: inherit; font-size: .92rem; }
.shji-select-wrap { position: relative; display: block; min-width: 0; }
.shji-select-icon { position: absolute; top: 50%; right: 1.2rem; color: var(--inputs-text-color,var(--shji-text)); font-size: .72rem; line-height: 1; opacity: .85; pointer-events: none; transform: translateY(-50%); }
.shji-field .shji-select-wrap select,
.shji-form-grid .shji-select-wrap select { -webkit-appearance: none !important; appearance: none !important; min-height: var(--inputs-height,3.5rem); padding-right: 3.25rem !important; border: var(--inputs-border-width,2px) solid var(--shji-border) !important; border-radius: calc(var(--inputs-height,3.5rem) / 2) !important; background-color: var(--inputs-background,var(--shji-bg)) !important; background-image: none !important; box-shadow: none; }
.shji-field .shji-select-wrap select:focus,
.shji-form-grid .shji-select-wrap select:focus { border-color: var(--shji-primary) !important; outline: none; }
.shji-form-grid textarea { resize: vertical; }
.shji-marketing { grid-column: span 2; min-width: 0; margin: 0; padding: 0; border: 0; }
.shji-marketing label { display: inline-flex; align-items: center; gap: .35rem; margin: .55rem .8rem 0 0; font-size: .9rem; }
.shji-filter-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 1rem; margin-top: .9rem; font-size: .9rem; }
.shji-link-button { margin-right: auto; padding: 0; border: 0; background: none; color: var(--color-content-link,var(--shji-primary)); text-decoration: underline; cursor: pointer; font: inherit; }
.shji-button, .shji-secondary-button { cursor: pointer; text-decoration: none !important; }
.shji-result-head { display: flex; justify-content: flex-end; margin-bottom: 1rem; font-size: .9em; opacity: .75; }
.shji-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(.9rem,2vw,1.5rem); }
.shji-card { position: relative; overflow: hidden; border: 0; border-radius: var(--shji-radius); background: var(--shji-surface); box-shadow: none; transition: transform .2s ease, box-shadow .2s ease; }
.shji-card:hover { transform: translateY(-3px); box-shadow: 0 .6rem 1.8rem color-mix(in srgb,var(--shji-heading) 12%,transparent); }
.shji-card-link { display: block; height: 100%; color: inherit !important; text-decoration: none !important; }
.shji-card-image { position: relative; aspect-ratio: 3/2; overflow: hidden; background: var(--shji-border); }
.shji-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.shji-card:hover .shji-card-image img { transform: scale(1.025); }
.shji-placeholder { display: block; width: 100%; height: 100%; }
.shji-card-body { padding: 1rem 1rem .7rem; }
.shji-card h2, .shji-card h3 { margin: 0 0 .55rem; font-size: clamp(1rem,1.35vw,1.18rem) !important; line-height: 1.28; }
.shji-location { display: flex; align-items: baseline; gap: .45em; margin: 0; opacity: .72; }
.shji-location-icon { flex: 0 0 auto; color: var(--shji-faded); font-size: .85em; }
.shji-card-facts { display: flex; align-items: flex-start; gap: clamp(.8rem,1.5vw,1.35rem); margin: 0; padding: .8rem 1rem; border-top: 1px solid var(--shji-border); }
.shji-card-facts div { flex: 0 1 auto; min-width: 0; padding: 0; }
.shji-card-facts div:last-child { flex: 0 0 auto; margin-left: auto; }
.shji-card-facts dt { margin: 0 0 .2rem; font-size: .7em; opacity: .7; }
.shji-card-facts dd { margin: 0; font-size: .9em; font-weight: 600; overflow-wrap: anywhere; }
.shji-card-facts div:last-child dd { white-space: nowrap; overflow-wrap: normal; }
.shji-pagination { display: flex; justify-content: center; gap: .4rem; margin-top: 2.5rem; }
.shji-pagination.is-enhanced { display: none; }
.shji-pagination .page-numbers { display: grid; min-width: 2.6rem; min-height: 2.6rem; place-items: center; padding: .4rem; border: 1px solid var(--shji-border); text-decoration: none; }
.shji-pagination .current { border-color: var(--shji-primary); background: var(--shji-primary); color: var(--shji-surface); }
.shji-load-more { position: relative; display: grid; justify-items: center; gap: .65rem; min-height: 5rem; padding-top: 2rem; overflow-anchor: none; }
.shji-load-more[hidden] { display: none !important; }
.shji-load-more.is-auto .shji-secondary-button:not(:focus-visible) { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.shji-load-status { min-height: 1.4em; color: var(--shji-faded); font-size: .85rem; text-align: center; }
.shji-load-more.is-loading .shji-load-status::before { content: ""; display: inline-block; width: .8rem; height: .8rem; margin-right: .55rem; border: 2px solid var(--shji-border); border-top-color: var(--shji-primary); border-radius: 50%; vertical-align: -.08rem; animation: shji-spin .7s linear infinite; }
.shji-load-sentinel { position: absolute; right: 0; bottom: 0; left: 0; height: 1px; }
.shji-card.is-new { animation: shji-card-in .35s ease both; }
.shji-load-more.is-complete { min-height: auto; padding-top: 1.25rem; }
.shji-load-more.is-complete .shji-secondary-button { display: none; }
.shji-empty { padding: 3rem 1rem; text-align: center; }

@keyframes shji-spin { to { transform: rotate(360deg); } }
@keyframes shji-card-in { from { opacity: 0; transform: translateY(.75rem); } to { opacity: 1; transform: translateY(0); } }

.shji-detail-head { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.shji-detail-head h1 { max-width: 28ch; margin: 0 0 .45rem; font-size: clamp(2rem,3.2vw,3.2rem) !important; line-height: 1.08 !important; }
.shji-back { flex: none; }
.shji-back .fa-arrow-left { margin-right: .4em; }
.shji-gallery { margin-bottom: clamp(1.5rem,3vw,2.75rem); }
.shji-gallery-stage { position: relative; display: grid; overflow: hidden; aspect-ratio: 16/9; background: var(--shji-surface); }
.shji-slide { grid-area: 1/1; width: 100%; height: 100%; margin: 0; overflow: hidden; }
.shji-slide img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.shji-gallery-prev, .shji-gallery-next { position: absolute; top: 50%; display: grid; width: 2.6rem; height: 2.6rem; place-items: center; padding: 0; transform: translateY(-50%); border: 0; border-radius: 50%; background: var(--shji-heading); background: color-mix(in srgb,var(--shji-heading) 78%,transparent); color: var(--shji-surface); cursor: pointer; font-size: 1rem; line-height: 1; }
.shji-gallery-prev i, .shji-gallery-next i { display: block; font-size: 1rem; line-height: 1; }
.shji-gallery-prev { left: 1rem; } .shji-gallery-next { right: 1rem; }
.shji-gallery-count { position: absolute; right: 1rem; bottom: 1rem; padding: .3rem .65rem; border-radius: 1rem; background: var(--shji-heading); background: color-mix(in srgb,var(--shji-heading) 82%,transparent); color: var(--shji-surface); font-size: .8rem; }
.shji-thumbnails { display: flex; gap: .5rem; margin-top: .5rem; overflow-x: auto; scroll-snap-type: x proximity; }
.shji-thumbnails button { flex: 0 0 6rem; aspect-ratio: 3/2; padding: 0; overflow: hidden; border: 2px solid transparent; background: none; cursor: pointer; opacity: .65; scroll-snap-align: start; }
.shji-thumbnails button.is-active { border-color: var(--shji-primary); opacity: 1; }
.shji-thumbnails img { width: 100%; height: 100%; object-fit: cover; }
.shji-detail-layout { display: grid; grid-template-columns: minmax(0,2fr) minmax(17rem,1fr); gap: clamp(1.5rem,3vw,3rem); align-items: start; }
.shji-basis-title, .shji-section > h2, .shji-inquiry > h2, .shji-related > h2 { font-size: clamp(1.3rem,1.8vw,1.65rem) !important; line-height: 1.2 !important; }
.shji-basis-title { margin: 0 0 .9rem; }
.shji-fact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid var(--shji-border); border-left: 1px solid var(--shji-border); }
.shji-fact-grid dl { margin: 0; padding: .8rem; border-right: 1px solid var(--shji-border); border-bottom: 1px solid var(--shji-border); }
.shji-fact-grid dt, .shji-data-list dt { font-size: .78em; opacity: .7; }
.shji-fact-grid dd, .shji-data-list dd { margin: .25rem 0 0; font-weight: 600; }
.shji-section { margin-top: clamp(2rem,3.5vw,3.25rem); scroll-margin-top: 7rem; }
.shji-section > h2 { margin-bottom: 1rem; }
.shji-prose > :first-child { margin-top: 0; }
.shji-prose > :last-child { margin-bottom: 0; }
.shji-prose h2, .shji-prose h3 { margin: 0 0 .9rem; font-size: clamp(1.12rem,1.4vw,1.3rem) !important; line-height: 1.25 !important; }
.shji-data-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 2rem; margin: 1.5rem 0 0; }
.shji-data-list div { display: grid; grid-template-columns: minmax(6rem,1fr) 1.5fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--shji-border); }
.shji-data-list dd { text-align: right; }
.shji-sidebar { position: static; display: grid; gap: 1rem; }
.shji-price-box, .shji-contact-card { display: grid; gap: .65rem; padding: clamp(1rem,2vw,1.5rem); border: 0; border-radius: var(--shji-radius); background: var(--shji-surface); }
.shji-price-box > span { font-size: .82em; opacity: .7; }
.shji-price-box > strong { font-size: clamp(1.35rem,2.3vw,1.9rem); line-height: 1.1; }
.shji-price-box small { display: block; }
.shji-price-box .shji-button { margin-top: .6rem; }
.shji-contact-card h2 { margin: 0 0 .5rem; font-size: 1.25rem; }
.shji-contact-card img { width: 6.25rem; height: 6.25rem; object-fit: cover; border-radius: 50%; }
.shji-downloads { display: grid; gap: .75rem; }
.shji-downloads a { padding: .85rem 1rem; border: 1px solid var(--shji-border); }
.shji-downloads video { width: 100%; max-height: 70vh; background: var(--shji-heading); }
.shji-map { display: grid; min-height: 24rem; place-items: center; align-content: center; gap: .75rem; overflow: hidden; padding: 1rem; border-radius: var(--shji-radius); background: var(--shji-surface); text-align: center; }
.shji-map iframe { width: 100%; height: 28rem; border: 0; }
.shji-map p { margin: 0; font-size: .82em; opacity: .7; }
.shji-poi { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem 2rem; }
.shji-detail-content h3 { margin: 0 0 .9rem; font-size: clamp(1.12rem,1.4vw,1.3rem) !important; line-height: 1.25 !important; }
.shji-poi dl { margin: 0; }
.shji-poi dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--shji-border); }
.shji-poi dd { margin: 0; font-weight: 600; }
.shji-inquiry { padding: clamp(1.15rem,3vw,2.25rem); border-radius: var(--shji-radius); background: var(--shji-surface); }
.shji-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.shji-form-wide { grid-column: 1/-1; }
.shji-consent { display: flex; align-items: center; gap: .7rem; margin: 1.2rem 0; font-size: .9em; }
.shji-consent input { flex: 0 0 auto; margin: 0; }
.shji-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.shji-notice { margin-bottom: 1.2rem; padding: 1rem; border-left: .25rem solid; }
.shji-notice.success { border-color: var(--shji-primary); background: var(--shji-bg); }
.shji-notice.error { border-color: var(--shji-secondary); background: var(--shji-bg); }
.shji-related { padding-top: 1rem; border-top: 1px solid var(--shji-border); }

@media (max-width: 1100px) {
  .shji-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (min-width: 601px) and (max-width: 1024px) {
  .shji-main > .l-section > .l-section-h { padding-top: 0; }
  .shji-main .shji-detail { padding-top: clamp(1.25rem,3vw,2rem); }
}
@media (max-width: 900px) {
  .shji-filter-primary, .shji-filter-more { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shji-detail-layout { grid-template-columns: 1fr; }
  .shji-sidebar { position: static; grid-row: 1; }
}
@media (max-width: 600px) {
  .shji-main .shji-detail { padding-top: 2rem; }
  .shji-filter-primary, .shji-filter-more, .shji-grid, .shji-form-grid { grid-template-columns: 1fr; }
  .shji-marketing, .shji-form-wide { grid-column: auto; }
  .shji-filter-actions { align-items: stretch; }
  .shji-filter-actions .shji-button { width: 100%; }
  .shji-result-head { justify-content: flex-start; }
  .shji-detail-head { align-items: flex-start; flex-direction: column; }
  .shji-gallery-stage { aspect-ratio: 4/3; }
  .shji-gallery-prev, .shji-gallery-next { width: 2.6rem; height: 2.6rem; }
  .shji-fact-grid, .shji-data-list { grid-template-columns: 1fr; }
  .shji-poi { grid-template-columns: 1fr; }
  .shji-card-facts { gap: .7rem; }
}
@media (prefers-reduced-motion: reduce) { .shji-card, .shji-card-image img { transition: none; } .shji-card.is-new { animation: none; } }

