.button,
.wp-element-button,
button.button,
input[type="submit"] {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: .76rem 1.15rem;
  border: 1px solid transparent;
  border-radius: .78rem;
  color: #fff;
  background: var(--jas-accent);
  box-shadow: 0 9px 22px rgba(22, 119, 255, .2);
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  transition: transform .2s var(--jas-ease), box-shadow .2s var(--jas-ease), background .2s var(--jas-ease), border-color .2s var(--jas-ease);
}
.button:hover, .wp-element-button:hover, button.button:hover, input[type="submit"]:hover { color: #fff; background: var(--jas-accent-dark); box-shadow: 0 13px 28px rgba(22, 119, 255, .26); transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.button .jas-icon { width: 1.05rem; height: 1.05rem; }
.button--small { min-height: 42px; padding: .62rem .9rem; border-radius: .68rem; font-size: .9rem; }
.button--large { min-height: 54px; padding: .92rem 1.3rem; }
.button--secondary { color: var(--jas-ink); background: #fff; border-color: var(--jas-line); box-shadow: var(--jas-shadow-sm); }
.button--secondary:hover { color: var(--jas-accent-dark); background: #fff; border-color: rgba(22,119,255,.35); }
.button--quiet { color: var(--jas-ink); background: var(--jas-cloud); border-color: var(--jas-line); box-shadow: none; }
.button--quiet:hover { color: var(--jas-ink); background: #e6edf6; box-shadow: none; }
.button--light { color: var(--jas-ink); background: #fff; box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.button--light:hover { color: var(--jas-accent-dark); background: #f7fbff; }
.button--ghost-light { color: #fff; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.38); box-shadow: none; }
.button--ghost-light:hover { color: #fff; background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.72); box-shadow: none; }
.button--block { width: 100%; }
.button-group { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; }

.eyebrow { margin: 0 0 .75rem; color: var(--jas-accent-dark); font-size: .78rem; font-weight: 800; letter-spacing: .13em; line-height: 1.25; text-transform: uppercase; }
.eyebrow--light { color: #7fe3f1; }
.lead { color: var(--jas-muted); font-size: clamp(1.08rem, 2vw, 1.3rem); line-height: 1.55; }
.text-link { display: inline-flex; align-items: center; gap: .42rem; color: var(--jas-accent-dark); font-weight: 750; text-decoration: none; }
.text-link .jas-icon { width: 1rem; height: 1rem; transition: transform .2s var(--jas-ease); }
.text-link:hover .jas-icon { transform: translateX(.25rem); }

.notice-card { margin: 1.6rem 0; padding: 1rem 1.15rem; border: 1px solid #cfe1fb; border-left: 4px solid var(--jas-accent); border-radius: var(--jas-radius-sm); color: #234064; background: #f0f7ff; }
.check-card { padding: 1.5rem; border-radius: var(--jas-radius); color: #dce8f8; background: var(--jas-ink); box-shadow: var(--jas-shadow); }
.check-card h3 { color: #fff; }
.check-list { padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: 1.8rem; }
.check-list li::before { content: ""; position: absolute; top: .48em; left: 0; width: .9rem; height: .48rem; border-left: 2px solid var(--jas-green); border-bottom: 2px solid var(--jas-green); transform: rotate(-45deg); }
.check-card .check-list li { color: #dce8f8; }
.check-list--large li { margin: .75rem 0; font-size: 1.05rem; }
.icon-list { padding: 0; list-style: none; }
.icon-list li { display: flex; gap: .75rem; align-items: flex-start; margin: .85rem 0; }
.icon-list .jas-icon { margin-top: .2rem; color: var(--jas-accent); }

.feature-grid, .values-grid { display: grid; gap: 1rem; margin: 2rem 0; }
.feature-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feature-card, .values-grid > div { padding: 1.4rem; border: 1px solid var(--jas-line); border-radius: var(--jas-radius); background: #fff; box-shadow: var(--jas-shadow-sm); }
.feature-card > :last-child, .values-grid > div > :last-child { margin-bottom: 0; }
.values-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.values-grid > div { border-top: 4px solid var(--jas-accent); }

.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0; counter-reset: process; }
.process-grid > div { position: relative; padding: 1.35rem; overflow: hidden; border: 1px solid var(--jas-line); border-radius: var(--jas-radius); background: #fff; }
.process-grid > div > span { display: inline-grid; width: 2.4rem; height: 2.4rem; place-items: center; margin-bottom: 1rem; border-radius: .7rem; color: #fff; background: var(--jas-accent); font-weight: 800; font-size: .78rem; }
.process-grid > div > :last-child { margin-bottom: 0; }
.process-grid--large { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.faq-list { max-width: 900px; margin: 1.5rem auto; }
.faq-item { overflow: hidden; margin: .75rem 0; border: 1px solid var(--jas-line); border-radius: var(--jas-radius); background: #fff; box-shadow: 0 6px 20px rgba(11,18,32,.035); }
.faq-item summary { position: relative; padding: 1.15rem 3.5rem 1.15rem 1.2rem; font-weight: 750; cursor: pointer; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; top: 50%; right: 1.2rem; width: 1.7rem; height: 1.7rem; display: grid; place-items: center; transform: translateY(-50%); border-radius: 50%; color: var(--jas-accent-dark); background: var(--jas-cloud); font-size: 1.2rem; }
.faq-item[open] summary::after { content: "–"; }
.faq-item__answer { padding: 0 1.2rem 1.25rem; color: var(--jas-muted); }
.faq-item__answer > :last-child { margin-bottom: 0; }

.review-summary { display: flex; gap: 1.2rem; padding: 1.5rem; border: 1px solid var(--jas-line); border-radius: var(--jas-radius-lg); background: #fff; box-shadow: var(--jas-shadow-sm); }
.review-summary__icon { display: grid; width: 3rem; height: 3rem; flex: 0 0 auto; place-items: center; border-radius: .9rem; color: #fff; background: linear-gradient(135deg, var(--jas-accent), var(--jas-cyan)); }
.review-summary strong { display: block; font-size: 1.15rem; }
.review-summary p { margin: .35rem 0 .7rem; color: var(--jas-muted); font-size: .92rem; }
.contact-details-card { padding: 1.6rem; border: 1px solid var(--jas-line); border-radius: var(--jas-radius-lg); background: var(--jas-cloud); }
.contact-details-card h2 { margin-bottom: 1.2rem; }
.contact-layout { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }

.post-card { overflow: hidden; border: 1px solid var(--jas-line); border-radius: var(--jas-radius-lg); background: #fff; box-shadow: var(--jas-shadow-sm); transition: transform .25s var(--jas-ease), box-shadow .25s var(--jas-ease); }
.post-card:hover { transform: translateY(-5px); box-shadow: var(--jas-shadow); }
.post-card__media { display: block; aspect-ratio: 16/9; overflow: hidden; color: #fff; background: linear-gradient(135deg, var(--jas-navy), var(--jas-accent)); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--jas-ease); }
.post-card:hover .post-card__media img { transform: scale(1.035); }
.post-card__placeholder { display: grid; width: 100%; height: 100%; place-items: center; }
.post-card__placeholder .jas-icon { width: 3.5rem; height: 3.5rem; opacity: .75; }
.post-card__body { padding: 1.25rem; }
.post-card__body h3 { margin: .35rem 0 .65rem; }
.post-card__body h3 a { color: var(--jas-ink); text-decoration: none; }
.post-card__body p { color: var(--jas-muted); }
.post-card__meta { color: var(--jas-muted); font-size: .8rem; }

.search-result-card { padding: 1.4rem; border: 1px solid var(--jas-line); border-radius: var(--jas-radius); background: #fff; }
.search-result-card h2 { font-size: 1.5rem; }
.search-result-card h2 a { color: var(--jas-ink); text-decoration: none; }
.search-form { display: flex; width: 100%; gap: .6rem; }
.search-form label { flex: 1; }
.search-field { width: 100%; min-height: 50px; padding: .72rem .9rem; border: 1px solid var(--jas-line); border-radius: .75rem; background: #fff; }
.empty-state { max-width: 720px; margin: 1rem auto; padding: 3rem; border: 1px dashed #b8c5d5; border-radius: var(--jas-radius-lg); background: #fff; text-align: center; }
.empty-state > div { display: grid; width: 4rem; height: 4rem; place-items: center; margin: 0 auto 1rem; border-radius: 1rem; color: #fff; background: var(--jas-accent); }
.empty-state .button-group { justify-content: center; }
.pagination { margin-top: 2.2rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .4rem; }
.page-numbers { display: grid; min-width: 2.6rem; min-height: 2.6rem; place-items: center; padding: .35rem .65rem; border: 1px solid var(--jas-line); border-radius: .6rem; background: #fff; text-decoration: none; }
.page-numbers.current { color: #fff; background: var(--jas-accent); border-color: var(--jas-accent); }
.edit-link { margin-top: 2rem; font-size: .85rem; }

@media (max-width: 900px) {
  .feature-grid--three, .values-grid, .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-layout { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .button-group { align-items: stretch; }
  .button-group .button { flex: 1 1 100%; }
  .feature-grid--three, .feature-grid--two, .values-grid, .process-grid, .process-grid--large { grid-template-columns: 1fr; }
  .search-form { flex-direction: column; }
  .review-summary { flex-direction: column; }
  .empty-state { padding: 2rem 1rem; }
}
