/* Glenrothes Motor Services theme — main stylesheet
   Tokens declared in style.css :root. This file consumes them.
   Requirements: 9.1, 9.3-9.7, 12.2, 13.1-13.5
   Visual refresh: solid navy brand surfaces, crisp contrast, orange accents,
   responsive cards and clear keyboard states. */

/* ================ Reset + base ================ */
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--gms-font-size-root);scroll-behavior:smooth}
body{margin:0;font-family:var(--gms-font-body);line-height:var(--gms-line-height-body);color:var(--gms-color-text);background:var(--gms-color-surface);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,iframe,video,picture,svg{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,h5,h6{font-family:var(--gms-font-heading);font-weight:var(--gms-font-weight-bold);color:var(--gms-color-primary);line-height:var(--gms-line-height-tight);margin:0 0 var(--gms-space-m);letter-spacing:-0.01em}
h1{font-size:var(--gms-font-size-4xl);letter-spacing:-0.02em}
h2{font-size:var(--gms-font-size-3xl)}
h3{font-size:var(--gms-font-size-2xl)}
h4{font-size:var(--gms-font-size-xl)}
h5{font-size:var(--gms-font-size-lg)}
h6{font-size:var(--gms-font-size-base)}
p{margin:0 0 var(--gms-space-s)}
a{color:var(--gms-color-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--gms-motion-fast) var(--gms-motion-easing)}
a:hover,a:focus{color:var(--gms-color-link-hover);text-decoration-thickness:2px}

/* ================ Grid children guards ================ */
*,*::before,*::after{min-width:0}
.gms-grid,.gms-flex{min-width:0}
.gms-grid > *,.gms-flex > *{min-width:0}

/* ================ Layout ================ */
.wp-site-blocks,.gms-main{padding-inline:var(--gms-space-section-inline)}
.gms-container{max-width:var(--gms-content-max);margin-inline:auto}
.gms-narrow{max-width:var(--gms-content-narrow);margin-inline:auto}
.gms-section{padding-block:var(--gms-space-section-block)}
.gms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:var(--gms-space-m)}

/* Section eyebrow / kicker label used above H2 section headings for a more editorial, modern rhythm */
.gms-services__heading,.gms-testimonials__heading,.gms-team__heading,.gms-gallery__heading,
.gms-hours__heading,.gms-location__heading,.gms-home-hours__heading,.gms-home-location__heading{
  position:relative;
  display:inline-block;
  padding-bottom:var(--gms-space-xs);
}
.gms-services__heading::after,.gms-testimonials__heading::after,.gms-team__heading::after,
.gms-gallery__heading::after,.gms-hours__heading::after,.gms-location__heading::after,
.gms-home-hours__heading::after,.gms-home-location__heading::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:2.5rem;
  height:4px;
  border-radius:var(--gms-radius-full);
  background:var(--gms-color-accent);
}

/* ================ Accessibility ================ */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gms-skip{position:absolute;top:-100px;left:0;background:var(--gms-color-primary);color:var(--gms-color-primary-contrast);padding:var(--gms-space-s) var(--gms-space-m);text-decoration:none;font-weight:var(--gms-font-weight-bold);z-index:9999;transform:translateY(-100%);transition:transform var(--gms-motion-fast) var(--gms-motion-easing)}
.gms-skip:focus{top:0;transform:translateY(0)}

:focus{outline:none}
:focus-visible{outline:2px solid var(--gms-color-primary);outline-offset:2px;border-radius:var(--gms-radius-sm)}

/* Touch targets on mobile */
@media (max-width:767.98px){
  .gms-btn,.gms-nav__list a,.gms-footer__menu a,button,input,select,textarea,summary,a.gms-btn{min-block-size:44px;min-inline-size:44px;line-height:1.4}
  body{font-size:16px}
}

/* ================ Header + nav ================ */
.gms-header{
  background:var(--gms-color-primary);
  border-bottom:3px solid var(--gms-color-accent);
  padding-block:var(--gms-space-s);
  position:sticky;
  top:0;
  z-index:200;
  box-shadow:0 4px 0 rgba(7,26,49,.18);
}
.gms-header__inner{max-width:var(--gms-content-max);margin-inline:auto;padding-inline:var(--gms-space-section-inline);display:flex;align-items:center;justify-content:space-between;gap:var(--gms-space-m)}

/* Wordmark: icon badge + two-line lockup so the header reads as a logotype
   rather than plain link text. Sits on the light, translucent header, so
   colours are drawn from the brand palette (never white-on-white). */
.gms-brand-name{
  display:inline-flex;align-items:center;gap:var(--gms-space-s);
  text-decoration:none;margin:0;line-height:1.05;
}
.gms-branding{display:flex}
.gms-brand-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:2.75rem;height:2.75rem;flex-shrink:0;
  border-radius:var(--gms-radius-md);
  background:var(--gms-color-accent);
  color:var(--gms-color-primary);
  box-shadow:var(--gms-shadow-sm);
}
.gms-brand-mark svg{width:1.5rem;height:1.5rem;display:block}
.gms-brand-text{display:flex;flex-direction:column}
.gms-brand-text__primary{
  font-family:var(--gms-font-heading);font-weight:800;
  color:#ffffff;
  letter-spacing:-0.01em;
}
.gms-brand-text__secondary{
  font-weight:var(--gms-font-weight-bold);
  color:var(--gms-color-accent);
  font-size:0.65rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin-top:2px;
}

.gms-nav{position:relative}
.gms-nav-toggle{margin:0}
.gms-nav-toggle > summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  padding:var(--gms-space-xs) var(--gms-space-s);
  background:var(--gms-color-accent);
  color:var(--gms-color-primary);
  border-radius:var(--gms-radius-full);
  border:none;font-size:var(--gms-font-size-base);min-block-size:44px;
  box-shadow:var(--gms-shadow-sm);
  transition:box-shadow var(--gms-motion-base) var(--gms-motion-easing),transform var(--gms-motion-fast) var(--gms-motion-easing);
}
.gms-nav-toggle > summary:hover{box-shadow:var(--gms-shadow-md);transform:translateY(-1px)}
.gms-nav-toggle > summary::-webkit-details-marker{display:none}
.gms-nav-toggle[open] > summary{background:var(--gms-color-accent);color:var(--gms-color-primary)}
.gms-nav__list{
  list-style:none;margin:var(--gms-space-s) 0 0;padding:var(--gms-space-2xs);
  background:var(--gms-color-surface);
  border:1px solid var(--gms-color-border);
  border-radius:var(--gms-radius-lg);
  box-shadow:var(--gms-shadow-lg);
  position:absolute;right:0;min-width:220px;z-index:100;
}
.gms-nav__list li{list-style:none}
.gms-nav__list a{display:block;padding:var(--gms-space-s);text-decoration:none;color:var(--gms-color-text);border-radius:var(--gms-radius-md);transition:background var(--gms-motion-fast) var(--gms-motion-easing),color var(--gms-motion-fast) var(--gms-motion-easing)}
.gms-nav__list a:hover,.gms-nav__list a:focus{background:var(--gms-color-surface-alt);color:var(--gms-color-primary)}

/* Desktop nav ≥ 768px: horizontal, always open */
@media (min-width:768px){
  .gms-nav-toggle > summary{display:none}
  .gms-nav-toggle[open] > .gms-nav__list,.gms-nav__list{display:flex;flex-direction:row;gap:var(--gms-space-3xs);position:static;background:none;border:none;box-shadow:none;padding:0;margin:0;min-width:0}
  .gms-nav-toggle{display:block}
  .gms-nav-toggle > .gms-nav__list{display:flex}
  .gms-nav__list a{padding:var(--gms-space-2xs) var(--gms-space-s);font-weight:var(--gms-font-weight-medium);position:relative}
  .gms-nav__list a:hover,.gms-nav__list a:focus{background:var(--gms-color-surface-alt)}
}

/* ================ Buttons ================ */
.gms-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--gms-space-2xs);
  padding:var(--gms-space-s) var(--gms-space-l);
  background:var(--gms-color-primary);
  color:var(--gms-color-primary-contrast);
  text-decoration:none;font-weight:var(--gms-font-weight-bold);
  border:2px solid transparent;border-radius:var(--gms-radius-full);
  cursor:pointer;
  box-shadow:var(--gms-shadow-sm);
  transition:background var(--gms-motion-base) var(--gms-motion-easing),transform var(--gms-motion-fast) var(--gms-motion-easing-spring),box-shadow var(--gms-motion-base) var(--gms-motion-easing);
  font-size:var(--gms-font-size-base);line-height:1.2;min-block-size:44px;
}
.gms-btn:hover,.gms-btn:focus{background:var(--gms-color-link-hover);color:var(--gms-color-primary-contrast);text-decoration:none;transform:translateY(-2px);box-shadow:var(--gms-shadow-md)}
.gms-btn:active{transform:translateY(0)}
.gms-btn--accent{background:var(--gms-color-accent);color:var(--gms-color-primary)}
.gms-btn--accent:hover,.gms-btn--accent:focus{background:var(--gms-color-link-hover);color:#fff;box-shadow:var(--gms-shadow-focus-accent),var(--gms-shadow-md)}
.gms-btn--outline{background:transparent;color:var(--gms-color-primary);border-color:var(--gms-color-primary);box-shadow:none}
.gms-btn--outline:hover,.gms-btn--outline:focus{background:var(--gms-color-primary);color:var(--gms-color-primary-contrast);box-shadow:var(--gms-shadow-md)}

/* Outline buttons rendered on a dark surface (hero / footer / CTA) need a light border */
.gms-hero .gms-btn--outline,.gms-footer .gms-btn--outline,.gms-cta .gms-btn--outline{
  border-color:#ffffff;color:var(--gms-color-primary-contrast);
}
.gms-hero .gms-btn--outline:hover,.gms-footer .gms-btn--outline:hover,.gms-cta .gms-btn--outline:hover,
.gms-hero .gms-btn--outline:focus,.gms-footer .gms-btn--outline:focus,.gms-cta .gms-btn--outline:focus{
  background:var(--gms-color-accent);color:var(--gms-color-primary);border-color:var(--gms-color-accent);
}

/* ================ Hero ================ */
.gms-hero{
  position:relative;
  overflow:hidden;
  background:var(--gms-color-primary);
  color:var(--gms-color-primary-contrast);
  padding-block:var(--gms-space-3xl);
  isolation:isolate;
}
.gms-hero::before,.gms-hero::after{display:none}
.gms-hero__inner{position:relative;z-index:2;max-width:var(--gms-content-max);margin-inline:auto;padding-inline:var(--gms-space-section-inline);display:flex;flex-wrap:wrap;align-items:center;gap:var(--gms-space-2xl)}
.gms-hero__content{flex:1 1 26rem;min-width:0}
.gms-hero__image{flex:1 1 22rem;min-width:0;border-radius:var(--gms-radius-lg);overflow:hidden;box-shadow:var(--gms-shadow-lg)}
.gms-hero__eyebrow{
  display:inline-flex;align-items:center;gap:var(--gms-space-2xs);
  color:var(--gms-color-accent);font-weight:var(--gms-font-weight-bold);
  font-size:var(--gms-font-size-small);letter-spacing:0.1em;text-transform:uppercase;
  margin-bottom:var(--gms-space-s);
}
.gms-hero__eyebrow::before{content:"";width:1.5rem;height:2px;border-radius:var(--gms-radius-full);background:var(--gms-color-accent)}
.gms-hero h1,.gms-hero__title{color:#ffffff;font-size:var(--gms-font-size-4xl);margin-bottom:var(--gms-space-m);text-shadow:0 2px 20px rgba(0,0,0,0.18)}
.gms-hero__prop{font-size:var(--gms-font-size-lg);max-width:36rem;margin-bottom:var(--gms-space-l);color:#ffffff;opacity:0.92}
.gms-hero__ctas{display:flex;flex-wrap:wrap;gap:var(--gms-space-s)}

/* ================ Sections ================ */
.gms-services,.gms-testimonials,.gms-team,.gms-gallery,.gms-hours,.gms-location,.gms-cta,
.gms-home-hours,.gms-home-location{padding-block:var(--gms-space-section-block)}
.gms-services__inner,.gms-testimonials__inner,.gms-team__inner,.gms-gallery__inner,.gms-hours__inner,
.gms-location__inner,.gms-cta__inner,.gms-home-hours__inner,.gms-home-location__inner{
  max-width:var(--gms-content-max);margin-inline:auto;padding-inline:var(--gms-space-section-inline)
}

/* Alternate section background rhythm so consecutive sections read as distinct bands */
.gms-services,.gms-home-hours,.gms-team{background:var(--gms-color-surface-alt)}
.gms-testimonials,.gms-home-location,.gms-gallery{background:var(--gms-color-surface)}

/* ================ Cards ================ */
.gms-card,.gms-service-card,.gms-testimonial-card,.gms-team-member{
  background:var(--gms-color-surface);
  border:1px solid var(--gms-color-border);
  border-radius:var(--gms-radius-lg);
  padding:var(--gms-space-l);
  display:flex;flex-direction:column;gap:var(--gms-space-s);
  box-shadow:var(--gms-shadow-sm);
  transition:box-shadow var(--gms-motion-base) var(--gms-motion-easing),transform var(--gms-motion-base) var(--gms-motion-easing),border-color var(--gms-motion-base) var(--gms-motion-easing);
}
.gms-card:hover,.gms-service-card:hover,.gms-testimonial-card:hover,.gms-team-member:hover{
  box-shadow:var(--gms-shadow-md);transform:translateY(-4px);border-color:transparent;
}
.gms-service-card h3,.gms-testimonial-card cite{margin:0}

/* Service card image gets a top-rounded crop and slight zoom on card hover */
.gms-service-card__image{border-radius:var(--gms-radius-md);overflow:hidden;margin:calc(var(--gms-space-l) * -1) calc(var(--gms-space-l) * -1) 0;display:block}
.gms-service-card__image img{transition:transform var(--gms-motion-slow) var(--gms-motion-easing);aspect-ratio:3/2;object-fit:cover;width:100%;height:100%}
.gms-service-card:hover .gms-service-card__image img{transform:scale(1.06)}
.gms-service-card__title{margin-top:var(--gms-space-xs)}
.gms-service-card__title a{color:var(--gms-color-primary);text-decoration:none}
.gms-service-card__title a:hover{color:var(--gms-color-link-hover);text-decoration:underline}
.gms-service-card__short{color:var(--gms-color-text-muted);flex:1}

/* Team member card: circular photo, centred layout */
.gms-team-member{align-items:center;text-align:center}
.gms-team-member__photo{width:8rem;height:8rem;border-radius:var(--gms-radius-full);overflow:hidden;box-shadow:var(--gms-shadow-sm);border:3px solid var(--gms-color-surface-alt)}
.gms-team-member__photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.gms-team-member__name{margin:var(--gms-space-2xs) 0 0}
.gms-team-member__role{color:var(--gms-color-accent);font-weight:var(--gms-font-weight-medium);margin:0 0 var(--gms-space-2xs);font-size:var(--gms-font-size-small);text-transform:uppercase;letter-spacing:0.04em}
.gms-team-member__bio{color:var(--gms-color-text-muted);font-size:var(--gms-font-size-small)}

/* Testimonial card: quote-forward styling with a subtle mark */
.gms-testimonial-card{position:relative;padding-top:var(--gms-space-xl)}
.gms-testimonial-card::before{
  content:"\201C";
  position:absolute;top:var(--gms-space-xs);left:var(--gms-space-m);
  font-family:Georgia,'Times New Roman',serif;
  font-size:3.5rem;line-height:1;color:var(--gms-color-accent);opacity:0.35;
}
.gms-testimonial-card__quote{margin:0;flex:1}
.gms-testimonial-card__quote p{color:var(--gms-color-text);font-style:italic;margin:0}
.gms-testimonial-card__attribution{border-top:1px solid var(--gms-color-border);padding-top:var(--gms-space-s);margin-top:var(--gms-space-2xs)}
.gms-testimonial-card__author{font-style:normal;font-weight:var(--gms-font-weight-bold);color:var(--gms-color-primary)}
.gms-testimonial-card__location{color:var(--gms-color-text-muted);font-weight:var(--gms-font-weight-regular);font-size:var(--gms-font-size-small)}

/* ================ Price ================ */
.gms-price{font-weight:var(--gms-font-weight-bold);color:var(--gms-color-primary);display:inline-flex;align-items:baseline;gap:var(--gms-space-3xs)}
.gms-price__amount{font-size:var(--gms-font-size-lg)}
.gms-price__qualifier{font-size:var(--gms-font-size-small);color:var(--gms-color-text-muted);font-weight:var(--gms-font-weight-regular)}
.gms-price--on-request{font-style:italic;color:var(--gms-color-text-muted);font-weight:var(--gms-font-weight-medium)}

/* ================ Stars ================ */
.gms-stars{display:inline-block}
.gms-stars__visual{color:var(--gms-color-accent);letter-spacing:2px;font-size:1.1em}

/* ================ Hours ================ */
.gms-hours-list,.gms-opening-hours{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:auto 1fr;gap:var(--gms-space-2xs) var(--gms-space-m)}
.gms-hours-list li,.gms-opening-hours__row{display:contents}
.gms-hours-day,.gms-opening-hours__day{font-weight:var(--gms-font-weight-bold)}
.gms-hours-list__is-today,.gms-opening-hours__row.is-today .gms-opening-hours__day,
.gms-opening-hours__row.is-today .gms-opening-hours__time{
  background:var(--gms-color-surface-alt);padding:var(--gms-space-3xs) var(--gms-space-2xs);border-radius:var(--gms-radius-sm);
}
.gms-hours-fallback,.gms-opening-hours-fallback{color:var(--gms-color-text-muted);font-style:italic}

.gms-opening-hours-today{
  display:inline-flex;align-items:center;gap:var(--gms-space-s);
  padding:var(--gms-space-s) var(--gms-space-l);
  border-radius:var(--gms-radius-full);
  background:var(--gms-color-surface);
  border:1px solid var(--gms-color-border);
  box-shadow:var(--gms-shadow-sm);
  margin-bottom:var(--gms-space-m);
}
.gms-opening-hours-today--open .gms-opening-hours-today__status,
.gms-home-hours__today--open .gms-home-hours__label{color:var(--gms-color-success)}
.gms-opening-hours-today--open .gms-opening-hours-today__status::before,
.gms-home-hours__today--open .gms-home-hours__label::before{
  content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gms-color-success);margin-right:var(--gms-space-3xs);
}
.gms-home-hours__today{
  display:inline-flex;align-items:center;gap:var(--gms-space-s);
  padding:var(--gms-space-s) var(--gms-space-l);
  border-radius:var(--gms-radius-full);
  background:var(--gms-color-surface);
  border:1px solid var(--gms-color-border);
  box-shadow:var(--gms-shadow-sm);
  margin-bottom:var(--gms-space-m);
}

/* ================ Placeholders ================ */
.gms-placeholder{display:inline-block;padding:var(--gms-space-2xs) var(--gms-space-xs);background:var(--gms-color-surface-alt);color:var(--gms-color-text-muted);border:1px dashed var(--gms-color-border);border-radius:var(--gms-radius-sm);font-style:italic;font-size:var(--gms-font-size-small)}

/* ================ Enquiry form ================ */
.gms-form{display:flex;flex-direction:column;gap:var(--gms-space-m)}
.gms-form label{display:block;font-weight:var(--gms-font-weight-medium);margin-bottom:var(--gms-space-2xs)}
.gms-form input[type=text],.gms-form input[type=email],.gms-form input[type=tel],.gms-form textarea,.gms-form select{
  width:100%;padding:var(--gms-space-s);border:1.5px solid var(--gms-color-border);border-radius:var(--gms-radius-md);font:inherit;font-size:16px;
  background:var(--gms-color-surface);transition:border-color var(--gms-motion-fast) var(--gms-motion-easing),box-shadow var(--gms-motion-fast) var(--gms-motion-easing);
}
.gms-form textarea{min-height:8rem;resize:vertical}
.gms-form input:focus,.gms-form textarea:focus,.gms-form select:focus{border-color:var(--gms-color-primary);outline:none;box-shadow:0 0 0 3px rgba(11,37,69,0.12)}
.gms-form .hint{display:block;font-size:var(--gms-font-size-small);color:var(--gms-color-text-muted);margin-top:var(--gms-space-3xs)}
.gms-form .error{display:block;color:var(--gms-color-error);font-size:var(--gms-font-size-small);margin-top:var(--gms-space-3xs);font-weight:var(--gms-font-weight-medium)}
.gms-form [aria-invalid=true]{border-color:var(--gms-color-error)}
.gms-form__actions{margin-top:var(--gms-space-s)}
.gms-form__error-summary{background:#fdf2f2;border:1px solid var(--gms-color-error);border-radius:var(--gms-radius-md);padding:var(--gms-space-s);color:var(--gms-color-error)}
.gms-form__success{background:#e6f4ea;border:1px solid var(--gms-color-success);border-radius:var(--gms-radius-md);padding:var(--gms-space-s);color:var(--gms-color-success)}
.gms-honeypot{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden;visibility:hidden}

/* Contact page two-column layout for details + form */
.gms-contact__inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:var(--gms-space-2xl);align-items:start}
.gms-contact__details{background:var(--gms-color-surface-alt);border-radius:var(--gms-radius-lg);padding:var(--gms-space-l)}
.gms-contact__block{margin-bottom:var(--gms-space-m)}
.gms-contact__block h4{font-size:var(--gms-font-size-base);color:var(--gms-color-accent);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:var(--gms-space-2xs)}
.gms-contact__map{margin-top:var(--gms-space-2xl);border-radius:var(--gms-radius-lg);overflow:hidden}

/* ================ Gallery / lightbox ================ */
.gms-gallery__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:var(--gms-space-m)}
.gms-gallery-item,.gms-gallery__item{overflow:hidden;border-radius:var(--gms-radius-md);box-shadow:var(--gms-shadow-sm);transition:box-shadow var(--gms-motion-base) var(--gms-motion-easing)}
.gms-gallery-item:hover,.gms-gallery__item:hover{box-shadow:var(--gms-shadow-md)}
.gms-gallery-item img,.gms-gallery__item img{transition:transform var(--gms-motion-slow) var(--gms-motion-easing);width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.gms-gallery-item:hover img,.gms-gallery__item:hover img,
.gms-gallery-item:focus img,.gms-gallery__item:focus img{transform:scale(1.08)}
.gms-gallery-item__caption{padding:var(--gms-space-2xs) var(--gms-space-xs);font-size:var(--gms-font-size-small);color:var(--gms-color-text-muted)}

.gms-lightbox{position:fixed;inset:0;background:rgba(8,17,32,0.92);z-index:9998;display:none;align-items:center;justify-content:center;padding:var(--gms-space-m)}
.gms-lightbox[open],.gms-lightbox.is-open{display:flex}
.gms-lightbox__content{max-width:min(90vw,1200px);max-height:90vh;position:relative}
.gms-lightbox__image{max-width:100%;max-height:80vh;width:auto;height:auto;object-fit:contain;border-radius:var(--gms-radius-md);box-shadow:var(--gms-shadow-lg)}
.gms-lightbox__caption{color:#fff;text-align:center;margin-top:var(--gms-space-s)}
.gms-lightbox__button{position:absolute;background:rgba(255,255,255,.92);border:none;padding:var(--gms-space-s);border-radius:50%;cursor:pointer;font-size:1.5rem;min-block-size:44px;min-inline-size:44px;box-shadow:var(--gms-shadow-md);transition:transform var(--gms-motion-fast) var(--gms-motion-easing-spring)}
.gms-lightbox__button:hover{transform:scale(1.08)}
.gms-lightbox__close{top:-var(--gms-space-l);right:0}
.gms-lightbox__prev{left:-var(--gms-space-2xl);top:50%;transform:translateY(-50%)}
.gms-lightbox__next{right:-var(--gms-space-2xl);top:50%;transform:translateY(-50%)}
.gms-lightbox__button:disabled{opacity:.4;cursor:not-allowed}

/* ================ CTA band ================ */
.gms-cta{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--gms-color-primary);
  color:#ffffff;
  text-align:center;
  border-radius:var(--gms-radius-lg);
  margin-inline:var(--gms-space-section-inline);
  margin-block:var(--gms-space-2xl);
  padding-block:var(--gms-space-2xl);
  box-shadow:var(--gms-shadow-lg);
}
.gms-cta::before{display:none}
.gms-cta__inner{position:relative;z-index:2;max-width:40rem;margin-inline:auto}
.gms-cta__heading{color:#ffffff;text-shadow:0 2px 16px rgba(0,0,0,0.16)}
.gms-cta__subheading{color:#ffffff;opacity:0.9;margin-bottom:var(--gms-space-l)}
.gms-cta__buttons{display:flex;flex-wrap:wrap;gap:var(--gms-space-s);justify-content:center}

/* ================ Consent banner ================ */
.gms-consent,.gms-consent-banner{
  position:fixed;bottom:var(--gms-space-m);left:var(--gms-space-m);right:var(--gms-space-m);
  background:var(--gms-color-surface);color:var(--gms-color-text);
  padding:var(--gms-space-l);z-index:9997;
  border-radius:var(--gms-radius-lg);
  box-shadow:var(--gms-shadow-lg);
  border:1px solid var(--gms-color-border);
  max-width:56rem;margin-inline:auto;
}
.gms-consent__inner{max-width:var(--gms-content-max);margin-inline:auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--gms-space-m);justify-content:space-between}
.gms-consent__body{flex:1 1 300px;min-width:0}
.gms-consent__headline,.gms-consent-heading{margin:0 0 var(--gms-space-2xs);color:var(--gms-color-primary);font-size:var(--gms-font-size-lg)}
.gms-consent-body{color:var(--gms-color-text-muted);margin:0}
.gms-consent__actions,.gms-consent-actions{display:flex;gap:var(--gms-space-s);flex-shrink:0}
/* Visual parity between accept and reject buttons (Req 12.2) */
.gms-consent__actions .gms-btn,.gms-consent-actions .gms-btn{width:120px;height:44px;font-size:var(--gms-font-size-base);padding:var(--gms-space-2xs) var(--gms-space-m)}
.gms-consent-reject{background:transparent;color:var(--gms-color-primary);border:2px solid var(--gms-color-border);box-shadow:none}
.gms-consent-reject:hover,.gms-consent-reject:focus{background:var(--gms-color-surface-alt);border-color:var(--gms-color-primary);color:var(--gms-color-primary)}
.gms-consent[hidden],.gms-consent-banner[hidden]{display:none}

/* ================ Footer ================ */
.gms-footer{
  position:relative;overflow:hidden;isolation:isolate;
  background:var(--gms-color-primary);
  color:#ffffff;
  padding-block:var(--gms-space-2xl);
  margin-top:var(--gms-space-3xl);
}
.gms-footer::before{display:none}
.gms-footer__inner{position:relative;z-index:2;max-width:var(--gms-content-max);margin-inline:auto;padding-inline:var(--gms-space-section-inline)}
.gms-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:var(--gms-space-l)}
.gms-footer__heading{color:#ffffff;font-size:var(--gms-font-size-lg);margin-bottom:var(--gms-space-s)}
.gms-footer__heading::after{background:var(--gms-color-accent)}
.gms-footer a{color:#ffffff;text-decoration:none}
.gms-footer a:hover,.gms-footer a:focus{color:var(--gms-color-accent);text-decoration:underline}
.gms-footer address{color:#ffffff;font-style:normal}
.gms-footer__shop-name{color:#ffffff;font-weight:var(--gms-font-weight-bold)}
.gms-footer__bottom{margin-top:var(--gms-space-l);padding-top:var(--gms-space-m);border-top:1px solid #6d8199;text-align:center;font-size:var(--gms-font-size-small);color:#ffffff}
.gms-footer__menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--gms-space-2xs)}

/* ================ Archive headers ================ */
.gms-archive-header{background:var(--gms-color-surface-alt);padding-block:var(--gms-space-2xl);border-bottom:1px solid var(--gms-color-border)}
.gms-archive-header__inner{max-width:var(--gms-content-max);margin-inline:auto;padding-inline:var(--gms-space-section-inline)}
.gms-archive-title{margin-bottom:0}

/* ================ Pagination ================ */
.gms-pagination{display:flex;justify-content:center;gap:var(--gms-space-2xs);margin-top:var(--gms-space-2xl);flex-wrap:wrap}
.gms-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 var(--gms-space-s);
  border-radius:var(--gms-radius-full);
  border:1px solid var(--gms-color-border);
  color:var(--gms-color-primary);text-decoration:none;font-weight:var(--gms-font-weight-medium);
  transition:background var(--gms-motion-fast) var(--gms-motion-easing),color var(--gms-motion-fast) var(--gms-motion-easing),border-color var(--gms-motion-fast) var(--gms-motion-easing);
}
.gms-pagination .page-numbers:hover{background:var(--gms-color-surface-alt);border-color:var(--gms-color-primary)}
.gms-pagination .page-numbers.current{background:var(--gms-color-primary);color:var(--gms-color-primary-contrast);border-color:var(--gms-color-primary)}

/* ================ Reduced motion ================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
  .gms-card:hover,.gms-service-card:hover,.gms-testimonial-card:hover,.gms-team-member:hover,.gms-btn:hover{transform:none!important}
}

/* Follow-up visual system: solid navy chrome, white type, orange interaction states. */
.gms-brand-text__primary{font-size:var(--gms-font-size-xl);color:#fff}
.gms-nav__list{background:var(--gms-color-primary);border-color:var(--gms-color-accent)}
.gms-nav__list a{color:#fff;border-radius:var(--gms-radius-sm);font-weight:var(--gms-font-weight-bold)}
.gms-nav__list a:hover,.gms-nav__list a:focus,.gms-nav__list .current-menu-item>a,.gms-nav__list .current_page_item>a{background:var(--gms-color-accent);color:var(--gms-color-primary);text-decoration:none}
.gms-nav-toggle>summary:focus-visible,.gms-nav__list a:focus-visible{outline:3px solid var(--gms-color-focus);outline-offset:2px}
.gms-hero__prop,.gms-cta__subheading{opacity:1}
.gms-hero h1,.gms-cta__heading{text-shadow:none}
.gms-page,.gms-service-single{max-width:var(--gms-content-max);margin-inline:auto;padding-block:var(--gms-space-2xl)}
.gms-page__header,.gms-service__header{max-width:var(--gms-content-narrow);margin-inline:auto;margin-bottom:var(--gms-space-l)}
.gms-page__title,.gms-service__title{font-size:var(--gms-font-size-4xl);margin-bottom:0}
.gms-page__hero,.gms-service__hero{margin:0 auto var(--gms-space-l);max-width:var(--gms-content-max);border-radius:var(--gms-radius-lg);overflow:hidden;background:var(--gms-color-surface-alt)}
.gms-page__hero img,.gms-service__hero-img{width:100%;height:auto}
.gms-page__content,.gms-service__content{max-width:var(--gms-content-narrow);margin-inline:auto;font-size:var(--gms-font-size-lg)}
.gms-page__content>*+*,.gms-service__content>*+*{margin-top:var(--gms-space-m)}
.gms-archive-header{background:var(--gms-color-surface-alt)}
.gms-archive-description{max-width:var(--gms-content-narrow);font-size:var(--gms-font-size-lg)}
.gms-services-archive .gms-services,.gms-service-single .gms-services{padding-block:var(--gms-space-2xl)}
.gms-service-card__body{display:flex;flex-direction:column;flex:1}
.gms-service-card__short{margin-bottom:0}
.gms-service-card__title a:focus-visible,.gms-footer a:focus-visible,.gms-btn:focus-visible{outline-color:var(--gms-color-focus);outline-width:3px}
.gms-cta,.gms-footer,.gms-header,.gms-hero{background:var(--gms-color-primary)}
.gms-footer a:hover,.gms-footer a:focus{color:var(--gms-color-accent)}
@media (max-width:767.98px){.gms-header__inner{align-items:flex-start}.gms-nav__list{margin-top:var(--gms-space-s);max-width:calc(100vw - 2rem)}.gms-page,.gms-service-single{padding-block:var(--gms-space-xl)}.gms-page__title,.gms-service__title{font-size:clamp(2rem,8vw,2.75rem)}}
