.atg-section{ --ink:#0A2A20; --emerald:#0B3D2E; --emerald-mid:#1C6B4F; --gold:#B8860B; --gold-deep:#8f6a08; --walnut:#6B4226; --bg:#FBF8F0; --sand:#F0E6D2; --sand-line:#e2d3ab; --card:#FEFCF6; --radius-card:22px; --radius-pill:999px; --ease:cubic-bezier(.22,1,.36,1); position:relative; background:radial-gradient(ellipse 900px 500px at 15% -10%, rgba(184,134,11,0.06), transparent 60%), radial-gradient(ellipse 700px 500px at 100% 110%, rgba(184,134,11,0.04), transparent 55%), var(--bg); padding:96px 24px 110px; overflow:hidden; font-family:'Jost', sans-serif; isolation:isolate; }

.atg-bg-pattern{ position:absolute; inset:0; opacity:.04; pointer-events:none; z-index:0; }
.atg-glow{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0; }
.atg-glow--one{ width:420px; height:420px; left:-120px; top:-60px; background:radial-gradient(circle, rgba(184,134,11,.08), transparent 70%); animation:atg-drift-a 22s ease-in-out infinite; }
.atg-glow--two{ width:520px; height:520px; right:-160px; bottom:-140px; background:radial-gradient(circle, rgba(28,77,48,.06), transparent 70%); animation:atg-drift-b 26s ease-in-out infinite; }
@keyframes atg-drift-a{ 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(40px,30px) scale(1.12);} }
@keyframes atg-drift-b{ 0%,100%{transform:translate(0,0) scale(1);} 50%{transform:translate(-30px,-25px) scale(1.08);} }

.atg-khatam{ position:absolute; top:6%; right:4%; width:260px; height:260px; opacity:.04; z-index:0; animation:atg-rotate 110s linear infinite; pointer-events:none; }
@keyframes atg-rotate{ to{ transform:rotate(360deg); } }

.atg-frieze{ position:absolute; left:0; right:0; height:26px; opacity:.25; z-index:0; pointer-events:none; }
.atg-frieze--top{ top:0; }
.atg-frieze--bottom{ bottom:0; transform:scaleY(-1); }

.atg-header{ position:relative; z-index:2; max-width:760px; margin:0 auto 64px; text-align:center; }
.atg-reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--delay,0s); }
.atg-reveal.is-visible{ opacity:1; transform:translateY(0); }
.atg-badge{ display:inline-flex; align-items:center; gap:10px; padding:10px 24px; border-radius:var(--radius-pill); border:1px solid var(--sand-line); background:linear-gradient(180deg, rgba(184,134,11,.08), rgba(184,134,11,.02)); color:var(--gold-deep); font-family:'Jost', sans-serif; font-weight:600; font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; }
.atg-badge svg{ width:15px; height:15px; flex-shrink:0; }
.atg-title{ font-family:'Marcellus', serif; font-size:clamp(2.4rem, 5.4vw, 4rem); line-height:1.08; margin:26px 0 0; letter-spacing:.01em; color:var(--emerald); }
.atg-subtitle{ font-family:'Cormorant Garamond', serif; font-style:italic; font-weight:500; font-size:clamp(1.05rem, 1.6vw, 1.3rem); color:var(--walnut); margin:18px auto 0; max-width:560px; line-height:1.5; }
.atg-divider{ width:min(320px, 70%); height:56px; margin:34px auto 30px; }
.atg-divider svg{ width:100%; height:100%; overflow:visible; }
.atg-med-vine{ fill:none; stroke:var(--gold); stroke-width:1.6; stroke-linecap:round; stroke-dasharray:180; stroke-dashoffset:180; transition:stroke-dashoffset 1.6s var(--ease) .3s; }
.atg-reveal.is-visible .atg-med-vine{ stroke-dashoffset:0; }
.atg-med-leaf{ fill:var(--gold); opacity:.85; }
.atg-rosette-ring{ fill:none; stroke:var(--gold-deep); stroke-width:1.3; opacity:.7; }
.atg-rosette-petal{ fill:var(--gold); }
.atg-rosette-center{ fill:var(--gold-deep); }
.atg-rosette-group{ transform-origin:center; animation:atg-breathe 5s ease-in-out infinite; }
@keyframes atg-breathe{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.08); } }

.atg-cta{ position:relative; display:inline-flex; align-items:center; gap:12px; padding:15px 34px; border-radius:var(--radius-pill); background:var(--emerald); border:1.5px solid var(--emerald); color:var(--bg); font-family:'Jost', sans-serif; font-weight:600; font-size:14.5px; letter-spacing:.05em; text-decoration:none; cursor:pointer; overflow:visible; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s var(--ease); }
.atg-cta:hover, .atg-cta:focus-visible{ transform:translateY(-3px); box-shadow:0 14px 34px -14px rgba(11,61,46,.35); background:var(--gold-deep); border-color:var(--gold-deep); }
.atg-cta:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; }
.atg-cta svg{ width:16px; height:16px; transition:transform .35s var(--ease); }
.atg-cta:hover svg, .atg-cta:focus-visible svg{ transform:translateX(5px); }

/* Grid */
.atg-grid{ position:relative; z-index:2; max-width:1240px; margin:0 auto; display:grid; grid-template-columns:repeat(4, 1fr); gap:28px; }
@media (max-width:980px){ .atg-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .atg-grid{ grid-template-columns:1fr; } }

.atg-card{ position:relative; border-radius:var(--radius-card); cursor:pointer; text-decoration:none; overflow:hidden; }
.atg-card::before{ content:""; position:absolute; inset:-1.5px; border-radius:inherit; background:conic-gradient(from 0deg, transparent 0 84%, var(--gold) 92%, transparent 100%); opacity:0; transition:opacity .5s ease; animation:atg-spin 3.6s linear infinite; z-index:0; }
.atg-card:hover::before, .atg-card:focus-visible::before{ opacity:1; }
@keyframes atg-spin{ to{ transform:rotate(360deg); } }

.atg-card-inner{ position:relative; z-index:1; background:var(--card); border:1px solid var(--sand-line); border-radius:inherit; overflow:hidden; height:100%; display:flex; flex-direction:column; transition:transform .5s var(--ease), border-color .5s ease, box-shadow .5s ease; box-shadow:0 2px 8px rgba(10,42,32,.06); }
.atg-card:hover .atg-card-inner, .atg-card:focus-visible .atg-card-inner{ transform:translateY(-8px); border-color:var(--gold); box-shadow:0 18px 40px -12px rgba(10,42,32,.15); }
.atg-card:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:5px; }

.atg-card-img-wrap{ position:relative; aspect-ratio:4/3.1; overflow:hidden; background:var(--sand); }
.atg-card-img{ width:100%; height:100%; object-fit:cover; display:block; filter:saturate(.9) contrast(1.02); transform:scale(1.02); transition:transform .8s var(--ease); }
.atg-card:hover .atg-card-img, .atg-card:focus-visible .atg-card-img{ transform:scale(1.12); }
.atg-card-img-overlay{ position:absolute; inset:0; background:linear-gradient(185deg, rgba(251,248,240,.05) 0%, rgba(251,248,240,.25) 68%, rgba(251,248,240,.6) 100%); pointer-events:none; }
.atg-card-tendril{ position:absolute; top:10px; right:10px; width:56px; height:56px; opacity:.85; filter:drop-shadow(0 1px 3px rgba(10,42,32,.15)); }
.atg-tendril-stem{ fill:none; stroke:var(--gold-deep); stroke-width:1.8; stroke-linecap:round; }
.atg-tendril-leaf{ fill:var(--gold); }
.atg-tendril-bud{ fill:var(--gold-deep); }

.atg-seal{ position:absolute; left:16px; bottom:-26px; width:64px; height:64px; border-radius:50%; background:radial-gradient(circle at 35% 30%, var(--emerald-mid), var(--emerald)); border:2px solid var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 8px 18px -6px rgba(10,42,32,.25), 0 0 0 4px var(--card); transition:box-shadow .4s ease, transform .4s ease; }
.atg-card:hover .atg-seal, .atg-card:focus-visible .atg-seal{ box-shadow:0 8px 22px -4px rgba(184,134,11,.35), 0 0 0 4px var(--card); transform:scale(1.06); }
.atg-seal-day{ font-family:'Marcellus', serif; font-size:19px; color:var(--bg); line-height:1; }
.atg-seal-month{ font-family:'Jost', sans-serif; font-size:9px; letter-spacing:.14em; color:var(--sand); margin-top:2px; }

.atg-card-body{ padding:40px 22px 24px; flex:1; display:flex; flex-direction:column; gap:8px; }
.atg-card-title{ font-family:'Marcellus', serif; font-size:19px; color:var(--emerald); margin:0; line-height:1.3; }
.atg-card-desc{ font-family:'Jost', sans-serif; font-size:13.5px; color:var(--walnut); line-height:1.55; margin:0; }
.atg-card-view{ margin-top:auto; padding-top:14px; display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); opacity:0; transform:translateX(-6px); transition:opacity .4s ease, transform .4s ease; }
.atg-card:hover .atg-card-view, .atg-card:focus-visible .atg-card-view{ opacity:1; transform:translateX(0); }
.atg-card-view svg{ width:12px; height:12px; }

/* Lightbox */
.atg-modal{ position:fixed; inset:0; z-index:50; display:flex; align-items:center; justify-content:center; padding:24px; visibility:hidden; opacity:0; transition:opacity .35s ease, visibility 0s linear .35s; }
.atg-modal.is-open{ visibility:visible; opacity:1; transition:opacity .35s ease; }
.atg-modal-backdrop{ position:absolute; inset:0; background:rgba(10,42,32,.85); backdrop-filter:blur(6px); }
.atg-modal-frame{ position:relative; z-index:1; max-width:640px; width:100%; background:var(--card); border:1px solid var(--sand-line); border-radius:24px; padding:14px; transform:scale(.92) translateY(14px); transition:transform .4s var(--ease); box-shadow:0 30px 80px -20px rgba(10,42,32,.4); }
.atg-modal.is-open .atg-modal-frame{ transform:scale(1) translateY(0); }
.atg-modal-img-wrap{ position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--sand-line); }
.atg-modal-img{ width:100%; display:block; }
.atg-modal-close{ position:absolute; top:-14px; right:-14px; width:36px; height:36px; border-radius:50%; background:var(--emerald); border:2px solid var(--card); color:var(--bg); font-size:16px; display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:2; }
.atg-modal-close:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }
.atg-modal-text{ padding:20px 10px 8px; text-align:center; }
.atg-modal-date{ font-family:'Jost', sans-serif; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); }
.atg-modal-title{ font-family:'Marcellus', serif; font-size:22px; color:var(--emerald); margin:8px 0 6px; }
.atg-modal-desc{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:16px; color:var(--walnut); margin:0; }

@media (prefers-reduced-motion: reduce){
  .atg-glow, .atg-khatam, .atg-rosette-group, .atg-card::before{ animation:none !important; }
  .atg-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  .atg-med-vine{ stroke-dashoffset:0 !important; transition:none !important; }
  .atg-card-img, .atg-card-inner, .atg-cta, .atg-seal{ transition:none !important; }
}

/* ── Mobile fixes ── */
@media (max-width: 560px) {
  .atg-section { padding: 48px 16px 56px; }
  .atg-header { margin-bottom: 36px; }
}