/*
Theme Name: Altera Pharmacy
Theme URI: https://alterapharmacy.com
Author: Altera Pharmacy
Description: Custom WordPress theme for Altera Pharmacy — retail, specialty, compounding, and veterinary pharmacy serving patients and provider partners across Texas.
Version: 2.9
Text Domain: altera-pharmacy
*/

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family:'Work Sans', sans-serif;
  color:#20242B;
  background:#FCFBF8;
  line-height:1.55;
}
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; }
ul { list-style:none; }

:root {
  --blue:#0A6FA6;
  --blue-deep:#0B4F78;
  --red:#C4232B;
  --gold:#E0A400;
  --gold-soft:#F3D98A;
  --ink:#1B222B;
  --slate:#5B6472;
  --line:#E4E1D8;
  --cream:#F5EAD0;
}

.wrap { max-width:1240px; margin:0 auto; }

/* ---------- Header / Nav ---------- */
.site-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:48px 44px; border-bottom:1px solid var(--line);
  flex-wrap:wrap; gap:14px;
}
.site-logo img,
.site-logo .custom-logo {
  height:140px;
  width:auto;
  max-width:560px;
  object-fit:contain;
  display:block;
}
.main-nav ul { display:flex; gap:26px; flex-wrap:wrap; }
.main-nav li { position:relative; }
.main-nav a { font-size:15px; color:var(--slate); font-weight:500; }
.main-nav a:hover, .main-nav .current-menu-item > a { color:var(--blue-deep); font-weight:600; }
.main-nav .sub-menu {
  display:none; position:absolute; z-index:100; left:-18px; top:100%;
  min-width:245px; padding:12px 0; background:#fff; border:1px solid var(--line);
  box-shadow:0 12px 28px rgba(11,79,120,.12);
}
.main-nav li:hover > .sub-menu, .main-nav li:focus-within > .sub-menu { display:block; }
.main-nav .sub-menu li { width:100%; }
.main-nav .sub-menu a { display:block; padding:9px 18px; white-space:nowrap; }
.header-cta {
  font-weight:600; font-size:13px; background:var(--blue-deep); color:#fff;
  padding:11px 20px; border-radius:3px; white-space:nowrap;
}
.nav-toggle {
  display:none; align-items:center; gap:9px; padding:10px 13px;
  border:1px solid var(--blue-deep); border-radius:3px; background:#fff;
  color:var(--blue-deep); font:600 15px/1 'Work Sans', sans-serif; cursor:pointer;
}
.nav-toggle-icon { display:flex; width:22px; flex-direction:column; gap:4px; }
.nav-toggle-icon span { display:block; height:2px; width:100%; background:currentColor; border-radius:2px; }

/* ---------- Hero (home) ---------- */
.hero {
  padding:88px 44px 100px;
  background:linear-gradient(155deg,#0B4F78,#0A3A59);
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.hero-inner { width:100%; max-width:760px; margin:0 auto; text-align:center; }
.eyebrow {
  font-size:12px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--red); font-weight:700;
}
.hero .eyebrow { font-size:36.34px; line-height:1.15; letter-spacing:.06em; }
.hero h1 {
  font-family:'Fraunces', serif; font-weight:700; font-size:46px;
  line-height:1.15; color:var(--cream); margin-top:14px;
}
.hero h1 span { color:inherit; }
.hero p { font-size:16px; color:#C9DCE8; margin-top:18px; max-width:520px; margin-left:auto; margin-right:auto; }
.btnrow { margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.btn1 {
  display:inline-block; font-weight:600; font-size:14px; background:var(--red);
  color:#fff; padding:14px 24px; border-radius:3px;
}
.btn2 {
  display:inline-block; font-weight:600; font-size:14px; color:var(--cream);
  padding:14px 6px; border-bottom:2px solid var(--gold-soft);
}

/* ---------- Two-audience split ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; }
.split-card { padding:48px 44px; }
.split-card.patient { background:#FCFBF8; border-top:1px solid var(--line); }
.split-card.provider { background:var(--blue-deep); color:#EAF3F8; }
.split-eyebrow { font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:700; }
.split-card.patient .split-eyebrow { color:var(--red); }
.split-card.provider .split-eyebrow { color:var(--gold-soft); }
.split-card h3 { font-family:'Fraunces', serif; font-weight:600; font-size:25px; margin-top:10px; }
.split-card.patient h3 { color:var(--ink); }
.split-card p { font-size:14.5px; margin-top:12px; max-width:380px; }
.split-card.patient p { color:var(--slate); }
.split-card.provider p { color:#C9DCE8; }
.split-link { display:inline-block; margin-top:22px; font-size:13.5px; font-weight:600; }
.split-card.patient .split-link { color:var(--blue-deep); border-bottom:2px solid var(--gold); }
.split-card.provider .split-link { color:#fff; border-bottom:2px solid var(--gold-soft); }

/* ---------- Services grid ---------- */
.services { padding:60px 44px; background:linear-gradient(155deg,#0B4F78,#0A3A59); }
.services h2 { font-family:'Fraunces', serif; font-weight:700; font-size:28px; color:var(--cream); text-align:center; }
.services .sub { text-align:center; color:#C9DCE8; font-size:14px; margin-top:8px; }
.svc-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line); margin-top:36px; border:1px solid var(--line);
}
.svc-grid > div { background:#fff; padding:26px 24px; }
.svc-grid h4 { font-family:'Fraunces', serif; font-weight:600; font-size:16px; color:var(--blue-deep); margin-bottom:6px; }
.svc-grid p { font-size:12.5px; color:var(--slate); }
.svc-grid .highlight { background:#FEF7E8; }
.tag {
  display:inline-block; margin-top:10px; font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--red); font-weight:700;
}

/* ---------- Quote band ---------- */
.quote-band { background:var(--ink); color:#FCFBF8; padding:56px 44px; text-align:center; }
.quote-band p { font-family:'Fraunces', serif; font-style:italic; font-size:24px; max-width:620px; margin:0 auto; line-height:1.4; }
.quote-band span { display:block; margin-top:16px; font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-soft); }

/* ---------- Generic page header band ---------- */
.page-header-band { padding:56px 44px 44px; text-align:center; background:linear-gradient(155deg,#0B4F78,#0A3A59); }
.page-header-band .inner { max-width:680px; margin:0 auto; }
.page-header-band .eyebrow { font-size:30px; line-height:1.15; letter-spacing:.06em; }
.page-header-band h1 { font-family:'Fraunces', serif; font-weight:700; font-size:38px; line-height:1.15; color:var(--cream); margin-top:12px; }
.page-header-band p { color:#C9DCE8; font-size:15px; margin-top:14px; }
.coming-soon { display:block; margin-top:12px; color:var(--gold-soft); font-family:'Work Sans',sans-serif; font-size:.58em; line-height:1.2; font-weight:700; letter-spacing:.04em; }

/* ---------- Page content ---------- */
.page-content { padding:56px 44px; max-width:820px; margin:0 auto; }
.page-content h2 { font-family:'Fraunces', serif; color:var(--blue-deep); font-size:26px; margin:32px 0 14px; }
.page-content h2:first-child { margin-top:0; }
.page-content h3 { font-family:'Fraunces', serif; color:var(--ink); font-size:20px; margin:24px 0 10px; }
.page-content p { color:#3A414C; font-size:15.5px; margin-bottom:14px; }
.page-content ul { margin:0 0 14px 0; }
.page-content ul li { position:relative; padding-left:20px; margin-bottom:8px; color:#3A414C; font-size:15px; }
.page-content ul li::before { content:''; position:absolute; left:0; top:9px; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.page-content a.inline-link { color:var(--blue-deep); font-weight:600; border-bottom:1.5px solid var(--gold); }
.page-content .portal-buttons { margin:22px 0 28px; }
.contact-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:26px 0 34px; }
.contact-detail { padding:22px; background:#fff; border:1px solid var(--line); }
.contact-detail h3 { margin:0 0 6px; font-size:17px; color:var(--blue-deep); }
.contact-detail p { margin:0; }
.contact-page { max-width:1100px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.85fr); gap:42px; align-items:start; }
.contact-actions { display:flex; gap:12px; flex-wrap:wrap; margin:22px 0 8px; }
.contact-action { display:inline-block; padding:12px 18px; border-radius:3px; font-weight:600; font-size:14px; }
.contact-action.primary { background:var(--red); color:#fff; }
.contact-action.secondary { border:1.5px solid var(--blue-deep); color:var(--blue-deep); background:#fff; }
.contact-page .altera-form { padding:28px; background:#fff; border:1px solid var(--line); }
.contact-page .map-embed { margin-top:40px; }
.resource-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:26px 0 38px; }
.resource-card { display:flex; flex-direction:column; padding:24px; background:#fff; border:1px solid var(--line); }
.resource-card h3 { margin:0 0 8px; color:var(--blue-deep); }
.resource-card p { flex:1; }
.resource-link { display:inline-block; margin-top:8px; color:var(--blue-deep); font-weight:700; border-bottom:2px solid var(--gold); align-self:flex-start; }
.resource-note { padding:18px 20px; background:#FEF7E8; border-left:4px solid var(--gold); }
.portal-login-note { margin:20px 0 4px; padding:18px 20px; background:#EAF3F8; border-left:4px solid var(--blue); }
.portal-login-note strong { display:block; color:var(--blue-deep); margin-bottom:4px; }
.map-embed { position:relative; width:100%; height:420px; margin-top:28px; overflow:hidden; border:1px solid var(--line); }
.map-embed iframe { width:100%; height:100%; border:0; }
.team-section { margin-top:56px; padding-top:44px; border-top:1px solid var(--line); }
.team-intro { max-width:680px; }
.team-group-photo { margin:28px 0 34px; min-height:300px; border-radius:4px; overflow:hidden; background:#EAF3F8; }
.team-group-photo img { width:100%; height:420px; object-fit:cover; }
.team-photo-placeholder { min-height:inherit; display:flex; align-items:center; justify-content:center; text-align:center; padding:30px; color:var(--blue-deep); font-weight:600; border:2px dashed #AFC8D7; }
.team-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.team-card { background:#fff; border:1px solid var(--line); overflow:hidden; }
.team-card-photo { min-height:260px; background:#F1F5F7; }
.team-card-photo img { width:100%; height:300px; object-fit:cover; }
.team-card-photo .team-photo-placeholder { min-height:260px; }
.team-card-body { padding:24px; }
.team-card-body h3 { margin:0 0 3px; color:var(--blue-deep); }
.team-role { color:var(--red); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:12px; }
.team-card-body p:last-child { margin-bottom:0; }

/* ---------- Clinical Services grid ---------- */
.cs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin:0 44px 44px; }
.cs-card { background:#fff; padding:30px 26px; }
.cs-icon { width:34px; height:34px; border-radius:50%; border:2px solid var(--gold); margin-bottom:16px; }
.cs-card h4 { font-family:'Fraunces', serif; font-size:17px; color:var(--blue-deep); margin-bottom:8px; }
.cs-card p { font-size:13px; color:var(--slate); }
.cs-card .tag { color:var(--red); }

.cs-banner { background:var(--blue-deep); color:#EAF3F8; padding:44px; text-align:center; }
.cs-banner h3 { font-family:'Fraunces', serif; font-size:20px; font-weight:700; color:var(--cream); }
.cs-banner p { color:#C9DCE8; font-size:14px; margin-top:8px; }
.cs-banner .phone { display:inline-block; margin-top:18px; font-weight:700; color:var(--gold-soft); font-size:17px; }

/* ---------- Forms (Prescription Transfer, Contact) ---------- */
.altera-form { padding:56px 44px; max-width:640px; margin:0 auto; }
.altera-form .field { margin-bottom:18px; }
.altera-form label { display:block; font-size:13px; font-weight:600; color:var(--ink); margin-bottom:6px; }
.altera-form input, .altera-form textarea, .altera-form select {
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:3px;
  font-family:'Work Sans', sans-serif; font-size:14.5px; color:var(--ink); background:#fff;
}
.altera-form textarea { min-height:120px; resize:vertical; }
.altera-form button {
  font-weight:600; font-size:14px; background:var(--red); color:#fff;
  padding:14px 28px; border-radius:3px; border:none; cursor:pointer;
}
.altera-form .form-note { font-size:12.5px; color:var(--slate); margin-top:10px; }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.form-alert { margin-bottom:20px; padding:14px 16px; border-left:4px solid var(--red); background:#FFF2F2; color:var(--ink); font-size:14px; }
.form-alert a { color:var(--blue-deep); font-weight:600; text-decoration:underline; }

/* ---------- Patient portal buttons (shortcode + homepage) ---------- */
.portal-buttons { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.portal-btn {
  display:inline-block; font-weight:600; font-size:13.5px; padding:12px 20px;
  border-radius:3px; white-space:nowrap;
}
.portal-btn-primary { background:var(--red); color:#fff; }
.portal-btn-store { background:#fff; color:var(--blue-deep); border:1.5px solid var(--blue-deep); }
.split-card.provider .portal-btn-store { background:transparent; color:#fff; border:1.5px solid #fff; }

/* ---------- Footer ---------- */
.site-footer-bar {
  padding:26px 44px; display:flex; justify-content:space-between;
  font-size:13px; color:var(--slate); border-top:1px solid var(--line); flex-wrap:wrap; gap:10px;
}
.site-footer-bottom {
  padding:16px 44px; text-align:center; font-size:12px; color:#8A93A0;
  background:#F4F1E9;
}
.site-footer-bottom a { color:var(--blue-deep); font-weight:600; text-decoration:underline; text-underline-offset:2px; }

/* ---------- Responsive ---------- */
@media (max-width:900px) {
  .split { grid-template-columns:1fr; }
  .svc-grid, .cs-grid { grid-template-columns:repeat(2,1fr); }
  .site-header { align-items:center; }
  .site-logo { flex:1 1 auto; }
  .nav-toggle { display:flex; order:2; }
  .header-cta { order:3; }
  .main-nav {
    display:none; order:4; flex:0 0 100%; width:100%;
    margin-top:8px; border-top:1px solid var(--line);
  }
  .main-nav.is-open { display:block; }
  .main-nav ul { display:block; width:100%; }
  .main-nav li { width:100%; border-bottom:1px solid var(--line); }
  .main-nav a { display:block; padding:13px 4px; font-size:16px; color:var(--ink); }
  .main-nav .sub-menu {
    display:block; position:static; min-width:0; padding:0 0 7px 16px;
    border:0; box-shadow:none; background:transparent;
  }
  .main-nav .sub-menu li { border-bottom:0; }
  .main-nav .sub-menu a { padding:9px 4px; white-space:normal; font-size:15px; }
  .site-header, .hero, .services, .quote-band, .site-footer-bar,
  .page-header-band, .page-content, .altera-form { padding-left:22px; padding-right:22px; }
  .cs-grid { margin-left:22px; margin-right:22px; }
  .hero h1 { font-size:32px; }
  .hero .eyebrow { font-size:25.28px; }
  .page-header-band h1 { font-size:28px; }
  .page-header-band .eyebrow { font-size:22px; }
  .contact-layout { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .contact-details { grid-template-columns:1fr; }
  .site-logo img, .site-logo .custom-logo { height:92px; max-width:300px; }
  .site-header { padding-top:24px; padding-bottom:24px; }
  .header-cta { flex:0 0 auto; }
  .team-grid { grid-template-columns:1fr; }
  .team-group-photo img { height:300px; }
  .resource-grid { grid-template-columns:1fr; }
  .page-header-band h1 { font-size:28px; }
  .page-header-band .eyebrow { font-size:22px; }
}
