@charset "UTF-8";
:root{--paper:#f5f3ec;--ink:#172c28;--muted:#59645d;--line:#d8d9cb;--green:#23483e;--lime:#d8e5ac;--accent:#526e60;--ease:cubic-bezier(.22,1,.36,1);--header-height:88px;--font:"Segoe UI",Arial,sans-serif;interpolate-size:allow-keywords}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px)}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.55 var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,summary,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #598044;outline-offset:4px}::selection{background:var(--lime)}.wrap{width:min(1120px,calc(100% - 80px));margin-inline:auto}.skip{position:fixed;top:-80px;left:16px;z-index:20;background:var(--ink);color:white;padding:12px}.skip:focus{top:12px}
.site-header{position:sticky;top:0;z-index:10;background:#f5f3ecf5;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:26px}.brand{display:inline-flex;align-items:center;min-height:44px;font-family:Arial,Helvetica,sans-serif;font-size:28px;font-weight:700;letter-spacing:-.87px;flex-shrink:0}.brand svg{width:34px;height:28px;fill:var(--ink);margin-right:11px}.section-nav{display:flex;align-items:center;gap:5px;margin-left:auto}.section-nav a{display:flex;justify-content:center;align-items:center;min-height:44px;padding:10px 17px;border-radius:6px;font-size:13px;color:var(--muted);transition:background .15s,color .15s}.section-nav a:hover{background:#e7ebdf}.section-nav a[aria-current]{background:var(--ink);color:var(--paper)}.language-switch{display:flex;flex-shrink:0;padding-left:18px;border-left:1px solid var(--line)}.language-switch button{border:0;background:none;color:var(--muted);font-size:11px;min-width:44px;min-height:44px;cursor:pointer}.language-switch button[aria-pressed="true"]{font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:5px}.reading-track{height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.reading-track span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.hero{padding-block:62px 35px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:1.4px;margin:0 0 25px;color:var(--muted)}h1{font-size:clamp(44px,6.1vw,78px);font-weight:500;letter-spacing:-3.5px;line-height:1.04;margin:0 0 23px}h1>span:last-child{color:var(--accent)}.hero-copy{max-width:545px;font-size:16px;color:var(--muted);line-height:1.7;margin:0 0 25px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:44px;min-height:50px;padding:13px 20px;border-radius:6px;background:var(--ink);color:var(--paper);font-size:13px;font-weight:550;transition:background .15s}.button:hover{background:#345743}.shortcuts{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:12px}.shortcut-label{color:var(--muted);margin-right:14px}.shortcuts a{display:inline-flex;gap:22px;align-items:center;min-height:44px;padding:7px 14px;border:1px solid var(--line);border-radius:5px;transition:background .15s}.shortcuts a:hover{background:var(--lime)}
.services-section{padding-block:39px 45px;background:#e9ece0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:24px}h2{font-size:clamp(28px,3.2vw,40px);line-height:1.14;font-weight:500;letter-spacing:-1.4px;margin:0}.section-tag{font-size:10px;color:var(--muted);white-space:nowrap}.services{border-top:1px solid #bdc8b6}.services details{border-bottom:1px solid #c9d1c1}.services summary{display:grid;grid-template-columns:35px minmax(0,1fr) minmax(0,1.2fr) 20px;gap:18px;align-items:center;min-height:73px;cursor:pointer;list-style:none;padding-block:14px;padding-inline:16px}.services summary::-webkit-details-marker{display:none}.service-index{font-size:10px;color:var(--muted)}h3{font-size:21px;letter-spacing:-.6px;font-weight:500;margin:0;line-height:1.3}.service-summary{font-size:13px;color:var(--muted)}.plus{position:relative;width:20px;height:20px}.plus:before,.plus:after{content:"";position:absolute;top:9px;left:3px;width:14px;height:1px;background:var(--ink)}.plus:after{transform:rotate(90deg);transition:transform .2s}.services details[open] .plus:after{transform:rotate(0)}.services details[open] h3{color:#4f7140}.services details::details-content{height:0;overflow:clip;transition:height .22s ease,content-visibility .22s allow-discrete}.services details[open]::details-content{height:auto}.service-content{padding:0 51px 21px 69px;font-size:13px;color:var(--ink)}.service-content ul{margin:0;padding-left:17px;display:flex;gap:8px 44px;flex-wrap:wrap}.service-content li{max-width:400px}
.criteria{padding-block:48px}.principle-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.principle-list li{display:grid;grid-template-columns:35px 1fr;gap:18px;align-items:baseline;padding-block:16px;border-bottom:1px solid var(--line)}.principle-list li>span{font-size:10px;color:var(--muted)}.principle-list p{font-size:17px;letter-spacing:-.25px;margin:0;line-height:1.45}.contact-section{background:var(--green);color:var(--paper)}.contact{padding-block:36px 38px}.contact .section-tag{color:#c7d5c0;display:block;margin-bottom:18px}.contact h2{max-width:650px;font-size:clamp(29px,3.8vw,47px);margin-bottom:20px}.phone{font-size:clamp(28px,3.5vw,42px);font-weight:550;letter-spacing:-1px;display:inline-flex;gap:35px;align-items:center;min-height:54px;color:var(--lime)}.phone:hover{text-decoration:underline;text-underline-offset:7px}.phone>span{font-size:25px}.contact p{color:#d0ddc9;font-size:12px;margin:12px 0 0}.footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px;font-size:11px;color:var(--muted)}.footer a{min-height:44px;display:flex;align-items:center;gap:15px}
@media(max-width:820px){.wrap{width:calc(100% - 40px)}.header-inner{gap:12px}.section-nav a{padding-inline:12px}.language-switch{padding-left:8px}.services summary{grid-template-columns:24px minmax(0,1fr) minmax(0,1.1fr) 20px;gap:12px}.service-content{padding-left:52px}h3{font-size:19px}}
@media(max-width:620px){:root{--header-height:106px}.header-inner{display:grid;grid-template-columns:1fr auto;gap:0;padding-top:6px;min-height:104px}.brand{font-size:25px}.brand svg{width:31px;height:25.5px;margin-right:10px}.language-switch{border:0;padding:0}.section-nav{grid-column:1/-1;grid-row:2;width:100%;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding-bottom:7px}.section-nav a{font-size:12px;padding:8px 2px;min-height:44px}.hero{padding-block:33px 24px}.eyebrow{font-size:8px;letter-spacing:1px;margin-bottom:20px}h1{font-size:clamp(40px,10.5vw,62px);letter-spacing:-2px;line-height:1.08;margin-bottom:20px}.hero-copy{font-size:14px;line-height:1.7;margin-bottom:22px}.button{min-height:48px}.shortcuts{margin-top:26px;padding-top:12px;gap:7px}.shortcut-label{width:100%;margin:0 0 3px;font-size:11px}.shortcuts a{padding-inline:13px;gap:18px;font-size:11px}.services-section{padding-block:29px 31px}.section-heading{gap:12px;margin-bottom:18px;align-items:start}h2{font-size:28px;letter-spacing:-1.1px}.section-tag{font-size:8px;padding-top:5px}.services summary{grid-template-columns:20px minmax(0,1fr) 18px;gap:11px;min-height:85px;padding-block:15px;padding-inline:12px;row-gap:4px}.service-index{grid-row:1/3;align-self:start;padding-top:4px;font-size:9px}.services h3{grid-column:2;font-size:19px}.service-summary{grid-column:2;grid-row:2;font-size:12px}.plus{grid-column:3;grid-row:1/3;align-self:center}.service-content{padding:0 36px 19px 43px;font-size:12px}.service-content ul{display:block}.service-content li+li{margin-top:7px}.criteria{padding-block:31px}.criteria .section-heading{align-items:baseline}.principle-list li{grid-template-columns:20px 1fr;gap:11px;padding-block:15px}.principle-list p{font-size:15px;line-height:1.5;letter-spacing:-.2px}.contact{padding-block:29px}.contact h2{font-size:32px;max-width:340px}.phone{font-size:32px;gap:24px}.footer{font-size:10px;padding-block:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after,*::details-content{animation:none!important;transition:none!important}}

/* El monograma aprovat unifica la capçalera i la portada. */
.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:center;gap:50px}
.hero-message{position:relative;z-index:1}
.eyebrow{display:flex;align-items:center;gap:7px}
.eyebrow:before{content:"";width:6px;height:6px;flex-shrink:0;background:var(--accent);margin-right:3px}
.hero-action{display:flex;align-items:center;justify-content:space-between;gap:20px}
.compact-mark{display:none}
.hero-visual{position:relative;aspect-ratio:1;color:var(--green);border:1px solid var(--line);background-image:radial-gradient(#172c2820 .7px,transparent .7px);background-size:18px 18px;isolation:isolate}
.hero-visual:before{content:"";position:absolute;inset:18%;border:1px solid var(--line);transform:rotate(-8deg);transition:transform .65s var(--ease);z-index:-1}
.hero-visual svg{width:100%;height:100%;display:block;overflow:visible;transition:transform .65s var(--ease)}
.hero-visual:hover svg{transform:rotate(4deg) scale(.96)}
.hero-visual:hover:before{transform:rotate(0)}
.visual-corner{position:absolute;width:10px;height:10px;background:var(--accent);z-index:2}
.corner-a{top:-5px;right:-5px}.corner-b{bottom:-5px;left:-5px;width:5px;height:5px;background:var(--ink)}
.hero-logo{animation:logo-arrive .85s var(--ease) both}
@keyframes logo-arrive{from{opacity:0}to{opacity:1}}
.mark-route{animation:trace-route 1.3s .3s var(--ease) both}
.mark-node{animation:arrive .6s .65s var(--ease) both}
@keyframes trace-route{to{stroke-dashoffset:0}}
@keyframes arrive{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.hero-message>.eyebrow,.hero-message>h1,.hero-copy,.hero-action{animation:enter .7s var(--ease) both}
.hero-message>h1{animation-delay:.08s}.hero-copy{animation-delay:.14s}.hero-action{animation-delay:.2s}
@keyframes enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.button{position:relative;overflow:hidden;transition:background .25s,box-shadow .25s,transform .3s var(--ease)}
.button>span{position:relative;z-index:1}.button:before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(101%);transition:transform .35s var(--ease)}
.button:hover:before,.button:focus-visible:before{transform:translateY(0)}
.button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #172c2814}
.button>span:last-child,.shortcuts a>span:last-child,.phone>span,.footer a>span:last-child{transition:transform .3s var(--ease)}
.button:hover>span:last-child{transform:translateY(3px)}.shortcuts a:hover>span:last-child,.phone:hover>span{transform:translate(2px,-2px)}.footer a:hover>span:last-child{transform:translateY(-3px)}
.shortcuts a{background:#ffffff40;transition:background .25s,border-color .25s,transform .3s var(--ease)}
.shortcuts a:hover{border-color:#93a378;transform:translateY(-2px)}
.section-nav{position:relative;isolation:isolate}
.section-nav a{position:relative;z-index:1;transition:color .2s,background .2s}
.nav-indicator{position:absolute;top:0;left:0;width:var(--nav-width);height:var(--nav-height);border-radius:6px;background:var(--ink);transform:translate(var(--nav-x),var(--nav-y));transition:transform .34s var(--ease),width .34s var(--ease),height .34s var(--ease);pointer-events:none;z-index:0}
.section-nav.has-indicator a[aria-current]{background:transparent}
.section-nav a[aria-current]:after{content:"";position:absolute;bottom:5px;left:calc(50% - 2px);width:4px;height:4px;background:var(--lime)}
.section-heading h2{position:relative}.section-tag{letter-spacing:.3px}
.services details{position:relative;transition:background .25s}
.services details[open]{background:#f5f3ec99}
.services summary{position:relative;transition:background .25s}
.services summary:hover{background:#f5f3ec80}
.services details[open] .service-index{color:var(--accent)}
.services details[open] h3{color:var(--ink)}
.services details:before{content:"";position:absolute;top:0;bottom:0;left:-1px;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease)}
.services details[open]:before{transform:scaleY(1)}
.plus{transition:transform .3s var(--ease)}.services summary:hover .plus{transform:rotate(90deg)}
.services details[open] summary:hover .plus{transform:none}
.principle-list li{transition:background .25s}.principle-list li:hover{background:#e9ece080}.principle-list li>span{color:var(--accent)}
.contact-section{position:relative;overflow:hidden}.contact{position:relative;z-index:1}
.contact-section:after{content:"";position:absolute;right:-48px;top:-80px;width:300px;height:300px;border:1px solid #d8e5ac25;box-shadow:0 0 0 38px #d8e5ac08;transform:rotate(18deg);pointer-events:none}
/* Una entrada breu; el text mai depèn de l'animació per estar disponible. */
.reveal{animation:enter .55s var(--ease) both}
@media(max-width:1000px){.hero-layout{grid-template-columns:minmax(0,1fr) 270px;gap:30px}.hero h1{font-size:clamp(44px,6vw,60px);letter-spacing:-2.5px}}
@media(max-width:820px){.hero-layout{display:block}.hero-visual{display:none}.compact-mark{display:block;color:var(--green);width:76px;height:76px;flex-shrink:0}.compact-mark svg{display:block;width:100%;height:100%}.hero-action{max-width:545px}.hero h1{font-size:clamp(44px,7.5vw,62px)}}
@media(max-width:620px){.hero h1{font-size:clamp(40px,10.5vw,62px);letter-spacing:-2px}.hero-action{min-height:62px}.compact-mark{width:66px;height:66px}.eyebrow{gap:5px;font-size:7.5px;letter-spacing:.8px}.eyebrow:before{width:5px;height:5px;margin-right:0}.contact-section:after{width:180px;height:180px;right:-110px;top:-35px}.hero{padding-top:30px}}
@media(prefers-reduced-motion:reduce){.hero-visual:hover svg,.hero-visual:hover:before,.button:hover,.shortcuts a:hover,.services summary:hover .plus{transform:none}.mark-route{stroke-dashoffset:0}.reveal{opacity:1;transform:none}}

/* L'estat inicial és visible; el moviment no altera l'espai ni el focus. */
.criteria .scroll-reveal>*,.contact.scroll-reveal>*{animation:section-appear .6s var(--ease) var(--entry-delay,0ms) both}
.contact.scroll-reveal>*{animation-duration:.7s;animation-delay:var(--contact-delay,0ms)}
@keyframes section-appear{from{opacity:.12;transform:translateY(var(--entry-offset,12px))}to{opacity:1;transform:translateY(0)}}
.scroll-reveal:focus-within>*{animation:none}
@media(prefers-reduced-motion:reduce){.scroll-reveal>*{animation:none!important;opacity:1;transform:none}}
