/*
Theme Name: AIM Resources Relocation
Theme URI: https://aimresourcesinc.com/
Author: AIM Resources / WordPress conversion
Description: A lightweight, Gutenberg-editable theme based on the AIM Resources static website. Includes starter pages and original assets.
Version: 1.2.0
Requires at least: 6.3
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: aim-resources
License: GPL-2.0-or-later
*/

:root{--ink:#142b3b;--muted:#526370;--teal:#0e6570;--cream:#f7f5ef;--line:#dce3e4;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6;font-size:16px}a{color:inherit}a:focus-visible{outline:3px solid #e9a65d;outline-offset:3px}.wrap{width:min(1120px,calc(100% - 48px));margin:auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;font-size:25px;letter-spacing:.08em;font-weight:750;line-height:1}.brand small{display:block;font-size:10px;letter-spacing:.23em;font-weight:500;margin-top:8px}.nav{display:flex;gap:31px;align-items:center}.nav a{text-decoration:none;font-size:14px;font-weight:700}.nav a[aria-current=page],.nav a:hover{color:var(--teal)}.nav .contact-link{padding:11px 16px;border:1px solid var(--teal);color:var(--teal);border-radius:3px}.hero{background:#132d39;color:#fff;position:relative;min-height:590px;display:flex;align-items:center;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,31,42,.94) 0%,rgba(7,31,42,.72) 36%,rgba(7,31,42,.08) 78%),var(--aim-hero-image) center/cover}.hero .wrap{position:relative;padding:75px 0}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:700;color:#75c5c6}.hero h1{font-size:clamp(42px,5.6vw,76px);line-height:1.08;letter-spacing:-.045em;max-width:670px;margin:20px 0}.hero p{font-size:20px;max-width:580px;line-height:1.55;color:#e8eeee}.button{display:inline-block;text-decoration:none;background:var(--teal);color:#fff;padding:14px 22px;font-weight:700;border-radius:3px;margin-top:19px}.button:hover{background:#094f59}.button-light{background:#fff;color:var(--ink)}.intro{padding:85px 0}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.section-kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--teal);margin:0 0 16px}.section-title{font-family:Georgia,serif;font-weight:400;line-height:1.15;letter-spacing:-.03em;font-size:clamp(33px,3.7vw,51px);margin:0 0 22px}.lead{font-size:19px;line-height:1.65;color:#334956;margin-top:0}.bodycopy{color:var(--muted);max-width:700px}.text-link{color:var(--teal);font-weight:700;text-underline-offset:4px}.services-preview,.pale{background:var(--cream);padding:80px 0}.section-head{max-width:690px;margin-bottom:35px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card{background:#fff;padding:30px 25px;border-top:3px solid var(--teal);min-height:235px}.number{color:var(--teal);font-size:12px;letter-spacing:.12em;font-weight:700}.card h3{font-family:Georgia,serif;font-size:25px;line-height:1.2;font-weight:400;margin:25px 0 12px}.card p{color:var(--muted);font-size:15px;margin:0}.band{background:var(--ink);color:#fff;padding:62px 0}.band-grid{display:flex;align-items:center;justify-content:space-between;gap:35px}.band h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(29px,3vw,39px);line-height:1.2;margin:0;max-width:680px}.band p{color:#d7e4e6;margin:10px 0 0}.page-hero{background:var(--ink);color:#fff;padding:90px 0 94px}.page-hero h1{font-size:clamp(44px,5vw,65px);font-family:Georgia,serif;line-height:1.12;font-weight:400;letter-spacing:-.03em;margin:15px 0 16px}.page-hero p{font-size:20px;max-width:735px;color:#dce8e9;margin:0}.content{padding:75px 0}.statement{max-width:860px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:65px}.leaders{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:30px}.leader{border-top:2px solid var(--teal);padding-top:21px}.leader h3{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:0}.leader p{color:var(--muted);margin:6px 0}.service-row{display:grid;grid-template-columns:220px 1fr;gap:55px;padding:37px 0;border-top:1px solid var(--line)}.service-row:first-child{border-top:0;padding-top:0}.service-row h2{font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.2;margin:0}.service-row p{margin:0;color:#405563;font-size:17px;max-width:730px}.service-row .detail{margin-top:13px;color:var(--muted);font-size:15px}.mini{font-size:14px;color:var(--muted)}footer{background:#0c2230;color:#dce8e9;padding:42px 0;font-size:14px}.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}footer strong{color:#fff;letter-spacing:.08em}footer a{color:#fff;text-underline-offset:3px}footer p{margin:7px 0}.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;background:#fff;padding:10px;z-index:3}@media(max-width:800px){.cards{grid-template-columns:repeat(2,1fr)}.intro-grid,.two-col{gap:35px}.service-row{grid-template-columns:1fr;gap:12px}.hero{min-height:540px}.hero:before{background:linear-gradient(90deg,rgba(7,31,42,.94),rgba(7,31,42,.55)),var(--aim-hero-image) center/cover}}@media(max-width:600px){.wrap{width:min(100% - 36px,1120px)}.header-inner{align-items:flex-start;flex-direction:column;padding:20px 0;gap:18px}.nav{width:100%;gap:16px;flex-wrap:wrap}.nav a{font-size:13px}.nav .contact-link{padding:5px 9px}.hero{min-height:565px}.hero .wrap{padding:55px 0}.hero p,.page-hero p{font-size:18px}.intro,.content,.services-preview,.pale{padding:58px 0}.intro-grid,.two-col,.leaders,.cards{grid-template-columns:1fr}.card{min-height:0}.band-grid{display:block}.page-hero{padding:65px 0}.band{padding:55px 0}}
.photo-section{height:min(40vw,450px);overflow:hidden}.photo-section img{width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block}@media(max-width:600px){.photo-section{height:280px}}

.brand{font-size:30px}.brand small{font-size:11px;letter-spacing:.18em}.cards{grid-template-columns:repeat(3,1fr)}.footer-grid{align-items:center}.wbenc-logo{background:#fff;display:block;padding:11px;border-radius:3px;line-height:0}.wbenc-logo img{display:block;width:150px;height:auto}@media(max-width:800px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.brand{font-size:28px}.brand small{font-size:10px}.cards{grid-template-columns:1fr}.wbenc-logo img{width:135px}}
footer#contact{scroll-margin-top:15px}footer .contact-details h2{color:#fff;font-size:18px;line-height:1.2;margin:0 0 10px}footer#contact:target{outline:3px solid #75c5c6;outline-offset:-3px}

:root{--cream:#f0f6fc}.card{background:#dfeefa;border-top-color:#4d8ec0}.contact-overlay{display:none;position:fixed;inset:0;z-index:20;background:rgba(9,32,47,.72);padding:24px;align-items:center;justify-content:center}.contact-overlay:target{display:flex}.contact-dialog{position:relative;background:#fff;color:var(--ink);width:min(100%,510px);padding:43px;box-shadow:0 20px 70px rgba(0,0,0,.22);border-radius:4px}.contact-dialog h2{font:normal 38px/1.15 Georgia,serif;margin:0 0 16px}.contact-dialog p{margin:0 0 18px}.contact-dialog a:not(.contact-close){color:var(--teal);font-weight:700;text-underline-offset:4px;overflow-wrap:anywhere}.contact-close{position:absolute;right:18px;top:14px;font-size:15px;font-weight:700;text-decoration:none;color:var(--teal)}@media(max-width:600px){.contact-dialog{padding:40px 24px 24px}.contact-dialog h2{font-size:32px}}

.testimonial-section{background:#f0f6fc}.testimonials-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.testimonial{margin:0;padding:32px;background:#dfeefa;border-top:3px solid #4d8ec0}.testimonial blockquote{margin:0}.testimonial blockquote p{font-size:18px;line-height:1.7;margin:0;color:var(--ink)}.testimonial figcaption{font-size:14px;font-weight:700;color:#405563;margin-top:22px}.nav{gap:22px}@media(max-width:800px){.header-inner{flex-wrap:wrap;padding:20px 0}.nav{gap:18px;flex-wrap:wrap}}@media(max-width:600px){.testimonials-grid{grid-template-columns:1fr}.testimonial{padding:25px}.testimonial blockquote p{font-size:17px}}

.brand{display:block;flex:0 0 auto;line-height:0}.brand-logo{display:block;width:340px;max-width:100%;height:auto}.header-inner{gap:24px}@media(max-width:1050px){.header-inner{flex-wrap:wrap;padding:14px 0;gap:14px}}@media(max-width:600px){.brand{max-width:100%}.brand-logo{width:310px}.header-inner{gap:14px;padding:14px 0}}


/* WordPress integration and block layout refinements */
html{scroll-padding-top:20px}
.site-header{position:relative;z-index:2}
.site-header .nav{list-style:none;margin:0;padding:0}
.site-header .nav li{list-style:none;margin:0;padding:0}
.site-header .nav a[aria-current="page"],.site-header .nav .current-menu-item>a{color:var(--teal)}
.site-header .nav .contact-link{white-space:nowrap}
.site-header .custom-logo-link{display:block;line-height:0}
.site-header .custom-logo{display:block;width:340px;max-width:100%;height:auto}
.aim-page{overflow-x:clip}
.aim-page .wp-block-group{box-sizing:border-box}
.aim-page .wp-block-group:before,.aim-page .wp-block-group:after{display:none}
.aim-page .intro-grid>.wp-block-group,.aim-page .two-col>.wp-block-group{min-width:0}
.aim-page .cards>.wp-block-group,.aim-page .leaders>.wp-block-group{min-width:0}
.aim-page .hero .eyebrow,.aim-page .page-hero .eyebrow{margin:0}
.aim-page .hero .aim-link-row{margin:0}
.aim-page .aim-link-row{margin:0}
.aim-page .number{margin:0}
.aim-page .band-grid>.aim-link-row{flex:0 0 auto}
.aim-page .band .button{margin-top:0}
.aim-page .card .number + h3{margin-top:25px}
.aim-page .aim-services-more{margin:30px 0 0}
.aim-page .wp-block-image{margin:0}
.aim-page .testimonial{margin:0;padding:32px;background:#dfeefa;border-top:3px solid #4d8ec0}
.aim-page .testimonial p{font-size:18px;line-height:1.7;margin:0;color:var(--ink)}
.aim-page .testimonial cite{display:block;font-style:normal;font-size:14px;font-weight:700;color:#405563;margin-top:22px}
.aim-page .testimonial:before,.aim-page .testimonial:after{display:none}
.aim-page .section-head>:last-child,.aim-page .card>:last-child,.aim-page .leader>:last-child,.aim-page .statement>:last-child{margin-bottom:0}
.aim-page .service-row p+p{margin-top:13px}
.aim-page .photo-section .wp-block-image,.aim-page .photo-section img{width:100%;height:100%;display:block}
.aim-page .photo-section img{object-fit:cover;object-position:center 42%}
@media(max-width:600px){.site-header .custom-logo{width:310px}.aim-page .testimonial{padding:25px}.aim-page .testimonial p{font-size:17px}}
/* Default Gutenberg margins should not add gaps between stacked full-bleed sections. */
.aim-page > .wp-block-group{margin-block-start:0;margin-block-end:0}
.aim-page .wp-block-group .wp-block-group{margin-block-start:0}
/* Respect reduced-motion preferences. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* 1.1.0: Resilient hero photo. The fallback URL is RELATIVE TO THIS style.css,
   so it works even when the editor lacks the Customizer CSS variable. */
.aim-page .hero::before {
  background-image: linear-gradient(90deg, rgba(7,31,42,.94) 0%, rgba(7,31,42,.72) 36%, rgba(7,31,42,.08) 78%), var(--aim-hero-image, url("assets/neighborhood-tour.webp"));
  background-repeat: no-repeat, no-repeat;
  background-size: cover, cover;
  background-position: center, center;
}
@media (max-width:800px) {
 .aim-page .hero::before {
   background-image: linear-gradient(90deg,rgba(7,31,42,.94),rgba(7,31,42,.55)), var(--aim-hero-image, url("assets/neighborhood-tour.webp"));
 }
}
/* The repaired homepage hero uses a single editable native Group, not a
   nested width-constraining Group. This keeps its contents valid and editable. */
.aim-page .hero.aim-hero-flat {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  padding:70px max(24px,calc((100% - 1120px) / 2));
}
.aim-page .hero.aim-hero-flat > :where(*) {
  position:relative;
  z-index:1;
  margin-left:0 !important;
  margin-right:0 !important;
  width:100%;
}
.aim-page .hero.aim-hero-flat > .eyebrow {margin-top:0 !important;margin-bottom:0 !important;max-width:700px}
.aim-page .hero.aim-hero-flat > h1 {margin-block:20px !important;max-width:670px}
.aim-page .hero.aim-hero-flat > p:not(.eyebrow):not(.aim-link-row) {max-width:580px;margin-block:0 !important}
.aim-page .hero.aim-hero-flat > .aim-link-row {margin-top:19px !important;max-width:580px}
.aim-page .hero.aim-hero-flat .aim-link-row .button {margin-top:0}
/* Block theme.json / Gutenberg layout margins should never override our grids. */
.aim-page .intro-grid > .wp-block-group,
.aim-page .two-col > .wp-block-group,
.aim-page .cards > .wp-block-group,
.aim-page .leaders > .wp-block-group {
   margin:0 !important;max-width:none !important;min-width:0;width:100%;
}
.aim-page .intro-grid,.aim-page .two-col,.aim-page .cards,.aim-page .leaders {min-width:0}
@media (max-width:600px) {
 .aim-page .hero.aim-hero-flat {padding:55px 18px;min-height:565px}
}
/* The eyebrow was a div on the original static site; in WordPress it is an editable paragraph. */
.aim-page .hero p.eyebrow {font-size:12px;line-height:1.4;letter-spacing:.16em;font-weight:700;text-transform:uppercase;color:#75c5c6;}
.aim-page .hero .aim-link-row .button {font-size:16px;line-height:1.5;}


/* ==========================================================================
   1.2.0 Accessibility remediation (WCAG 2.2 AA)
   ========================================================================== */

/* Screen-reader-only text (used for the blog index <h1>). */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important}

/* Focus indicator (1.4.11, 2.4.7). The old amber ring was 2.1:1 on white and
   1.9:1 on the pale sections. Dark ring on light sections (14.6:1), amber kept
   on dark sections where it measures 7:1. Applies to every focusable element,
   not only links. */
:root{--focus:#142b3b}
.hero,.page-hero,.band,footer{--focus:#e9a65d}
.contact-dialog{--focus:#142b3b}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
main:focus,#contact-panel:focus{outline:none}

/* Skip link: visible, high-contrast, above everything when focused. */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:12px;top:12px;z-index:100;background:#fff;color:var(--ink);padding:12px 16px;font-weight:700;border:2px solid var(--ink);text-decoration:underline}

/* Current page and hover in the main nav were shown by colour alone, teal vs
   ink at 2.2:1 (1.4.1). Add an underline. Links also get a 24px minimum
   target height (2.5.8). */
.site-header .nav a{display:inline-block;padding-block:4px;text-underline-offset:6px;text-decoration-thickness:2px}
.site-header .nav a[aria-current="page"],.site-header .nav .current-menu-item>a,.site-header .nav a:hover{text-decoration-line:underline}
.site-header .nav .contact-link[aria-current="page"],.site-header .nav .contact-link:hover{text-decoration-line:underline}
.site-header .nav-wrap{display:block}
.site-header .nav-wrap .nav{display:flex;align-items:center;flex-wrap:wrap}

/* Hero text over the photo (1.4.3). Measured against the actual image, the
   eyebrow fell to 2.5:1 and body text to 4.3:1 around 1024px. Stronger overlay
   and a lighter eyebrow now hold at least 5:1 from 320px to 1920px. The
   narrow-screen overlay now starts at 1100px, where the text column
   extends past the light side of the gradient. */
.aim-page .hero::before{background-image:linear-gradient(90deg,rgba(7,31,42,.94) 0%,rgba(7,31,42,.86) 40%,rgba(7,31,42,.45) 62%,rgba(7,31,42,.08) 85%),var(--aim-hero-image,url("assets/neighborhood-tour.webp"))}
@media (max-width:1100px){.aim-page .hero::before,.hero:before{background-image:linear-gradient(90deg,rgba(7,31,42,.94),rgba(7,31,42,.78)),var(--aim-hero-image,url("assets/neighborhood-tour.webp"))}}
.aim-page .hero p.eyebrow,.hero .eyebrow{color:#a8e0e0}
/* Bug fix: ".aim-page .wp-block-group:before{display:none}" (integration block
   above) also matched the hero Group, so the photo never rendered. */
.aim-page .hero.wp-block-group::before{display:block}

/* Contact dialog: scripted modal state (see assets/a11y.js). The :target rule
   above remains the no-JavaScript fallback. */
.contact-overlay.is-open{display:flex}
.aim-js .contact-overlay:target:not(.is-open){display:none}
body.aim-modal-open{overflow:hidden}
.contact-dialog{max-height:calc(100vh - 48px);overflow:auto}
.contact-close{display:inline-block;padding:6px 8px;min-height:24px}

/* Footer organisation name: real text is title case, shown in caps visually. */
footer .org-name{text-transform:uppercase}

/* Windows High Contrast / forced colours: keep button and dialog edges. */
@media (forced-colors:active){
  .button,.nav .contact-link{border:1px solid ButtonText}
  .contact-dialog{border:2px solid CanvasText}
  :focus-visible,a:focus-visible{outline-color:Highlight}
}
@media(max-width:600px){.site-header .nav-wrap{width:100%}}
