/*
Theme Name: A2Z Premium
Theme URI: https://a2zdental.com.au
Author: A2ZDental
Description: Premium mobile-first WordPress theme for A2ZDental.
Version: 0.1.0
Requires at least: 6.8
Requires PHP: 8.3
Text Domain: a2z-premium
*/

:root {
  --a2z-blue: #1737a6;
  --a2z-blue-dark: #102b83;
  --a2z-gold: #f5c21a;
  --a2z-navy: #0b1f4d;
  --a2z-white: #fff;
  --a2z-grey: #f5f7fa;
  --a2z-charcoal: #243040;
  --a2z-muted: #536174;
  --a2z-border: #dce2ea;
  --a2z-space-2xs: .5rem;
  --a2z-space-xs: .75rem;
  --a2z-space-sm: 1rem;
  --a2z-space-md: 1.5rem;
  --a2z-space-lg: 2.25rem;
  --a2z-space-xl: 3.5rem;
  --a2z-space-2xl: 5.5rem;
  --a2z-radius: 0.5rem;
  --a2z-shadow: 0 8px 30px rgb(11 31 77 / 8%);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--a2z-white); color: var(--a2z-charcoal); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 1rem; line-height: 1.65; text-rendering: optimizeLegibility; }
img { display: block; height: auto; max-width: 100%; }
a { color: var(--a2z-blue); text-underline-offset: .16em; }
a:hover { color: var(--a2z-blue-dark); }
a:focus-visible, button:focus-visible { outline: 3px solid var(--a2z-gold); outline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 .65em; color: var(--a2z-navy); font-weight: 700; letter-spacing: -.025em; line-height: 1.16; }
h1 { font-size: clamp(2.35rem, 6vw, 4.25rem); }
h2 { font-size: clamp(1.85rem, 4vw, 2.7rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
p { margin: 0 0 1.2rem; }

.skip-link { position: fixed; z-index: 100; top: .75rem; left: .75rem; padding: .75rem 1rem; background: var(--a2z-navy); color: var(--a2z-white); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.a2z-container { width: min(100% - 2.5rem, 1200px); margin-inline: auto; }
.a2z-container--narrow { width: min(100% - 2.5rem, 760px); }

.site-header { position: relative; z-index: 20; background: var(--a2z-white); border-bottom: 1px solid var(--a2z-border); }
.site-header__inner { display: flex; min-height: 5rem; align-items: center; justify-content: space-between; gap: 1rem; }
.site-branding { display: flex; align-items: center; min-width: 0; }
.custom-logo-link { display: block; }
.custom-logo { width: auto; max-height: 3rem; }
.site-branding__wordmark, .site-footer__wordmark { color: var(--a2z-navy); font-size: 1.5rem; font-weight: 800; letter-spacing: -.06em; line-height: 1; text-decoration: none; white-space: nowrap; }
.site-branding__a2z, .site-footer__wordmark span { color: var(--a2z-blue); }
.site-branding__dental { color: var(--a2z-navy); }
.menu-toggle { display: inline-flex; align-items: center; gap: .6rem; padding: .6rem .25rem .6rem .75rem; border: 0; background: transparent; color: var(--a2z-navy); cursor: pointer; font: inherit; font-weight: 700; }
.menu-toggle__icon, .menu-toggle__icon::before, .menu-toggle__icon::after { display: block; width: 1.25rem; height: 2px; background: currentColor; border-radius: 2px; content: ""; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle__icon { position: relative; }
.menu-toggle__icon::before { position: absolute; top: -.38rem; }
.menu-toggle__icon::after { position: absolute; top: .38rem; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before { transform: translateY(.38rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after { transform: translateY(-.38rem) rotate(-45deg); }
.primary-navigation { display: none; position: absolute; top: calc(100% + 1px); right: 0; left: 0; padding: 1rem 1.25rem 1.5rem; background: var(--a2z-white); border-bottom: 1px solid var(--a2z-border); box-shadow: var(--a2z-shadow); }
.primary-navigation.is-open { display: block; }
.primary-navigation__list, .footer-navigation__list { margin: 0; padding: 0; list-style: none; }
.primary-navigation__list { display: grid; gap: .15rem; }
.primary-navigation .sub-menu { display: grid; gap: .15rem; margin: 0 0 0 1rem; padding: 0; list-style: none; }
.primary-navigation a { display: block; padding: .75rem 0; color: var(--a2z-navy); font-weight: 650; text-decoration: none; }
.primary-navigation .current-menu-item > a, .primary-navigation a:hover { color: var(--a2z-blue); }

.site-main { min-height: 50vh; }
.entry-header { padding-top: clamp(3rem, 8vw, 6rem); }
.entry-content > * { margin-right: auto; margin-left: auto; max-width: 760px; }
.entry-content > .alignwide { max-width: 1200px; }
.entry-content > .alignfull { max-width: none; }
.entry-content > .wp-block-cover.alignfull { padding-right: max(1.25rem, calc((100vw - 1200px) / 2)); padding-left: max(1.25rem, calc((100vw - 1200px) / 2)); }
.entry-content > :first-child:not(.alignfull) { margin-top: clamp(3rem, 8vw, 6rem); }
.entry-content > :last-child { margin-bottom: clamp(3rem, 8vw, 6rem); }
.a2z-empty-state { padding-block: clamp(4rem, 10vw, 8rem); }

/* Gutenberg homepage building blocks: add these classes in the block sidebar. */
.a2z-hero { display: grid; align-items: center; min-height: clamp(29rem, 65vw, 42rem); padding-block: var(--a2z-space-2xl); background: var(--a2z-grey); }
.a2z-hero > * { width: min(100% - 2.5rem, 1200px); margin-inline: auto; }
.a2z-hero__content { max-width: 43rem; }
.a2z-hero__eyebrow { display: inline-flex; align-items: center; gap: .55rem; margin-bottom: var(--a2z-space-md); color: var(--a2z-blue); font-size: .8125rem; font-weight: 800; letter-spacing: .09em; line-height: 1.2; text-transform: uppercase; }
.a2z-hero__eyebrow::before { width: 2rem; height: 3px; background: var(--a2z-gold); content: ""; }
.a2z-hero__actions { display: flex; flex-wrap: wrap; gap: var(--a2z-space-sm); margin-top: var(--a2z-space-lg); }

.wp-block-button__link, .a2z-button { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .75rem 1.2rem; border: 2px solid var(--a2z-blue); border-radius: var(--a2z-radius); background: var(--a2z-blue); color: var(--a2z-white); font-size: 1rem; font-weight: 700; line-height: 1.3; text-align: center; text-decoration: none; transition: background-color .15s ease, border-color .15s ease, color .15s ease; }
.wp-block-button__link:hover, .a2z-button:hover { border-color: var(--a2z-blue-dark); background: var(--a2z-blue-dark); color: var(--a2z-white); }
.is-style-outline > .wp-block-button__link, .a2z-button--secondary { background: transparent; color: var(--a2z-blue); }
.is-style-outline > .wp-block-button__link:hover, .a2z-button--secondary:hover { background: var(--a2z-grey); color: var(--a2z-blue-dark); }
.a2z-button--gold { border-color: var(--a2z-gold); background: var(--a2z-gold); color: var(--a2z-navy); }
.a2z-button--gold:hover { border-color: #e4ad06; background: #e4ad06; color: var(--a2z-navy); }

.a2z-grid { display: grid; gap: clamp(1rem, 3vw, 2rem); }
.a2z-grid--two, .a2z-grid--three { grid-template-columns: 1fr; }
.a2z-surface { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--a2z-border); border-radius: var(--a2z-radius); background: var(--a2z-white); }
.a2z-card { height: 100%; padding: clamp(1.5rem, 4vw, 2rem); border: 1px solid var(--a2z-border); border-radius: var(--a2z-radius); background: var(--a2z-white); box-shadow: 0 2px 10px rgb(11 31 77 / 4%); }
.a2z-card > :last-child { margin-bottom: 0; }
.a2z-card .wp-block-heading { margin-bottom: var(--a2z-space-xs); }
.a2z-section { padding-block: clamp(3.5rem, 8vw, 7rem); }
.a2z-section--muted { background: var(--a2z-grey); }
.has-light-grey-background-color { background-color: var(--a2z-grey) !important; }
.has-deep-navy-background-color { color: var(--a2z-white); }
.has-deep-navy-background-color :is(h1, h2, h3, h4, h5, h6) { color: var(--a2z-white); }

.site-footer { padding-top: clamp(2.5rem, 6vw, 4rem); background: var(--a2z-navy); color: #dfe6f6; }
.site-footer__inner { display: grid; gap: 2rem; padding-bottom: 2rem; }
.site-footer__wordmark { color: var(--a2z-white); }
.site-footer__brand p { max-width: 32rem; margin-top: 1rem; margin-bottom: 0; }
.footer-navigation__list { display: grid; gap: .5rem; }
.footer-navigation a { color: var(--a2z-white); }
.site-footer__legal { padding-block: 1.25rem; border-top: 1px solid rgb(255 255 255 / 18%); color: #c8d2e8; font-size: .875rem; }
.site-footer__legal p { margin: 0; }

/* Front-page shell. This is intentionally independent of the Posts page setting. */
.homepage-shell { overflow: hidden; }
.home-hero { position: relative; isolation: isolate; padding-block: clamp(3.5rem, 8vw, 7rem); background: linear-gradient(120deg, #fff 0%, #fff 52%, var(--a2z-grey) 52%, var(--a2z-grey) 100%); }
.home-hero::after { position: absolute; z-index: -1; top: 0; right: 0; width: min(24vw, 22rem); height: .35rem; background: var(--a2z-gold); content: ""; }
.home-hero__grid { display: grid; gap: 2.5rem; align-items: center; }
.home-hero__content { max-width: 42rem; }
.home-eyebrow { display: flex; align-items: center; gap: .65rem; margin-bottom: var(--a2z-space-md); color: var(--a2z-blue); font-size: .75rem; font-weight: 800; letter-spacing: .11em; line-height: 1.3; text-transform: uppercase; }
.home-eyebrow::before { width: 2.25rem; height: 3px; background: var(--a2z-gold); content: ""; }
.home-hero h1 { max-width: 14ch; margin-bottom: var(--a2z-space-md); font-size: clamp(2.75rem, 7vw, 5.2rem); letter-spacing: -.045em; }
.home-hero__lead { max-width: 38rem; color: var(--a2z-muted); font-size: clamp(1.0625rem, 2vw, 1.25rem); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: var(--a2z-space-sm); margin-top: var(--a2z-space-lg); }
.home-hero__panel { position: relative; display: grid; min-height: 18rem; overflow: hidden; place-content: center; border-radius: 1rem; background: var(--a2z-navy); box-shadow: var(--a2z-shadow); color: var(--a2z-white); }
.home-hero__arc { position: absolute; width: 21rem; height: 21rem; border: 2.5rem solid var(--a2z-blue); border-radius: 50%; transform: translate(20%, -18%); }
.home-hero__panel-mark { position: relative; color: var(--a2z-gold); font-size: clamp(4rem, 12vw, 7rem); font-weight: 800; letter-spacing: -.1em; line-height: .75; }
.home-hero__panel-label { position: relative; margin-top: .5rem; font-size: 1.4rem; font-weight: 700; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.trust-strip { background: var(--a2z-navy); color: var(--a2z-white); }
.trust-strip__inner { display: grid; gap: .25rem; padding-block: 1.3rem; }
.trust-strip p { display: flex; align-items: center; gap: .7rem; margin: 0; font-size: .875rem; font-weight: 700; }
.trust-strip p::before { width: .45rem; height: .45rem; border-radius: 50%; background: var(--a2z-gold); content: ""; }
.home-section { padding-block: clamp(4rem, 9vw, 8rem); }
.home-section--soft { background: var(--a2z-grey); }
.section-heading { max-width: 45rem; margin-bottom: clamp(2rem, 5vw, 3.75rem); }
.section-heading > p:last-child { max-width: 39rem; color: var(--a2z-muted); }
.service-grid { display: grid; gap: 1rem; }
.service-card { display: flex; min-height: 19rem; flex-direction: column; padding: 1.75rem; border: 1px solid var(--a2z-border); border-radius: .75rem; background: var(--a2z-white); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.service-card:hover { border-color: #b9c8ec; box-shadow: var(--a2z-shadow); transform: translateY(-3px); }
.service-card__number { color: var(--a2z-blue); font-size: .78rem; font-weight: 800; letter-spacing: .1em; }
.service-card h3 { margin-top: auto; margin-bottom: .75rem; font-size: 1.45rem; }
.service-card p { color: var(--a2z-muted); }
.service-card a { margin-top: auto; color: var(--a2z-blue); font-weight: 750; text-decoration: none; }
.service-card a:hover { text-decoration: underline; }
.split-intro { display: grid; gap: 2rem; align-items: center; }
.split-intro__visual { display: grid; min-height: 16rem; place-items: center; border-radius: .75rem; background: var(--a2z-blue); color: var(--a2z-white); }
.split-intro__visual span { position: relative; font-size: clamp(2.5rem, 8vw, 4.5rem); font-weight: 700; letter-spacing: -.06em; line-height: .85; }
.split-intro__visual span::after { position: absolute; right: -.65rem; bottom: -.8rem; width: 2.5rem; height: .35rem; background: var(--a2z-gold); content: ""; }
.split-intro__content { max-width: 39rem; }
.split-intro__content > p:last-child { color: var(--a2z-muted); }
.technology-intro { display: grid; gap: 2.25rem; align-items: end; }
.technology-intro__content { max-width: 40rem; }
.technology-intro__content > p:last-child { color: var(--a2z-muted); }
.technology-intro__detail { padding: 1.5rem; border-left: 1px solid var(--a2z-border); }
.technology-intro__line { display: block; width: 3rem; height: .3rem; margin-bottom: 1rem; background: var(--a2z-gold); }
.technology-intro__detail p { margin: 0; color: var(--a2z-navy); font-size: 1.2rem; font-weight: 700; line-height: 1.35; }
.booking-cta { padding-block: clamp(4rem, 8vw, 6rem); background: var(--a2z-navy); color: var(--a2z-white); }
.booking-cta__inner { display: grid; gap: 2rem; }
.home-eyebrow--light { color: #d9e2f6; }
.booking-cta h2 { color: var(--a2z-white); }
.booking-cta p:not(.home-eyebrow) { max-width: 37rem; color: #d9e2f6; }
.booking-cta .a2z-button { align-self: start; }
.archive-intro, .service-single__header { padding-block: clamp(4rem, 9vw, 7rem) clamp(2.5rem, 5vw, 4rem); background: var(--a2z-ivory); }
.archive-intro p:last-child, .service-single__summary { max-width: 40rem; color: var(--a2z-muted); font-size: 1.08rem; line-height: 1.75; }
.archive-list { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(4rem, 9vw, 8rem); background: var(--a2z-white); }
.archive-list .team-portraits { max-width: 48rem; }
.service-single__content { padding-bottom: clamp(4rem, 9vw, 8rem); }
.service-single__image { overflow: hidden; border-radius: 1rem; }
.service-single__image img { width: 100%; }
.team-profile { padding-block: clamp(3.5rem, 8vw, 7rem); background: var(--a2z-ivory); }
.team-profile__grid { display: grid; gap: 2.5rem; align-items: center; }
.team-profile__image { overflow: hidden; max-width: 28rem; border-radius: 1rem 1rem 4rem 1rem; box-shadow: var(--a2z-shadow-soft); }
.team-profile__image img { width: 100%; }
.team-profile__content { max-width: 42rem; }
.team-profile__details { display: grid; gap: .25rem; margin: 2rem 0; padding-top: 1.5rem; border-top: 1px solid rgb(11 31 77 / 12%); }
.team-profile__details dt { color: var(--a2z-blue); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.team-profile__details dd { margin: 0 0 1rem; }

@media (min-width: 700px) {
  .a2z-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a2z-grid--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-footer__inner { grid-template-columns: minmax(0, 1.5fr) minmax(12rem, 1fr); align-items: start; }
  .home-hero__grid { grid-template-columns: minmax(0, 1.15fr) minmax(16rem, .85fr); gap: clamp(2.5rem, 7vw, 7rem); }
  .home-hero__panel { min-height: 27rem; }
  .trust-strip__inner { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
  .trust-strip p + p { border-left: 1px solid rgb(255 255 255 / 22%); padding-left: 1.25rem; }
  .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .split-intro { grid-template-columns: minmax(16rem, .8fr) minmax(0, 1fr); gap: clamp(2.5rem, 8vw, 8rem); }
  .split-intro__visual { min-height: 25rem; }
  .technology-intro { grid-template-columns: minmax(0, 1fr) minmax(16rem, .55fr); gap: clamp(2.5rem, 8vw, 8rem); }
  .booking-cta__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
}

@media (min-width: 960px) {
  .site-header__inner { min-height: 5.5rem; }
  .menu-toggle { display: none; }
  .primary-navigation { display: block; position: static; padding: 0; background: transparent; border: 0; box-shadow: none; }
  .primary-navigation__list { display: flex; align-items: center; gap: clamp(1rem, 2vw, 2rem); }
  .primary-navigation a { padding: 1.25rem 0; }
  .primary-navigation .menu-item-has-children { position: relative; }
  .primary-navigation .sub-menu { display: none; position: absolute; top: calc(100% - .45rem); left: -.9rem; width: max-content; min-width: 13rem; margin: 0; padding: .65rem .9rem; border: 1px solid var(--a2z-border); border-radius: var(--a2z-radius); background: var(--a2z-white); box-shadow: var(--a2z-shadow); }
  .primary-navigation .menu-item-has-children:hover > .sub-menu, .primary-navigation .menu-item-has-children:focus-within > .sub-menu { display: grid; }
  .primary-navigation .sub-menu a { padding: .55rem .2rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Sprint 1 premium visual layer: local placeholders are intentionally easy to replace. */
:root {
  --a2z-ivory: #fbfaf7;
  --a2z-serif: Iowan Old Style, Baskerville, "Times New Roman", Times, serif;
  --a2z-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --a2z-shadow-soft: 0 18px 50px rgb(11 31 77 / 10%);
  --a2z-shadow-panel: 0 28px 70px rgb(11 31 77 / 16%);
}

html { background: var(--a2z-ivory); }
body { background: var(--a2z-ivory); font-family: var(--a2z-sans); letter-spacing: -.008em; }
h1, h2, h3, h4, h5, h6 { font-family: var(--a2z-serif); font-weight: 600; letter-spacing: -.045em; line-height: 1.04; }
h1 { font-size: clamp(3.15rem, 7vw, 6rem); }
h2 { font-size: clamp(2.35rem, 5vw, 4.25rem); }
h3 { font-size: clamp(1.65rem, 2.5vw, 2.5rem); }
.a2z-container { width: min(100% - 2.5rem, 1240px); }

.site-header { border-bottom-color: rgb(11 31 77 / 9%); background: rgb(251 250 247 / 96%); }
.site-header__inner { min-height: 5.25rem; }
.site-branding__wordmark, .site-footer__wordmark { display: inline-flex; align-items: baseline; font-family: var(--a2z-serif); font-size: 1.9rem; font-weight: 600; letter-spacing: -.07em; }
.site-branding__a2z, .site-footer__wordmark span { position: relative; margin-right: .12em; }
.site-branding__a2z::after { position: absolute; bottom: -.18rem; left: .04em; width: 1.55rem; height: 2px; background: var(--a2z-gold); content: ""; }
.primary-navigation a { font-size: .9rem; font-weight: 700; letter-spacing: .015em; }
.site-header__booking { display: none; min-height: 2.7rem; align-items: center; padding: .65rem 1rem; border: 1px solid var(--a2z-blue); border-radius: 99px; background: var(--a2z-blue); color: var(--a2z-white); font-size: .84rem; font-weight: 800; letter-spacing: .02em; text-decoration: none; }
.site-header__booking:hover { background: var(--a2z-navy); color: var(--a2z-white); }
.menu-toggle { min-height: 2.75rem; padding-right: .65rem; border: 1px solid var(--a2z-border); border-radius: 99px; font-size: .85rem; }
.primary-navigation { padding: 1rem 1.25rem 1.5rem; background: var(--a2z-ivory); }
.primary-navigation a { padding-block: .8rem; }

.homepage-shell { background: var(--a2z-ivory); }
.home-hero { padding-block: clamp(3.5rem, 8vw, 7.5rem); background: var(--a2z-ivory); }
.home-hero::after { top: auto; right: auto; bottom: 0; left: 0; width: min(24vw, 17rem); height: .25rem; }
.home-hero__grid { gap: 2.5rem; }
.home-hero__content { position: relative; z-index: 1; }
.home-eyebrow { gap: .75rem; margin-bottom: 1.25rem; font-size: .7rem; letter-spacing: .16em; }
.home-eyebrow::before { width: 1.75rem; height: 2px; }
.home-hero h1 { max-width: 11ch; margin-bottom: 1.25rem; }
.home-hero__lead { max-width: 34rem; font-size: clamp(1.05rem, 1.7vw, 1.2rem); line-height: 1.7; }
.home-hero__media { position: relative; min-height: 24rem; margin: 0; overflow: hidden; border-radius: 1.25rem 1.25rem 1.25rem 4.5rem; box-shadow: var(--a2z-shadow-panel); }
.home-hero__media::after { position: absolute; right: 1.25rem; bottom: 1.25rem; width: 3.5rem; height: 3.5rem; border-right: 2px solid var(--a2z-gold); border-bottom: 2px solid var(--a2z-gold); content: ""; }
.home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 66% center; }
.home-hero__panel, .home-hero__arc, .home-hero__panel-mark, .home-hero__panel-label { display: none; }
.a2z-button { min-height: 3.15rem; border-radius: 99px; padding: .8rem 1.35rem; font-size: .92rem; letter-spacing: .01em; }
.a2z-button--secondary { border-color: rgb(23 55 166 / 30%); color: var(--a2z-navy); }
.a2z-button--secondary:hover { border-color: var(--a2z-navy); background: var(--a2z-navy); color: var(--a2z-white); }

.trust-strip { background: var(--a2z-navy); }
.trust-strip__inner { gap: .55rem; padding-block: 1.45rem; }
.trust-strip p { font-size: .79rem; font-weight: 650; letter-spacing: .02em; }
.trust-strip p::before { width: .38rem; height: .38rem; }
.home-section { padding-block: clamp(4.5rem, 10vw, 9rem); }
.home-section--services { background: var(--a2z-white); }
.section-heading { max-width: none; }
.section-heading--split { display: grid; gap: 1rem; align-items: end; }
.section-heading--split > p { max-width: 30rem; margin-bottom: 0; color: var(--a2z-muted); line-height: 1.75; }
.service-layout { display: grid; gap: 1rem; }
.service-feature, .service-card { min-height: 0; border: 1px solid rgb(11 31 77 / 10%); border-radius: 1rem; overflow: hidden; box-shadow: none; }
.service-feature { display: grid; background: var(--a2z-navy); color: var(--a2z-white); }
.service-feature__media { min-height: 15rem; overflow: hidden; }
.service-feature__media img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.service-feature__content { display: flex; min-height: 18rem; flex-direction: column; padding: 1.8rem; }
.service-card { min-height: 20rem; padding: 1.8rem; }
.service-card:hover { transform: translateY(-4px); box-shadow: var(--a2z-shadow-soft); }
.service-card__eyebrow { margin: 0 0 auto; color: var(--a2z-blue); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.service-feature .service-card__eyebrow { color: #d9e2f6; }
.service-feature h3, .service-card h3 { margin-top: 2.5rem; margin-bottom: .85rem; color: inherit; }
.service-feature p:not(.service-card__eyebrow), .service-card p:not(.service-card__eyebrow) { color: inherit; line-height: 1.7; opacity: .84; }
.service-card--navy { background: var(--a2z-blue); color: var(--a2z-white); }
.service-card--navy .service-card__eyebrow { color: #d9e2f6; }
.service-card--ivory { background: #eeebe5; color: var(--a2z-navy); }
.text-link { margin-top: auto; color: inherit; font-size: .9rem; font-weight: 800; letter-spacing: .02em; text-decoration: none; }
.text-link:hover { color: inherit; text-decoration: underline; }

.home-section--soft { background: #f0eee9; }
.team-intro { display: grid; gap: 2.5rem; align-items: center; }
.team-intro__content { max-width: 34rem; }
.team-intro__content > p:not(.home-eyebrow) { color: var(--a2z-muted); line-height: 1.75; }
.team-intro__note { padding-top: .8rem; border-top: 1px solid rgb(11 31 77 / 14%); font-size: .88rem; }
.team-portraits { position: relative; display: grid; min-height: 22rem; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: .75rem; }
.team-portrait { position: relative; min-height: 17rem; margin: 0; overflow: hidden; border: 1px solid rgb(11 31 77 / 9%); border-radius: 8rem 8rem 1rem 1rem; background: #d9d4cd; }
.team-portrait::before, .team-portrait::after { display: none; }
.team-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.team-portrait--one { min-height: 19rem; }
.team-portrait--two { min-height: 22rem; transform: translateY(-1rem); }

.technology-section { background: var(--a2z-white); }
.technology-intro { gap: 2.5rem; align-items: center; }
.technology-intro__media { position: relative; min-height: 25rem; margin: 0; overflow: hidden; border-radius: 1rem 1rem 4.5rem 1rem; box-shadow: var(--a2z-shadow-soft); }
.technology-intro__media::after { position: absolute; top: 1.25rem; left: 1.25rem; width: 3rem; height: 3rem; border-top: 2px solid var(--a2z-gold); border-left: 2px solid var(--a2z-gold); content: ""; }
.technology-intro__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.technology-intro__content { max-width: 38rem; }
.technology-intro__content > p:not(.home-eyebrow) { color: var(--a2z-muted); line-height: 1.75; }
.technology-intro__detail { margin-top: 2rem; padding: 1.35rem 0 0; border-top: 1px solid rgb(11 31 77 / 12%); border-left: 0; }
.technology-intro__detail p { max-width: 20rem; font-family: var(--a2z-serif); font-size: 1.45rem; font-weight: 600; letter-spacing: -.03em; }

.booking-cta { position: relative; overflow: hidden; padding-block: clamp(4.5rem, 9vw, 7rem); background: var(--a2z-navy); }
.booking-cta::after { position: absolute; right: -7rem; bottom: -10rem; width: 22rem; height: 22rem; border: 1px solid rgb(245 194 26 / 35%); border-radius: 50%; content: ""; }
.booking-cta h2 { max-width: 12ch; font-size: clamp(2.4rem, 4.5vw, 4rem); }
.booking-cta__inner { position: relative; z-index: 1; }
.a2z-button--gold { border-color: var(--a2z-gold); background: var(--a2z-gold); color: var(--a2z-navy); }

.site-footer { padding-top: clamp(3.5rem, 7vw, 6rem); background: #071a42; }
.site-footer__inner { gap: 2.5rem; padding-bottom: 3rem; }
.site-footer__brand p { color: #cbd6ec; font-size: .94rem; }
.site-footer__location { margin-top: 1.35rem !important; color: var(--a2z-gold) !important; font-size: .76rem !important; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.footer-navigation__title { margin-bottom: .9rem; color: var(--a2z-white); font-family: var(--a2z-serif); font-size: 1.25rem; letter-spacing: -.025em; }
.footer-navigation a { color: #e7edf8; font-size: .9rem; text-decoration: none; }
.footer-navigation a:hover { color: var(--a2z-gold); }
.site-footer__legal { padding-block: 1.5rem; }

@media (min-width: 700px) {
  .home-hero__grid { grid-template-columns: minmax(0, .94fr) minmax(22rem, 1.06fr); gap: clamp(2.5rem, 7vw, 7rem); }
  .home-hero__media { min-height: 35rem; }
  .section-heading--split { grid-template-columns: minmax(0, 1fr) minmax(18rem, .68fr); gap: 3rem; }
  .service-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-feature { grid-column: span 2; grid-template-columns: 1.05fr .95fr; }
  .service-feature__media { min-height: 100%; }
  .service-feature__content { min-height: 27rem; padding: clamp(2rem, 4vw, 3.5rem); }
  .service-card { min-height: 24rem; padding: clamp(2rem, 3vw, 2.75rem); }
  .team-intro { grid-template-columns: minmax(0, .9fr) minmax(22rem, 1.1fr); gap: clamp(3rem, 8vw, 9rem); }
  .team-portraits { min-height: 28rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-portrait { min-height: 24rem; }
  .team-portrait--one { min-height: 27rem; }
  .team-portrait--two { min-height: 31rem; }
  .technology-intro { grid-template-columns: minmax(19rem, .8fr) minmax(0, 1fr); gap: clamp(3rem, 8vw, 9rem); }
  .technology-intro__media { min-height: 36rem; }
  .team-profile__grid { grid-template-columns: minmax(18rem, .75fr) minmax(0, 1fr); gap: clamp(3rem, 8vw, 8rem); }
}

@media (min-width: 960px) {
  .site-header { position: sticky; top: 0; backdrop-filter: blur(16px); }
  .site-header__inner { min-height: 6rem; }
  .primary-navigation { margin-left: auto; margin-right: .4rem; }
  .primary-navigation__list { gap: clamp(1.1rem, 2vw, 2.1rem); }
  .primary-navigation a { padding-block: 1.4rem; }
  .site-header__booking { display: inline-flex; }
}
