/*
Theme Name: Alexandra Silva Portfólio
Author: Alexandra Silva
Description: Portfólio de ilustração, design e e-commerce de Alexandra Silva. Todas as páginas são editáveis no Elementor. Depois de ativar o tema e o Elementor, vai a Aparência → Instalar portfólio.
Version: 3.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: alexandra-silva-portfolio
*/

/* Folha de papel com tinta preta; a cor vem só dos trabalhos.
   As classes "as-…" estão em Avançado → Classes CSS de cada elemento no Elementor.
   Margens e espaços dos contentores usam as variáveis do Elementor, por isso o que mudares no painel do Elementor tem prioridade. */
:root{
  --as-paper:#F6F6F4; --as-surface:#FFFFFF; --as-ink:#141414; --as-muted:#5D5E5A; --as-line:#DADAD5; --as-accent:#2D4868;
  --as-display:"Gloock", "Bodoni Moda", Georgia, "Times New Roman", serif;
  --as-body:"Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --as-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --as-gutter:max(16px, env(safe-area-inset-left, 0px));
  --as-maxw:1240px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --as-paper:#111212; --as-surface:#1A1B1B; --as-ink:#ECECE8; --as-muted:#A2A39E; --as-line:#2D2E2E; --as-accent:#A9BFDB; color-scheme:dark } }

/* ---------- Base */
body.as-site{margin:0;background:var(--as-paper);color:var(--as-ink);font-family:var(--as-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
  --kit-widget-spacing:0px;--widgets-spacing:0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;
  --container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}
.as-site *,.as-site *::before,.as-site *::after{box-sizing:border-box}
.as-site a{color:inherit}
.as-site img{max-width:100%;height:auto}
.as-site :focus-visible{outline:2px solid var(--as-accent);outline-offset:3px}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} .as-site *{animation:none!important;transition:none!important} }
.as-site .elementor-widget-text-editor p{margin:0}
.as-site .elementor-widget-text-editor p+p{margin-top:18px}

/* Contentores do Elementor: sem espaços próprios, o desenho vem das classes as-… */
.as-site .e-con{--padding-top:0px;--padding-right:0px;--padding-bottom:0px;--padding-left:0px;--gap:0px;--row-gap:0px;--column-gap:0px}
.as-site .elementor-widget-heading .elementor-heading-title,
.as-site .elementor-widget-text-editor{color:var(--as-ink);font-family:var(--as-body);font-weight:400}
.as-site .elementor-widget-heading .elementor-heading-title{font-family:var(--as-display);line-height:1.05;margin:0;padding:0}
.as-site .elementor-widget-heading .elementor-heading-title a{color:inherit;text-decoration:none}
.as-site .elementor-widget-image{text-align:left}
.as-site .elementor-widget-image img{display:block;width:100%;height:auto;max-width:100%}
.as-site .elementor-widget-image figure{margin:0}
.as-site .elementor-widget-image a{display:block}

/* ---------- Cabeçalho e rodapé (o menu muda-se em Aparência → Menus) */
.as-top{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--as-paper) 92%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--as-line)}
.admin-bar .as-top{top:32px}
@media (max-width:782px){ .admin-bar .as-top{top:0;position:relative} }
.as-top .as-in{max-width:var(--as-maxw);margin:0 auto;padding:14px var(--as-gutter);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.as-brand{font-family:var(--as-display);font-size:22px;text-decoration:none;letter-spacing:.01em;white-space:nowrap}
.as-nav ul{display:flex;gap:4px 18px;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:14px}
.as-nav a{text-decoration:none;color:var(--as-muted);padding:2px 0;border-bottom:1px solid transparent}
.as-nav a:hover,.as-nav .current-menu-item>a:not([href*="#"]){color:var(--as-ink);border-bottom-color:var(--as-ink)}
.as-site [id]{scroll-margin-top:72px}
.as-foot{border-top:1px solid var(--as-line)}
.as-foot .as-in{max-width:var(--as-maxw);margin:0 auto;padding:28px var(--as-gutter);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--as-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted)}

/* ---------- Secções */
.as-site .as-s{border-top:1px solid var(--as-line)}
.as-site .as-s.as-first,.as-site .as-hero,.as-site .as-pbar{border-top:0}
.as-site .as-wrap{max-width:var(--as-maxw);--margin-left:auto;--margin-right:auto;
  --padding-top:clamp(48px,7vw,88px);--padding-bottom:clamp(48px,7vw,88px);--padding-left:var(--as-gutter);--padding-right:var(--as-gutter)}
.as-site .as-proj>.as-wrap{--padding-top:0px}
.as-site .as-sec-head{justify-content:space-between;align-items:center;--row-gap:16px;--column-gap:48px;--margin-bottom:44px}
.as-site .as-sec-head>*{width:auto!important;flex:0 1 auto!important;--width:auto;max-width:100%}
.as-site .as-sec-head>.elementor-widget-heading{flex:1 1 0!important;min-width:min(100%,280px)}
.as-site .as-h2 .elementor-heading-title{font-size:clamp(36px,4.6vw,58px);line-height:1;max-width:12ch;text-wrap:balance}
.as-site .as-h2-wide .elementor-heading-title,.as-site .as-contact .as-h2 .elementor-heading-title{max-width:18ch}
.as-site .as-sec-desc{color:var(--as-muted);font-size:16px;text-align:right;max-width:44ch!important}
.as-site .as-cta-side{align-items:flex-end;--row-gap:16px;max-width:44ch!important}

.as-site .as-eyebrow,.as-site .as-eyebrow p{font-family:var(--as-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted);line-height:1.5}
.as-site .as-btns{align-items:center;--row-gap:12px;--column-gap:20px}
.as-site .as-btns-end{justify-content:flex-end}
.as-site .as-btns>*{width:auto!important;flex:0 0 auto!important}

/* Botões */
.as-site .as-btn .elementor-button{display:inline-flex;align-items:center;gap:8px;background:var(--as-ink);color:var(--as-paper);fill:var(--as-paper);text-decoration:none;padding:12px 20px;border-radius:2px;font-family:var(--as-body);font-weight:500;font-size:15px;line-height:1.3;border:1px solid var(--as-ink);cursor:pointer;box-shadow:none}
.as-site .as-btn.as-ghost .elementor-button{background:transparent;color:var(--as-ink)}
.as-site .as-btn .elementor-button:hover{opacity:.88}
.as-site .as-btn.as-small .elementor-button{padding:8px 14px;font-size:14px;border-color:var(--as-line);font-weight:400}
.as-site .as-btn.as-small .elementor-button:hover{border-color:var(--as-ink);opacity:1}

/* ---------- Abertura (Início) */
.as-site .as-hero>.as-wrap{--padding-top:clamp(40px,6vw,80px);--padding-bottom:clamp(40px,6vw,80px)}
.as-site .as-hero-grid{display:grid!important;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);--column-gap:clamp(32px,6vw,88px);--row-gap:32px;align-items:stretch}
.as-site .as-hero-text{justify-content:space-between;align-items:flex-start;--row-gap:40px;min-width:0}
.as-site .as-hero-eyebrow{align-self:stretch;text-align:center}
.as-site .as-hero-mid{align-items:flex-start;--row-gap:clamp(28px,3.4vw,44px)}
.as-site .as-h1-hero .elementor-heading-title{font-size:clamp(52px,7.6vw,112px);line-height:.9;letter-spacing:-.02em;text-wrap:balance}
.as-site .as-lead,.as-site .as-lead p{font-size:clamp(19px,1.9vw,22px);line-height:1.5;max-width:32ch}
.as-site .as-hero-img img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:30% 20%;background:#fff}

/* Etiquetas redondas: lista com marcas num Editor de texto com a classe as-chips */
.as-site .as-chips ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.as-site .as-chips li{border:1px solid var(--as-line);border-radius:999px;padding:3px 11px;font-size:13.5px;line-height:1.5}
.as-site .as-chips-hero ul{gap:12px;max-width:520px}
.as-site .as-chips-hero li{padding:6px 14px;font-size:13px;color:var(--as-muted)}

/* ---------- Grelha de cartões */
.as-site .as-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));--row-gap:72px;--column-gap:24px}
.as-site .as-grid-areas{grid-template-columns:repeat(6,minmax(0,1fr))}
.as-site .as-grid-areas>.as-card{grid-column:span 2}
.as-site .as-grid-areas>.as-card:nth-child(n+4){grid-column:span 3}
.as-site .as-card{--row-gap:10px;min-width:0}
.as-site .as-card.as-w2{grid-column:span 2}
.as-site .as-thumb{overflow:hidden;background:var(--as-surface);border:1px solid var(--as-line)}
.as-site .as-thumb img{width:100%;height:clamp(220px,21vw,280px);object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.as-site .as-card:hover .as-thumb img{transform:scale(1.035)}
.as-site .as-thumb.as-contain img{object-fit:contain;padding:12%;background:#fff}
.as-site .as-thumb.as-pos-top img{object-position:50% 8%}
.as-site .as-meta{justify-content:space-between;--column-gap:12px}
.as-site .as-meta>*{width:auto!important;min-width:0}
.as-site .as-meta p{font-family:var(--as-mono);font-size:11px;line-height:1.4;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-site .as-meta-l{flex:1 1 auto!important}
.as-site .as-meta-r{flex:none!important}
.as-site .as-card-title .elementor-heading-title{font-size:24px;line-height:1.15;text-wrap:balance}
.as-site .as-card-desc{color:var(--as-muted);font-size:15px}

/* ---------- Sobre */
.as-site .as-about{display:grid!important;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);--column-gap:clamp(40px,7vw,104px);--row-gap:40px;align-items:end}
.as-site .as-about-photo{padding:12px}
.as-site .as-about-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 30%}
.as-site .as-letter .as-h2 .elementor-heading-title{margin-bottom:clamp(28px,3.5vw,40px)}
.as-site .as-letter-body p{font-size:clamp(17px,1.4vw,18px);line-height:1.7;max-width:62ch}
.as-site .as-hello p{font-family:var(--as-display);font-size:clamp(22px,2.2vw,28px);margin-bottom:16px}
.as-site .as-sign p{font-family:var(--as-display);font-size:clamp(24px,2.4vw,30px);margin-top:28px}
.as-site .as-letter .as-btns{--margin-top:32px}

/* Traço à mão (o tema desenha-o à volta dos elementos com estas classes) */
.as-site .as-rough-box{position:relative}
.as-site .as-deco{position:absolute;pointer-events:none;overflow:visible;color:var(--as-ink);z-index:1;min-width:0;max-width:none}
.as-site .as-rough-box>.as-deco{inset:-12px;width:calc(100% + 24px);height:calc(100% + 24px)}
.as-site .as-about-photo>.as-deco{inset:0;width:100%;height:100%}
.as-site .as-rough-white>.as-deco{color:#F2F2EE}

/* ---------- Página de projeto */
.as-site .as-pbar{background:var(--as-paper);border-bottom:1px solid var(--as-line)}
.as-site .as-pbar>.as-wrap{--padding-top:12px;--padding-bottom:12px}
.as-site .as-pbar-row{justify-content:space-between;align-items:center;--column-gap:12px}
.as-site .as-pbar-row>*{width:auto!important;--width:auto}
.as-site .as-pnav{--column-gap:8px}
.as-site .as-pnav>*{width:auto!important}
.as-site .as-phead{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);--row-gap:24px;--column-gap:64px;align-items:end;--padding-top:clamp(36px,5vw,64px);--padding-bottom:clamp(32px,4vw,48px)}
.as-site .as-ptitle .elementor-heading-title{font-size:clamp(40px,5.6vw,76px);line-height:.98;margin-top:12px;text-wrap:balance}
.as-site .as-desc p{font-size:17px;line-height:1.65;max-width:56ch;margin-bottom:24px}
.as-site .as-kv p{display:grid;grid-template-columns:110px minmax(0,1fr);gap:0 20px;font-size:15px;margin:0 0 8px}
.as-site .as-kv p+p{margin-top:0}
.as-site .as-k{font-family:var(--as-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted);padding-top:3px}
.as-site .as-phead-r .as-btns{--margin-top:20px}
.as-site .as-gallery{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr));--row-gap:20px;--column-gap:20px;--padding-bottom:64px;align-items:start}
.as-site .as-gallery>*{grid-column:span 6;min-width:0;width:auto!important}
.as-site .as-gallery.as-g3>*{grid-column:span 4}
.as-site .as-gallery>.as-quarter{grid-column:span 3}
.as-site .as-gallery>.as-third{grid-column:span 4}
.as-site .as-gallery>.as-full,.as-site .as-gallery>.as-note{grid-column:1/-1}
.as-site .as-gallery img{background:var(--as-surface);border:1px solid var(--as-line);cursor:zoom-in}
.as-site .as-gallery .as-gif img{background:#FAF8F4}
.as-site .as-gallery .as-cut img{background:transparent;border:0}
.as-site .as-gallery figcaption,.as-site .as-gallery .widget-image-caption{margin-top:10px;font-size:14px;line-height:1.4;color:var(--as-muted);text-align:left;font-style:normal}
.as-site .as-note p{font-family:var(--as-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted);padding-top:18px;border-top:1px solid var(--as-line)}

/* ---------- Currículo */
.as-site .as-cv-page>.as-wrap{--padding-top:clamp(24px,4vw,48px)}
.as-site .as-sheet{position:relative;max-width:1080px;--margin-left:auto;--margin-right:auto;background:var(--as-surface);
  --padding-top:clamp(24px,5vw,64px);--padding-bottom:clamp(24px,5vw,64px);--padding-left:clamp(24px,5vw,64px);--padding-right:clamp(24px,5vw,64px)}
.as-site .as-sheet>.as-deco{inset:0;width:100%;height:100%}
.as-site .as-cv-eyebrow{text-align:center}
.as-site .as-cv-eyebrow p{margin-bottom:clamp(28px,4vw,44px)}
.as-site .as-cv-top{display:grid!important;grid-template-columns:minmax(0,.46fr) minmax(0,1.54fr);--column-gap:clamp(24px,4vw,52px);--row-gap:24px;align-items:stretch;--margin-bottom:clamp(56px,8vw,96px)}
.as-site .as-cv-photo{min-height:260px;transform:rotate(-1.2deg)}
.as-site .as-cv-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;filter:grayscale(1) contrast(1.05)}
.as-site .as-cv-photo>.as-deco{inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px)}
.as-site .as-cv-name{justify-content:space-between;--row-gap:clamp(24px,3vw,36px)}
.as-site .as-cv-h1 .elementor-heading-title{font-size:clamp(40px,5.8vw,72px);line-height:.95;text-wrap:balance}
.as-site .as-cv-profile p{font-size:17px;line-height:1.7}
.as-site .as-cv-cols{display:grid!important;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);--column-gap:clamp(32px,5vw,64px);--row-gap:52px}
.as-site .as-cv-aside,.as-site .as-cv-main{--row-gap:52px}
.as-site .as-cv-h .elementor-heading-title{display:flex;align-items:center;gap:12px;font-size:clamp(24px,2.4vw,28px);line-height:1.1;margin-bottom:14px}
.as-site .as-cv-h .elementor-heading-title>.as-deco{position:static;flex:1 1 0;width:0;height:10px;color:var(--as-muted)}
.as-site .as-kv-cv p{grid-template-columns:76px minmax(0,1fr);gap:0 10px;font-size:16px;overflow-wrap:anywhere}
.as-site .as-kv-cv .as-k{font-size:11px}
.as-site .as-label p{margin-bottom:8px}
.as-site .as-label-2 p{padding-top:18px}
.as-site .as-langs{display:grid!important;--row-gap:10px}
.as-site .as-lang{display:grid!important;grid-template-columns:96px minmax(0,1fr);align-items:center;--column-gap:16px}
.as-site .as-lang>*{width:auto!important}
.as-site .as-lang>.as-deco{position:static;width:100%;max-width:100%;height:16px}
.as-site .as-tl{--row-gap:28px;--margin-top:6px}
.as-site .as-tl-item{position:relative;display:grid!important;grid-template-columns:76px minmax(0,1fr);--column-gap:50px}
.as-site .as-tl-item>.as-deco{top:0;bottom:0;left:88px;width:26px;height:100%}
.as-site .as-when p{font-family:var(--as-mono);font-size:12px;line-height:1.5;color:var(--as-muted);text-align:right;padding-top:3px}
.as-site .as-tl-title .elementor-heading-title{font-size:20px;line-height:1.25}
.as-site .as-where p{color:var(--as-muted);font-size:14px;line-height:1.5;margin:4px 0 8px}
.as-site .as-tl-list ul{margin:0;padding-left:18px;font-size:15px;line-height:1.6}
.as-site .as-tl-list li{margin-bottom:2px}
.as-site .as-tl-ext p{margin-top:6px}
.as-site .as-tl-ext a{font-family:var(--as-mono);font-size:12px;letter-spacing:.02em;word-break:break-all}

/* ---------- Contacto */
.as-site .as-contact-list{--row-gap:16px;--margin-top:4px}
.as-site .as-contact-row{align-items:center;--row-gap:10px;--column-gap:20px}
.as-site .as-contact-row>*{width:auto!important;min-width:0}
.as-site .as-k-w p{font-family:var(--as-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--as-muted);width:96px}
.as-site .as-email a{font-weight:500;font-size:clamp(19px,1.8vw,24px);text-decoration:none;border-bottom:1px solid var(--as-line);word-break:break-word}
.as-site .as-email a:hover{border-bottom-color:var(--as-ink)}
.as-site .as-copy{display:inline-flex;align-items:center;background:transparent;color:var(--as-ink);border:1px solid var(--as-ink);border-radius:2px;padding:8px 14px;font:500 14px/1.3 var(--as-body);cursor:pointer}
.as-site .as-copy-msg{margin-left:12px;font-size:14px;color:var(--as-muted)}

/* Páginas que não foram feitas no Elementor */
.as-site .as-plain{max-width:760px;margin:0 auto;padding:clamp(48px,7vw,88px) var(--as-gutter)}
.as-site .as-plain h1{font-family:var(--as-display);font-weight:400;font-size:clamp(36px,4.6vw,58px);line-height:1;margin:0 0 32px}

/* ---------- Ecrãs pequenos */
@media (max-width:900px){ .as-site .as-grid,.as-site .as-grid-areas{grid-template-columns:repeat(2,minmax(0,1fr))} .as-site .as-grid-areas>.as-card,.as-site .as-grid-areas>.as-card:nth-child(n+4){grid-column:span 1} }
@media (max-width:760px){
  .as-site .as-hero-grid,.as-site .as-about,.as-site .as-phead,.as-site .as-cv-top,.as-site .as-cv-cols{grid-template-columns:minmax(0,1fr)}
  .as-site .as-sec-head{flex-direction:column!important;align-items:flex-start}
  .as-site .as-sec-head>*{flex:0 0 auto!important}
  .as-site .as-sec-desc{text-align:left}
  .as-site .as-cta-side{align-items:flex-start}
  .as-site .as-btns-end{justify-content:flex-start}
  .as-site .as-about-photo{max-width:384px}
  .as-site .as-hero-img{order:-1}
  .as-site .as-hero-img img{aspect-ratio:4/3}
  .as-site .as-gallery{grid-template-columns:minmax(0,1fr)}
  .as-site .as-gallery>*,.as-site .as-gallery.as-g3>*{grid-column:1/-1!important}
  .as-site .as-cv-photo{width:min(260px,70%);aspect-ratio:4/5;min-height:0}
  .as-site .as-tl-item{grid-template-columns:62px minmax(0,1fr);--column-gap:40px}
  .as-site .as-tl-item>.as-deco{left:70px;width:22px}
}
@media (max-width:560px){ .as-site .as-grid,.as-site .as-grid-areas{grid-template-columns:minmax(0,1fr)} .as-site .as-card.as-w2{grid-column:auto} .as-site .as-thumb img{height:auto;aspect-ratio:4/3} }
