/* ==============================================================
   ARDESS INTERNATIONAL — SITE STYLESHEET
   --------------------------------------------------------------
   Everything you are likely to want to change lives in the
   SITE SETTINGS block directly below. Change a value here and it
   updates everywhere on every page at once.

   Nothing below the settings block needs editing for normal use.
   ============================================================== */

:root{

  /* ---------- COLOURS ------------------------------------------
     The greys stay put. The ACCENT block below is the one you
     change if you ever want a different look.                     */

  --ink:        #0A0A0B;   /* main page background (near-black)     */
  --ink-2:      #101012;   /* every other section, slightly lighter */
  --panel:      #16161A;   /* the boxes / cards                     */
  --text:       #ECECEF;   /* normal text                           */
  --muted:      #9C9CA6;   /* secondary / paragraph text            */
  --line:       rgba(255,255,255,.10);  /* borders                  */
  --line-soft:  rgba(255,255,255,.06);  /* faint dividers           */

  /* ---------- ACCENT -------------------------------------------
     Two finished accent schemes. CHAMPAGNE is switched on.
     To swap: comment out the seven CHAMPAGNE lines and uncomment
     the seven PURPLE ones. Nothing else needs touching.           */

  /* === CHAMPAGNE — ACTIVE ================================== */
  --brand:       #C8A96B;                    /* accent, solid       */
  --brand-lift:  #C8A96B;                    /* button background   */
  --brand-hover: #D9BF88;                    /* button on hover     */
  --accent:      #C8A96B;                    /* accent text         */
  --on-brand:    #0A0A0B;                    /* text ON a button    */
  --glow:        rgba(200,169,107,.13);      /* ambient light       */
  --glow-strong: rgba(200,169,107,.28);      /* button shadow       */

  /* === PURPLE — from the logo. Uncomment to use. ============
  --brand:       #6D10A3;
  --brand-lift:  #7E1CBE;
  --brand-hover: #8E2AD2;
  --accent:      #B47CE8;
  --on-brand:    #FFFFFF;
  --glow:        rgba(126,28,190,.20);
  --glow-strong: rgba(126,28,190,.40);
  ========================================================== */

  --accent-dim: color-mix(in srgb, var(--accent) 15%, transparent);

  /* ---------- BACKGROUND IMAGES --------------------------------
     Put the file in assets/img/ then, on the page you want it on,
     add the style to the section tag. For example:

       <section class="hero" style="--hero-img:url('assets/img/hero.jpg')">

     These two dials control how the photo reads behind the text.
     Lower --hero-img-opacity = fainter photo.
     Higher --hero-veil       = darker overlay, easier to read.     */

  --hero-img-opacity: .28;   /* 0 = invisible, 1 = full strength     */
  --hero-veil:        .86;   /* 0 = no darkening, 1 = almost black   */

  /* ---------- TYPE ---------------------------------------------
     To use different fonts, change these AND the Google Fonts
     <link> in the <head> of each .html page.                       */

  --font-sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-serif: "Instrument Serif", Georgia, "Times New Roman", serif;

  /* ---------- LAYOUT -------------------------------------------  */

  --wrap: 1180px;                    /* max content width           */
  --pad: clamp(20px, 5vw, 40px);     /* space at the screen edges   */
  --radius: 14px;                    /* corner roundness on cards   */
  --header-h: 100px;                 /* height of the top bar       */
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{
  margin:0 0 .5em;
  line-height:1.1;
  letter-spacing:-.02em;
  font-weight:700;
}

h1{ font-size:clamp(2.4rem, 6vw, 4.1rem); font-weight:800; letter-spacing:-.035em; }
h2{ font-size:clamp(1.8rem, 3.6vw, 2.7rem); letter-spacing:-.03em; }
h3{ font-size:1.22rem; letter-spacing:-.015em; }

p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

::selection{ background:var(--brand-lift); color:var(--on-brand); }

/* ---------- Utilities ---------- */

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.eyebrow{
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 1.1rem;
  display:block;
}

.lede{ font-size:clamp(1.05rem,1.7vw,1.28rem); color:var(--muted); line-height:1.6; max-width:62ch; }

.muted{ color:var(--muted); }

.section{ padding:clamp(64px,9vw,120px) 0; }
.section--alt{ background:var(--ink-2); border-block:1px solid var(--line-soft); }

/* Put a photo behind any section:
   <section class="section section--image" style="--section-img:url('assets/img/gym.jpg')">  */
.section--image{ position:relative; overflow:hidden; }
.section--image::before,
.section--image::after{ content:""; position:absolute; inset:0; }
.section--image::before{
  background-image:var(--section-img,none);
  background-size:cover; background-position:center;
  opacity:var(--section-img-opacity,.22);
  filter:grayscale(.4);
}
.section--image::after{
  background:linear-gradient(180deg, rgba(10,10,11,.74), rgba(10,10,11,.90));
}
.section--image > *{ position:relative; z-index:1; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:100;
  background:var(--brand-lift); color:var(--on-brand); padding:12px 18px; font-weight:600;
}
.skip:focus{ left:12px; top:12px; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:4px; }

/* ---------- Buttons ---------- */

.btn{
  display:inline-flex; align-items:center; gap:.55em;
  padding:.85em 1.5em;
  border:1px solid var(--brand-lift);
  background:var(--brand-lift);
  color:var(--on-brand);
  font-weight:600; font-size:.95rem; letter-spacing:.01em;
  border-radius:100px;
  cursor:pointer;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); background:var(--brand-hover); border-color:var(--brand-hover); box-shadow:0 8px 28px var(--glow-strong); }

.btn--ghost{
  background:transparent; color:var(--text); border-color:var(--line);
}
.btn--ghost:hover{ border-color:var(--accent); color:var(--accent); box-shadow:none; }

.btn--sm{ padding:.78em 1.55em; font-size:.92rem; }

/* ---------- Header ---------- */

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(10,10,11,.72);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line-soft);
}

.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; min-height:var(--header-h);
}

.brand{ display:flex; align-items:center; gap:12px; flex-shrink:0; }

.brand-logo{ height:56px; width:auto; display:block; }
.site-footer .brand-logo{ height:68px; }
@media (max-width:900px){ .brand-logo{ height:46px; } }
@media (max-width:520px){ .brand-logo{ height:38px; } }

/* Fallback wordmark, used only if the logo image is removed. */
.brand-mark{
  width:34px; height:34px; display:grid; place-items:center;
  border:1px solid var(--accent); color:var(--accent);
  border-radius:8px;
  font-weight:800; font-size:1rem; letter-spacing:-.02em;
}
.brand-text{ font-weight:700; letter-spacing:-.02em; font-size:1.02rem; }
.brand-thin{ font-weight:400; color:var(--muted); }

.nav{ display:flex; align-items:center; gap:34px; flex-shrink:0; }
.nav > *{ flex:0 0 auto; }
@media (max-width:1120px){ .nav{ gap:22px; } }
.nav a{
  font-size:1rem; color:var(--muted); font-weight:500;
  transition:color .16s ease; position:relative; padding:4px 0;
  white-space:nowrap;
}
.nav a:hover{ color:var(--text); }
.nav a.is-active{ color:var(--text); }
.nav a.is-active::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px;
  height:1px; background:var(--accent);
}
/* The .nav a rule above would otherwise strip the pill's padding —
   this puts it back with enough specificity to win. */
.nav a.btn{
  padding:.78em 1.6em;
  font-size:.92rem;
  color:var(--on-brand);
  margin-left:6px;
}
.nav a.btn:hover{ color:var(--on-brand); }
.nav a.btn.is-active::after{ display:none; }

.nav-toggle{
  display:none;
  width:42px; height:42px;
  background:none; border:1px solid var(--line); border-radius:10px;
  color:var(--text); cursor:pointer;
  align-items:center; justify-content:center;
}
.nav-toggle span{
  display:block; width:17px; height:1.5px; background:currentColor; position:relative;
  transition:background .2s ease;
}
.nav-toggle span::before,.nav-toggle span::after{
  content:""; position:absolute; left:0; width:17px; height:1.5px; background:currentColor;
  transition:transform .22s ease;
}
.nav-toggle span::before{ top:-5.5px; }
.nav-toggle span::after{ top:5.5px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ transform:translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ transform:translateY(-5.5px) rotate(-45deg); }

/* ---------- Hero ---------- */

.hero{
  position:relative;
  padding:clamp(80px,13vw,168px) 0 clamp(64px,9vw,120px);
  overflow:hidden;
  border-bottom:1px solid var(--line-soft);
}

/* Drop a photo in later: set --hero-img on the .hero element, e.g.
   style="--hero-img:url('assets/img/hero.jpg')"  */
.hero::before{
  content:""; position:absolute; inset:0;
  background-image:var(--hero-img, none);
  background-size:cover; background-position:center;
  opacity:var(--hero-img-opacity,.28);
  filter:grayscale(.35) contrast(1.05);
}
.hero::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(900px 420px at 78% 8%, var(--glow), transparent 62%),
    radial-gradient(700px 500px at 8% 92%, rgba(255,255,255,.05), transparent 60%),
    linear-gradient(180deg, rgba(10,10,11,calc(var(--hero-veil,.86) * .64)) 0%, rgba(10,10,11,var(--hero-veil,.86)) 62%, var(--ink) 100%);
}
.hero > *{ position:relative; z-index:1; }

/* Decorative concentric rings — a quiet nod to "international". */
.hero-rings{
  position:absolute; right:-7%; top:50%; transform:translateY(-50%);
  width:min(50vw,600px); aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(255,255,255,.07);
  box-shadow:inset 0 0 140px var(--glow);
  pointer-events:none; z-index:0;
}
.hero-rings::before,.hero-rings::after{
  content:""; position:absolute; inset:14%; border-radius:50%;
  border:1px solid rgba(255,255,255,.06);
}
.hero-rings::after{ inset:31%; border-color:color-mix(in srgb, var(--accent) 24%, transparent); }
@media (max-width:900px){ .hero-rings{ display:none; } }

.hero--page{ padding:clamp(64px,10vw,128px) 0 clamp(48px,7vw,88px); }

.hero h1{ max-width:17ch; }
.hero .lede{ margin-top:1.4rem; }

.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2.4rem; }

/* ---------- Stat bar ---------- */

.stats{
  display:grid; gap:1px;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  background:var(--line-soft);
  border-block:1px solid var(--line-soft);
}
.stat{ background:var(--ink); padding:34px var(--pad); }
.stat b{
  display:block; font-size:clamp(1.7rem,3vw,2.3rem); font-weight:800;
  letter-spacing:-.03em; line-height:1; margin-bottom:.4rem;
}
.stat span{ font-size:.86rem; color:var(--muted); letter-spacing:.02em; }

/* ---------- Grids & cards ---------- */

.grid{ display:grid; gap:22px; }
.grid--3{ grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); }
.grid--2{ grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }

.card{
  background:var(--panel);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  padding:clamp(26px,3.2vw,36px);
  transition:border-color .2s ease, transform .2s ease;
}
.card:hover{ border-color:var(--line); transform:translateY(-3px); }
.card p{ color:var(--muted); font-size:.98rem; }

.card-num{
  font-size:.72rem; font-weight:600; letter-spacing:.18em;
  color:var(--accent); display:block; margin-bottom:1.4rem;
}

/* Used where the cards are a set, not a sequence. */
.card-rule{
  display:block; width:30px; height:2px; border-radius:2px;
  background:var(--brand-lift); margin-bottom:1.5rem;
}

.section-head{ max-width:70ch; margin-bottom:clamp(36px,5vw,60px); }

/* ---------- Split (text + panel) ---------- */

.split{
  display:grid; gap:clamp(32px,5vw,72px);
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:start;
}
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }

.prose p{ color:var(--muted); }
.prose h3{ color:var(--text); margin-top:2.2em; }
.prose h3:first-child{ margin-top:0; }

/* ---------- List with rules ---------- */

.rule-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line-soft); }
.rule-list li{
  padding:18px 0 18px 26px; border-bottom:1px solid var(--line-soft);
  color:var(--muted); font-size:.98rem; position:relative;
}
.rule-list li::before{
  content:""; position:absolute; left:0; top:1.62em;
  width:10px; height:1px; background:var(--accent);
}
.rule-list strong{ color:var(--text); font-weight:600; }

/* ---------- Brand cards ---------- */

.brand-grid{ display:grid; gap:22px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }

.brand-card{
  background:var(--panel);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:border-color .2s ease, transform .2s ease;
}
.brand-card:hover{ border-color:var(--accent); transform:translateY(-3px); }

.brand-card__logo{
  height:158px; display:grid; place-items:center;
  padding:24px 26px;
  background:#F3F3F6;            /* light plate — brand logos are drawn for it */
  border-bottom:1px solid var(--line-soft);
}
.brand-card__logo img{
  max-width:100%; max-height:110px;
  width:auto; height:auto; object-fit:contain;
}
/* Shown only when no logo image is present. */
.brand-card__logo .wordmark{
  font-weight:800; letter-spacing:.13em; font-size:1.05rem; text-transform:uppercase;
  color:#16161A; text-align:center; line-height:1.35;
}

.brand-card__body{ padding:28px; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.brand-card__body h3{ margin-bottom:.5rem; }
.brand-card__body p{ color:var(--muted); font-size:.95rem; margin:0 0 18px; }
.brand-card__body p:last-child{ margin-bottom:0; }

.brand-card__tag{
  display:inline-block; margin-top:auto; padding-top:0;
  font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600;
  color:var(--accent); background:var(--accent-dim);
  border-radius:100px; padding:5px 12px;
}

/* ---------- Quote ---------- */

.quote{
  font-family:var(--font-serif);
  font-size:clamp(1.5rem,3.4vw,2.2rem);
  line-height:1.32; letter-spacing:-.015em;
  color:var(--text); font-weight:400;
  border-left:2px solid var(--accent);
  padding-left:clamp(20px,3vw,34px);
  margin:0;
  max-width:26ch;
}

/* ---------- CTA band ---------- */

.cta{
  border-top:1px solid var(--line-soft);
  background:
    radial-gradient(760px 340px at 50% 0%, var(--glow), transparent 65%),
    var(--ink-2);
  text-align:center;
  padding:clamp(64px,9vw,110px) 0;
}
.cta h2{ margin-bottom:.6rem; }
.cta .lede{ margin-inline:auto; }
.cta .hero-actions{ justify-content:center; }

/* ---------- Contact ---------- */

.contact-grid{
  display:grid; gap:clamp(28px,4vw,56px);
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
}
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }

.detail{ padding:22px 0; border-bottom:1px solid var(--line-soft); }
.detail:first-of-type{ border-top:1px solid var(--line-soft); }
.detail dt{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--accent); font-weight:600; margin-bottom:.5rem;
}
.detail dd{ margin:0; font-size:1.02rem; }
.detail dd a:hover{ color:var(--accent); }

/* ---------- Form ---------- */

.form{ display:grid; gap:18px; }
.form .row{ display:grid; gap:18px; grid-template-columns:1fr 1fr; }
@media (max-width:560px){ .form .row{ grid-template-columns:1fr; } }

.field label{
  display:block; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:.55rem;
}
.field input,.field textarea,.field select{
  width:100%; padding:14px 16px;
  background:var(--panel); color:var(--text);
  border:1px solid var(--line); border-radius:10px;
  font:inherit; font-size:.98rem;
  transition:border-color .16s ease, background .16s ease;
}
.field textarea{ min-height:150px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none; border-color:var(--accent); background:#1A1A1F;
}
.field input::placeholder,.field textarea::placeholder{ color:#5E5E68; }

.form-note{ font-size:.84rem; color:var(--muted); margin:0; }

/* honeypot */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---------- Footer ---------- */

.site-footer{
  border-top:1px solid var(--line-soft);
  background:var(--ink);
  padding:clamp(48px,6vw,72px) 0 34px;
  font-size:.92rem;
}
.footer-top{
  display:grid; gap:36px;
  grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));
  padding-bottom:40px; border-bottom:1px solid var(--line-soft);
}
@media (max-width:760px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer-top{ grid-template-columns:1fr; } }

.footer-about p{ color:var(--muted); max-width:38ch; margin-top:16px; font-size:.92rem; }

.footer-col h4{
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:1.1rem;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.footer-col a{ color:var(--text); }
.footer-col a:hover{ color:var(--accent); }

.footer-bottom{
  display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between; align-items:center;
  padding-top:28px; color:var(--muted); font-size:.83rem;
}
.footer-legal{ max-width:78ch; color:#83838D; font-size:.78rem; line-height:1.6; margin-top:22px; }

.social{ display:flex; gap:12px; }
.social a{
  width:36px; height:36px; display:grid; place-items:center;
  border:1px solid var(--line); border-radius:9px; color:var(--muted);
  transition:border-color .18s ease, color .18s ease;
}
.social a:hover{ border-color:var(--accent); color:var(--accent); }
.social svg{ width:16px; height:16px; fill:currentColor; }

/* ---------- Mobile nav ---------- */

@media (max-width:900px){
  .nav-toggle{ display:flex; }
  .nav{
    position:fixed; inset:var(--header-h) 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:#0C0C0E;
    border-bottom:1px solid var(--line);
    padding:10px var(--pad) 26px;
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
    max-height:calc(100dvh - var(--header-h)); overflow-y:auto;
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav a{ padding:16px 0; border-bottom:1px solid var(--line-soft); font-size:1.02rem; }
  .nav a.is-active::after{ display:none; }
  .nav .btn{ margin-top:20px; justify-content:center; border-bottom:none; }
}

/* ---------- Motion ---------- */

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

.reveal{ opacity:0; transform:translateY(14px); }
.reveal.in{ opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease; }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; } }

/* ---------- Print ---------- */
@media print{
  body{ background:#fff; color:#000; }
  .site-header,.cta,.nav-toggle,.hero::before,.hero::after{ display:none !important; }
}
