/*
Theme Name: Natalia · Materia y Territorio
Theme URI: https://wordpress.org/
Author: Diseño editorial a medida
Description: Portfolio editorial para una artista-investigadora rural. Tema de bloques 100% personalizable en el editor de WordPress.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: natalia-territorio
Tags: full-site-editing, block-patterns, custom-colors, wide-blocks, portfolio
*/

:root { --ink:#23362d; --muted:#68776b; --forest:#304d3e; --rust:#ae6047; --paper:#f5f0e6; --cream:#fffdf7; --line:#dcd9c8; --sage:#dce4d6; --serif:Georgia,'Times New Roman',serif; --sans:'Helvetica Neue',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.68; margin:0; -webkit-font-smoothing:antialiased; }
::selection { background:#ced8c1; color:#243b2f; }
a { color:inherit; text-underline-offset:3px; }
a:hover { color:var(--rust); }
img { max-width:100%; height:auto; }
.wp-site-blocks { overflow-x:clip; }
.wp-block-group.alignfull { margin-block-start:0; }
.wp-block-post-content > *:first-child { margin-block-start:0; }
h1,h2,h3,h4,.wp-block-heading { font-family:var(--serif); font-weight:400; line-height:1.12; letter-spacing:-.04em; }
h1 { font-size:clamp(3.4rem,6.3vw,6.8rem); }
h2 { font-size:clamp(2.7rem,4.45vw,4.7rem); }
h3 { font-size:clamp(1.7rem,2.2vw,2.2rem); }
p { margin-block:0 1.2em; }
:where(.wp-block-group.has-background) { padding:0; }
:where(.wp-block-columns) { margin-bottom:0; }
:where(.wp-block-post-content) .alignwide { max-width:min(1280px, calc(100% - 8vw)); }
:where(.wp-block-post-content) .alignfull { max-width:none; }
:where(.wp-block-post-content) > .wp-block-group.alignfull { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }

/* Site navigation */
.nav-shell { background:rgba(245,240,230,.95); border-bottom:1px solid rgba(40,67,54,.10); position:relative; z-index:20; }
.nav-inner { max-width:1360px; margin:0 auto; padding:18px max(28px,4vw); gap:24px; }
.brand-name { font-family:var(--serif); line-height:1.06; font-size:1.47rem; letter-spacing:-.055em; font-weight:500; margin:0!important; }
.brand-name a { text-decoration:none; }
.brand-subtitle { text-transform:uppercase; font-size:.57rem!important; letter-spacing:.15em; color:#748072; margin:5px 0 0!important; white-space:nowrap; }
.wp-block-navigation { font-size:.79rem; font-weight:700; text-transform:uppercase; letter-spacing:.075em; }
.wp-block-navigation .wp-block-navigation-item__content { padding:8px 3px!important; }
.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open { padding:40px 28px; background:var(--paper)!important; }
.wp-block-navigation a:hover,.wp-block-navigation .current-menu-item a { color:var(--rust); }

/* Hero */
.hero { background:#f1eadc; border-bottom:1px solid var(--line); position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; width:700px; height:700px; border-radius:50%; border:1px solid rgba(100,112,84,.11); left:-500px; bottom:-480px; pointer-events:none; }
.hero-columns { min-height:715px; gap:clamp(32px,6vw,100px); padding-top:62px; padding-bottom:70px; }
.hero-copy { padding-left:1vw; }
.eyebrow { font-family:var(--sans); font-size:.68rem!important; line-height:1.5; letter-spacing:.21em; font-weight:750; text-transform:uppercase; color:var(--rust); margin-bottom:29px!important; }
.hero-title { font-size:clamp(3.7rem,6.7vw,7.4rem)!important; line-height:1.02!important; margin:0 0 29px!important; max-width:770px; }
.hero-title em { color:var(--rust); font-weight:400; }
.hero-description { max-width:570px; color:#59695a; font-size:clamp(1.07rem,1.45vw,1.28rem)!important; line-height:1.76; }
.wp-block-buttons { gap:12px; }
.wp-block-button__link, .wp-element-button { border-radius:999px!important; font-family:var(--sans); font-size:.81rem!important; font-weight:700; letter-spacing:.05em; line-height:1.35; padding:16px 26px!important; text-decoration:none!important; transition: transform .2s,background .2s,color .2s; }
.wp-block-button__link:hover, .wp-element-button:hover { transform:translateY(-2px); }
.btn-primary .wp-block-button__link { color:#fffdf7; background:var(--forest); }
.btn-primary .wp-block-button__link:hover { background:#1f362a;color:#fffdf7; }
.btn-outline .wp-block-button__link { background:transparent;color:var(--forest); box-shadow:inset 0 0 0 1px var(--forest); }
.btn-outline .wp-block-button__link:hover { background:var(--forest);color:#fffdf7; }
.hero-visual { position:relative; }
.hero-visual::before { content:''; display:block; position:absolute; width:90%; height:88%; top:5%; left:7%; border:1px solid rgba(61,83,63,.27); border-radius:47% 45% 47% 45%; transform:rotate(-10deg); pointer-events:none; }
.hero-art { margin:0 18px!important; transform:rotate(3deg); }
.hero-art img { width:100%; max-height:590px; object-fit:cover; display:block; border-radius:48% 48% 46% 43%; box-shadow:24px 24px 0 rgba(88,103,77,.09); }
.hero-note { text-align:right; font-size:.62rem!important; letter-spacing:.15em; color:#627260; text-transform:uppercase; margin:18px 9px 0!important; }

/* Sections */
.section { padding:clamp(75px,9vw,140px) 0; }
.section-head { margin-bottom:43px; }
.section-heading { margin-top:6px!important; margin-bottom:0!important; max-width:1040px; }
.section-lead { max-width:710px; color:#5f6f61; font-size:1.12rem!important; line-height:1.78; }
.section-intro { background:var(--cream); }
.intro-grid { gap:clamp(30px,9vw,135px); }
.intro-right p { font-size:1.1rem; color:#526457; line-height:1.9; }
.intro-right p strong { color:var(--forest); }
.small-link, .small-link a { font-weight:750; text-transform:uppercase; font-size:.72rem; letter-spacing:.09em; text-decoration:none; border-bottom:1px solid var(--rust); padding-bottom:7px; color:var(--rust); }
.section-projects { background:var(--paper); }
.section-projects .section-lead { margin-top:16px; }

/* Query loop portfolio */
.project-grid { list-style:none; display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:40px 0 45px; }
.project-grid > li { list-style:none; display:flex; flex-direction:column; background:var(--cream); border:1px solid var(--line); min-width:0; overflow:hidden; transition:transform .25s,box-shadow .25s; }
.project-grid > li:hover { transform:translateY(-5px); box-shadow:0 18px 48px rgba(35,54,45,.09); }
.project-grid .project-thumb { margin:0!important; line-height:0; overflow:hidden; width:100%; background:#8a977f; }
.project-grid .project-thumb a { display:block; }
.project-grid .project-thumb img { height:260px; width:100%; object-fit:cover; transition:transform .5s; }
.project-grid > li:hover .project-thumb img { transform:scale(1.04); }
.project-grid .wp-block-post-title { margin:27px 26px 12px!important; font-family:var(--serif); font-size:clamp(1.6rem,2vw,2.12rem); line-height:1.18; }
.project-grid .wp-block-post-title a { text-decoration:none; }
.project-grid .wp-block-post-excerpt { padding:0 26px 26px; color:#647167; font-size:.91rem; line-height:1.7; flex:1; }
.project-grid .wp-block-post-excerpt p { margin:0; }
.project-grid .wp-block-post-excerpt__more-link { font-size:.8rem; font-weight:700; }
.project-grid .wp-block-post-date { margin:0 26px 18px; color:#8e9586; font-size:.7rem; text-transform:uppercase; letter-spacing:.13em; }
.project-grid > li:not(:has(.project-thumb))::before { content:''; height:250px; background:radial-gradient(circle at 62% 45%,#a7634e 0 23%,transparent 24%),repeating-radial-gradient(ellipse at 40% 70%,transparent 0 18px,rgba(60,86,67,.22) 19px 21px),#afba9f; display:block; }
.section-methods { background:#e6e5d8; }
.methods-grid { gap:18px; }
.method-card { background:var(--cream); padding:35px 32px 40px!important; min-height:290px; border:1px solid rgba(54,78,59,.13); }
.method-number { color:var(--rust); font-size:.74rem!important; letter-spacing:.18em; margin-bottom:42px!important; }
.method-title { font-size:1.9rem!important; margin:0 0 16px!important; }
.method-card p:not(.method-number) { font-size:.9rem; line-height:1.78; color:#647164; }
.quote-section { background:var(--forest); color:#f7f0df; text-align:center; position:relative; overflow:hidden; }
.quote-section::after { content:''; position:absolute; border:1px solid #dcd8bf; opacity:.13; width:800px; height:800px; border-radius:50%; right:-450px; top:-320px; }
.quote-section .eyebrow { color:#e4b48b; }
.quote-section .quote-title { font-size:clamp(2.9rem,5.2vw,5.8rem)!important; max-width:950px; margin:0 auto 18px!important; }
.quote-section .quote-text { font-size:1rem; opacity:.76; max-width:720px; margin:15px auto 0!important; }
.cta-section { background:#e7d0b4; }
.cta-title { font-size:clamp(3rem,5.2vw,5.8rem)!important; max-width:1050px; }
.cta-section .eyebrow { color:#92513d; }

/* Interior pages */
.page-main .wp-block-post-content { min-height:45vh; }
.inner-hero { background:#e8e8dc; padding:115px 0 92px; }
.inner-hero .inner-title { font-size:clamp(3.8rem,7.2vw,7.6rem)!important; max-width:1050px; margin:0!important; }
.inner-hero .inner-description { font-size:1.25rem!important; color:#586b5d; max-width:770px; margin:29px 0 0!important; }
.prose-section { background:var(--cream); }
.prose-section p { font-size:1.11rem; color:#4d6354; line-height:1.92; }
.two-columns { gap:clamp(30px,6vw,110px); }
.about-abstract { background:linear-gradient(150deg,rgba(36,63,48,.9),rgba(143,87,66,.76)),url('assets/img/proyecto-pigmentos.png') center/cover; min-height:420px; border-radius:51% 49% 45% 50%; }
.section-small { padding:70px 0; }
.about-points { background:#e7e3d5; }
.about-points h3 { font-size:1.65rem!important; }
.about-points p { font-size:.98rem; color:#526257; }
.projects-list-section { padding-top:80px; }
.projects-list-section .project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.contact-intro { background:var(--cream); padding:75px 0 115px; }
.contact-form { max-width:780px; }
.contact-form .field-row { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.contact-form label { display:block; font-size:.73rem; font-weight:750; text-transform:uppercase; letter-spacing:.1em; margin:21px 0 8px; }
.contact-form input:not([type=checkbox]),.contact-form textarea { width:100%; border:1px solid #c9cdbd; padding:15px 17px; border-radius:4px; font:inherit; background:#f9f7f0; color:var(--ink); }
.contact-form input:focus,.contact-form textarea:focus { outline:2px solid #8c9c8c; outline-offset:1px; }
.contact-form textarea { min-height:170px; resize:vertical; }
.contact-form button { display:inline-block; border:0; border-radius:999px; background:var(--forest); color:white; padding:16px 29px; margin-top:25px; font:700 .83rem var(--sans); cursor:pointer; }
.contact-form button:hover { background:#203b2d; }
.contact-form .honeypot { position:absolute!important; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-message { border-left:3px solid var(--forest); background:#edf4e8; padding:18px; }
.form-error { border-left-color:var(--rust); background:#f8e8dd; }

/* Single project */
.single-wrap { padding:105px 5vw 125px; }
.single-wrap .wp-block-post-title { font-family:var(--serif); font-size:clamp(3.3rem,6.5vw,6.9rem); max-width:1080px; margin:0 auto 34px!important; text-align:center; }
.single-wrap .project-kicker { color:var(--rust); text-align:center; font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.19em; margin-bottom:22px; }
.single-wrap .wp-block-post-featured-image { max-width:1100px; margin:45px auto 65px!important; }
.single-wrap .wp-block-post-featured-image img { max-height:650px; width:100%; object-fit:cover; }
.single-wrap .wp-block-post-content { max-width:760px; margin:auto; }
.single-wrap .wp-block-post-content h2 { margin-top:56px; font-size:2.6rem; }
.single-wrap .wp-block-post-content p { font-size:1.12rem; line-height:1.88; color:#4a6151; }
.single-wrap .wp-block-post-content a { color:var(--rust); }
.not-found { max-width:850px; margin:110px auto; padding:0 24px; }

/* Footer */
.footer-shell { background:#1d3329; color:#edeadd; padding:70px max(24px,4vw) 29px; }
.footer-inner { max-width:1280px; margin:auto; }
.footer-title { font-family:var(--serif); font-size:2.35rem!important; margin:0 0 8px!important; letter-spacing:-.04em; }
.footer-subtitle { color:#ccd1c4; font-size:.89rem!important; max-width:370px; }
.footer-shell .wp-block-navigation { font-size:.71rem; }
.footer-shell .wp-block-navigation-item__content { color:#e4e8d9!important; }
.footer-shell .wp-block-navigation-item__content:hover { color:#d9ad94!important; }
.footer-top { gap:50px; align-items:flex-start!important; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:22px; margin-top:65px; }
.footer-bottom p { font-size:.72rem; letter-spacing:.04em; margin:0; color:#adb9a8; }

@media(max-width:950px){
  .hero-columns { min-height:0; gap:45px; padding:90px 0; }
  .hero-title { font-size:clamp(3.5rem,8vw,5.3rem)!important; }
  .project-grid,.projects-list-section .project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero-art img { max-height:480px; }
}
@media(max-width:700px){
  body { font-size:16px; }
  .nav-inner { padding:16px 20px; }
  .brand-name { font-size:1.32rem; }
  .brand-subtitle { font-size:.52rem!important; }
  .hero-columns { padding:63px 0 75px; }
  .hero-title { font-size:clamp(3.25rem,11vw,5.5rem)!important; }
  .hero-visual { max-width:430px; margin:0 auto; }
  .hero-art img { max-height:480px; }
  .section { padding:70px 0; }
  .section-heading { font-size:clamp(2.7rem,9vw,3.7rem)!important; }
  .project-grid,.projects-list-section .project-grid { grid-template-columns:1fr; gap:19px; }
  .project-grid .project-thumb img { height:285px; }
  .method-card { min-height:unset; }
  .inner-hero { padding:85px 0 75px; }
  .inner-hero .inner-title { font-size:clamp(3.5rem,11vw,5.5rem)!important; }
  .contact-form .field-row { grid-template-columns:1fr; gap:0; }
  .footer-shell { padding-top:55px; }
  .footer-top { gap:20px; }
  .footer-bottom { margin-top:40px; }
  .single-wrap { padding:65px 22px 90px; }
  .single-wrap .wp-block-post-title { font-size:clamp(3rem,10vw,5rem); }
}
@media(prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *,*::before,*::after{transition:none!important;animation:none!important;} }
