/* assets/css/entry.css
   Entry page (/, index.php). These rules were the page's inline style elements, moved
   here unchanged and in order (SA-15, CSP). Theme colours and the card images come from
   theme-css.php?page=entry, linked after this file. */

/* Font: Jost, self-hosted (latin, variable weight; OFL, assets/fonts/Jost-OFL.txt) */
@font-face{
  font-family:'Jost';
  src:url('../fonts/jost-latin-variable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

  :root{--bg:#0d0d0f;--gold:#d8a13f;--gold-soft:#e6bd72;--coral:#ff4b4b;--coral-700:#e23a3a;--action:#d93030;--action-hover:#c62828;}
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{height:100%;}
  body{font-family:'Jost',system-ui,sans-serif;background:#0d0d0f;color:#fff;min-height:100dvh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;}
/* ───────── TOP BAR ───────── */
.top-bar{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px clamp(20px,5vw,60px);
  border-bottom:1px solid rgba(255,255,255,.09);
  flex-shrink:0;
}
.logo{ display:flex; align-items:center; gap:12px; text-decoration:none; color:#fff; }
.logo-mark{
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  display:grid; place-items:center;
  font-weight:600; font-size:.88rem; letter-spacing:-.02em; flex:none;
}
.logo-text{ font-size:1rem; font-weight:500; line-height:1.1; }
.logo-sub{ font-size:.52rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(255,255,255,.38); display:block; margin-top:3px; }
.logo-img{ max-height:56px; max-width:200px; width:auto; height:auto; object-fit:contain; display:block; } /* P-06 */
.top-contact{ font-size:.8rem; color:rgba(255,255,255,.45); }
.top-contact a{ color:rgba(255,255,255,.72); text-decoration:none; transition:.2s; }
.top-contact a:hover{ color:#d8a13f; }

main{ flex:1; display:flex; flex-direction:column; }

/* ───────── INTRO ───────── */
.intro{
  text-align:center;
  padding:clamp(30px,5vh,60px) clamp(20px,6vw,60px) clamp(20px,3.5vh,40px);
}
.intro-tag{
  display:inline-block; font-size:.7rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase;
  color:#d8a13f; margin-bottom:14px;
}
.intro h1{
  font-size:clamp(1.6rem,4vw,2.8rem); font-weight:600;
  line-height:1.05; letter-spacing:-.025em; margin-bottom:10px;
}
.intro p{ font-size:clamp(.88rem,1.4vw,1rem); color:rgba(255,255,255,.48); max-width:46ch; margin:0 auto; line-height:1.65; }

/* ───────── CARDS ───────── */
.cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(12px,1.8vw,22px);
  padding:0 clamp(20px,5vw,60px) clamp(24px,5vh,54px);
  flex:1; align-items:stretch;
}

.card{
  position:relative; overflow:hidden;
  border-radius:10px;
  display:flex; flex-direction:column;
  padding:clamp(26px,3.5vw,52px);
  text-decoration:none; color:#fff;
  min-height:clamp(260px,36vh,480px);
  transition:.55s cubic-bezier(.16,.84,.44,1);
}
.card::before{
  content:""; position:absolute; inset:0; z-index:0;
  background-image:var(--card-image, none); /* per card from Pages → Entry (theme-css.php) */
  background-size:cover; background-position:center;
  transition:transform .85s cubic-bezier(.16,.84,.44,1), filter .5s;
  filter:brightness(.52) saturate(.8);
}
.card:hover::before{ transform:scale(1.04); filter:brightness(.68) saturate(1); }
.card::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(160deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.6) 100%);
}
.card-body{ position:relative; z-index:2; display:flex; flex-direction:column; height:100%; }

.card-tag{
  display:inline-flex; align-items:center; gap:.6em;
  font-size:.66rem; font-weight:600; letter-spacing:.26em; text-transform:uppercase;
  color:rgba(255,255,255,.55); margin-bottom:14px;
}
.card-tag::before{ content:""; width:18px; height:1px; background:currentColor; }
.card-re .card-tag{ color:var(--coral); }
.card-cr .card-tag{ color:var(--gold); }

.card h2{
  font-size:clamp(1.5rem,2.8vw,2.6rem); font-weight:600;
  line-height:1.02; letter-spacing:-.025em; margin-bottom:10px;
}
.card-desc{
  font-size:clamp(.83rem,1vw,.96rem); color:rgba(255,255,255,.6);
  line-height:1.62; max-width:28ch; margin-bottom:22px;
}

.chips{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:24px; }
.chips span{
  font-size:.7rem; font-weight:500;
  border:1px solid rgba(255,255,255,.18); border-radius:30px;
  padding:5px 11px; color:rgba(255,255,255,.55);
  transition:.3s;
}
.card:hover .chips span{ border-color:rgba(255,255,255,.38); color:rgba(255,255,255,.88); }

.card-spacer{ flex:1; }

.card-cta{
  display:inline-flex; align-items:center; gap:.65em;
  font-family:'Jost',system-ui,sans-serif;
  font-size:clamp(.88rem,.95vw,1rem); font-weight:600; letter-spacing:.01em;
  padding:16px 30px; border-radius:5px; border:none; cursor:pointer;
  transition:.38s cubic-bezier(.16,.84,.44,1);
  text-decoration:none; align-self:flex-start;
}
.card-cta svg{ width:18px; height:12px; flex:none; transition:transform .38s; }
.card:hover .card-cta svg{ transform:translateX(5px); }
.card-re .card-cta{ background:var(--action); color:#fff; } /* D22 */
.card-re:hover .card-cta{ background:var(--action-hover); }
.card-cr .card-cta{ background:var(--gold); color:var(--bg); }
.card-cr:hover .card-cta{ background:var(--gold-soft); }

.card-bar{
  position:absolute; bottom:0; left:0; right:0; height:3px; z-index:3;
  transform:scaleX(0); transform-origin:left;
  transition:.55s cubic-bezier(.16,.84,.44,1);
}
.card-re .card-bar{ background:linear-gradient(to right,var(--coral),var(--coral-700)); }
.card-cr .card-bar{ background:linear-gradient(to right,var(--gold),var(--gold-soft)); }
.card:hover .card-bar, .card:focus-visible .card-bar{ transform:scaleX(1); }
.card:focus-visible{ outline:3px solid var(--gold); outline-offset:4px; }
.top-bar a:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* ───────── FOOTER ───────── */
.home-foot{
  text-align:center; padding:14px 20px;
  font-size:.74rem; color:rgba(255,255,255,.24);
  border-top:1px solid rgba(255,255,255,.07);
  flex-shrink:0;
}

@media (max-width:860px){
  .chips{ display:none; }
  .card h2{ font-size:clamp(1.4rem,3.5vw,2rem); }
  .card-desc{ max-width:none; }
}
@media (max-width:767.98px){
  .logo-img{ max-height:44px; }
}
@media (max-width:600px){
  .top-contact{ display:none; }
  .cards{ grid-template-columns:1fr; padding-inline:16px; padding-bottom:24px; gap:14px; }
  .card{ min-height:clamp(200px,50vw,300px); padding:28px 22px; }
  .card::after{ background:linear-gradient(160deg,rgba(0,0,0,.1),rgba(0,0,0,.72)); }
  .card h2{ font-size:clamp(1.4rem,6vw,1.9rem); }
  .card-desc{ font-size:.88rem; }
  .card-cta{ padding:14px 24px; font-size:.88rem; }
  .intro{ padding:22px 18px 18px; }
  .intro h1{ font-size:clamp(1.4rem,5.5vw,2rem); }
}
@media (max-width:380px){
  .card{ min-height:180px; padding:22px 18px; }
  .card h2{ font-size:1.3rem; }
}

    a{color:inherit;text-decoration:none;}
    button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;}
    svg{overflow:hidden;}

/* Tap and click feedback (0.9.6): no blue browser flash, a short press effect in its place. */
html{ -webkit-tap-highlight-color:transparent; }
a, button, summary, label, select, [role="button"], [role="tab"], [tabindex]{ -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
a:active, button:active, summary:active, label:active, [role="button"]:active, [role="tab"]:active{ opacity:.72; transition-duration:.08s; }
