/* Header component — v3.2.1 spacing polish */
.site-header {
  box-shadow: 0 8px 26px rgba(35, 20, 60, .055);
  transition: box-shadow .22s ease, background-color .22s ease;
}

.header-inner {
  min-height: var(--header-height);
  gap: clamp(14px, 1.6vw, 26px);
  transition: min-height .22s ease, gap .22s ease;
}

.site-logo,
.header-actions { min-width: 0; }

.header-actions {
  display: flex;
  flex-shrink: 0;
  align-self: center;
  align-items: center;
  gap: 10px;
}

/* Header actions use the shared Button Component, not menu-item styling. */
.header-actions .btn {
  min-height: 46px;
  padding-block: .72rem;
  font-size: .79rem;
  line-height: 1;
}

.remote-header-btn {
  min-width: 218px;
  padding-inline: 1.22rem;
  box-shadow: 0 9px 24px rgba(190, 151, 40, .25);
  letter-spacing: -.01em;
}

.remote-header-btn::before {
  content: "";
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 1.15rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4'/%3E%3Cpath d='m9 10 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='12' rx='2'/%3E%3Cpath d='M8 20h8M12 16v4'/%3E%3Cpath d='m9 10 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}

.remote-header-btn:hover {
  transform: translateY(-1px);
}

.remote-header-btn:active {
  transform: translateY(0);
}

.site-header.is-scrolled {
  box-shadow: 0 12px 34px rgba(35, 20, 60, .11);
}

@media (min-width: 1101px) {
  .header-actions {
    margin-inline-start: 28px;
  }

  .header-inner {
    grid-template-columns: minmax(245px, 305px) minmax(0, 1fr) auto;
  }

  .site-header.is-scrolled .header-inner {
    min-height: calc(var(--header-height) - 10px);
  }

  .site-header.is-scrolled .site-logo img {
    transform: scale(.94);
    transform-origin: left center;
  }

  .site-logo img { transition: transform .22s ease; }
}

@media (max-width: 1280px) and (min-width: 1101px) {
  .header-inner {
    grid-template-columns: minmax(230px, 270px) minmax(0, 1fr) auto;
    gap: 12px;
  }

  .remote-header-btn {
    min-width: 0;
    padding-inline: .92rem;
    font-size: .72rem;
  }

  .header-actions .btn-call {
    padding-inline: .85rem;
  }
}

@media (max-width: 1100px) {
  :root { --header-height: 92px; }

  .header-actions .btn {
    display: none;
  }
}

@media (max-width: 700px) {
  :root { --header-height: 74px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header,
  .header-inner,
  .site-logo img,
  .remote-header-btn { transition: none; }
}


/* Homepage polish — v4.1.0-alpha.3 */
.announcement-inner{min-height:36px;padding-block:5px}
.announcement-message{gap:8px;font-size:.76rem}
.announcement-icon{font-size:.86rem}
.announcement-link{font-size:.72rem}
.announcement-close{width:28px;height:28px;font-size:1.05rem}
.topbar>.container{column-gap:28px}
.topbar-group{gap:22px}
.site-logo{gap:10px}
.site-logo .brand-symbol{width:52px;height:52px;object-fit:contain}
.site-logo .logo-text strong{font-size:.9rem;line-height:1.15}
.site-logo .logo-text span{font-size:.7rem;letter-spacing:.08em}
@media (min-width:1101px){
  .header-inner{grid-template-columns:minmax(220px,270px) minmax(0,1fr) auto;gap:clamp(12px,1.25vw,20px)}
  .header-actions{margin-inline-start:18px}
  .remote-header-btn{min-width:204px}
}
@media (max-width:1280px) and (min-width:1101px){
  .site-logo .logo-text{display:none}
  .header-inner{grid-template-columns:64px minmax(0,1fr) auto}
}

/* Homepage final polish — v4.1.0-alpha.4 */
@media (min-width:1101px){
  :root{--header-height:84px}
  .header-inner{min-height:84px;grid-template-columns:minmax(205px,252px) minmax(0,1fr) auto;gap:clamp(10px,1vw,17px)}
  .site-logo .brand-symbol{width:47px;height:47px}
  .site-logo .logo-text strong{font-size:.84rem}
  .site-logo .logo-text span{font-size:.65rem}
  .header-actions{margin-inline-start:14px;gap:8px}
  .header-actions .btn{min-height:42px;padding-block:.63rem}
  .remote-header-btn{min-width:194px;padding-inline:1rem}
  .site-header.is-scrolled .header-inner{min-height:76px}
}


/* Header refinement — v4.1.0-alpha.5 */
.site-header,.topbar,.announcement-bar{font-family:Manrope,Inter,"Segoe UI",Arial,sans-serif}
@media (min-width:1101px){
  :root{--header-height:80px}
  .header-inner{min-height:80px;grid-template-columns:minmax(190px,238px) minmax(0,1fr) auto}
  .site-logo .brand-symbol{width:42px;height:42px}
  .site-logo .logo-text strong{font-size:.79rem}
  .site-logo .logo-text span{font-size:.61rem}
  .site-header.is-scrolled .header-inner{min-height:72px}
}


/* Premium polish — v4.1.0 RC2 */
.site-scroll-progress{position:fixed;inset:0 0 auto;z-index:9999;height:3px;pointer-events:none;background:transparent}
.site-scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,#411370,#ffc20e);will-change:transform}
.topbar__inner{align-items:center}
.topbar-contact a,.topbar-contact>span{display:inline-flex;align-items:center;gap:7px;color:inherit;text-decoration:none;opacity:.92;transition:opacity .18s ease,color .18s ease}
.topbar-contact a:hover,.topbar-contact a:focus-visible{color:#ffc20e;opacity:1}
.topbar-quote{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:34px;padding:7px 16px;border-radius:999px;background:#ffc20e;color:#251033!important;font-size:.74rem;font-weight:900;letter-spacing:.01em;text-decoration:none;box-shadow:0 7px 18px rgba(255,194,14,.2);transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.topbar-quote:hover,.topbar-quote:focus-visible{transform:translateY(-1px);background:#ffd04a;box-shadow:0 10px 22px rgba(255,194,14,.3)}
.site-header{will-change:box-shadow}
.site-header.is-scrolled{background:rgba(255,255,255,.985)}
@media(max-width:850px){.topbar-hours{display:none}.topbar-contact{gap:14px}.topbar-quote{padding-inline:12px}}
@media(max-width:620px){.topbar-contact a:nth-child(2){display:none}.topbar__inner{justify-content:space-between!important}.topbar-quote{min-height:31px;font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.site-scroll-progress{display:none}.topbar-quote{transition:none}}

/* Unified sticky header system — v4.1.0 RC3 */
:root{--announcement-sticky-height:0px}
.announcement-bar{
  position:sticky;
  top:0;
  z-index:90;
  min-height:48px;
  box-shadow:0 5px 18px rgba(31,10,55,.2);
}
.announcement-inner{
  min-height:48px;
  padding-block:8px;
  gap:clamp(16px,2vw,30px);
}
.announcement-message{
  gap:10px;
  font-size:clamp(.84rem,.78rem + .16vw,.96rem);
  line-height:1.35;
}
.announcement-icon{font-size:1rem}
.announcement-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 13px;
  border-radius:8px;
  font-size:.78rem;
  line-height:1;
  box-shadow:0 6px 15px rgba(0,0,0,.12);
}
.announcement-close{width:30px;height:30px}
.announcement-bar.is-hidden{display:none}

/* The contact strip scrolls away; announcement + main navigation remain visible. */
.site-header{top:var(--announcement-sticky-height);z-index:80}
body.admin-bar .announcement-bar{top:32px}
body.admin-bar .site-header{top:calc(32px + var(--announcement-sticky-height))}
.topbar__inner{justify-content:flex-start}
.topbar-contact{width:100%;justify-content:center}

.header-quote-btn{
  min-width:176px;
  padding-inline:1.15rem;
  background:#ffc20e!important;
  border-color:#ffc20e!important;
  color:#281035!important;
  box-shadow:0 9px 24px rgba(255,194,14,.25);
  font-weight:900;
}
.header-quote-btn::before{
  content:"";
  width:1.05rem;
  height:1.05rem;
  flex:0 0 1.05rem;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.header-quote-btn:hover,.header-quote-btn:focus-visible{
  background:#ffd04a!important;
  border-color:#ffd04a!important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(255,194,14,.34);
}

@media(max-width:1100px){
  .announcement-inner{padding-inline:14px 48px}
  .announcement-message{font-size:.8rem;text-align:left}
  .announcement-actions{margin-left:auto}
  .announcement-link{font-size:.72rem;padding-inline:10px}
  .topbar-contact{justify-content:flex-start}
}
@media(max-width:782px){
  body.admin-bar .announcement-bar{top:46px}
  body.admin-bar .site-header{top:calc(46px + var(--announcement-sticky-height))}
}
@media(max-width:700px){
  .announcement-bar{min-height:0}
  .announcement-inner{min-height:54px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:7px 42px 7px 12px}
  .announcement-message{font-size:.73rem;line-height:1.28}
  .announcement-icon{font-size:.84rem}
  .announcement-link{min-height:28px;font-size:.67rem;padding:5px 8px}
  .announcement-close{right:8px;width:27px;height:27px}
  .header-actions .header-quote-btn{display:inline-flex;min-width:0;min-height:38px;padding:8px 10px;font-size:0}
  .header-actions .header-quote-btn::after{content:"Προσφορά";font-size:.7rem}
  .header-actions .header-quote-btn::before{width:.9rem;height:.9rem;flex-basis:.9rem}
}
@media(max-width:470px){
  .announcement-inner{grid-template-columns:1fr;padding-right:40px}
  .announcement-actions{margin-left:0}
  .announcement-link{width:max-content}
  .header-actions .header-quote-btn{display:none}
}
@media(prefers-reduced-motion:reduce){.header-quote-btn{transition:none}}

/* Premium final header polish — v4.1.0 RC4 */
.site-header{
  contain:paint;
  transition:box-shadow .28s ease,background-color .28s ease,border-color .28s ease;
}
.header-inner{
  transition:gap .28s ease;
}
.site-logo img{
  backface-visibility:hidden;
  transform:translateZ(0) scale(1);
  transition:transform .28s cubic-bezier(.2,.7,.2,1);
}
.announcement-inner{
  padding-block:10px;
}
.announcement-message{
  font-size:clamp(.87rem,.8rem + .18vw,1rem);
}
.announcement-link{
  min-height:34px;
  padding:8px 15px;
  font-weight:850;
  transition:transform .22s ease,background-color .22s ease,box-shadow .22s ease;
}
.announcement-link:hover,
.announcement-link:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 9px 20px rgba(0,0,0,.18);
}
.header-quote-btn{
  min-width:194px;
  min-height:46px!important;
  padding-inline:1.35rem!important;
  font-size:.82rem!important;
  transition:transform .24s ease,box-shadow .24s ease,background-color .24s ease,border-color .24s ease;
}

@media (min-width:1101px){
  /* Keep the outer header height stable so scroll-state changes never move page content. */
  .site-header,
  .site-header.is-scrolled{
    min-height:80px;
  }
  .header-inner,
  .site-header.is-scrolled .header-inner{
    min-height:80px;
  }
  .site-header.is-scrolled .site-logo img{
    transform:translateZ(0) scale(.87);
  }
  .site-header.is-scrolled .header-quote-btn{
    transform:translateY(0) scale(.98);
  }
  .site-header.is-scrolled .header-quote-btn:hover,
  .site-header.is-scrolled .header-quote-btn:focus-visible{
    transform:translateY(-1px) scale(.98);
  }
}

@media (max-width:1100px){
  .announcement-inner{padding-block:9px}
}

@media (max-width:700px){
  .announcement-inner{padding-block:8px}
  .announcement-message{font-size:.75rem}
  .header-quote-btn{min-height:38px!important;padding-inline:10px!important}
}

@media (prefers-reduced-motion:reduce){
  .site-header,.header-inner,.site-logo img,.announcement-link,.header-quote-btn{transition:none!important}
}

/* Final header alignment and stability — v4.1.0 RC5 */
@media (min-width: 1101px) {
  .topbar__inner {
    justify-content: flex-start;
  }

  .topbar-contact {
    width: auto;
    justify-content: flex-start;
    gap: clamp(18px, 1.8vw, 30px);
  }

  .header-inner {
    grid-template-columns: minmax(214px, 258px) minmax(0, 1fr) auto;
    gap: clamp(12px, 1.15vw, 20px);
  }

  .header-actions {
    margin-inline-start: clamp(12px, 1.3vw, 24px);
    margin-inline-end: 4px;
  }

  .header-quote-btn {
    min-width: 184px;
  }
}

@media (min-width: 1281px) {
  .topbar-contact {
    padding-inline-start: 0;
  }
}

@media (max-width: 1280px) and (min-width: 1101px) {
  .header-inner {
    grid-template-columns: 58px minmax(0, 1fr) auto;
  }

  .header-actions {
    margin-inline-start: 10px;
  }

  .header-quote-btn {
    min-width: 164px;
    padding-inline: .95rem;
  }
}

@media (max-width: 1100px) {
  .topbar__inner,
  .topbar-contact {
    justify-content: flex-start;
  }
}

/* Top bar: keep business hours fixed to the right on desktop — v6.0.2.1 */
.topbar-contact__left{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:inherit;
  min-width:0;
}
@media (min-width:1101px){
  .topbar__inner{width:100%}
  .topbar-contact{width:100%;display:flex;align-items:center;justify-content:flex-start}
  .topbar-hours{margin-inline-start:auto;flex:0 0 auto;text-align:right}
}
@media (max-width:1100px){
  .topbar-contact__left{gap:14px}
}

/* Top bar three-zone layout — v6.0.2.2 */
.topbar .topbar__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,auto) minmax(0,1fr);
  align-items:center;
  width:100%;
  gap:clamp(16px,2.4vw,42px);
}
.topbar-zone{
  display:flex;
  align-items:center;
  gap:clamp(12px,1.4vw,24px);
  min-width:0;
}
.topbar-zone a,
.topbar-zone span{
  color:inherit;
  text-decoration:none;
  white-space:nowrap;
}
.topbar-zone a:hover,
.topbar-zone a:focus-visible{
  color:#ffc20e;
}
.topbar-zone--phones{
  justify-content:flex-start;
  flex-wrap:wrap;
}
.topbar-zone--email{
  justify-content:center;
  text-align:center;
}
.topbar-zone--hours{
  justify-content:flex-end;
  text-align:right;
}
@media (max-width:1100px){
  .topbar .topbar__inner{
    grid-template-columns:1fr 1fr;
    gap:10px 20px;
  }
  .topbar-zone--phones{grid-column:1;grid-row:1;}
  .topbar-zone--email{grid-column:2;grid-row:1;justify-content:flex-end;text-align:right;}
  .topbar-zone--hours{grid-column:1 / -1;grid-row:2;justify-content:center;text-align:center;}
}
@media (max-width:700px){
  .topbar .topbar__inner{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    padding-block:9px;
  }
  .topbar-zone,
  .topbar-zone--phones,
  .topbar-zone--email,
  .topbar-zone--hours{
    justify-content:center;
    text-align:center;
    width:100%;
  }
  .topbar-zone--phones{gap:10px;}
}

/* Top bar breathing room and zoom-safe responsive layout — v6.0.2.3 */
.topbar .topbar__inner{
  width:min(1320px,calc(100% - 72px));
  margin-inline:auto;
  padding-block:10px;
  grid-template-columns:minmax(0,1fr) minmax(220px,auto) minmax(0,1fr);
  gap:clamp(24px,3vw,56px);
}
.topbar-zone{min-width:0}
.topbar-zone--phones{justify-content:flex-start}
.topbar-zone--email{justify-content:center;text-align:center}
.topbar-zone--hours{justify-content:flex-end;text-align:right}
.topbar-zone a,.topbar-zone span{font-size:clamp(.75rem,.72rem + .12vw,.86rem)}
@media (max-width:1180px){
  .topbar .topbar__inner{
    width:min(100% - 48px,1080px);
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:9px 28px;
  }
  .topbar-zone--phones{grid-column:1;grid-row:1}
  .topbar-zone--email{grid-column:2;grid-row:1;justify-content:flex-end;text-align:right}
  .topbar-zone--hours{grid-column:1/-1;grid-row:2;justify-content:center;text-align:center}
}
@media (max-width:760px){
  .topbar .topbar__inner{
    width:min(100% - 32px,680px);
    display:flex;
    flex-direction:column;
    gap:7px;
    padding-block:10px;
  }
  .topbar-zone,.topbar-zone--phones,.topbar-zone--email,.topbar-zone--hours{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .topbar-zone--phones{row-gap:5px}
}

/* Zoom-safe mobile header actions — v6.0.2.4 */
.mobile-nav-actions{display:none}
@media (max-width:1100px){
  .header-inner{
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
  }
  .site-logo{min-width:0}
  .header-actions{
    margin:0;
    gap:0;
  }
  .header-actions .header-quote-btn,
  .header-actions .btn-call{
    display:none!important;
  }
  .menu-toggle{
    flex:0 0 auto;
    min-width:46px;
    min-height:46px;
    padding:10px 13px;
    white-space:nowrap;
  }
  .mobile-nav-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:16px 18px 20px;
    border-top:1px solid #ece7f1;
    background:#fff;
  }
  .mobile-nav-actions .btn{
    display:inline-flex!important;
    width:100%;
    min-width:0;
    min-height:44px;
    justify-content:center;
    padding:10px 12px;
    font-size:.78rem;
    white-space:normal;
    text-align:center;
  }
}
@media (max-width:520px){
  .mobile-nav-actions{grid-template-columns:1fr}
  .site-logo .logo-text strong{font-size:.72rem}
  .site-logo .logo-text span{font-size:.58rem}
}

/* Responsive Header System — v6.0.2.5
 * One coordinated strategy for announcement, contact strip and main header.
 * Desktop: single-line contact strip.
 * Tablet / browser zoom: phones first row, email + hours second row.
 * Mobile: clear stacked layout.
 */

/* Keep all header layers aligned to the same visual content width. */
.announcement-inner,
.topbar .topbar__inner,
.header-inner{
  width:min(1320px,calc(100% - 64px));
  margin-inline:auto;
}

/* Announcement: compact, centered and resistant to zoom wrapping. */
.announcement-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  min-height:52px;
  gap:14px 24px;
  padding:8px 42px 8px 0;
}
.announcement-message{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
  font-size:clamp(.78rem,.72rem + .18vw,.94rem);
  line-height:1.35;
}
.announcement-message strong{min-width:0}
.announcement-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  margin:0;
}
.announcement-link{
  max-width:100%;
  white-space:nowrap;
}

/* Desktop contact strip: true left / center / right columns. */
.topbar .topbar__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(190px,auto) minmax(0,1fr);
  align-items:center;
  gap:clamp(18px,2.25vw,40px);
  padding-block:10px;
}
.topbar-zone{
  min-width:0;
  line-height:1.35;
}
.topbar-zone--phones{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:6px clamp(13px,1.2vw,22px);
}
.topbar-zone--email{
  justify-content:center;
  text-align:center;
}
.topbar-zone--hours{
  justify-content:flex-end;
  text-align:right;
}
.topbar-zone a,
.topbar-zone span{
  font-size:clamp(.74rem,.7rem + .12vw,.84rem);
}

/* Main header: stable two-column mobile shell when navigation collapses. */
@media (max-width:1100px){
  .announcement-inner,
  .topbar .topbar__inner,
  .header-inner{
    width:min(100% - 40px,980px);
  }

  .announcement-inner{
    min-height:0;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px 14px;
    padding:8px 38px 8px 0;
  }
  .announcement-message{
    font-size:clamp(.72rem,.69rem + .14vw,.8rem);
  }
  .announcement-link{
    min-height:30px;
    padding:6px 10px;
    font-size:.69rem;
  }

  /* Exactly two rows: phones, then email + opening hours. */
  .topbar .topbar__inner{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:8px 24px;
    padding-block:10px;
  }
  .topbar-zone--phones{
    grid-column:1 / -1;
    grid-row:1;
    justify-content:center;
    text-align:center;
  }
  .topbar-zone--email{
    grid-column:1;
    grid-row:2;
    justify-content:flex-start;
    text-align:left;
  }
  .topbar-zone--hours{
    grid-column:2;
    grid-row:2;
    justify-content:flex-end;
    text-align:right;
  }

  .header-inner{
    grid-template-columns:minmax(0,1fr) auto;
    min-height:78px;
    gap:14px;
  }
  .site-logo{
    max-width:min(100%,360px);
    overflow:hidden;
  }
  .site-logo .logo-text{
    min-width:0;
  }
  .site-logo .logo-text strong,
  .site-logo .logo-text span{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

/* Large zoom / narrow tablet: simplify the announcement before it becomes crowded. */
@media (max-width:820px){
  .announcement-inner,
  .topbar .topbar__inner,
  .header-inner{
    width:min(100% - 28px,760px);
  }
  .announcement-inner{
    grid-template-columns:1fr;
    padding:8px 34px 8px 0;
  }
  .announcement-message{
    justify-content:center;
    text-align:center;
  }
  .announcement-actions{
    justify-content:center;
  }

  .topbar .topbar__inner{
    gap:7px 18px;
  }
  .topbar-zone--phones{
    row-gap:5px;
  }
}

/* Mobile: readable vertical contact strip, no forced compression. */
@media (max-width:620px){
  .announcement-inner,
  .topbar .topbar__inner,
  .header-inner{
    width:min(100% - 24px,560px);
  }
  .announcement-message{
    align-items:flex-start;
    font-size:.72rem;
  }
  .announcement-link{
    white-space:normal;
    text-align:center;
  }

  .topbar .topbar__inner{
    display:flex;
    flex-direction:column;
    gap:7px;
    padding-block:10px;
  }
  .topbar-zone,
  .topbar-zone--phones,
  .topbar-zone--email,
  .topbar-zone--hours{
    width:100%;
    justify-content:center;
    text-align:center;
  }
  .topbar-zone--phones{
    gap:5px 12px;
  }

  .header-inner{
    min-height:72px;
  }
  .site-logo .brand-symbol{
    width:40px;
    height:40px;
  }
}

@media (max-width:420px){
  .announcement-inner,
  .topbar .topbar__inner,
  .header-inner{
    width:min(100% - 18px,400px);
  }
  .site-logo .logo-text strong{font-size:.67rem}
  .site-logo .logo-text span{font-size:.54rem}
  .menu-toggle{
    min-width:42px;
    min-height:42px;
    padding:8px 11px;
  }
}

/* PBS 6.1.1 Announcement Manager variables. */
.announcement-bar{background:var(--announcement-bg,#411370);color:var(--announcement-text-color,#fff)}
.announcement-link{background:var(--announcement-button-bg,#ffc20e);color:var(--announcement-button-color,#171717)}
.announcement-link:hover,.announcement-link:focus-visible{color:var(--announcement-button-color,#171717)}
.announcement-bar.announcement-align-center .announcement-message{justify-content:center;text-align:center}


/* PBS 6.3.198 — apply saved PBS announcement alignment on the public bar. */
.announcement-bar.announcement-align-center .announcement-message{justify-content:center!important;text-align:center!important}
.announcement-bar.announcement-align-center .announcement-message strong{display:block;width:100%;text-align:center!important}

/* PBS 6.3.199 — Announcement alignment renderer fix.
 * Center means the announcement message is centered across the full public bar,
 * while the CTA/close controls keep their existing visual position. */
.announcement-bar.announcement-align-center .announcement-inner{
  position:relative;
  grid-template-columns:1fr!important;
}
.announcement-bar.announcement-align-center .announcement-message{
  grid-column:1/-1;
  grid-row:1;
  width:100%;
  max-width:none;
  margin:0;
  padding-inline:clamp(150px,18vw,260px);
  box-sizing:border-box;
  justify-content:center!important;
  text-align:center!important;
}
.announcement-bar.announcement-align-center .announcement-message strong{
  width:auto!important;
  max-width:100%;
  text-align:center!important;
}
.announcement-bar.announcement-align-center .announcement-actions{
  position:absolute;
  right:46px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
}
@media(max-width:820px){
  .announcement-bar.announcement-align-center .announcement-message{padding-inline:12px!important}
  .announcement-bar.announcement-align-center .announcement-actions{position:static;transform:none;justify-content:center;margin-top:6px}
  .announcement-bar.announcement-align-center .announcement-inner{grid-template-columns:1fr!important}
}
@media(max-width:420px){
  .announcement-bar.announcement-align-center .announcement-message{padding-inline:0!important}
}

/* PBS 6.3.201 — Announcement controls are fixed on the right.
 * The CTA and close button form one stable action group. Alignment changes
 * affect only the message; the close button always stays immediately to the
 * right of the CTA and never participates in message alignment. */
@media (min-width:821px){
  #patsanis-announcement .announcement-inner{
    position:relative!important;
    display:block!important;
    min-height:52px!important;
    padding:8px 0!important;
  }
  #patsanis-announcement .announcement-message{
    min-height:36px!important;
    box-sizing:border-box!important;
    padding-right:300px!important;
    justify-content:flex-start!important;
    text-align:left!important;
  }
  #patsanis-announcement.announcement-align-center .announcement-message{
    width:100%!important;
    padding-left:300px!important;
    padding-right:300px!important;
    justify-content:center!important;
    text-align:center!important;
  }
  #patsanis-announcement.announcement-align-center .announcement-message strong{
    width:auto!important;
    text-align:center!important;
  }
  #patsanis-announcement .announcement-actions{
    position:absolute!important;
    right:0!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    margin:0!important;
    z-index:5!important;
    white-space:nowrap!important;
  }
  #patsanis-announcement .announcement-close{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    margin:0!important;
    flex:0 0 auto!important;
  }
}

/* Tablet/mobile: retain the existing responsive stacking, but keep the X
 * inline immediately after the CTA whenever the action row is visible. */
@media (max-width:820px){
  #patsanis-announcement .announcement-inner{position:relative!important}
  #patsanis-announcement .announcement-message{position:static!important;transform:none!important;pointer-events:auto!important}
  #patsanis-announcement .announcement-actions{position:static!important;transform:none!important;display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px}
  #patsanis-announcement .announcement-close{position:static!important;inset:auto!important;transform:none!important;margin:0!important;flex:0 0 auto!important}
}
