/* WordPress integration and page templates */

:root { --wp-admin-bar-offset: 0px; }
.admin-bar { --wp-admin-bar-offset: 32px; }
.admin-bar .oah-header { top: var(--wp-admin-bar-offset); }
@media (max-width: 782px) { .admin-bar { --wp-admin-bar-offset: 46px; } }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.screen-reader-text:focus { top: 8px; left: 8px; z-index: 100000; width: auto; height: auto; padding: 12px 18px; clip: auto; color: var(--oah-charcoal); background: var(--oah-gold); font-weight: 700; }
.skip-link { position: fixed !important; }

.oah-header-logo, .custom-logo { max-height: 64px; width: auto; }
.oah-nav-list { display: flex; align-items: center; gap: 26px; margin: 0; padding: 0; list-style: none; }
.oah-nav-list > li { position: relative; }
.oah-nav-list a { display: block; }
.oah-nav-list .sub-menu { position: absolute; top: calc(100% - 12px); left: -18px; display: none; min-width: 220px; margin: 0; padding: 12px; list-style: none; background: var(--oah-charcoal); border: 1px solid rgba(216,154,27,.45); box-shadow: var(--oah-shadow-dark); }
.oah-nav-list li:hover > .sub-menu, .oah-nav-list li:focus-within > .sub-menu { display: block; }
.oah-nav-list .sub-menu a { padding: 11px 12px; text-transform: none; letter-spacing: .02em; }
.oah-nav-list .sub-menu a::after { display: none; }
.oah-nav .current-menu-item > a::after, .oah-nav .current_page_item > a::after { right: 0; }

.oah-hero::before { background: linear-gradient(90deg, rgba(3,8,16,.94) 0%, rgba(3,8,16,.80) 43%, rgba(3,8,16,.25) 74%, rgba(3,8,16,.48) 100%), var(--oah-hero-image, url('../img/hero-estate.jpg')) center/cover no-repeat; }
.oah-property-grid { margin-top: 38px; }
.oah-section-action { margin-top: 34px; text-align: center; }
.oah-align-center { align-items: center; }
.oah-btn--block { width: 100%; }

/* Page heroes */
.oah-page-hero { position: relative; overflow: hidden; padding: 86px 0 74px; color: var(--oah-white); background: var(--oah-navy); border-bottom: 2px solid var(--oah-gold); }
.oah-page-hero::after { content: ""; position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(135deg, transparent 48%, rgba(216,154,27,.25) 49%, transparent 50%); background-size: 46px 46px; }
.oah-page-hero--image { background-image: linear-gradient(90deg, rgba(3,8,16,.92), rgba(3,8,16,.48)), var(--oah-page-hero-image); background-size: cover; background-position: center; }
.oah-page-hero--image::after { opacity: .16; }
.oah-page-hero > .oah-container { position: relative; z-index: 1; }
.oah-page-hero__title { max-width: 920px; margin: 0; color: var(--oah-white); font-family: var(--oah-font-display); font-size: clamp(2.6rem, 6vw, 5.5rem); line-height: 1; letter-spacing: -.035em; }
.oah-page-hero p, .oah-page-hero__description { max-width: 720px; color: rgba(255,255,255,.76); }
.oah-page-hero .oah-site-search { max-width: 720px; margin-top: 26px; }

/* WordPress content */
.oah-entry-shell { max-width: 920px; }
.oah-entry-content { font-size: 1.04rem; }
.oah-entry-content > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.oah-entry-content > .alignwide { max-width: 1100px; }
.oah-entry-content > .alignfull { max-width: none; width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }
.oah-entry-content h1, .oah-entry-content h2, .oah-entry-content h3, .oah-entry-content h4 { color: var(--oah-navy); font-family: var(--oah-font-display); line-height: 1.15; }
.oah-entry-content h2 { margin-top: 2.25em; font-size: clamp(1.7rem,3vw,2.5rem); }
.oah-entry-content h3 { margin-top: 1.8em; font-size: 1.55rem; }
.oah-entry-content a { color: var(--oah-gold-dark); text-decoration: underline; text-underline-offset: 3px; }
.oah-entry-content blockquote { margin-block: 2rem; padding: 24px 28px; color: var(--oah-white); background: var(--oah-navy); border-left: 4px solid var(--oah-gold); }
.oah-entry-content img { height: auto; }
.oah-entry-content table { width: 100%; border-collapse: collapse; }
.oah-entry-content th, .oah-entry-content td { padding: 12px; border: 1px solid var(--oah-line); }
.oah-entry-content th { color: var(--oah-white); background: var(--oah-navy); }
.oah-front-content .oah-entry-content > * { max-width: var(--oah-container); }
.oah-full-width-content { overflow: hidden; }

/* Property archive */
.oah-page-hero--properties { background-image: linear-gradient(90deg, rgba(3,8,16,.96), rgba(3,8,16,.45)), url('../img/property-2.jpg'); background-size: cover; background-position: center; }
.oah-property-filter { padding: 26px; background: var(--oah-ivory); border: 1px solid var(--oah-line); border-top: 3px solid var(--oah-gold); box-shadow: var(--oah-shadow-sm); }
.oah-property-filter__grid { display: grid; grid-template-columns: 1.3fr repeat(5, minmax(120px,1fr)) auto; gap: 12px; align-items: end; }
.oah-archive-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 36px 0 22px; padding-bottom: 16px; border-bottom: 1px solid var(--oah-line); }
.oah-archive-toolbar p { margin: 0; color: var(--oah-muted); }
.oah-sort-form .oah-select { min-width: 190px; }
.navigation.pagination { margin-top: 42px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.page-numbers { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; padding: 0 12px; color: var(--oah-navy); background: var(--oah-white); border: 1px solid var(--oah-line); }
.page-numbers.current, .page-numbers:hover { color: var(--oah-charcoal); background: var(--oah-gold); border-color: var(--oah-gold); }

/* Single property */
.oah-property-hero { position: relative; min-height: 650px; display: flex; align-items: end; overflow: hidden; color: var(--oah-white); background: var(--oah-navy); }
.oah-property-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(3,8,16,.96), rgba(3,8,16,.08) 70%); }
.oah-property-hero__image { position: absolute; inset: 0; }
.oah-property-hero__image img { width: 100%; height: 100%; object-fit: cover; }
.oah-property-hero__content { position: relative; z-index: 1; padding-bottom: 62px; }
.oah-property-hero h1 { max-width: 900px; margin: 0 0 12px; font-family: var(--oah-font-display); font-size: clamp(2.7rem,6vw,5.6rem); line-height: 1; }
.oah-property-hero__content > p:not(.oah-eyebrow) { color: rgba(255,255,255,.72); }
.oah-property-hero__price { display: block; margin-top: 18px; color: var(--oah-gold); font-family: var(--oah-font-display); font-size: clamp(1.7rem,3vw,2.8rem); }
.oah-property-layout { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 54px; padding-top: 60px; padding-bottom: 80px; }
.oah-property-facts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-bottom: 42px; background: var(--oah-line); border: 1px solid var(--oah-line); }
.oah-property-facts > div { padding: 22px; background: var(--oah-white); }
.oah-property-facts span { display: block; color: var(--oah-muted); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.oah-property-facts strong { display: block; margin-top: 7px; color: var(--oah-navy); font-family: var(--oah-font-display); font-size: 1.35rem; }
.oah-property-description > * { max-width: none; }
.oah-property-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.oah-property-sidebar { position: relative; }
.oah-enquiry-card { position: sticky; top: calc(var(--oah-header-height) + var(--wp-admin-bar-offset) + 24px); padding: 32px; color: var(--oah-white); background: var(--oah-navy); border-top: 4px solid var(--oah-gold); box-shadow: var(--oah-shadow-md); }
.oah-enquiry-card h2 { margin: 0 0 12px; font-family: var(--oah-font-display); font-size: 2rem; }
.oah-enquiry-card p:not(.oah-eyebrow) { color: rgba(255,255,255,.72); }
.oah-enquiry-card .oah-btn { margin-top: 12px; }

/* Blog cards */
.oah-content-with-sidebar { display: grid; grid-template-columns: minmax(0,1fr) 310px; gap: 48px; }
.oah-post-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.oah-post-card { overflow: hidden; background: var(--oah-white); border: 1px solid var(--oah-line); box-shadow: var(--oah-shadow-sm); }
.oah-post-card__media { display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--oah-navy); }
.oah-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.oah-post-card:hover .oah-post-card__media img { transform: scale(1.04); }
.oah-post-card__body { padding: 26px; }
.oah-post-card__meta { margin: 0 0 10px; color: var(--oah-gold-dark); font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.oah-post-card__title { margin: 0 0 12px; color: var(--oah-navy); font-family: var(--oah-font-display); font-size: 1.65rem; line-height: 1.2; }
.oah-post-card__excerpt { color: var(--oah-muted); }
.oah-text-link { color: var(--oah-gold-dark); font-size: .76rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.oah-sidebar-widgets { display: grid; align-content: start; gap: 22px; }
.oah-widget { padding: 24px; background: var(--oah-ivory); border-top: 3px solid var(--oah-gold); }
.oah-widget__title { margin: 0 0 15px; color: var(--oah-navy); font-family: var(--oah-font-display); font-size: 1.4rem; }
.oah-widget ul { margin: 0; padding-left: 18px; }
.oah-widget li { margin: 8px 0; }
.oah-site-search { display: flex; gap: 8px; }
.oah-site-search .oah-input { flex: 1; }

/* Footer widgets and social links */
.oah-social-menu ul { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.oah-social-menu li { margin: 0; }
.oah-social-link { min-height: 38px; display: inline-flex; align-items: center; padding: 0 12px; color: var(--oah-gold); border: 1px solid rgba(216,154,27,.45); }
.oah-contact-list li { padding-left: 0; }

/* Comments */
.oah-comments { margin-top: 56px; padding-top: 36px; border-top: 1px solid var(--oah-line); }
.oah-comments h2, .comment-reply-title { color: var(--oah-navy); font-family: var(--oah-font-display); }
.comment-list { list-style: none; padding: 0; }
.comment-body { margin-bottom: 18px; padding: 22px; background: var(--oah-ivory); }
.comment-meta { font-size: .8rem; }
.comment-form label { display: block; margin-bottom: 6px; font-weight: 700; }
.comment-form input:not([type=submit]), .comment-form textarea { width: 100%; padding: 12px; border: 1px solid var(--oah-line); }
.form-submit .submit { min-height: 46px; padding: 0 22px; color: var(--oah-charcoal); background: var(--oah-gold); border: 0; font-weight: 800; }

/* Empty and error states */
.oah-empty-state { max-width: 720px; margin: 20px auto; padding: 56px; text-align: center; background: var(--oah-ivory); border: 1px solid var(--oah-line); }
.oah-empty-state h2 { color: var(--oah-navy); font-family: var(--oah-font-display); font-size: 2rem; }
.oah-error-page { min-height: 72vh; display: grid; place-items: center; padding: 80px 0; text-align: center; color: var(--oah-white); background: var(--oah-navy); }
.oah-error-page .oah-container { max-width: 760px; }
.oah-error-code { margin: 0; color: var(--oah-gold); font-family: var(--oah-font-display); font-size: clamp(6rem,18vw,14rem); line-height: .8; }
.oah-error-page h1 { font-family: var(--oah-font-display); font-size: clamp(2rem,5vw,4rem); }
.oah-error-page .oah-site-search { margin: 28px auto; }

/* Navigation */
.post-navigation { margin-top: 50px; padding-top: 28px; border-top: 1px solid var(--oah-line); }
.post-navigation .nav-links { justify-content: space-between; }
.post-navigation a { color: var(--oah-gold-dark); font-weight: 700; }

@media (max-width: 1180px) {
  .oah-property-filter__grid { grid-template-columns: repeat(3,1fr); }
  .oah-property-filter__grid .oah-btn { grid-column: span 3; }
}
@media (max-width: 1040px) {
  .oah-nav-list { flex-direction: column; align-items: stretch; gap: 0; }
  .oah-nav-list .sub-menu { position: static; display: block; margin-left: 18px; padding-block: 0; border: 0; box-shadow: none; background: transparent; }
  .oah-nav-list .sub-menu a { padding: 10px 0; }
  .oah-property-layout, .oah-content-with-sidebar { grid-template-columns: 1fr; }
  .oah-enquiry-card { position: static; }
}
@media (max-width: 760px) {
  .oah-page-hero { padding: 64px 0 54px; }
  .oah-property-filter__grid { grid-template-columns: 1fr; }
  .oah-property-filter__grid .oah-btn { grid-column: auto; }
  .oah-archive-toolbar { align-items: stretch; flex-direction: column; }
  .oah-sort-form .oah-select { width: 100%; }
  .oah-property-hero { min-height: 520px; }
  .oah-property-hero__content { padding-bottom: 38px; }
  .oah-property-facts { grid-template-columns: repeat(2,1fr); }
  .oah-property-layout { gap: 34px; padding-top: 36px; }
  .oah-post-grid { grid-template-columns: 1fr; }
  .oah-site-search { flex-direction: column; }
  .oah-empty-state { padding: 34px 20px; }
}

/* WooCommerce integration */
.woocommerce .woocommerce-breadcrumb { margin: 0 0 22px; color: var(--oah-muted); }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { overflow: hidden; padding-bottom: 22px; background: var(--oah-white); border: 1px solid var(--oah-line); box-shadow: var(--oah-shadow-sm); }
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce div.product .product_title { color: var(--oah-navy); font-family: var(--oah-font-display); }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--oah-gold-dark); font-family: var(--oah-font-display); }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit { color: var(--oah-charcoal); background: var(--oah-gold); border-radius: var(--oah-radius-xs); }
.woocommerce ul.products li.product .button { margin-left: 18px; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { color: var(--oah-charcoal); background: #efb134; }
.woocommerce-message, .woocommerce-info { border-top-color: var(--oah-gold); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--oah-gold-dark); }
.woocommerce span.onsale { min-height: 44px; min-width: 44px; background: var(--oah-gold); color: var(--oah-charcoal); }
