/* ==========================================================
   TEMPLATE "SOBREMESA" — freelancer portfolio + link in bio
   To restyle: change the colours and fonts in :root below.
   ========================================================== */
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/demos/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/demos/instrument-serif-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url("/assets/fonts/demos/inter-latin-wght-normal.woff2") format("woff2");font-weight:100 900;font-display:swap}

:root{
  --paper:#F4EEE3;   /* page background */
  --sand:#E9DFCB;    /* soft blocks */
  --ink:#1F2A24;     /* text */
  --forest:#2B5240;  /* main colour */
  --clay:#C4623A;    /* accent */
  --line:rgba(31,42,36,.22);
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"Inter",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,blockquote,figure{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--clay);outline-offset:4px;border-radius:4px}
.wrap{width:min(1120px,100% - 44px);margin-inline:auto}
em{font-style:italic}

/* demo bar (delete this block + .demobar css in the final client site) */
.demobar{background:var(--forest);color:#F4EEE3;font-size:.76rem;text-align:center;padding:9px 14px;line-height:1.35;letter-spacing:.01em}
.demobar a{color:#F0C9A4;text-underline-offset:3px}
.demobar .dim{opacity:.7}

.kicker{font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--forest)}
.btn{display:inline-flex;align-items:center;gap:.6em;font:600 .95rem/1 var(--sans);text-decoration:none;padding:1.05em 1.7em;border-radius:99px;background:var(--forest);color:var(--paper);border:1.5px solid var(--forest);transition:background .25s,color .25s,transform .25s}
.btn:hover{background:var(--clay);border-color:var(--clay);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn--ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn--clay{background:var(--clay);border-color:var(--clay)}
.btn--clay:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* language switch */
.langsw{font-size:.82rem;letter-spacing:.06em;margin-left:auto}
.top nav{margin-left:auto}.top nav+.langsw{margin-left:0}
.lk__lang{align-self:flex-end;margin-bottom:10px}

/* header */
.top{border-bottom:1px solid var(--line);background:rgba(244,238,227,.9);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.top__in{display:flex;align-items:center;gap:26px;padding-block:16px}
.logo{font-family:var(--serif);font-size:1.7rem;line-height:1;text-decoration:none;font-style:italic}
.top nav{margin-left:auto;display:flex;gap:30px;font-size:.92rem}
.top nav a{text-decoration:none;position:relative}
.top nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1.5px;background:var(--clay);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.top nav a:hover::after{transform:scaleX(1)}
.top .btn{padding:.85em 1.4em;font-size:.88rem}
@media (max-width:760px){.top nav{display:none}.langsw{margin-left:auto}}

/* hero */
.hero{padding-block:clamp(50px,8vw,120px) clamp(60px,8vw,110px)}
.hero__in{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,6vw,90px);align-items:end}
.status{display:inline-flex;align-items:center;gap:.7em;font-size:.86rem;padding:.5em 1em;border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.4)}
.status i{width:9px;height:9px;border-radius:50%;background:#3E9B5F;box-shadow:0 0 0 4px rgba(62,155,95,.2)}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(3.4rem,9.4vw,8.4rem);line-height:.9;letter-spacing:-.025em;margin-block:28px 30px}
.hero h1 em{color:var(--clay)}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);max-width:30em;color:rgba(31,42,36,.85)}
.cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.arch{position:relative;aspect-ratio:3/4;border-radius:999px 999px 18px 18px;background:var(--forest);overflow:hidden}
.arch::before{content:"";position:absolute;width:56%;aspect-ratio:1;border-radius:50%;background:var(--clay);left:50%;top:26%;translate:-50% 0}
.arch::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-6%;height:44%;background:var(--sand);border-radius:50% 50% 0 0/100% 100% 0 0}
.arch span{position:absolute;z-index:2;left:50%;bottom:9%;translate:-50% 0;font-family:var(--serif);font-style:italic;font-size:clamp(2.6rem,5vw,4rem);color:var(--forest)}
@media (max-width:860px){.hero__in{grid-template-columns:1fr}.arch{max-width:340px}}

/* sections */
section{padding-block:clamp(60px,9vw,120px)}
.rule{border-top:1px solid var(--line)}
h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,6vw,5.2rem);line-height:.95;letter-spacing:-.02em}
h2 em{color:var(--clay)}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:clamp(36px,5vw,70px)}
.sec-head p{max-width:24em;color:rgba(31,42,36,.8)}

/* selected work */
.case{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,80px);align-items:center;padding-block:clamp(26px,4vw,50px);border-top:1px solid var(--line)}
.case:nth-child(even) .case__img{order:2}
.case__img{aspect-ratio:4/3;border-radius:14px;position:relative;overflow:hidden;background:var(--c1,var(--forest));transition:transform .5s}
.case:hover .case__img{transform:scale(1.015)}
.case__img::before{content:"";position:absolute;inset:0;background:var(--pat)}
.case__img b{position:absolute;left:8%;bottom:8%;right:8%;font-family:var(--serif);font-weight:400;font-size:clamp(1.8rem,3.6vw,3rem);line-height:1;color:var(--c2,var(--paper))}
.case__n{font-family:var(--serif);font-size:1.4rem;color:var(--clay);font-style:italic}
.case h3{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.6vw,3.2rem);line-height:1;letter-spacing:-.02em;margin-block:8px 14px}
.case p{color:rgba(31,42,36,.82);max-width:28em}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-block:18px 20px}
.tags>span{font-size:.76rem;padding:.35em .9em;border:1px solid var(--line);border-radius:99px}
.link{font-weight:600;text-decoration:none;border-bottom:1.5px solid var(--clay);padding-bottom:2px}
.link:hover{color:var(--clay)}
@media (max-width:820px){.case{grid-template-columns:1fr}.case:nth-child(even) .case__img{order:0}}

/* services */
.svc{border-top:1px solid var(--ink)}
.svc li{list-style:none;display:grid;grid-template-columns:70px 1.1fr 1.4fr 112px;gap:20px;align-items:baseline;padding-block:26px;border-bottom:1px solid var(--line);transition:padding .3s,background .3s}
.svc li:hover{padding-inline:14px;background:var(--sand)}
.svc ul{margin:0;padding:0}
.svc .n{font-family:var(--serif);font-style:italic;color:var(--clay);font-size:1.3rem}
.svc h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.3rem);line-height:1.05}
.svc p{color:rgba(31,42,36,.8)}
.svc .from{font-size:.9rem;font-weight:600;white-space:nowrap;text-align:right}
@media (max-width:820px){.svc li{grid-template-columns:44px 1fr;gap:6px 12px}.svc li p,.svc li .from{grid-column:2}}

/* quote */
.quote{background:var(--forest);color:var(--paper);text-align:center}
.quote blockquote{font-family:var(--serif);font-size:clamp(1.9rem,4.4vw,3.6rem);line-height:1.1;max-width:20em;margin-inline:auto}
.quote cite{display:block;margin-top:28px;font:600 .8rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;font-style:normal;opacity:.8}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.step{border-top:1.5px solid var(--ink);padding-top:18px}
.step b{font-family:var(--serif);font-size:2.6rem;font-weight:400;font-style:italic;color:var(--clay);line-height:1}
.step h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin-block:10px 8px}
.step p{font-size:.95rem;color:rgba(31,42,36,.82)}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* about */
.about{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,6vw,90px);align-items:center}
.about .arch{aspect-ratio:4/5}
.about p+p{margin-top:16px}
.about h2{margin-block:14px 26px}
@media (max-width:820px){.about{grid-template-columns:1fr}.about .arch{max-width:300px}}

/* contact */
.contact{background:var(--sand)}
.contact__in{display:grid;gap:26px;justify-items:start;max-width:820px}
.contact h2{font-size:clamp(2.8rem,7vw,6rem)}
.foot{padding-block:32px 44px;display:flex;flex-wrap:wrap;gap:14px 30px;justify-content:space-between;align-items:center;font-size:.9rem}
.foot nav{display:flex;gap:22px}

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

/* ---------- link in bio ---------- */
.lk{width:min(520px,100% - 40px);margin-inline:auto;padding-block:46px 60px;display:flex;flex-direction:column;align-items:center;text-align:center}
.lk .arch{width:150px;aspect-ratio:3/4;margin-bottom:24px}
.lk .arch span{font-size:2.2rem}
.lk h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,10vw,3.8rem);line-height:1;letter-spacing:-.02em}
.lk h1 em{color:var(--clay)}
.lk__bio{margin-top:10px;color:rgba(31,42,36,.85);max-width:24em}
.lk__list{width:100%;margin-top:34px;text-align:left;border-top:1px solid var(--ink)}
.lk__row{display:grid;grid-template-columns:38px 1fr auto;align-items:baseline;gap:8px;padding:20px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .3s,background .3s,color .3s}
.lk__row:hover{padding-inline:14px;background:var(--sand);color:var(--clay)}
.lk__row i{font-family:var(--serif);color:var(--clay);font-size:1.15rem}
.lk__row b{font-family:var(--serif);font-weight:400;font-size:1.65rem;line-height:1.1}
.lk__row small{display:block;font:400 .82rem/1.4 var(--sans);color:rgba(31,42,36,.7);margin-top:2px}
.lk__row>span:last-child{font-size:1.2rem}
.lk__soc{display:flex;gap:22px;margin-top:30px;font-size:.88rem}
.lk__soc a{text-underline-offset:4px}
.lk__foot{margin-top:26px;font-size:.8rem;opacity:.7}
