/* Professional polish: navy/gold palette, compact spacing and restrained motion. */
:root { --professional-ease: cubic-bezier(.22,1,.36,1); }
.professional-header { box-shadow: 0 1px 0 #ffffff08; }
.professional-header.is-scrolled { box-shadow: 0 10px 30px #10294726; }
.professional-header .professional-logo { transition: opacity .25s; }
.professional-header .professional-brand:hover .professional-logo { opacity: .82; }
.professional-home.hero-refresh { background: radial-gradient(ellipse at 90% 10%, #34587c80, transparent 55%), #1f3a5f; }
.hero-photo-wrap { box-shadow: 0 24px 60px #0b234440; }
.profile-background { background: linear-gradient(145deg, #f8fafc, #f0f4f8); box-shadow: 0 12px 32px #1f3a5f05; }
.business-stats { background: radial-gradient(ellipse at top right, #365b7e80, transparent 60%), #1f3a5f; box-shadow: 0 14px 32px #1f3a5f12; }
.business-company, .business-service, .polyplast-service, .speaking-talk {
  box-shadow: 0 3px 10px #1f3a5f03, 0 16px 30px #1f3a5f03;
  transition: transform .4s var(--professional-ease), box-shadow .4s, border-color .3s;
}
.business-company, .business-service, .polyplast-service, .speaking-talk, .contact-refresh .contact-enquiry { border-radius: 10px; }
.business-company-logo { transition: transform .4s var(--professional-ease); }
.business-service-icon, .polyplast-service-icon, .speaking-talk-icon {
  transition: color .3s, background .3s, transform .4s var(--professional-ease), box-shadow .3s;
}
.profile-photo img, .hero-photo { transition: transform .8s var(--professional-ease); }
.profile-photo { box-shadow: 0 12px 30px #1f3a5f0c; }
.hero-photo-wrap { overflow: hidden; }
.hero-photo-wrap::before { z-index: 2; inset: 9px; border-color: #ffffff35; border-radius: inherit; }
.hero-button, .polyplast-cta a, .speaking-cta a, .contact-send, .business-locations a {
  position: relative; overflow: hidden;
  transition: transform .3s var(--professional-ease), box-shadow .3s, background .3s;
}
.hero-button::after, .polyplast-cta a::after, .speaking-cta a::after, .contact-send::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(110deg, transparent 25%, #ffffff24 50%, transparent 75%);
  transform: translateX(-130%); transition: transform .65s var(--professional-ease);
}
.hero-button:focus-visible::after, .polyplast-cta a:focus-visible::after, .speaking-cta a:focus-visible::after, .contact-send:focus-visible::after { transform: translateX(130%); }
.contact-details > a, .contact-social > a, .business-company-footer > a { transition: color .25s, transform .25s; }
.contact-enquiry { transition: box-shadow .3s, border-color .3s; }
.contact-enquiry:focus-within { box-shadow: 0 18px 42px #1f3a5f12; border-top-color: #1f3a5f; }
.contact-refresh .professional-form input, .contact-refresh .professional-form select, .contact-refresh .professional-form textarea { transition: background .25s, border-color .25s, box-shadow .25s; }
.contact-refresh .professional-form input:focus, .contact-refresh .professional-form select:focus, .contact-refresh .professional-form textarea:focus { background: #fff; box-shadow: 0 0 0 4px #e8a33d12; }
.business-location-card { transition: background .3s, border-color .3s, transform .3s; }
.speaker-gallery-item { box-shadow: 0 10px 24px #1f3a5f0d; }
.speaker-gallery-item > span { transition: transform .3s var(--professional-ease), background .3s; }
.polyplast-cta, .speaking-cta { background: linear-gradient(115deg, #1f3a5f, #294d73); box-shadow: 0 10px 24px #1f3a5f0c; }
/* Text stays normal until JS enables this feature. Original words are retained. */
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
  .heading-fill-active .heading-fill-word {
    display: inline-block; font: inherit !important; letter-spacing: inherit !important;
    color: transparent !important; -webkit-text-fill-color: transparent;
    background-image: linear-gradient(90deg, var(--heading-ink) 0%, var(--heading-ink) 50%, var(--heading-muted) 50%, var(--heading-muted) 100%);
    background-size: 200% 100%; background-position: var(--heading-position, 0%) 0;
    -webkit-background-clip: text; background-clip: text;
  }
}
@media(hover: hover) and (pointer: fine) {
  .business-company:hover, .business-service:hover, .polyplast-service:hover, .speaking-talk:hover { transform: translateY(-5px); box-shadow: 0 8px 16px #1f3a5f05, 0 24px 42px #1f3a5f10; }
  .business-company:hover { border-right-color: #c6d2e1; border-bottom-color: #c6d2e1; border-left-color: #c6d2e1; }
  .business-logo-link:hover .business-company-logo { transform: scale(1.035); }
  .business-service:hover .business-service-icon, .polyplast-service:hover .polyplast-service-icon, .speaking-talk:hover .speaking-talk-icon { transform: translateY(-2px); background: #fff0d8; color: #805014; box-shadow: 0 6px 14px #e8a33d14; }
  .hero-photo-wrap:hover .hero-photo { transform: scale(1.025); }
  .hero-button:hover, .polyplast-cta a:hover, .speaking-cta a:hover, .contact-send:hover { transform: translateY(-2px); box-shadow: 0 8px 18px #0c25432b; }
  .hero-button:hover::after, .polyplast-cta a:hover::after, .speaking-cta a:hover::after, .contact-send:hover::after { transform: translateX(130%); }
  .contact-details > a:hover, .contact-social > a:hover, .business-company-footer > a:hover { transform: translateX(3px); }
  .business-location-card:not(.is-headquarters):hover { background: #ffffff12; border-color: #e8a33d88; transform: translateY(-2px); }
  .speaker-gallery-item:hover > span { transform: rotate(45deg); background: #fff; }
}
@media(prefers-reduced-motion: reduce) {
  .heading-fill-active .heading-fill-word { color: var(--heading-ink) !important; -webkit-text-fill-color: var(--heading-ink); background: none; }
  .business-company:hover, .business-service:hover, .polyplast-service:hover, .speaking-talk:hover,
  .business-logo-link:hover .business-company-logo, .hero-photo-wrap:hover .hero-photo, .profile-photo:hover img,
  .business-service:hover .business-service-icon, .polyplast-service:hover .polyplast-service-icon, .speaking-talk:hover .speaking-talk-icon,
  .hero-button:hover, .polyplast-cta a:hover, .speaking-cta a:hover, .contact-send:hover,
  .contact-details > a:hover, .contact-social > a:hover, .business-company-footer > a:hover,
  .business-location-card:hover, .speaker-gallery-item:hover > span { transform: none; }
  .hero-button::after, .polyplast-cta a::after, .speaking-cta a::after, .contact-send::after { display: none; }
}
@media(forced-colors: active) {
  .heading-fill-active .heading-fill-word { color: CanvasText !important; -webkit-text-fill-color: CanvasText; background: none; }
}

/* Journey and supporting details: quiet hover accents without shifting layout. */
.profile-timeline > li { isolation: isolate; }
.profile-timeline > li::after {
  content: ''; position: absolute; z-index: -1; inset: -10px -12px 17px -9px;
  border: 1px solid transparent; border-radius: 8px; background: transparent;
  opacity: 0; transform: translateX(-4px); pointer-events: none;
  transition: opacity .3s, transform .35s var(--professional-ease), background .3s, border-color .3s, box-shadow .3s;
}
.profile-timeline > li:last-child::after { bottom: -10px; }
.profile-timeline > li::before { transition: background .3s, box-shadow .3s; }
.profile-timeline h3, .profile-timeline time { transition: color .25s; }
.profile-education > li { border-radius: 7px; transition: background .3s, box-shadow .3s; }
.profile-degree-icon { transition: background .3s, color .3s, box-shadow .3s; }
.profile-tabs button { transition: background .25s, color .25s, box-shadow .25s; }
.profile-tabs button span { transition: transform .3s var(--professional-ease); }
.profile-detail > summary { transition: color .25s, background .25s; border-radius: 4px; }
.profile-tabs button:focus-visible { box-shadow: 0 0 0 4px #e8a33d24; }
.profile-detail > summary:focus-visible { background: #fff5e4; color: #805014; }
@media(hover: hover) and (pointer: fine) {
  .profile-timeline > li:hover::after { opacity: 1; transform: none; background: #fffaf1; border-color: #ead8b9; box-shadow: 0 8px 20px #1f3a5f08; }
  .profile-timeline > li:hover::before { background: #1f3a5f; box-shadow: 0 0 0 1px #e8a33d, 0 0 0 5px #e8a33d22; }
  .profile-timeline > li:hover h3 { color: #805014; }
  .profile-timeline > li:hover time { color: #1f3a5f; }
  .profile-education > li:hover { background: #fffaf1; box-shadow: 10px 0 0 #fffaf1, -10px 0 0 #fffaf1; }
  .profile-education > li:hover .profile-degree-icon { background: #1f3a5f; color: #e8a33d; box-shadow: 0 5px 12px #1f3a5f12; }
  .profile-tabs button:not([aria-selected="true"]):hover { background: #fff; color: #1f3a5f; box-shadow: 0 3px 8px #1f3a5f08; }
  .profile-tabs button:hover span { transform: translate(2px, -2px); }
  .profile-detail > summary:hover { color: #805014; background: #fff5e4; }
}
@media(prefers-reduced-motion: reduce) {
  .profile-timeline > li::after, .profile-timeline > li::before, .profile-timeline h3, .profile-timeline time,
  .profile-education > li, .profile-degree-icon, .profile-tabs button, .profile-tabs button span,
  .profile-detail > summary { transition: none; }
  .profile-timeline > li::after, .profile-tabs button:hover span { transform: none; }
}
