/* ArtinTech Elements — component styles ported from the agency design system */

/* ==========================================================================
   THEME TOKENS
   Base = warm dark. Light theme applies when the visitor's OS prefers light
   (and they haven't pinned dark), or when they pick light from the toggle.
   The brand red #ec3350 is reserved for the logo and small marks; large
   fills use the warmer, lower-glare accent + soft panel tokens.
   ========================================================================== */
:root{
  color-scheme: dark;

  /* brand — logo / small marks only */
  --at-brand:#ec3350;

  /* warm dark surfaces */
  --at-bg:#121011;
  --at-surface:#1c1918;
  --at-surface-2:#171414;
  --at-line:rgba(255,255,255,.08);
  --at-line-2:rgba(255,255,255,.13);
  --at-line-3:rgba(255,255,255,.25);
  --at-line-4:rgba(255,255,255,.40);

  /* type */
  --at-heading:#f7f3f0;
  --at-text:#c3bcb8;
  --at-muted:#9b938f;
  --at-muted-2:#746c68;

  /* warm accent — brand hue shifted toward coral, desaturated for comfort */
  --at-accent:#ec3350;
  --at-accent-2:#ff5670;
  --at-accent-ink:#ff5670;   /* small accent TEXT — same hue, readable at 13–15px */
  --at-accent-glow:rgba(236,51,80,.32);
  --at-accent-soft:#291a1d;
  --at-accent-soft-line:rgba(236,51,80,.24);
  --at-on-accent-soft:rgba(247,243,240,.72);

  /* stays light in BOTH themes — text sitting on a dark photo scrim */
  --at-on-media:#f7f3f0;
  --at-star:#f5b400;            /* gold reads on dark; deepened for light below */

  --at-font-display:'Bricolage Grotesque','Anek Bangla',system-ui,sans-serif;
  --at-font-body:'Anek Bangla',system-ui,sans-serif;
  --at-radius-md:16px;
  --at-radius-lg:28px;
  --at-ease:cubic-bezier(.65,0,.35,1);

  /* legacy aliases kept so older rules keep resolving */
  --at-lime:var(--at-accent);
  --at-lime-dark:var(--at-accent-2);
  --at-black:var(--at-bg);
  --at-ink:var(--at-heading);
  --at-dark-2:var(--at-surface-2);
  --at-gray-500:var(--at-muted-2);
  --at-gray-300:var(--at-text);
  --at-gray-100:var(--at-surface-2);
  --at-white:var(--at-heading);
  --at-muted-dark:var(--at-muted);
  --at-border:var(--at-line);
  --at-border-dark:var(--at-line);
}

/* Light palette — warm paper, terracotta accent (AA against its own text) */
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    color-scheme: light;
    --at-bg:#faf7f4;
    --at-surface:#ffffff;
    --at-surface-2:#f4ece5;
    --at-line:rgba(28,20,18,.10);
    --at-line-2:rgba(28,20,18,.16);
    --at-line-3:rgba(28,20,18,.24);
    --at-line-4:rgba(28,20,18,.34);
    --at-heading:#1d1614;
    --at-text:#554d48;
    --at-muted:#7b726c;
    --at-muted-2:#9d948e;
    --at-accent:#ec3350;
    --at-accent-2:#c8203c;
    --at-accent-ink:#c8203c;
    --at-accent-glow:rgba(236,51,80,.22);
    --at-accent-soft:#fdeaee;
    --at-accent-soft-line:rgba(236,51,80,.20);
    --at-on-accent-soft:rgba(29,22,20,.72);
    --at-star:#b07500;
  }
}
:root[data-theme="light"]{
  color-scheme: light;
  --at-bg:#faf7f4;
  --at-surface:#ffffff;
  --at-surface-2:#f4ece5;
  --at-line:rgba(28,20,18,.10);
  --at-line-2:rgba(28,20,18,.16);
  --at-line-3:rgba(28,20,18,.24);
  --at-line-4:rgba(28,20,18,.34);
  --at-heading:#1d1614;
  --at-text:#554d48;
  --at-muted:#7b726c;
  --at-muted-2:#9d948e;
  --at-accent:#ec3350;
  --at-accent-2:#c8203c;
  --at-accent-ink:#c8203c;
  --at-accent-glow:rgba(236,51,80,.22);
  --at-accent-soft:#fdeaee;
  --at-accent-soft-line:rgba(236,51,80,.20);
  --at-on-accent-soft:rgba(29,22,20,.72);
  --at-star:#b07500;
}

html{ background:var(--at-bg); }
body{ background:var(--at-bg); color:var(--at-text); }

/* Theme change shouldn't strobe, but never fight reduced-motion */
@media (prefers-reduced-motion: no-preference){
  body, .e-con, .elementor-element, .at-widget, .at-widget *{
    transition: background-color .25s ease, border-color .25s ease, color .25s ease;
  }
}

.at-widget{ font-family:var(--at-font-body); }
.at-widget h2,.at-widget h3,.at-widget h4{ font-family:var(--at-font-display); line-height:1.05; letter-spacing:-.01em; margin:0; }

/* ============ MARQUEE ============ */
.at-marquee-wrap{ overflow:hidden; border-top:1px solid var(--at-border); border-bottom:1px solid var(--at-border); padding-block:34px; }
.at-marquee{ display:flex; width:max-content; will-change:transform; animation:at-marquee-scroll linear infinite; }
.at-marquee-wrap:hover .at-marquee{ animation-play-state:paused; }
.at-marquee span{
  display:flex; align-items:center; font-family:var(--at-font-display); font-weight:700;
  font-size:22px; text-transform:uppercase; color:var(--at-gray-500); white-space:nowrap;
}
@keyframes at-marquee-scroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
@media (prefers-reduced-motion:reduce){ .at-marquee{ animation:none; } }

/* ============ SERVICE ROWS ============ */
.at-service-row{
  display:grid; grid-template-columns:70px 1fr 1.3fr 88px; gap:32px; align-items:center;
  padding:38px 0; border-bottom:1px solid var(--at-border);
  transition:background .35s var(--at-ease), padding-inline .35s var(--at-ease);
  text-decoration:none; color:inherit;
}
.at-service-row:first-of-type{ border-top:1px solid var(--at-border); }
.at-service-row:hover{ background:var(--at-gray-100); padding-inline:20px; }
.at-service-row .at-num{ font-family:var(--at-font-display); font-size:20px; font-weight:700; color:var(--at-muted); }
.at-service-row h3{ font-size:clamp(22px,2.4vw,30px); text-transform:uppercase; color:var(--at-ink); }
.at-service-row p{ color:var(--at-muted); font-size:15px; margin:0; }
.at-service-row ul{ display:flex; flex-direction:column; gap:6px; margin:12px 0 0; padding:0; list-style:none; }
.at-service-row ul li{ font-size:14px; color:var(--at-muted); position:relative; padding-left:18px; }
.at-service-row ul li::before{ content:'+'; position:absolute; left:0; color:var(--at-accent); font-weight:700; }
.at-service-row .at-icon-circle{ margin-left:auto; }
.at-icon-circle{
  width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid var(--at-border); color:var(--at-heading); flex-shrink:0;
}
.at-icon-circle svg{ width:26px; height:26px; }
.at-service-row:hover .at-icon-circle{ background:var(--at-accent); border-color:var(--at-accent); color:var(--at-bg); }
.at-rows--dark .at-service-row{ border-color:var(--at-border-dark); }
.at-rows--dark .at-service-row h3{ color:var(--at-white); }
.at-rows--dark .at-service-row p,.at-rows--dark .at-service-row ul li{ color:var(--at-muted-dark); }
.at-rows--dark .at-service-row:hover{ background:var(--at-dark-2); }
.at-rows--dark .at-icon-circle{ border-color:var(--at-border-dark); color:var(--at-white); }
.at-rows--dark .at-service-row ul li::before{ color:var(--at-lime); }
@media (max-width:768px){
  .at-service-row{ grid-template-columns:1fr; gap:14px; }
  .at-service-row .at-icon-circle{ margin-left:0; order:-1; }
}

/* ============ TESTIMONIAL STACK ============ */
.at-tstack{ position:relative; }
.at-tstack-inner{ position:relative; min-height:340px; }
.at-tcard{
  position:absolute; inset:0; background:var(--at-surface); border:1px solid var(--at-border);
  border-radius:var(--at-radius-lg); padding:38px; opacity:0; visibility:hidden;
  transform:translateY(16px); transition:opacity .5s var(--at-ease), transform .5s var(--at-ease);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.25);
}
.at-tcard.is-active{ opacity:1; visibility:visible; transform:translateY(0); }
.at-tcard .at-quote-icon{ color:var(--at-lime); font-size:40px; font-family:Georgia,serif; line-height:0; margin-bottom:18px; display:block; }
.at-tcard .at-rating{ display:flex; align-items:center; gap:8px; font-family:var(--at-font-display); font-size:22px; font-weight:800; margin-bottom:6px; color:var(--at-ink); }
.at-tcard .at-rating svg{ width:18px; height:18px; color:var(--at-star); }
.at-tcard .at-rating small{ color:var(--at-muted); font-family:var(--at-font-body); font-weight:400; font-size:13px; }
.at-tcard blockquote{ font-size:19px; font-weight:600; margin:20px 0 26px; line-height:1.5; color:var(--at-ink); border:0; padding:0; }
.at-tperson{ display:flex; align-items:center; gap:14px; }
.at-tperson img{ width:48px; height:48px; border-radius:50%; object-fit:cover; }
.at-tperson strong{ display:block; font-size:15px; text-transform:uppercase; color:var(--at-ink); font-family:var(--at-font-display); }
.at-tperson span{ font-size:13px; color:var(--at-muted); }
.at-tcontrols{ display:flex; align-items:center; gap:16px; margin-top:26px; }
.at-tarrow{
  width:46px; height:46px; border-radius:50%; border:1px solid var(--at-border); background:transparent;
  display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .3s, color .3s;
  color:var(--at-ink);
}
.at-tarrow:hover{ background:var(--at-accent); color:var(--at-bg); border-color:var(--at-accent); }
.at-tarrow svg{ width:16px; height:16px; }
.at-tstack--dark .at-tcard{ background:var(--at-dark-2); border-color:var(--at-border-dark); box-shadow:none; }
.at-tstack--dark .at-tcard blockquote,.at-tstack--dark .at-tperson strong,.at-tstack--dark .at-rating{ color:var(--at-white); }
.at-tstack--dark .at-tperson span,.at-tstack--dark .at-rating small{ color:var(--at-muted-dark); }
.at-tstack--dark .at-tarrow{ border-color:var(--at-border-dark); color:var(--at-white); }
.at-tstack--dark .at-tarrow:hover{ background:var(--at-lime); color:var(--at-black); border-color:var(--at-lime); }
@media (max-width:992px){
  .at-tstack-inner{ min-height:0; }
  .at-tcard{ position:static; opacity:1; visibility:visible; transform:none; display:none; }
  .at-tcard.is-active{ display:block; }
}

/* ============ STAT BADGE ============ */
.at-stat-badge{
  background:var(--at-black); color:var(--at-white); border-radius:var(--at-radius-md);
  padding:22px; box-shadow:0 24px 48px -16px rgba(0,0,0,.5);
}
.at-stat-badge .at-quote-mark{ color:var(--at-lime); font-size:30px; font-family:Georgia,serif; line-height:1; display:block; }
.at-stat-badge p{ font-size:13px; margin:10px 0 14px; color:var(--at-gray-300); }
.at-stat-badge .at-num{ font-family:var(--at-font-display); font-size:36px; font-weight:800; color:var(--at-lime); line-height:1; }
.at-stat-badge small{ display:block; text-transform:uppercase; font-size:11px; letter-spacing:.08em; font-weight:700; margin-top:4px; color:var(--at-white); }
.at-stat-inline{ text-align:inherit; }
.at-stat-inline .at-num{ font-family:var(--at-font-display); font-size:44px; font-weight:800; color:inherit; line-height:1; }
.at-stat-inline small{ display:block; text-transform:uppercase; font-size:12px; letter-spacing:.06em; color:var(--at-muted); font-weight:700; margin-top:4px; }

/* ============ PORTFOLIO FILTER GRID ============ */
.at-filter-bar{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:44px; }
.at-filter-btn{
  padding:12px 22px; border-radius:999px; border:1px solid var(--at-border); background:transparent;
  font-size:13px; font-weight:700; text-transform:uppercase; cursor:pointer; color:var(--at-ink);
  font-family:var(--at-font-body); transition:background .3s, color .3s, border-color .3s;
}
.at-filter-btn:hover{ border-color:var(--at-black); }
.at-filter-btn.is-active{ background:var(--at-black); color:var(--at-white); border-color:var(--at-black); }
.at-pf-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.at-pf-card{ position:relative; border-radius:var(--at-radius-lg); overflow:hidden; aspect-ratio:4/4.6; display:block; text-decoration:none; }
.at-pf-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--at-ease); }
.at-pf-card:hover img{ transform:scale(1.08); }
.at-pf-card .at-pf-overlay{
  position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.82) 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:28px; color:var(--at-white);
}
.at-pf-card .at-pf-tag{
  align-self:flex-start; background:var(--at-lime); color:var(--at-black); font-size:11px; font-weight:800;
  text-transform:uppercase; padding:5px 14px; border-radius:999px; margin-bottom:14px; font-family:var(--at-font-body);
}
.at-pf-card h3{ font-size:22px; text-transform:uppercase; color:var(--at-white); }
.at-pf-card .at-pf-badge{
  position:absolute; top:24px; right:24px; width:80px; height:80px; border-radius:50%;
  background:var(--at-lime); color:var(--at-black); display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; text-align:center; text-transform:uppercase; line-height:1.2;
  opacity:0; transform:scale(.6); transition:all .4s var(--at-ease); font-family:var(--at-font-body);
}
.at-pf-card:hover .at-pf-badge{ opacity:1; transform:scale(1); }
.at-filter--dark .at-filter-btn{ color:var(--at-white); border-color:var(--at-border-dark); }
.at-filter--dark .at-filter-btn.is-active{ background:var(--at-lime); color:var(--at-black); border-color:var(--at-lime); }
@media (max-width:992px){ .at-pf-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:576px){ .at-pf-grid{ grid-template-columns:1fr; } }

/* ============ PROCESS LIST ============ */
.at-process-list{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.at-process-item{ position:relative; padding-top:34px; border-top:2px solid var(--at-border); }
.at-process-item .at-step{
  position:absolute; top:-22px; left:0; font-family:var(--at-font-display); font-size:14px; font-weight:800;
  background:var(--at-black); color:var(--at-lime); width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.at-process-item h4{ text-transform:uppercase; font-size:18px; margin:10px 0; color:var(--at-ink); }
.at-process-item p{ font-size:14.5px; color:var(--at-muted); margin:0; }
.at-process--dark .at-process-item{ border-color:var(--at-border-dark); }
.at-process--dark .at-process-item h4{ color:var(--at-white); }
.at-process--dark .at-process-item p{ color:var(--at-muted-dark); }
@media (max-width:768px){ .at-process-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .at-process-list{ grid-template-columns:1fr; } }

/* ============ OVERLAY MENU ============ */
.at-hamburger{
  width:52px; height:52px; border-radius:50%; background:var(--at-black); color:var(--at-white);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  flex-shrink:0; border:none; cursor:pointer; padding:0;
}
.at-hamburger span{ width:20px; height:2px; background:currentColor; display:block; transition:transform .3s var(--at-ease), opacity .3s; }
.at-hamburger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.at-hamburger.is-open span:nth-child(2){ opacity:0; }
.at-hamburger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.at-menu-overlay{
  position:fixed; inset:0; background:var(--at-black); color:var(--at-white); z-index:9999;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:100px clamp(20px,4vw,64px) 50px;
  clip-path:circle(0% at calc(100% - var(--at-origin-x,46px)) var(--at-origin-y,46px));
  transition:clip-path .6s var(--at-ease); pointer-events:none;
}
.at-menu-overlay.is-open{ clip-path:circle(150% at calc(100% - var(--at-origin-x,46px)) var(--at-origin-y,46px)); pointer-events:auto; }
.at-menu-close{
  position:absolute;
  top:var(--at-close-top, 47px);
  right:var(--at-close-right, clamp(20px,4vw,64px));
  width:var(--at-close-size, 52px); height:var(--at-close-size, 52px);
  border-radius:50%; padding:0; border:none;
  background:var(--at-accent); color:var(--at-bg);
  display:flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
  transition:transform .3s var(--at-ease), background .3s var(--at-ease);
}
.at-menu-close:hover{ transform:rotate(90deg); }
.at-menu-close:focus-visible{ outline:2px solid var(--at-heading); outline-offset:3px; }
/* 30px cross inside the 52px circle — 11px of breathing room each side */
.at-menu-close svg{ width:30px; height:30px; stroke-width:2; }
/* flex-start, not the default stretch — otherwise each row fills the overlay's
   full width and the hover target extends far past the word. */
.at-menu-links{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; list-style:none; margin:0; padding:0; }
.at-menu-links a{
  font-family:var(--at-font-display); font-size:clamp(34px,7vw,74px); font-weight:800; text-transform:uppercase;
  padding:10px 0; opacity:0; transform:translateY(30px); color:var(--at-heading); text-decoration:none; display:block;
  transition:opacity .5s var(--at-ease), transform .5s var(--at-ease), color .3s;
}
.at-menu-overlay.is-open .at-menu-links a{ opacity:1; transform:translateY(0); }
.at-menu-links a:hover{ color:var(--at-lime); }
.at-menu-links a .at-menu-num{ font-size:16px; vertical-align:top; margin-right:14px; color:var(--at-lime); font-family:var(--at-font-body); }
.at-menu-foot{ display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; border-top:1px solid var(--at-line-2); padding-top:26px; }
.at-menu-foot .at-hello{ color:var(--at-muted); font-size:14px; margin:0 0 6px; }
.at-menu-foot .at-email{ font-size:18px; font-weight:700; color:var(--at-heading); text-decoration:none; }
.at-menu-socials{ display:flex; gap:14px; }
.at-menu-socials a{ width:40px; height:40px; border:1px solid var(--at-line-3); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--at-heading); }
.at-menu-socials a:hover{ background:var(--at-lime); color:var(--at-black); border-color:var(--at-lime); }
.at-menu-socials svg{ width:16px; height:16px; }

/* ============ BACK TO TOP + PROGRESS ============ */
.at-progress-bar{ position:fixed; top:0; left:0; height:3px; background:var(--at-lime); z-index:10000; width:0%; }
.at-back-to-top{
  position:fixed; right:28px; bottom:28px; width:52px; height:52px; border-radius:50%;
  background:var(--at-black); color:var(--at-lime); display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px); transition:all .35s var(--at-ease);
  z-index:500; border:none; cursor:pointer;
}
.at-back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.at-back-to-top svg{ width:18px; height:18px; }

/* ============ THEME RESET OVERRIDES ============
   Hello Elementor applies button{border-radius:3px} etc. after this sheet,
   so these higher-specificity rules restore the component shapes. */
.at-widget .at-hamburger,
.at-menu-root .at-hamburger{ border-radius:50%; padding:0; border:none; }
.at-widget .at-menu-close{ border-radius:50%; padding:0; border:none; }
.at-widget .at-tarrow{ border-radius:50%; padding:0; }
.at-widget .at-filter-btn{ border-radius:999px; }
.at-widget .at-back-to-top,
.at-scroll-ui .at-back-to-top{ border-radius:50%; padding:0; border:none; }
.at-widget .at-hamburger span{ width:20px; height:2px; border-radius:0; }
.at-widget button:focus-visible{ outline:2px solid var(--at-lime); outline-offset:2px; }

/* ============ REVEAL ============ */
/* Visible by default — JS opts elements into the animation so content can
   never be left stranded at opacity:0 if the observer never fires. */
.at-reveal{ opacity:1; transform:none; }
.at-reveal[data-at-anim="1"]{ opacity:0; transform:translateY(32px); transition:opacity .8s var(--at-ease), transform .8s var(--at-ease); }
.at-reveal[data-at-anim="1"].is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce){ .at-reveal[data-at-anim="1"]{ opacity:1; transform:none; transition:none; } }


/* ==========================================================
   Journal — post list, sidebar and single post
   ========================================================== */
.at-pl{ display:flex; flex-direction:column; gap:26px; }
.at-pl--grid{ display:grid; grid-template-columns:repeat(3,1fr); }

.at-pl-card{
  display:flex; gap:24px; align-items:stretch;
  background:var(--at-surface); border:1px solid var(--at-line);
  border-radius:24px; padding:18px; overflow:hidden;
  transition:border-color .35s var(--at-ease,cubic-bezier(.65,0,.35,1)), transform .35s var(--at-ease,cubic-bezier(.65,0,.35,1));
}
.at-pl-card:hover{ border-color:var(--at-accent-glow); transform:translateY(-3px); }
.at-pl--grid .at-pl-card{ flex-direction:column; gap:18px; }

/* Featured images are 1200x630 (40:21); keep that ratio so nothing gets cropped. */
.at-pl-thumb{ display:block; flex:0 0 320px; aspect-ratio:40/21; border-radius:16px; overflow:hidden; align-self:flex-start; }
.at-pl--grid .at-pl-thumb{ flex:none; width:100%; }
.at-pl-thumb img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--at-ease,cubic-bezier(.65,0,.35,1)); }
.at-pl-card:hover .at-pl-thumb img{ transform:scale(1.05); }

.at-pl-body{ display:flex; flex-direction:column; gap:12px; justify-content:center; padding:6px 10px 6px 0; min-width:0; }
.at-pl--grid .at-pl-body{ padding:0 8px 10px; }

.at-pl-meta{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; font-family:var(--at-font-body); font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--at-muted); }
.at-pl-meta .at-pl-cat{ color:var(--at-accent-ink); border:1px solid var(--at-accent); border-radius:999px; padding:4px 12px; }

.at-pl-card h3{
  font-family:var(--at-font-display); font-weight:800; font-size:23px; line-height:1.2;
  letter-spacing:-.01em; color:var(--at-heading); margin:0; transition:color .3s ease;
}
.at-pl-card p{ font-family:var(--at-font-body); font-size:15px; line-height:1.65; color:var(--at-muted); margin:0; }
.at-pl-card a{ text-decoration:none; }

.at-pl-more{ display:inline-flex; align-items:center; gap:8px; font-family:var(--at-font-body); font-weight:700; font-size:12.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--at-accent-ink); }
.at-pl-more svg{ width:14px; height:14px; transition:transform .3s ease; }
.at-pl-more:hover svg{ transform:translate(3px,-3px); }

.at-pl-pagi{ display:flex; flex-wrap:wrap; gap:10px; margin-top:34px; }
.at-pl-pagi a, .at-pl-pagi span{
  display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 14px;
  border:1px solid var(--at-line-2); border-radius:999px;
  font-family:var(--at-font-body); font-weight:700; font-size:14px; color:var(--at-text); text-decoration:none;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.at-pl-pagi a:hover{ background:var(--at-heading); border-color:var(--at-heading); color:var(--at-bg); }
.at-pl-pagi .is-active{ background:var(--at-accent); border-color:var(--at-accent); color:var(--at-bg); }
.at-pl-empty{ color:var(--at-muted); font-family:var(--at-font-body); }

/* ---- sidebar ---- */
.at-sb{ display:flex; flex-direction:column; gap:24px; }
.at-sb-panel{ background:var(--at-surface); border:1px solid var(--at-line); border-radius:26px; padding:26px; }
.at-sb-panel h4{
  font-family:var(--at-font-display); font-weight:800; font-size:16px; letter-spacing:.02em;
  text-transform:uppercase; color:var(--at-heading); margin:0 0 18px;
}
.at-sb-panel a{ text-decoration:none; color:var(--at-text); transition:color .25s ease; }

.at-sb-search{ display:flex; gap:10px; }
.at-sb-search input{
  flex:1; min-width:0; background:var(--at-bg); border:1px solid var(--at-line-2); border-radius:999px;
  padding:13px 18px; color:var(--at-heading); font-family:var(--at-font-body); font-size:14px;
}
.at-sb-search input::placeholder{ color:var(--at-muted-2); }
.at-sb-search input:focus{ outline:none; border-color:var(--at-accent); }
.at-sb-search button{
  flex:0 0 46px; width:46px; height:46px; border:none; border-radius:50%; padding:0;
  background:var(--at-accent); color:var(--at-bg); display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
}
.at-sb-search button svg{ width:18px; height:18px; }

.at-sb-cats{ list-style:none; margin:0; padding:0; }
.at-sb-cats li + li{ border-top:1px solid var(--at-line); }
.at-sb-cats a{ display:flex; justify-content:space-between; gap:12px; padding:12px 0; font-family:var(--at-font-body); font-size:14.5px; font-weight:500; }
.at-sb-cats span{ color:var(--at-accent-ink); font-weight:700; font-size:13px; }

.at-sb-recent{ display:flex; gap:14px; align-items:center; padding:12px 0; }
.at-sb-recent + .at-sb-recent{ border-top:1px solid var(--at-line); }
.at-sb-recent img{ width:62px; height:62px; flex-shrink:0; object-fit:cover; border-radius:12px; }
.at-sb-recent span{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.at-sb-recent strong{ font-family:var(--at-font-body); font-weight:700; font-size:14px; line-height:1.35; color:var(--at-heading); }
.at-sb-recent:hover strong{ color:var(--at-accent-ink); }
.at-sb-recent small{ font-size:12px; color:var(--at-muted); letter-spacing:.04em; text-transform:uppercase; font-weight:600; }

.at-sb-tags{ display:flex; flex-wrap:wrap; gap:9px; }
.at-sb-tags a{
  border:1px solid var(--at-line-2); border-radius:999px; padding:8px 15px;
  font-family:var(--at-font-body); font-size:12.5px; font-weight:600; letter-spacing:.04em;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}

@media (max-width:900px){
  .at-pl--grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:720px){
  .at-pl-card{ flex-direction:column; }
  .at-pl-thumb{ flex:none; width:100%; }
  .at-pl--grid{ grid-template-columns:1fr; }
}

/* ==========================================================
   Single post / archive / search — dark theme for Hello Elementor
   ========================================================== */
body.single-post, body.archive, body.search, body.blog, body.error404{ background:var(--at-bg); color:var(--at-text); }

body.single-post .site-main,
body.archive .site-main,
body.search .site-main,
body.blog .site-main{
  max-width:820px; margin:0 auto; padding:50px 24px 90px; background:var(--at-bg);
}
body.single-post .site-main{ max-width:840px; }

.at-post-dark h1, .at-post-dark h2, .at-post-dark h3, .at-post-dark h4, .at-post-dark h5, .at-post-dark h6,
body.single-post .site-main h1, body.single-post .site-main h2, body.single-post .site-main h3,
body.single-post .site-main h4, body.single-post .site-main h5, body.single-post .site-main h6,
body.archive .site-main h1, body.archive .site-main h2, body.search .site-main h1, body.search .site-main h2{
  font-family:var(--at-font-display); font-weight:800; color:var(--at-heading); letter-spacing:-.015em; line-height:1.15;
}
body.single-post .site-main .entry-title, body.archive .site-main .page-title, body.search .site-main .page-title{
  font-size:clamp(32px,5vw,52px); text-transform:uppercase; margin:0 0 18px;
}
body.single-post .site-main h2{ font-size:30px; margin:40px 0 14px; }
body.single-post .site-main h3{ font-size:23px; margin:32px 0 12px; }

body.single-post .site-main p,
body.single-post .site-main li,
body.archive .site-main p, body.search .site-main p{
  font-family:var(--at-font-body); font-size:17px; line-height:1.75; color:var(--at-text);
}
body.single-post .site-main p{ margin:0 0 20px; }
body.single-post .site-main ul, body.single-post .site-main ol{ margin:0 0 22px; padding-left:22px; }
body.single-post .site-main li{ margin-bottom:9px; }
body.single-post .site-main li::marker{ color:var(--at-accent); }

body.single-post .site-main a, body.archive .site-main a, body.search .site-main a{ color:var(--at-accent-ink); text-decoration:none; }
body.single-post .site-main a:hover{ text-decoration:underline; }

body.single-post .site-main img,
body.single-post .site-main .post-thumbnail img{ border-radius:22px; }

body.single-post .site-main blockquote{
  border-left:3px solid var(--at-accent); padding:6px 0 6px 22px; margin:28px 0;
  font-family:var(--at-font-display); font-size:20px; font-weight:500; color:var(--at-heading); font-style:normal;
}
body.single-post .site-main code, body.single-post .site-main kbd, body.single-post .site-main tt{
  background:var(--at-surface-2); border:1px solid var(--at-line-2); border-radius:6px; padding:2px 7px;
  font-size:14px; color:var(--at-accent-ink);
}
body.single-post .site-main pre{
  background:var(--at-surface-2); border:1px solid var(--at-line); border-radius:16px;
  padding:22px; overflow-x:auto; margin:0 0 24px;
}
body.single-post .site-main pre code{ background:none; border:none; padding:0; color:var(--at-text); }
body.single-post .site-main table{ width:100%; border-collapse:collapse; margin:0 0 24px; display:block; overflow-x:auto; }
body.single-post .site-main th, body.single-post .site-main td{
  border:1px solid var(--at-line-2); padding:12px 14px; text-align:left; font-size:15px;
}
body.single-post .site-main th{ background:var(--at-surface-2); color:var(--at-heading); font-weight:700; }
body.single-post .site-main hr{ border:none; border-top:1px solid var(--at-line-2); margin:38px 0; }

body.single-post .post-info,
body.single-post .entry-meta,
body.archive .post-info{
  font-family:var(--at-font-body); font-size:12.5px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--at-muted); margin-bottom:26px;
}
body.single-post .post-info a, body.archive .post-info a{ color:var(--at-accent-ink); }
body.single-post .post-tags a{
  display:inline-block; border:1px solid var(--at-line-2); border-radius:999px;
  padding:7px 14px; margin:4px 6px 0 0; font-size:12.5px; color:var(--at-text); text-decoration:none;
}
body.single-post .post-tags a:hover{ background:var(--at-accent); border-color:var(--at-accent); color:var(--at-bg); text-decoration:none; }

body.archive .site-main article, body.search .site-main article, body.blog .site-main article{
  background:var(--at-surface); border:1px solid var(--at-line); border-radius:24px;
  padding:28px; margin-bottom:24px;
}
body.archive .site-main article .entry-title, body.search .site-main article .entry-title{ font-size:26px; }

body.single-post .post-navigation a, body.archive .pagination a, body.search .pagination a,
body.single-post .nav-links a{
  color:var(--at-accent); font-family:var(--at-font-body); font-weight:700; text-transform:uppercase;
  font-size:13px; letter-spacing:.07em;
}

/* at-button-default-reset — outline buttons must not inherit the theme fill */
.elementor-widget-button .elementor-button{ background-color: transparent; }

/* Text on a dark photo scrim stays light regardless of theme */
.at-pf-overlay h3, .at-pf-card h3{ color:var(--at-on-media); }
.at-pf-overlay .at-pf-tag{ color:var(--at-bg); }

/* ==========================================================
   Dark / light toggle
   ========================================================== */
.at-theme-toggle-wrap{ display:inline-flex; }

.at-theme-toggle{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--at-line-2); background:var(--at-surface); color:var(--at-heading);
  cursor:pointer; padding:0; border-radius:999px;
  transition:background .3s var(--at-ease), border-color .3s var(--at-ease), color .3s var(--at-ease);
}
.at-theme-toggle:hover{ border-color:var(--at-accent); color:var(--at-accent); }
.at-theme-toggle:focus-visible{ outline:2px solid var(--at-accent); outline-offset:3px; }

.at-theme-toggle--icon{ width:44px; height:44px; }
.at-theme-toggle .at-tt-track{ position:relative; display:block; width:20px; height:20px; }
.at-theme-toggle .at-tt-track svg{
  position:absolute; inset:0; width:20px; height:20px;
  transition:opacity .3s var(--at-ease), transform .4s var(--at-ease);
}
/* dark theme showing -> offer the sun; light theme showing -> offer the moon */
.at-theme-toggle .at-tt-sun{  opacity:1; transform:rotate(0) scale(1); }
.at-theme-toggle .at-tt-moon{ opacity:0; transform:rotate(-70deg) scale(.6); }
.at-theme-toggle.is-light .at-tt-sun{  opacity:0; transform:rotate(70deg) scale(.6); }
.at-theme-toggle.is-light .at-tt-moon{ opacity:1; transform:rotate(0) scale(1); }

/* pill variant */
.at-theme-toggle--pill{ width:74px; height:38px; justify-content:flex-start; padding:4px; }
.at-theme-toggle--pill .at-tt-track{
  width:30px; height:30px; border-radius:50%; background:var(--at-accent); color:var(--at-bg);
  display:flex; align-items:center; justify-content:center;
  transition:transform .35s var(--at-ease), background .3s var(--at-ease);
}
.at-theme-toggle--pill.is-light .at-tt-track{ transform:translateX(36px); }
.at-theme-toggle--pill .at-tt-track svg{ position:absolute; inset:5px; width:20px; height:20px; }

@media (prefers-reduced-motion: reduce){
  .at-theme-toggle, .at-theme-toggle .at-tt-track, .at-theme-toggle .at-tt-track svg{ transition:none; }
}

/* at-menu-links-leading — the display face inherits body leading (25.6px) while the
   control sets 74px, so glyphs overflowed their box and rows overlapped. */
.at-menu-links a{ line-height:1.06; }
@media (max-height:820px){
  .at-menu-links a{ font-size:clamp(28px,5.6vh,56px) !important; padding:6px 0; }
}
@media (max-width:600px){
  .at-menu-links a{ font-size:clamp(26px,9vw,44px) !important; }
}

/* ==========================================================
   Contact Form 7 — themed for both palettes
   ========================================================== */
.wpcf7 .wpcf7-form-control-wrap{ display:block; }

.wpcf7 label{
  display:block; font-family:var(--at-font-body); font-size:12.5px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase; color:var(--at-muted); margin-bottom:8px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea{
  width:100%; box-sizing:border-box;
  background:var(--at-surface);
  border:1px solid var(--at-line-2);
  border-radius:14px;
  padding:15px 18px;
  color:var(--at-heading);
  font-family:var(--at-font-body); font-size:15px; line-height:1.5;
  transition:border-color .25s ease, background .25s ease, box-shadow .25s ease;
}
.wpcf7 textarea{ min-height:160px; resize:vertical; border-radius:18px; }

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder{ color:var(--at-muted-2); opacity:1; }

.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus{
  outline:none;
  border-color:var(--at-accent);
  box-shadow:0 0 0 3px var(--at-accent-glow);
}

.wpcf7 input[type="submit"]{
  -webkit-appearance:none; appearance:none;
  background:var(--at-accent); color:var(--at-bg);
  border:1.5px solid var(--at-accent); border-radius:999px;
  padding:16px 34px; cursor:pointer;
  font-family:var(--at-font-body); font-size:14px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase;
  transition:background .3s var(--at-ease), border-color .3s var(--at-ease), color .3s var(--at-ease), transform .2s ease;
}
.wpcf7 input[type="submit"]:hover{
  background:var(--at-heading); border-color:var(--at-heading); color:var(--at-bg);
  transform:translateY(-2px);
}
.wpcf7 input[type="submit"]:focus-visible{ outline:2px solid var(--at-accent); outline-offset:3px; }

/* validation + response messaging */
.wpcf7 .wpcf7-not-valid-tip{
  color:var(--at-accent-ink); font-family:var(--at-font-body); font-size:13px; margin-top:7px;
}
.wpcf7 .wpcf7-not-valid{ border-color:var(--at-accent); }
.wpcf7 form .wpcf7-response-output{
  border:1px solid var(--at-line-2); border-radius:14px;
  background:var(--at-surface); color:var(--at-text);
  font-family:var(--at-font-body); font-size:14.5px;
  margin:22px 0 0; padding:16px 18px;
}
.wpcf7 form.sent .wpcf7-response-output{ border-color:var(--at-accent); }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{ border-color:var(--at-accent); color:var(--at-heading); }

.wpcf7 .wpcf7-spinner{ background-color:var(--at-accent); }

/* WordPress search form (404 / archives) picks up the same treatment */
.search-form input[type="search"]{
  background:var(--at-surface); border:1px solid var(--at-line-2); border-radius:999px;
  padding:13px 18px; color:var(--at-heading); font-family:var(--at-font-body);
}
.search-form input[type="search"]:focus{ outline:none; border-color:var(--at-accent); }

/* ==========================================================
   at-header-nav-nowrap — the HFE menu <ul> wraps by default, so a tight
   row pushed the last item onto a second line. Keep it on one line and
   buy the space back from item padding instead.
   ========================================================== */
.elementor-widget-navigation-menu .hfe-nav-menu{ flex-wrap:nowrap; }
.elementor-widget-navigation-menu .hfe-nav-menu > li{ flex:0 0 auto; }
.elementor-widget-navigation-menu .hfe-nav-menu > li > a.hfe-menu-item{ white-space:nowrap; }

/* progressively tighten the menu rather than let it break */
@media (max-width:1340px){
  .elementor-widget-navigation-menu .hfe-nav-menu > li > a.hfe-menu-item{ padding-left:13px; padding-right:13px; }
}
@media (max-width:1180px){
  .elementor-widget-navigation-menu .hfe-nav-menu > li > a.hfe-menu-item{ padding-left:9px; padding-right:9px; font-size:13.5px; }
}
@media (max-width:1080px){
  .elementor-widget-navigation-menu .hfe-nav-menu > li > a.hfe-menu-item{ padding-left:7px; padding-right:7px; font-size:13px; letter-spacing:0; }
}

/* the back-to-top widget renders 0x0 in flow — don't let it claim a gap slot */
.elementor-widget-artintech_back_to_top{ position:absolute; width:0; height:0; }

/* ==========================================================
   Sticky header
   body uses overflow-x:clip (not hidden), so position:sticky
   is safe here. Sits below the fullscreen overlay menu (9999).
   ========================================================== */
.ehf-header #masthead,
#masthead{
  position:-webkit-sticky;
  position:sticky;
  top:0;
  z-index:500;
  transition:box-shadow .35s var(--at-ease), background-color .35s var(--at-ease);
}

/* keep clear of the WP admin bar when logged in */
.ehf-header.admin-bar #masthead, .admin-bar #masthead{ top:32px; }
@media screen and (max-width:782px){ .ehf-header.admin-bar #masthead, .admin-bar #masthead{ top:46px; } }

/* anchor links shouldn't land underneath the header */
html{ scroll-padding-top:150px; }
@media (max-width:1024px){ html{ scroll-padding-top:110px; } }

/* condense once the page has moved — ID beats Elementor's generated padding */
#masthead .elementor > .e-con,
#masthead .elementor > .e-con.e-parent{
  transition:padding .35s var(--at-ease);
}
#masthead.is-scrolled .elementor > .e-con,
#masthead.is-scrolled .elementor > .e-con.e-parent{
  padding-top:10px;
  padding-bottom:10px;
}
.ehf-header #masthead.is-scrolled, #masthead.is-scrolled{ box-shadow:0 10px 30px -18px rgba(0,0,0,.55); }

#masthead .elementor-widget-site-logo img{ transition:width .35s var(--at-ease); }
#masthead.is-scrolled .elementor-widget-site-logo img{ width:75px; }

@media (max-width:1024px){
  #masthead.is-scrolled .elementor-widget-site-logo img{ width:64px; }
}

@media (prefers-reduced-motion: reduce){
  #masthead,
  #masthead .elementor > .e-con,
  #masthead .elementor-widget-site-logo img{ transition:none; }
}

/* at-social-glyph — Elementor social icons carry official brand fills, so their
   glyph must stay white instead of inheriting the global link accent. */
a.elementor-social-icon, .elementor-social-icon{ color:#fff; }
.elementor-social-icon i, .elementor-social-icon svg{ color:#fff; fill:#fff; }

/* at-font-icon-fill — Elementor inlines Font Awesome glyphs as <svg class="e-font-icon-svg">.
   SVG's default fill is black, so without this they paint black no matter what
   colour they inherit — invisible on the dark theme. Follow currentColor instead.
   (Social icons and Elementor's own icon-widget colour rules are more specific
    and keep overriding this.) */
.e-font-icon-svg{ fill:currentColor; }
.at-icon-circle svg, .at-widget svg.e-font-icon-svg{ fill:currentColor; }

/* ==========================================================
   at-sticky-narrow — desktop only: once stuck, the header pulls in from
   the edges and becomes a floating bar instead of a full-bleed band.
   Below 1025px the nav is already a hamburger, so it stays full width.
   ========================================================== */
@media (min-width:1025px){
  #masthead .elementor > .e-con > .e-con > .e-con-inner{
    border:1px solid transparent;
    transition:max-width .38s var(--at-ease), padding .38s var(--at-ease),
               background-color .38s var(--at-ease), border-color .38s var(--at-ease),
               border-radius .38s var(--at-ease), box-shadow .38s var(--at-ease);
  }
  /* the full-bleed band fades out so the pill can float over the page */
  #masthead.is-scrolled .elementor > .e-con{
    background-color:transparent;
    border-bottom-color:transparent;
  }
  #masthead.is-scrolled .elementor > .e-con > .e-con > .e-con-inner{
    max-width:1080px;
    background:var(--at-surface);
    border-color:var(--at-line);
    border-radius:999px;
    padding:7px 12px 7px 26px;
    box-shadow:0 18px 44px -26px rgba(0,0,0,.55);
  }
  /* the band's own shadow would still draw edge-to-edge — the pill owns it now */
  .ehf-header #masthead.is-scrolled, #masthead.is-scrolled{ box-shadow:none; }
}

/* ==========================================================
   Scroll-down indicator
   ========================================================== */
.at-scrolldown-wrap{ display:inline-flex; align-items:center; gap:14px; }
.at-scrolldown-wrap.at-sd--below{ flex-direction:column; gap:10px; }

.at-scrolldown{
  width:64px; height:64px; border-radius:50%; padding:0; flex-shrink:0;
  border:1px solid var(--at-accent); background:transparent; color:var(--at-accent);
  display:inline-flex; align-items:center; justify-content:center; cursor:pointer;
  transition:background .3s var(--at-ease), color .3s var(--at-ease),
             border-color .3s var(--at-ease), transform .3s var(--at-ease);
}
.at-scrolldown:hover{ transform:translateY(3px); }
.at-scrolldown:focus-visible{ outline:2px solid var(--at-accent); outline-offset:4px; }
.at-scrolldown svg{ width:22px; height:22px; }
.at-sd-label{
  font-family:var(--at-font-body); font-size:12.5px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--at-muted);
}

.at-sd--animate .at-scrolldown svg{ animation:at-sd-bounce 1.8s var(--at-ease) infinite; }
@keyframes at-sd-bounce{
  0%,100%{ transform:translateY(-3px); }
  50%    { transform:translateY(3px); }
}
.at-sd--fade{ transition:opacity .4s var(--at-ease), visibility .4s var(--at-ease); }
.at-sd--fade.is-hidden{ opacity:0; visibility:hidden; }

@media (prefers-reduced-motion: reduce){
  .at-sd--animate .at-scrolldown svg{ animation:none; }
  .at-scrolldown:hover{ transform:none; }
}

/* ==========================================================
   Video popup — trigger
   ========================================================== */
.at-vpop{ display:inline-block; }
.at-vpop-trigger{
  display:inline-flex; align-items:center; gap:16px; padding:0;
  background:none; border:none; cursor:pointer; text-align:left;
}
.at-vpop--stacked .at-vpop-trigger{ flex-direction:column; gap:12px; text-align:center; }
.at-vpop-trigger:focus-visible{ outline:2px solid var(--at-accent); outline-offset:6px; border-radius:12px; }

.at-vpop-btn{
  position:relative; width:64px; height:64px; border-radius:50%; flex-shrink:0;
  background:var(--at-accent); color:var(--at-bg);
  display:inline-flex; align-items:center; justify-content:center;
  transition:transform .3s var(--at-ease), box-shadow .3s var(--at-ease);
}
.at-vpop-btn svg{ width:42%; height:42%; margin-left:8%; position:relative; z-index:2; }
.at-vpop-trigger:hover .at-vpop-btn{ transform:scale(1.07); box-shadow:0 12px 30px -12px var(--at-accent-glow); }

.at-vpop-ripple{
  position:absolute; inset:0; border-radius:50%;
  border:1px solid var(--at-accent); opacity:0;
  animation:at-vpop-ripple 2.6s var(--at-ease) infinite;
}
.at-vpop-ripple--2{ animation-delay:1.3s; }
@keyframes at-vpop-ripple{
  0%  { transform:scale(1);   opacity:.65; }
  100%{ transform:scale(1.9); opacity:0; }
}

.at-vpop-text{ display:flex; flex-direction:column; gap:3px; }
.at-vpop-text strong{
  font-family:var(--at-font-display); font-weight:800; font-size:15px;
  letter-spacing:.06em; text-transform:uppercase; color:var(--at-heading); line-height:1.2;
}
.at-vpop-text span{
  font-family:var(--at-font-body); font-size:12.5px; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase; color:var(--at-muted);
}

@media (prefers-reduced-motion: reduce){
  .at-vpop-ripple{ animation:none; }
  .at-vpop-trigger:hover .at-vpop-btn{ transform:none; }
}

/* ==========================================================
   Video popup — modal
   ========================================================== */
.at-vpop-modal{ position:fixed; inset:0; z-index:10000; display:flex; align-items:center; justify-content:center; padding:24px; }
.at-vpop-modal[hidden]{ display:none; }
.at-vpop-backdrop{ position:absolute; inset:0; background:rgba(8,6,7,.86); opacity:0; transition:opacity .35s var(--at-ease); }
.at-vpop-modal.is-open .at-vpop-backdrop{ opacity:1; }

.at-vpop-frame{
  position:relative; width:min(1040px, 100%); aspect-ratio:16/9;
  border-radius:22px; overflow:hidden; background:var(--at-surface-2);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.85);
  opacity:0; transform:translateY(18px) scale(.98);
  transition:opacity .35s var(--at-ease), transform .35s var(--at-ease);
}
.at-vpop-modal.is-open .at-vpop-frame{ opacity:1; transform:none; }
.at-vpop-stage, .at-vpop-stage iframe, .at-vpop-stage video{ width:100%; height:100%; display:block; border:0; }

.at-vpop-close{
  position:absolute; top:14px; right:14px; z-index:5;
  width:44px; height:44px; border-radius:50%; padding:0; border:none; cursor:pointer;
  background:rgba(255,255,255,.14); color:#f7f3f0; backdrop-filter:blur(6px);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .25s var(--at-ease), transform .25s var(--at-ease);
}
.at-vpop-close:hover{ background:var(--at-accent); color:var(--at-bg); transform:rotate(90deg); }
.at-vpop-close svg{ width:18px; height:18px; }

@media (max-width:640px){
  .at-vpop-modal{ padding:14px; }
  .at-vpop-frame{ border-radius:16px; }
  .at-vpop-close{ width:38px; height:38px; top:10px; right:10px; }
}

/* ==========================================================
   Brand reel
   ========================================================== */
.at-reel{ position:relative; width:100%; height:100%; background:var(--at-bg); overflow:hidden; }
.at-reel::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 82% 8%, var(--at-accent-glow), transparent 58%);
}
.at-reel-stage{ position:absolute; inset:0; }

.at-reel-scene{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:flex-start; justify-content:center;
  padding:clamp(24px,6%,64px); gap:14px;
  opacity:0; visibility:hidden; transform:translateY(16px);
  transition:opacity .6s var(--at-ease), transform .6s var(--at-ease), visibility .6s;
}
.at-reel-scene.is-live{ opacity:1; visibility:visible; transform:none; }

.at-reel-kicker{
  font-family:var(--at-font-body); font-size:clamp(10px,1.2vw,13px); font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--at-accent); margin:0;
}
.at-reel-title{
  font-family:var(--at-font-display); font-weight:800;
  font-size:clamp(26px,4.6vw,58px); text-transform:uppercase; letter-spacing:-.02em;
  color:var(--at-heading); margin:0; line-height:1;
}
.at-reel-sub{ font-family:var(--at-font-body); font-size:clamp(12px,1.5vw,17px); color:var(--at-muted); margin:0; }
.at-reel-big{
  font-family:var(--at-font-display); font-weight:800;
  font-size:clamp(24px,4.4vw,56px); text-transform:uppercase; letter-spacing:-.02em;
  color:var(--at-heading); margin:0; line-height:1.05;
}
.at-reel-big em{ font-style:normal; color:var(--at-accent); }
.at-reel-url{
  font-family:var(--at-font-body); font-size:clamp(12px,1.6vw,18px); font-weight:600;
  letter-spacing:.06em; color:var(--at-accent); margin:0;
}

/* animated logo mark */
.at-reel-mark{ display:flex; align-items:flex-end; gap:7px; height:clamp(28px,4vw,52px); margin-bottom:6px; }
.at-reel-mark span{ width:clamp(8px,1.1vw,14px); background:var(--at-accent); border-radius:99px; height:34%; }
.at-reel-scene.is-live .at-reel-mark span{ animation:at-reel-bar 1.5s var(--at-ease) infinite; }
.at-reel-mark span:nth-child(2){ animation-delay:.18s; background:var(--at-heading); }
.at-reel-mark span:nth-child(3){ animation-delay:.36s; }
@keyframes at-reel-bar{ 0%,100%{ height:34%; } 50%{ height:100%; } }

.at-reel-list{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:clamp(8px,1.4vw,16px); }
.at-reel-list li{
  display:flex; align-items:baseline; gap:clamp(10px,1.6vw,20px);
  font-family:var(--at-font-display); font-weight:800;
  font-size:clamp(15px,2.6vw,32px); text-transform:uppercase; color:var(--at-heading);
}
.at-reel-scene.is-live .at-reel-list li{ animation:at-reel-in .55s var(--at-ease) both; }
.at-reel-scene.is-live .at-reel-list li:nth-child(2){ animation-delay:.24s; }
.at-reel-scene.is-live .at-reel-list li:nth-child(3){ animation-delay:.48s; }
.at-reel-list li span{ font-size:.5em; color:var(--at-accent); letter-spacing:.1em; }
@keyframes at-reel-in{ from{ opacity:0; transform:translateX(-14px); } to{ opacity:1; transform:none; } }

.at-reel-stats{ display:flex; flex-wrap:wrap; gap:clamp(18px,4vw,56px); margin-top:8px; }
.at-reel-stats div{ display:flex; flex-direction:column; gap:4px; }
.at-reel-stats strong{
  font-family:var(--at-font-display); font-weight:800;
  font-size:clamp(26px,5vw,60px); color:var(--at-accent); line-height:1;
  font-variant-numeric:tabular-nums;
}
.at-reel-stats small{
  font-family:var(--at-font-body); font-size:clamp(10px,1.2vw,13px); font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--at-muted);
}

/* transport */
.at-reel-ui{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  display:flex; align-items:center; gap:14px;
  padding:14px clamp(16px,3%,26px);
  background:linear-gradient(to top, rgba(0,0,0,.55), transparent);
}
.at-reel-toggle{
  width:34px; height:34px; border-radius:50%; padding:0; border:none; cursor:pointer; flex-shrink:0;
  background:rgba(255,255,255,.16); color:#f7f3f0;
  display:inline-flex; align-items:center; justify-content:center;
}
.at-reel-toggle:hover{ background:var(--at-accent); color:var(--at-bg); }
.at-reel-toggle svg{ width:15px; height:15px; }
.at-reel-toggle .at-reel-play{ display:none; }
.at-reel.is-paused .at-reel-toggle .at-reel-play{ display:block; }
.at-reel.is-paused .at-reel-toggle .at-reel-pause{ display:none; }
.at-reel-track{ flex:1; height:3px; border-radius:99px; background:rgba(255,255,255,.22); overflow:hidden; }
.at-reel-fill{ display:block; height:100%; width:0; background:var(--at-accent); border-radius:99px; }
.at-reel-time{
  font-family:var(--at-font-body); font-size:12px; font-weight:600; color:#f7f3f0;
  font-variant-numeric:tabular-nums; flex-shrink:0; min-width:34px; text-align:right;
}

@media (prefers-reduced-motion: reduce){
  .at-reel-scene{ transition:none; }
  .at-reel-scene.is-live .at-reel-mark span,
  .at-reel-scene.is-live .at-reel-list li{ animation:none; opacity:1; transform:none; }
}

/* ==========================================================
   Book A Call — trigger, modal and form
   ========================================================== */
.at-bk{ display:inline-block; }
.at-bk--full, .at-bk--full .at-bk-open{ display:block; width:100%; }

.at-bk-open{
  border:1.5px solid var(--at-accent); background:var(--at-accent); color:var(--at-bg);
  border-radius:999px; padding:16px 30px; cursor:pointer;
  font-family:var(--at-font-body); font-size:14px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  transition:background .3s var(--at-ease), color .3s var(--at-ease),
             border-color .3s var(--at-ease), transform .2s var(--at-ease);
}
.at-bk-open:hover{ transform:translateY(-2px); }
.at-bk-open:focus-visible{ outline:2px solid var(--at-heading); outline-offset:3px; }

/* honeypot — off-canvas rather than display:none so headless fillers still see it */
.at-bk-hp{ position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }

.at-bk-modal{ position:fixed; inset:0; z-index:10001; display:flex; align-items:center; justify-content:center; padding:24px; }
.at-bk-modal[hidden]{ display:none; }
.at-bk-backdrop{ position:absolute; inset:0; background:rgba(8,6,7,.84); opacity:0; transition:opacity .3s var(--at-ease); }
.at-bk-modal.is-open .at-bk-backdrop{ opacity:1; }

.at-bk-panel{
  position:relative; width:min(620px,100%); max-height:92vh; overflow-y:auto;
  background:var(--at-surface); border:1px solid var(--at-line);
  border-radius:26px; padding:38px clamp(22px,4vw,44px) 32px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.8);
  opacity:0; transform:translateY(16px) scale(.985);
  transition:opacity .3s var(--at-ease), transform .3s var(--at-ease);
}
.at-bk-modal.is-open .at-bk-panel{ opacity:1; transform:none; }

.at-bk-close{
  position:absolute; top:16px; right:16px; width:38px; height:38px; padding:0;
  border:1px solid var(--at-line); border-radius:50%; cursor:pointer;
  background:transparent; color:var(--at-heading);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .25s var(--at-ease), color .25s var(--at-ease), transform .25s var(--at-ease);
}
.at-bk-close:hover{ background:var(--at-accent); color:var(--at-bg); border-color:var(--at-accent); transform:rotate(90deg); }
.at-bk-close svg{ width:16px; height:16px; }

.at-bk-head{ margin-bottom:24px; padding-right:40px; }
.at-bk-tag{
  display:inline-block; margin-bottom:12px; padding:6px 14px; border-radius:999px;
  border:1px solid var(--at-accent); color:var(--at-accent);
  font-family:var(--at-font-body); font-size:11.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
}
.at-bk-head h3{
  font-family:var(--at-font-display); font-weight:800;
  font-size:clamp(22px,3vw,30px); text-transform:uppercase; letter-spacing:-.01em;
  color:var(--at-heading); margin:0 0 10px; line-height:1.1;
}
.at-bk-head p{ font-family:var(--at-font-body); font-size:14.5px; line-height:1.6; color:var(--at-muted); margin:0; }

.at-bk-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.at-bk-field{ display:flex; flex-direction:column; gap:7px; min-width:0; }
.at-bk-field--wide{ grid-column:1 / -1; }
.at-bk-field > span{
  font-family:var(--at-font-body); font-size:12px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase; color:var(--at-muted);
}
.at-bk-field input, .at-bk-field select, .at-bk-field textarea{
  width:100%; box-sizing:border-box;
  background:var(--at-bg); border:1px solid var(--at-line-2); border-radius:12px;
  padding:13px 15px; color:var(--at-heading);
  font-family:var(--at-font-body); font-size:15px; line-height:1.4;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.at-bk-field textarea{ resize:vertical; min-height:96px; }
.at-bk-field input:focus, .at-bk-field select:focus, .at-bk-field textarea:focus{
  outline:none; border-color:var(--at-accent); box-shadow:0 0 0 3px var(--at-accent-glow);
}
.at-bk-field input.has-error, .at-bk-field textarea.has-error{ border-color:var(--at-accent); }

.at-bk-foot{ display:flex; flex-direction:column; gap:12px; align-items:flex-start; margin-top:22px; }
.at-bk-submit{
  border:1.5px solid var(--at-accent); background:var(--at-accent); color:var(--at-bg);
  border-radius:999px; padding:15px 32px; cursor:pointer;
  font-family:var(--at-font-body); font-size:14px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase;
  transition:background .3s var(--at-ease), color .3s var(--at-ease), opacity .2s ease;
}
.at-bk-submit:hover{ background:var(--at-heading); border-color:var(--at-heading); }
.at-bk-submit[disabled]{ opacity:.6; cursor:progress; }
.at-bk-foot small{ font-family:var(--at-font-body); font-size:12.5px; color:var(--at-muted-2); line-height:1.5; }

.at-bk-msg{
  margin:14px 0 0; font-family:var(--at-font-body); font-size:13.5px;
  color:var(--at-accent-ink,var(--at-accent)); min-height:1em;
}

.at-bk-done{ text-align:center; padding:26px 0 10px; }
.at-bk-done[hidden]{ display:none; }
.at-bk-tick{
  display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:64px; border-radius:50%;
  background:var(--at-accent-soft); color:var(--at-accent); margin-bottom:18px;
}
.at-bk-tick svg{ width:28px; height:28px; }
.at-bk-done p{
  font-family:var(--at-font-body); font-size:16px; line-height:1.6;
  color:var(--at-heading); margin:0 auto; max-width:38ch;
}

@media (max-width:560px){
  .at-bk-grid{ grid-template-columns:1fr; }
  .at-bk-panel{ padding:32px 20px 26px; border-radius:20px; }
  .at-bk-modal{ padding:14px; }
}

/* at-accordion-icon-size — FAQ toggle icons default to 24px, which sits heavy
   next to the 16px uppercase question text. */
.elementor-accordion .elementor-tab-title .elementor-accordion-icon svg{
  height:18px;
  width:18px;
}

/* ==========================================================
   at-button-hover-reset
   Hello Elementor's reset.css carries:
     button:hover, button:focus { background-color:#c36; color:#fff; }
   Specificity (0,0,1,1) beats any single-class rule of ours, so every
   button in our widgets was turning magenta on hover/focus. Each control
   below therefore declares its own hover state at (0,0,2,1) or higher.
   ========================================================== */

/* transparent by design — the visual feedback lives on an inner element */
.at-widget .at-vpop-trigger:hover,
.at-widget .at-vpop-trigger:focus{
  background-color:transparent;
  color:inherit;
}

/* accent-filled circular controls */
.at-widget .at-menu-close:hover,  .at-widget .at-menu-close:focus,
.at-widget .at-vpop-close:hover,  .at-widget .at-vpop-close:focus,
.at-widget .at-bk-close:hover,    .at-widget .at-bk-close:focus,
.at-widget .at-reel-toggle:hover, .at-widget .at-reel-toggle:focus,
.at-widget .at-tarrow:hover,      .at-widget .at-tarrow:focus,
.at-widget .at-back-to-top:hover, .at-widget .at-back-to-top:focus,
.at-widget .at-sb-search button:hover,
.at-widget .at-sb-search button:focus{
  background-color:var(--at-accent);
  color:var(--at-bg);
  border-color:var(--at-accent);
}

/* filter pills */
.at-widget .at-filter-btn:hover,
.at-widget .at-filter-btn:focus{
  background-color:var(--at-accent);
  color:var(--at-bg);
  border-color:var(--at-accent);
}

/* the theme toggle stays on its surface, only the accent outline changes */
.at-widget .at-theme-toggle:hover,
.at-widget .at-theme-toggle:focus{
  background-color:var(--at-surface);
  color:var(--at-accent);
  border-color:var(--at-accent);
}

/* hamburger + scroll indicator keep the fill their Elementor controls set */
.at-widget .at-hamburger:focus{ background-color:var(--at-accent); color:var(--at-bg); }
.at-widget .at-scrolldown:focus{ background-color:var(--at-accent); color:var(--at-bg); }

/* booking buttons invert to the heading colour */
.at-widget .at-bk-open:hover,   .at-widget .at-bk-open:focus,
.at-widget .at-bk-submit:hover, .at-widget .at-bk-submit:focus{
  background-color:var(--at-heading);
  color:var(--at-bg);
  border-color:var(--at-heading);
}
.at-widget .at-bk-submit[disabled]:hover{
  background-color:var(--at-accent);
  border-color:var(--at-accent);
}

/* the same reset also forces a #c36 border on every button at rest */
.at-widget button{ border-color:transparent; }
.at-widget .at-theme-toggle{ border-color:var(--at-line-2); }
.at-widget .at-tarrow,
.at-widget .at-filter-btn,
.at-widget .at-bk-close{ border-color:var(--at-line); }
.at-widget .at-scrolldown{ border-color:var(--at-accent); }

/* ==========================================================
   In-content CTA panel ([at_cta] shortcode)
   ========================================================== */
.at-cta-panel{
  display:block;
  text-align:center;
  background:var(--at-accent-soft);
  border:1px solid var(--at-accent-soft-line);
  border-radius:26px;
  padding:38px clamp(22px,5%,46px);
  margin:44px 0;
}
.at-cta-panel .at-cta-title{
  font-family:var(--at-font-display);
  font-weight:800;
  font-size:clamp(21px,2.6vw,27px);
  text-transform:uppercase;
  letter-spacing:-.01em;
  line-height:1.15;
  color:var(--at-heading);
  margin:0 0 12px;
}
.at-cta-panel .at-cta-text{
  font-family:var(--at-font-body);
  font-size:15.5px;
  line-height:1.65;
  color:var(--at-text);
  margin:0 auto 24px;
  max-width:46ch;
}
.at-cta-panel .at-bk-open{ display:inline-block; width:auto; }

/* the post stylesheet colours every link — keep the button's own treatment */
body.single-post .site-main .at-cta-panel a,
body.single-post .site-main .at-cta-panel button{ text-decoration:none; }

@media (max-width:560px){
  .at-cta-panel{ padding:30px 20px; border-radius:20px; margin:34px 0; }
  .at-cta-panel .at-bk-open{ display:block; width:100%; }
}

/* ==========================================================
   Article share row
   ========================================================== */
.at-share{
  display:flex; align-items:center; flex-wrap:wrap; gap:18px;
  margin:46px 0 8px; padding:24px 0 0;
  border-top:1px solid var(--at-line);
}
.at-share-label{
  font-family:var(--at-font-body); font-size:12.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; color:var(--at-muted);
}
.at-share-links{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; }

.at-share-btn{
  width:42px; height:42px; flex-shrink:0; padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--at-line-2); border-radius:50%;
  background:transparent; color:var(--at-heading); cursor:pointer;
  transition:background .25s var(--at-ease), color .25s var(--at-ease),
             border-color .25s var(--at-ease), transform .25s var(--at-ease);
}
.at-share-btn svg{ width:17px; height:17px; }

/* the single-post stylesheet colours and underlines every link — opt these out */
body.single-post .site-main .at-share-btn{ color:var(--at-heading); text-decoration:none; }
body.single-post .site-main .at-share-btn:hover{ text-decoration:none; }

.at-share-btn:hover,
.at-share-btn:focus-visible,
body.single-post .site-main .at-share-btn:hover{
  background:var(--at-accent);
  border-color:var(--at-accent);
  color:var(--at-bg);
  transform:translateY(-2px);
}
.at-share-btn:focus-visible{ outline:2px solid var(--at-accent); outline-offset:3px; }

.at-share-copy.is-copied,
.at-share-copy.is-copied:hover{
  background:var(--at-accent-soft);
  border-color:var(--at-accent-soft-line);
  color:var(--at-accent);
  transform:none;
}
.at-share-toast{
  font-family:var(--at-font-body); font-size:12.5px; font-weight:600;
  color:var(--at-accent); opacity:0; transition:opacity .25s ease;
}
.at-share-toast.is-visible{ opacity:1; }

@media (prefers-reduced-motion: reduce){
  .at-share-btn{ transition:none; }
  .at-share-btn:hover{ transform:none; }
}

@media (max-width:560px){
  .at-share{ gap:12px; }
  .at-share-btn{ width:40px; height:40px; }
}


/* at-legal-pages — Privacy Policy and Terms of Service (plain WordPress pages, every language) */
body.at-legal{ background: var(--at-bg); color: var(--at-text); }
body.at-legal .site-main{ max-width: 820px; margin: 0 auto; padding: 56px 24px 100px; background: var(--at-bg); }
body.at-legal .site-main .page-header{ margin: 0 0 6px; }
body.at-legal .site-main .entry-title{
  margin: 0; font-family: var(--at-font-display); font-weight: 800;
  font-size: clamp(34px, 5vw, 54px); line-height: 1.08; letter-spacing: -.02em;
  text-transform: uppercase; color: var(--at-heading); text-wrap: balance;
}
body.at-legal .site-main h2{
  margin: 46px 0 12px; padding-top: 22px; border-top: 1px solid var(--at-line);
  font-family: var(--at-font-display); font-weight: 700; font-size: 24px;
  line-height: 1.25; letter-spacing: -.01em; color: var(--at-heading);
}
body.at-legal .site-main h3{ margin: 28px 0 8px; font-family: var(--at-font-display); font-weight: 700; font-size: 18px; color: var(--at-heading); }
body.at-legal .site-main p,
body.at-legal .site-main li{ font-family: var(--at-font-body); font-size: 16.5px; line-height: 1.75; color: var(--at-text); }
body.at-legal .site-main p{ margin: 0 0 16px; }
body.at-legal .site-main ul{ margin: 0 0 18px; padding-inline-start: 22px; }
body.at-legal .site-main li{ margin-bottom: 7px; }
body.at-legal .site-main li::marker{ color: var(--at-accent); }
body.at-legal .site-main strong{ color: var(--at-heading); }
body.at-legal .site-main a{ color: var(--at-accent-ink); text-decoration: underline; text-underline-offset: 2px; }
body.at-legal .site-main a:hover{ text-decoration-thickness: 2px; }
body.at-legal .site-main .at-legal-meta{ margin: 0 0 30px; font-size: 14px; color: var(--at-muted); }
body.at-legal .site-main .at-legal-summary{
  margin: 0 0 8px; padding: 22px 26px; border: 1px solid var(--at-line); border-radius: 18px; background: var(--at-surface-2);
}
body.at-legal .site-main .at-legal-summary h2{ margin: 0 0 10px; padding: 0; border: 0; font-size: 17px; text-transform: uppercase; letter-spacing: .06em; }
body.at-legal .site-main .at-legal-summary ul{ margin: 0; }
body.at-legal .site-main .at-legal-summary li:last-child{ margin-bottom: 0; }
body.at-legal .site-main .wp-block-table{ margin: 0 0 22px; overflow-x: auto; }
body.at-legal .site-main table{ width: 100%; border-collapse: collapse; }
body.at-legal .site-main th,
body.at-legal .site-main td{ padding: 11px 13px; border: 1px solid var(--at-line-2); text-align: start; vertical-align: top; font-size: 14.5px; line-height: 1.5; color: var(--at-text); }
body.at-legal .site-main th{ background: var(--at-surface-2); color: var(--at-heading); font-weight: 700; }
body.at-legal .site-main td code{ font-size: 13.5px; padding: 1px 6px; border-radius: 5px; background: var(--at-surface-2); color: var(--at-heading); }
body.at-legal .site-main .at-legal-contact{ padding: 18px 22px; border-inline-start: 3px solid var(--at-accent); background: var(--at-surface-2); border-radius: 0 12px 12px 0; }
body.at-legal .site-main .at-legal-contact p:last-child{ margin-bottom: 0; }
@media (max-width: 600px){
  body.at-legal .site-main{ padding: 36px 18px 80px; }
  body.at-legal .site-main h2{ font-size: 21px; }
  body.at-legal .site-main p, body.at-legal .site-main li{ font-size: 16px; }
}
/* Price disclaimer notes on affiliate posts ([artintech_price_note]). */
body.single .site-main .at-price-note{margin:32px 0;padding:18px 20px;border-inline-start:3px solid var(--at-accent);border-radius:14px;background:var(--at-surface-2);color:var(--at-muted);font-size:14px;line-height:1.65}
body.single .site-main .at-price-note p{margin:0 0 8px;font-size:inherit;line-height:inherit;color:inherit}
body.single .site-main .at-price-note p:last-child{margin-bottom:0}
body.single .site-main .at-price-note .at-price-note__title{font-weight:700;color:var(--at-heading)}
body.single .site-main .at-price-note a{color:var(--at-accent-ink);text-decoration:underline}
body.single .site-main p.at-price-note--short{margin:0 0 28px;padding:10px 14px;border-inline-start:3px solid var(--at-accent);border-radius:10px;background:var(--at-surface-2);color:var(--at-muted);font-size:13.5px;line-height:1.55}
body.single .site-main p.at-price-source{margin:-6px 0 28px;font-size:13px;line-height:1.55;color:var(--at-muted)}
body.single .site-main p.at-price-source a{color:var(--at-accent-ink);font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
/* Local Pages: coupon box in the page's own language. */
body.single .site-main .at-lp-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin:24px 0 32px;padding:18px 20px;border:1px dashed var(--at-accent);border-radius:16px;background:var(--at-surface-2)}
body.single .site-main .at-lp-cta__code span{display:block;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--at-muted)}
body.single .site-main .at-lp-cta__code strong{font-family:var(--at-font-display);font-size:24px;letter-spacing:.06em;color:var(--at-accent-ink)}
body.single .site-main a.at-lp-cta__btn,body.single .site-main a.at-lp-cta__btn:hover,body.single .site-main a.at-lp-cta__btn:focus{display:inline-flex;align-items:center;padding:12px 20px;border-radius:999px;background:var(--at-accent);color:#fff;font-weight:600;text-decoration:none}
body.single .site-main a.at-lp-cta__btn:hover{filter:brightness(1.08)}
body.single .site-main p.at-lp-cta__fine{flex-basis:100%;margin:0;font-size:12.5px;color:var(--at-muted)}
