/* =========================================================
   Método Brújula™ — styles.css
   Reclut-Arte | Landing page de alta gama
   Tipografías: Playfair Display, Lato, Allura (Google Fonts)
   ========================================================= */

:root{
    --ink:#0D0D0D;
    --paper:#F6F2E9;
    --gold:#FFDE59;
    --gold-soft:rgba(255,222,89,0.12);
    --gold-line:rgba(255,222,89,0.35);
    --grey-soft:#B7B4AC;
    --grey-faint:#84817A;
    --hair:rgba(255,255,255,0.09);
  }

*{box-sizing:border-box;}

html,body{margin:0;padding:0;}

body{
    background:var(--ink);
    font-family:'Lato',sans-serif;
    color:#EDEBE6;
    overflow-x:hidden;
  }

.stage{
    position:relative;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    background:
      radial-gradient(1100px 620px at 82% 8%, rgba(255,222,89,0.06), transparent 60%),
      var(--ink);
  }

/* ---------- NAV ---------- */
  .nav{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:28px 6vw 0 6vw;
    z-index:5;
  }

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

.brand img{
    height:34px;
    width:auto;
    opacity:.95;
  }

.brand span{
    font-family:'Lato',sans-serif;
    font-size:11px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--grey-soft);
    padding-left:12px;
    border-left:1px solid var(--hair);
  }

.nav-cta{
    font-family:'Lato',sans-serif;
    font-size:12.5px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#EDEBE6;
    text-decoration:none;
    border:1px solid var(--hair);
    padding:11px 22px;
    border-radius:999px;
    transition:border-color .35s ease, color .35s ease, background .35s ease;
    white-space:nowrap;
  }

.nav-cta:hover{
    border-color:var(--gold-line);
    color:var(--gold);
  }

/* ---------- HERO GRID ---------- */
  .hero{
    flex:1;
    display:grid;
    grid-template-columns:1.05fr 0.95fr;
    align-items:center;
    gap:2vw;
    padding:6vh 6vw 8vh 6vw;
    position:relative;
  }

.copy{
    position:relative;
    z-index:3;
    max-width:640px;
  }

.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-size:11.5px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--gold);
    border:1px solid var(--gold-line);
    background:var(--gold-soft);
    padding:9px 18px 9px 14px;
    border-radius:999px;
    margin-bottom:34px;
    opacity:0;
    animation:riseIn .9s cubic-bezier(.22,.68,.35,1) .15s forwards;
  }

.eyebrow .dot{
    width:5px;height:5px;border-radius:50%;
    background:var(--gold);
    flex:none;
  }

h1{
    font-family:'Playfair Display',serif;
    font-weight:500;
    font-size:clamp(2.5rem, 4.3vw, 4rem);
    line-height:1.12;
    letter-spacing:-.01em;
    margin:0 0 30px 0;
    color:#F6F4EF;
    opacity:0;
    animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .35s forwards;
  }

h1 em{
    font-style:italic;
    font-family:'Allura', cursive;
    font-size:1.5em;
    font-weight:400;
    color:var(--gold);
    padding:0 .06em;
    vertical-align:-0.06em;
  }

.sub{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:clamp(1rem, 1.15vw, 1.15rem);
    line-height:1.75;
    color:var(--grey-soft);
    margin:0 0 14px 0;
    max-width:520px;
    opacity:0;
    animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .55s forwards;
  }

.sub.lead{
    color:#DAD7CF;
    font-weight:400;
  }

.divider-word{
    display:flex;
    align-items:center;
    gap:16px;
    margin:30px 0 34px 0;
    opacity:0;
    animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .7s forwards;
  }

.divider-word .ln{
    height:1px;
    width:46px;
    background:var(--gold-line);
  }

.divider-word span{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-size:1.05rem;
    color:var(--gold);
    letter-spacing:.02em;
  }

.cta-row{
    display:flex;
    align-items:center;
    gap:22px;
    opacity:0;
    animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .85s forwards;
  }

.cta-primary{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Lato',sans-serif;
    font-weight:700;
    font-size:13.5px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink);
    background:var(--gold);
    padding:18px 34px;
    border-radius:999px;
    text-decoration:none;
    overflow:hidden;
    isolation:isolate;
    transition:transform .45s cubic-bezier(.22,.68,.35,1), box-shadow .45s ease;
    box-shadow:0 0 0 0 rgba(255,222,89,0);
  }

.cta-primary::before{
    content:"";
    position:absolute;
    inset:0;
    background:#fff;
    transform:translateX(-101%);
    transition:transform .45s cubic-bezier(.22,.68,.35,1);
    z-index:-1;
  }

.cta-primary:hover::before{ transform:translateX(0); }

.cta-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 30px -10px rgba(255,222,89,0.35);
  }

.cta-primary .arrow{
    transition:transform .4s cubic-bezier(.22,.68,.35,1);
  }

.cta-primary:hover .arrow{ transform:translateX(4px); }

.cta-note{
    font-size:12px;
    color:var(--grey-faint);
    letter-spacing:.02em;
  }

/* ---------- PHOTO ---------- */
  .photo-wrap{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:center;
    align-items:center;
    height:100%;
  }

.compass{
    position:absolute;
    width:640px;
    height:640px;
    right:-140px;
    top:50%;
    transform:translateY(-50%);
    opacity:.16;
    z-index:1;
    pointer-events:none;
    animation:spin 140s linear infinite;
  }

@media(prefers-reduced-motion: reduce){
    .compass{ animation:none; }
  }

.frame{
    position:relative;
    width:min(360px, 82%);
    opacity:0;
    animation:photoIn 1.3s cubic-bezier(.22,.68,.35,1) .3s forwards;
  }

.frame::before{
    content:"";
    position:absolute;
    top:22px; left:22px;
    right:-22px; bottom:-22px;
    border:1px solid var(--gold-line);
    border-radius:2px;
    z-index:0;
  }

.frame .imgbox{
    position:relative;
    z-index:1;
    aspect-ratio:4/5;
    overflow:hidden;
    border-radius:2px;
    box-shadow:0 40px 80px -30px rgba(0,0,0,0.7);
  }

.frame .imgbox img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 18%;
    filter:grayscale(.18) contrast(1.04) brightness(.98);
    transform:scale(1.02);
    transition:transform 1.2s cubic-bezier(.22,.68,.35,1), filter .6s ease;
  }

.frame:hover .imgbox img{
    transform:scale(1.07);
    filter:grayscale(0) contrast(1.05) brightness(1);
  }

.frame .tag{
    position:absolute;
    left:-18px;
    bottom:36px;
    background:var(--ink);
    border:1px solid var(--gold-line);
    padding:14px 22px;
    z-index:2;
    max-width:210px;
  }

.frame .tag p{
    margin:0;
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-size:14px;
    line-height:1.4;
    color:#F1EFE9;
  }

.frame .tag p b{
    color:var(--gold);
    font-style:normal;
    font-weight:600;
  }

@keyframes riseIn{
    from{ opacity:0; transform:translateY(16px); }
    to{ opacity:1; transform:translateY(0); }
  }

@keyframes photoIn{
    from{ opacity:0; transform:translateY(24px) scale(.97); }
    to{ opacity:1; transform:translateY(0) scale(1); }
  }

@keyframes spin{
    from{ transform:translateY(-50%) rotate(0deg); }
    to{ transform:translateY(-50%) rotate(360deg); }
  }

@media(prefers-reduced-motion: reduce){
    .eyebrow,h1,.sub,.divider-word,.cta-row,.frame{ animation:none; opacity:1; }
  }

.scroll-cue{
    position:absolute;
    bottom:34px;
    left:6vw;
    display:flex;
    align-items:center;
    gap:12px;
    font-size:10.5px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--grey-faint);
    z-index:4;
  }

.scroll-cue .line{
    width:1px;
    height:34px;
    background:linear-gradient(var(--grey-faint), transparent);
    animation:pulseLine 2.2s ease-in-out infinite;
  }

@keyframes pulseLine{
    0%,100%{ opacity:.35; }
    50%{ opacity:1; }
  }

/* ---------- RESPONSIVE ---------- */
  @media (max-width: 980px){
    .hero{
      grid-template-columns:1fr;
      padding:5vh 6vw 8vh 6vw;
      gap:8vh;
    }
    .photo-wrap{ order:-1; }
    .compass{
      width:420px; height:420px;
      right:-90px;
    }
    .copy{ max-width:100%; }
    h1{ font-size:clamp(2.1rem, 7vw, 2.7rem); }
    .frame{ width:min(300px, 70%); margin:0 auto; }
    .scroll-cue{ display:none; }
  }

@media (max-width: 560px){
    .nav{ padding:22px 6vw 0 6vw; }
    .brand span{ display:none; }
    .nav-cta{ padding:9px 16px; font-size:11px; }
    .hero{ gap:6vh; padding:4vh 7vw 7vh 7vw; }
    .eyebrow{ font-size:10.5px; padding:8px 14px; }
    .cta-row{ flex-direction:column; align-items:flex-start; gap:14px; }
    .frame .tag{ left:0; right:0; margin:0 auto; bottom:-30px; max-width:calc(100% - 40px); }
  }



section.method{
    position:relative;
    padding:14vh 6vw 16vh 6vw;
    background:
      radial-gradient(900px 500px at 12% 0%, rgba(255,222,89,0.05), transparent 60%),
      var(--ink);
  }

.head{
    text-align:center;
    max-width:680px;
    margin:0 auto 9vh auto;
  }

.eyebrow-line{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin-bottom:22px;
    opacity:0;
  }

.eyebrow-line.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.eyebrow-line .ln{ height:1px; width:34px; background:var(--gold-line); }

.eyebrow-line span{
    font-family:'Lato',sans-serif;
    font-size:11px;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:var(--gold);
  }

h2{
    font-family:'Playfair Display',serif;
    font-weight:500;
    font-size:clamp(2rem,3.4vw,2.9rem);
    margin:0 0 22px 0;
    color:#F6F4EF;
    opacity:0;
  }

h2.reveal{ animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .1s forwards; }

.head p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:1.05rem;
    line-height:1.75;
    color:var(--grey-soft);
    margin:0;
    opacity:0;
  }

.head p.reveal{ animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .2s forwards; }

/* ---------- STEPS ROW ---------- */
  .steps{
    position:relative;
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:0;
    max-width:1180px;
    margin:0 auto;
  }

.path-line{
    position:absolute;
    top:70px;
    left:16.6%;
    right:16.6%;
    height:1px;
    background:repeating-linear-gradient(90deg, var(--gold-line) 0 8px, transparent 8px 16px);
    z-index:0;
    opacity:0;
  }

.path-line.reveal{ animation:fadeSimple 1.4s ease .4s forwards; }

.step{
    position:relative;
    z-index:1;
    padding:0 32px;
    text-align:center;
    opacity:0;
    transform:translateY(20px);
  }

.step.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.step:nth-child(1){ animation-delay:.1s; }

.step:nth-child(2){ animation-delay:.25s; }

.step:nth-child(3){ animation-delay:.4s; }

.step + .step{ border-left:1px solid var(--hair); }

.medallion{
    position:relative;
    width:168px;
    height:168px;
    margin:0 auto 30px auto;
    border-radius:50%;
    background:var(--paper);
    border:1px solid var(--gold-line);
    box-shadow:0 20px 40px -18px rgba(0,0,0,0.55);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    transition:transform .5s cubic-bezier(.22,.68,.35,1), box-shadow .5s ease;
  }

.step:hover .medallion{
    transform:translateY(-6px);
    box-shadow:0 26px 46px -16px rgba(255,222,89,0.18);
  }

.medallion img{
    width:104%;
    height:104%;
    object-fit:contain;
    object-position:center center;
  }

.step h3{
    font-family:'Playfair Display',serif;
    font-weight:600;
    font-size:1.18rem;
    line-height:1.4;
    color:#F3F1EC;
    margin:0 0 12px 0;
  }

.step h3 .accent{ color:var(--gold); font-style:italic; font-weight:600; }

.step p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:.94rem;
    line-height:1.7;
    color:var(--grey-soft);
    margin:0;
    max-width:280px;
    margin-inline:auto;
  }

/* ---------- CULMINATION CARD ---------- */
  .culmination{
    position:relative;
    margin:9vh auto 0 auto;
    max-width:1180px;
    display:grid;
    grid-template-columns:210px 1fr auto;
    align-items:center;
    gap:44px;
    padding:44px 52px;
    border-radius:4px;
    border:1px solid var(--gold-line);
    background:linear-gradient(135deg, rgba(255,222,89,0.07), rgba(255,222,89,0.015) 60%);
    opacity:0;
    transform:translateY(24px);
  }

.culmination.reveal{ animation:riseIn 1s cubic-bezier(.22,.68,.35,1) .1s forwards; }

.culmination .medallion{
    width:190px; height:190px; margin:0;
    flex:none;
  }

.culmination .txt h3{
    font-family:'Playfair Display',serif;
    font-weight:600;
    font-size:1.55rem;
    color:#F6F4EF;
    margin:0 0 12px 0;
  }

.culmination .txt h3 em{
    font-style:italic;
    color:var(--gold);
    font-weight:600;
  }

.culmination .txt p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:1rem;
    line-height:1.7;
    color:var(--grey-soft);
    margin:0;
    max-width:440px;
  }

.cta-primary{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'Lato',sans-serif;
    font-weight:700;
    font-size:13px;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink);
    background:var(--gold);
    padding:17px 30px;
    border-radius:999px;
    text-decoration:none;
    white-space:nowrap;
    overflow:hidden;
    isolation:isolate;
    transition:transform .45s cubic-bezier(.22,.68,.35,1), box-shadow .45s ease;
  }

.cta-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 30px -10px rgba(255,222,89,0.32);
  }

.cta-center{
    text-align:center;
    margin-top:7vh;
    opacity:0;
  }

.cta-center.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) .2s forwards; }

@keyframes riseIn{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }

@keyframes fadeSimple{
    from{ opacity:0; }
    to{ opacity:1; }
  }

@media(prefers-reduced-motion: reduce){
    *{ animation:none !important; opacity:1 !important; transform:none !important; }
  }

/* ---------- RESPONSIVE ---------- */
  @media (max-width: 900px){
    .steps{ grid-template-columns:1fr; gap:52px; }
    .step + .step{ border-left:none; border-top:1px solid var(--hair); padding-top:44px; }
    .path-line{ display:none; }
    .culmination{
      grid-template-columns:1fr;
      text-align:center;
      justify-items:center;
      padding:40px 30px;
      gap:26px;
    }
    .culmination .txt p{ margin-inline:auto; }
  }

@media (max-width:560px){
    section.method{ padding:10vh 7vw 12vh 7vw; }
    .medallion{ width:140px; height:140px; }
    .culmination .medallion{ width:150px; height:150px; }
    h2{ font-size:1.7rem; }
  }



section.needs{
    position:relative;
    padding:14vh 6vw 16vh 6vw;
    background:
      radial-gradient(900px 520px at 88% 100%, rgba(255,222,89,0.05), transparent 60%),
      var(--ink);
  }

.head{
    max-width:760px;
    margin:0 auto 9vh auto;
    text-align:center;
  }

h2{
    font-family:'Playfair Display',serif; font-weight:500;
    font-size:clamp(1.9rem,3.2vw,2.7rem); line-height:1.25;
    margin:0; color:#F6F4EF; opacity:0;
  }

h2 em{ font-style:italic; color:var(--gold); font-weight:600; }

/* ---------- LIST ---------- */
  .list{
    max-width:920px;
    margin:0 auto;
  }

.row{
    display:grid;
    grid-template-columns:120px 1fr;
    gap:40px;
    align-items:center;
    padding:40px 0;
    border-bottom:1px solid var(--hair);
    opacity:0;
    transform:translateY(18px);
  }

.row.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.list .row:first-child{ padding-top:0; }

.list .row:last-child{ border-bottom:none; }

.tile{
    width:96px; height:96px;
    border-radius:14px;
    background:var(--paper);
    border:1px solid var(--gold-line);
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    box-shadow:0 16px 32px -16px rgba(0,0,0,0.5);
    transition:transform .5s cubic-bezier(.22,.68,.35,1), box-shadow .5s ease;
    flex:none;
  }

.row:hover .tile{
    transform:translateY(-4px);
    box-shadow:0 20px 38px -14px rgba(255,222,89,0.16);
  }

.tile img{
    width:112%; height:112%;
    object-fit:contain;
  }

.tile svg{ width:60%; height:60%; }

.row .txt h3{
    font-family:'Playfair Display',serif;
    font-weight:600;
    font-size:1.2rem;
    line-height:1.4;
    color:#F3F1EC;
    margin:0 0 10px 0;
  }

.row .txt p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:.98rem;
    line-height:1.7;
    color:var(--grey-soft);
    margin:0;
    max-width:560px;
  }

.row .txt p .accent{
    color:var(--gold);
    font-style:italic;
  }

/* ---------- CTA ---------- */
  .cta-wrap{
    text-align:center;
    margin-top:9vh;
    opacity:0;
  }

.cta-wrap.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) .1s forwards; }

.cta-primary{
    position:relative;
    display:inline-flex; align-items:center; gap:10px;
    font-family:'Lato',sans-serif; font-weight:700; font-size:13px;
    letter-spacing:.06em; text-transform:uppercase;
    color:var(--ink); background:var(--gold);
    padding:18px 34px; border-radius:999px; text-decoration:none;
    overflow:hidden; isolation:isolate;
    transition:transform .45s cubic-bezier(.22,.68,.35,1), box-shadow .45s ease;
  }

/* ---------- RESPONSIVE ---------- */
  @media (max-width:760px){
    .row{
      grid-template-columns:1fr;
      justify-items:center;
      text-align:center;
      gap:20px;
      padding:34px 0;
    }
    .row .txt p{ margin-inline:auto; }
  }

@media (max-width:560px){
    section.needs{ padding:10vh 7vw 12vh 7vw; }
    .tile{ width:82px; height:82px; border-radius:12px; }
    h2{ font-size:1.6rem; }
  }

section.about{
    position:relative;
    padding:14vh 6vw 16vh 6vw;
    background:
      radial-gradient(1000px 560px at 18% 0%, rgba(255,222,89,0.05), transparent 60%),
      var(--ink);
  }

.head{
    max-width:760px;
    margin:0 auto 10vh auto;
    text-align:center;
  }

h2{
    font-family:'Playfair Display',serif; font-weight:500;
    font-size:clamp(1.9rem,3.2vw,2.7rem); line-height:1.3;
    margin:0; color:#F6F4EF; opacity:0;
  }

/* ---------- MAIN GRID ---------- */
  .wrap{
    max-width:1180px;
    margin:0 auto;
    display:grid;
    grid-template-columns:0.78fr 1.22fr;
    gap:6vw;
  }

.photo-col{ position:relative; }

.photo-sticky{ position:sticky; top:8vh; }

.frame{
    position:relative;
    width:100%;
    max-width:380px;
    opacity:0;
    transform:translateY(20px);
  }

.frame.reveal{ animation:riseIn 1.1s cubic-bezier(.22,.68,.35,1) forwards; }

.frame::before{
    content:"";
    position:absolute;
    top:20px; left:20px; right:-20px; bottom:-20px;
    border:1px solid var(--gold-line);
    border-radius:2px;
    z-index:0;
  }

.frame .imgbox img{
    width:100%; height:100%;
    object-fit:cover;
    object-position:center 15%;
    filter:grayscale(.15) contrast(1.04) brightness(.99);
  }

.credential{
    margin-top:40px;
    padding-top:28px;
    border-top:1px solid var(--hair);
  }

.credential{
    display:flex;
    justify-content:flex-start;
  }

.credential .sig-img{
    width:100%;
    max-width:230px;
    height:auto;
    display:block;
    filter:drop-shadow(0 2px 10px rgba(0,0,0,0.25));
  }

/* ---------- NARRATIVE ---------- */
  .story p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:1.05rem;
    line-height:1.85;
    color:var(--grey-soft);
    margin:0 0 26px 0;
    opacity:0;
    transform:translateY(16px);
  }

.story p.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.story p b{ color:#F0EEE8; font-weight:700; }

.cost-list{
    margin:44px 0;
    padding:38px 42px;
    border-left:2px solid var(--gold-line);
    background:linear-gradient(90deg, rgba(255,222,89,0.05), transparent 70%);
    opacity:0;
    transform:translateY(16px);
  }

.cost-list.reveal{ animation:riseIn 1s cubic-bezier(.22,.68,.35,1) forwards; }

.cost-list p{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:500;
    font-size:1.08rem;
    line-height:2;
    color:#EAE7DE;
    margin:0;
  }

.divider-word{
    display:flex; align-items:center; gap:16px;
    margin:56px 0 34px 0;
    opacity:0;
    transform:translateY(16px);
  }

.divider-word.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.divider-word .ln{ height:1px; width:40px; background:var(--gold-line); }

.divider-word span{
    font-family:'Lato',sans-serif; font-size:11px; letter-spacing:.22em;
    text-transform:uppercase; color:var(--gold);
  }

/* ---------- TWO CARDS ---------- */
  .two-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
    margin:20px 0 56px 0;
  }

.card{
    padding:36px 34px;
    border:1px solid var(--hair);
    border-radius:4px;
    opacity:0;
    transform:translateY(16px);
    transition:border-color .4s ease;
  }

.card.reveal{ animation:riseIn .9s cubic-bezier(.22,.68,.35,1) forwards; }

.card:hover{ border-color:var(--gold-line); }

.card h4{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:600;
    font-size:1.15rem;
    color:var(--gold);
    margin:0 0 18px 0;
  }

.card ul{ margin:0; padding:0; list-style:none; }

.card li{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:.95rem;
    line-height:1.8;
    color:var(--grey-soft);
    padding-left:20px;
    position:relative;
    margin-bottom:10px;
  }

.card li::before{
    content:"";
    position:absolute; left:0; top:.7em;
    width:6px; height:1px;
    background:var(--gold);
  }

.card p{
    font-family:'Lato',sans-serif;
    font-weight:300;
    font-size:.95rem;
    line-height:1.8;
    color:var(--grey-soft);
    margin:0 0 10px 0;
  }

/* ---------- CLOSING ---------- */
  .closing{
    text-align:center;
    max-width:640px;
    margin:0 auto;
    padding-top:20px;
    opacity:0;
    transform:translateY(16px);
  }

.closing.reveal{ animation:riseIn 1s cubic-bezier(.22,.68,.35,1) forwards; }

.closing p{
    font-family:'Playfair Display',serif;
    font-style:italic;
    font-weight:500;
    font-size:1.3rem;
    line-height:1.6;
    color:#F3F1EC;
    margin:0 0 40px 0;
  }

.closing p em{ color:var(--gold); font-weight:600; }

/* ---------- RESPONSIVE ---------- */
  @media (max-width:980px){
    .wrap{ grid-template-columns:1fr; gap:8vh; }
    .photo-sticky{ position:static; }
    .frame{ margin:0 auto; max-width:300px; }
    .credential{ justify-content:center; }
    .two-cards{ grid-template-columns:1fr; }
  }

@media (max-width:560px){
    section.about{ padding:10vh 7vw 12vh 7vw; }
    h2{ font-size:1.6rem; }
    .cost-list{ padding:28px 24px; }
    .closing p{ font-size:1.1rem; }
  }

/* ---------- FOOTER ---------- */
footer.site-footer{
  background:var(--ink);
  border-top:1px solid rgba(255,255,255,0.08);
  padding:34px 6vw;
  text-align:center;
}
footer.site-footer p{
  font-family:'Lato',sans-serif;
  font-size:12px;
  letter-spacing:.03em;
  color:#6f6c66;
  margin:0;
}
