/* ============================================================
   A.R.T.F.O. SITE STYLESHEET — Obsidian-Gold theme
   Uniform with The Partnership Program (TPP / SECORED.html).
   Same CSS variable names + class hooks — restyled so the
   modernized AMCF pages match the TPP visual idiom.
   ============================================================ */

:root[data-theme="dark"]{
  --gold:#C9A24B;
  --gold-bright:#E5C26A;
  --gold-dim:#8C7233;
  --bg:#0A0A0A;
  --bg-2:#111111;
  --bg-3:#161616;
  --line:#2A2417;
  --line-bright:#3A3220;
  --text:#E8E2D2;
  --text-dim:#A99F88;
  --text-muted:#6E6754;
  --accent-bg:#1A1508;
  --header-grad-1:#0F0C04;
  --header-grad-2:#0A0A0A;
  --nav-bg:#080705;
  --footer-bg:#080705;
  --partner-blue:#1E3A5F;
  --partner-blue-dim:#0F1E33;
  --shadow:0 18px 45px rgba(0,0,0,0.55);
  --radius:4px;
  /* legacy aliases used by AMCF markup */
  --ink:var(--text);
  --muted:var(--text-dim);
  --paper:var(--bg);
  --soft:var(--bg-2);
  --mist:var(--bg-2);
  --nav:var(--nav-bg);
  --teal:var(--gold);
  --blue:var(--gold-bright);
}

:root[data-theme="light"]{
  --gold:#8C7233;
  --gold-bright:#A8862F;
  --gold-dim:#C9A24B;
  --bg:#FAF6EC;
  --bg-2:#F2EBD8;
  --bg-3:#EBE2C8;
  --line:#D8CBA3;
  --line-bright:#C5B17A;
  --text:#1A1508;
  --text-dim:#4A3F25;
  --text-muted:#6E6754;
  --accent-bg:#F4ECD3;
  --header-grad-1:#F4ECD3;
  --header-grad-2:#FAF6EC;
  --nav-bg:#F2EBD8;
  --footer-bg:#F2EBD8;
  --partner-blue:#3A5A85;
  --partner-blue-dim:#D6E0EE;
  --shadow:0 18px 45px rgba(140,114,51,0.18);
  --radius:4px;
  --ink:var(--text);
  --muted:var(--text-dim);
  --paper:var(--bg);
  --soft:var(--bg-2);
  --mist:var(--bg-2);
  --nav:var(--nav-bg);
  --teal:var(--gold);
  --blue:var(--gold-bright);
}

/* Default to dark before JS runs */
:root{ color-scheme: dark; }

*{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  color:var(--text);
  background:var(--bg);
  font-family:Georgia,'Times New Roman',serif;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  transition:background 0.3s,color 0.3s;
}

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

a{
  color:var(--gold-bright);
  text-decoration:none;
  border-bottom:1px solid var(--gold-dim);
}
a:hover{ color:var(--text); border-bottom-color:var(--gold-bright); }
:root[data-theme="dark"] a:hover{ color:#fff; }

/* ===================== HEADER / NAV ===================== */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:var(--nav-bg);
  border-bottom:1px solid var(--line-bright);
  box-shadow:0 10px 30px rgba(0,0,0,0.35);
}

.site-nav{
  width:min(1180px, calc(100% - 32px));
  min-height:64px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  position:relative;
}

.site-brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--gold-bright);
  font-family:'Trajan Pro','Cinzel',Georgia,serif;
  font-size:0.85rem;
  letter-spacing:0.3em;
  text-transform:uppercase;
  font-weight:400;
  text-decoration:none;
  border:none;
}
.site-brand:hover{ color:var(--gold); border:none; }

.site-brand img{
  width:46px;
  height:46px;
  object-fit:contain;
  padding:0;
  background:transparent;
  border-radius:0;
}

.site-menu-toggle{
  display:none;
  padding:8px 14px;
  color:var(--gold);
  font:inherit;
  font-family:Georgia,serif;
  font-size:0.78rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  border:1px solid var(--gold-dim);
  border-radius:2px;
  background:transparent;
  cursor:pointer;
}
.site-menu-toggle:hover{ color:var(--gold-bright); border-color:var(--gold); }

.site-menu{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:0;
}

.site-menu a{
  color:var(--text-dim);
  text-decoration:none;
  font-family:Georgia,serif;
  font-size:0.78rem;
  font-weight:400;
  letter-spacing:0.15em;
  text-transform:uppercase;
  padding:10px 14px;
  border:none;
  border-radius:0;
}
.site-menu a:hover,
.site-menu a:focus-visible,
.site-menu a[aria-current="page"]{
  color:var(--gold-bright);
  background:transparent;
  outline:none;
  border:none;
}

/* Theme toggle button — fixed at top-right of viewport, matches SECORED.html */
.theme-toggle{
  position:fixed;
  top:14px;
  right:14px;
  z-index:1100;
  background:var(--bg);
  border:1px solid var(--gold-dim);
  color:var(--gold);
  cursor:pointer;
  padding:0.5rem 0.75rem;
  font-family:Georgia,serif;
  font-size:0.7rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  border-radius:2px;
  transition:all 0.3s;
}
.theme-toggle:hover{ border-color:var(--gold); color:var(--gold-bright); }

/* ===================== MAIN / SECTION ===================== */
main{ overflow:hidden; }

section{
  position:relative;
  padding:64px max(22px, calc((100vw - 1120px) / 2));
}

/* Strip the original light-grid backgrounds */
section::before,
section::after{ display:none !important; content:none !important; }

/* Subtle alternating row tone like TPP's accent-bg */
section:nth-of-type(even){ background:var(--bg-2); }

.container,
.container-fluid,
.wrapper,
.row,
.carousel,
.carousel-inner{
  width:min(1120px, 100%);
  margin-inline:auto;
}

.row{
  display:grid;
  grid-template-columns:repeat(12, minmax(0, 1fr));
  gap:24px;
  align-items:start;
}

[class*="col-"]{ min-width:0; grid-column:span 12; }
.col-lg-4{ grid-column:span 4; }
.col-lg-3{ grid-column:span 3; }
.col-lg-6, .col-md-5, .col-md-7{ grid-column:span 6; }
.col-lg-8{ grid-column:2 / span 10; }
.col-lg-10{ grid-column:2 / span 10; }
.col-lg-12{ grid-column:span 12; }
.offset-lg-6{ grid-column-start:7; }

/* ===================== TYPOGRAPHY ===================== */
h1, h2, h3, h4, h5, h6,
.section-title, .card-title{
  margin-top:0;
  font-family:'Trajan Pro','Cinzel',Georgia,serif;
  font-weight:400;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--gold-bright);
  line-height:1.18;
}

.header1,
.header2{
  min-height:48vh;
  display:flex;
  align-items:center;
  color:var(--text);
  text-align:center;
  background:linear-gradient(180deg, var(--header-grad-1) 0%, var(--header-grad-2) 100%);
  border-bottom:1px solid var(--line-bright);
}

.header1 .section-title,
.header2 .section-title{
  max-width:920px;
  margin:0 auto;
  font-size:clamp(1.7rem, 3.6vw, 3rem);
  color:var(--gold-bright);
  text-wrap:balance;
}

.section-title,
.display-2,
h2, h3{
  font-size:clamp(1.4rem, 2.25vw, 1.95rem);
  padding-bottom:0.6rem;
  border-bottom:1px solid var(--line-bright);
  margin-bottom:1.25rem;
}

/* Don't underline titles used as plain card/header headlines */
.header1 .section-title,
.header2 .section-title,
.card .card-title,
.card-title,
.carousel-caption .section-subtitle,
.plan .name,
.price-text,
.amount-text{
  border-bottom:none;
  padding-bottom:0;
}

.section-subtitle,
.card-subtitle,
h5, h6{
  font-family:Georgia,serif;
  font-size:clamp(1.05rem, 1.35vw, 1.3rem);
  color:var(--gold);
  font-style:italic;
  font-weight:700;
}

.display-4, .display-7,
p, li, .text, .desc, .section-text, .amount-number{
  font-family:Georgia,serif;
  font-size:clamp(0.98rem, 1vw, 1.08rem);
  color:var(--text);
  font-weight:400;
  text-transform:none;
  letter-spacing:0;
}

p{ margin-bottom:1.1rem; }

.section-title, .section-subtitle, .section-text, .text, .desc{
  max-width:920px;
}

/* ===================== TEXT-COLOR LEGACY UTILITIES ===================== */
.text-primary, .text-secondary, .text-success, .text-danger, .text-black, .text-white{
  color:var(--gold-bright) !important;
}
.text-muted{ color:var(--text-muted) !important; }
strong, b{ color:var(--gold-bright); }

/* ===================== CARDS / WRAPPERS ===================== */
.text-wrapper,
.card,
.card-wrap,
.item-wrapper,
.price,
.carousel-item,
.form form,
.content-wrap,
.card-box,
.card-item,
.plan,
.menu-group,
.menu-item,
.menu-box{
  position:relative;
  background:var(--bg-2);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:none;
}

.text-wrapper, .price, .card-box, .content-wrap, .form form, .carousel-caption, .plan{
  padding:1.5rem 1.75rem;
}

.card, .card-wrap, .item-wrapper, .card-item{
  padding:0;
  overflow:hidden;
}

.team2 .card + .card,
.card-item + .card-item{ margin-top:24px; }

.card-wrapper{ width:100%; padding:0; }
.card-wrapper .row{ gap:0; align-items:stretch; }
.card-wrapper .image-wrapper,
.card-wrapper .card-box{ height:100%; }

.card-box{
  display:flex;
  flex-direction:column;
  justify-content:center;
  border:0;
  box-shadow:none;
  border-radius:0;
  background:transparent;
}

.image-wrapper,
.image-wrap,
.inner-image-wrapper{
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--bg-3);
}

.image-wrapper img,
.image-wrap img,
.item-wrapper > img,
.card-item img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  transition:transform 700ms ease, filter 0.3s;
}

:root[data-theme="dark"] .image-wrapper img,
:root[data-theme="dark"] .image-wrap img,
:root[data-theme="dark"] .item-wrapper > img,
:root[data-theme="dark"] .card-item img{
  filter:brightness(0.85) sepia(0.18);
}

.card-wrapper .image-wrapper img{ height:100%; min-height:280px; aspect-ratio:auto; }

.image-wrapper:hover img,
.image-wrap:hover img,
.item-wrapper:hover > img,
.card-item:hover img{ transform:scale(1.035); }

.inner-image-wrapper{ margin:0 auto 24px; }

/* ===================== PRICING ===================== */
.price-text-wrap{ display:grid; gap:18px; }

.price-number,
.plan .price{
  margin:0;
  font-family:Georgia,serif;
  font-size:clamp(1.8rem, 2.6vw, 2.4rem);
  font-weight:700;
  color:var(--gold-bright);
  font-variant-numeric:tabular-nums;
}

.plan .name{
  font-family:'Trajan Pro','Cinzel',Georgia,serif;
  color:var(--gold-bright);
  font-size:1.1rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  font-weight:400;
  margin:0 0 1rem;
  padding-bottom:0.75rem;
  border-bottom:1px solid var(--line-bright);
}

.plan .month{
  color:var(--text-dim);
  font-style:italic;
  font-size:0.95rem;
  margin:0 0 1rem;
}

.plan .list{
  list-style:none;
  margin:0;
  padding:0;
  text-align:left;
}
.plan .list li{
  padding:0.5rem 0;
  border-bottom:1px dashed var(--line);
  color:var(--text);
}
.plan .list li:last-child{ border-bottom:none; }

.line{
  height:1px;
  margin:12px 0;
  background:var(--line);
}

/* ===================== BUTTONS ===================== */
.buttons-wrap,
.section-btn{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}

.btn,
button.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.85rem 1.75rem;
  color:#0A0A0A;
  font-family:'Trajan Pro','Cinzel',Georgia,serif;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid var(--gold);
  border-radius:2px;
  background:var(--gold);
  box-shadow:none;
  cursor:pointer;
  transition:background 0.2s, color 0.2s;
}

.btn:hover,
.btn:focus-visible{
  background:var(--gold-bright);
  color:#0A0A0A;
  outline:none;
  border-color:var(--gold-bright);
}

.btn-success{
  background:transparent;
  color:var(--gold-bright);
  border:1px solid var(--gold);
}
.btn-success:hover{ background:var(--accent-bg); color:var(--gold-bright); }

.btn-primary{
  background:var(--gold);
  color:#0A0A0A;
}

/* ===================== GRIDS / CAROUSELS ===================== */
.gallery1 .row,
.carousel-inner,
.people2 .features-wrapper{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
}

.carousel-inner{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
.carousel-item{ display:block; }

.carousel-caption{
  position:static;
  color:var(--text);
  min-height:260px;
  background:var(--bg-2);
  border:1px solid var(--line);
  border-top:3px solid var(--gold);
  border-radius:0 0 var(--radius) var(--radius);
  box-shadow:none;
  padding:1.5rem 1.75rem;
}

.carousel-indicators,
.carousel-control,
.carousel-control-prev,
.carousel-control-next,
.circle-blur,
.ornament{ display:none; }

.people3, .people2{ background:var(--bg-2); }
.people2 .card-item{ height:100%; }
.people2 .image-wrapper{ border-radius:var(--radius) var(--radius) 0 0; }
.people2 .card-box,
.people2 .card-title{ padding:22px; }

/* ===================== FORMS ===================== */
.form form{ max-width:760px; margin-inline:auto; }
.form .dragArea{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}
.form .dragArea > .col-lg-12,
.form textarea,
.form .col-auto{ grid-column:1 / -1; }

input, textarea, select{
  width:100%;
  padding:13px 14px;
  color:var(--text);
  font:inherit;
  font-family:Georgia,serif;
  border:1px solid var(--line-bright);
  border-radius:2px;
  background:var(--bg);
}
input:focus, textarea:focus, select:focus{
  outline:none;
  border-color:var(--gold);
}

textarea{ min-height:160px; resize:vertical; }

.form-group, .mb-3{ margin-bottom:0; }

/* ===================== FOOTER ===================== */
.footer1{
  padding-block:42px;
  color:var(--text-muted);
  background:var(--footer-bg);
  border-top:1px solid var(--line-bright);
}
.footer1::before, .footer1::after{ display:none; }
.footer1 a{ color:var(--gold); border-bottom:none; }
.footer1 a:hover{ color:var(--gold-bright); }

/* ===================== MOBIRISE ICON FONT FALLBACK =====================
   Some pages still use the Mobirise icon classes for checkmarks.
   Provide a unicode fallback so the icon space looks right even
   when the Mobirise icon font isn't loaded. */
.mobi-mbri.mobi-mbri-success::before{
  content:"§";
  color:var(--gold);
  font-family:Georgia,serif;
  font-style:italic;
  font-weight:700;
  margin-right:0.15rem;
}
.iconfont{ display:inline-block; }

/* ===================== UTILITY ===================== */
.align-center{ text-align:center; }
.align-left{ text-align:left; }
.align-right{ text-align:right; }

/* Subtle reveal */
.reveal-ready{
  opacity:0;
  transform:translateY(18px);
  transition:opacity 650ms ease, transform 650ms ease;
}
.reveal-ready.is-visible{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:0.01ms !important;
  }
}

/* ===================== RESPONSIVE ===================== */
@media (max-width: 920px){
  .site-nav{
    min-height:60px;
    flex-wrap:wrap;
    padding-block:10px;
  }
  .site-menu-toggle{ display:inline-flex; }
  /* keep theme-toggle fixed in mobile too, but slightly smaller offset */
  .theme-toggle{ top:10px; right:10px; padding:0.4rem 0.6rem; font-size:0.65rem; }

  .site-menu{
    display:none;
    width:100%;
    flex-direction:column;
    align-items:stretch;
    padding-bottom:10px;
  }
  .site-menu.is-open{ display:flex; }
  .site-menu a{ background:transparent; padding:0.7rem 0.5rem; border-top:1px solid var(--line); }

  section{ padding-block:48px; }

  .row,
  .gallery1 .row,
  .carousel-inner,
  .people2 .features-wrapper,
  .form .dragArea{
    grid-template-columns:1fr;
  }

  [class*="col-"],
  .col-lg-3, .col-lg-4, .col-lg-6, .col-md-5, .col-md-7,
  .col-lg-8, .col-lg-10, .offset-lg-6{
    grid-column:1 / -1;
  }

  .header1, .header2{
    min-height:42vh;
    background-attachment:scroll;
  }

  .card-wrapper .image-wrapper img{ min-height:220px; }
  .carousel-caption{ min-height:0; }
}
