:root{--ink:#17191b;--muted:#505559;--paper:#f5f6f7;--line:#d4d8da;--accent:#5bdde4;--serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 var(--sans)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #087982;outline-offset:4px}.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}.skip{position:absolute;left:10px;top:-100px;background:white;padding:10px;z-index:3}.skip:focus{top:10px}
.bar{position:absolute;inset:0 0 auto;z-index:2;color:#f4f4f4;background:linear-gradient(180deg,#0d0e10f5 0%,#0d0e10cc 44%,#0d0e1066 73%,transparent 100%);padding-bottom:34px}.bar .brand img{width:128px}.nav{min-height:83px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:11px;font:1.32rem/1.05 var(--serif);white-space:nowrap}.brand img{width:186px;height:auto}.bar .nav-plan{background:transparent;color:#fff;box-shadow:inset 0 0 0 .5px #fff}.bar .nav-plan:hover{background:#ffffff20}.nav nav,.actions{display:flex;align-items:center;gap:26px}.nav nav{font-size:.9rem;font-weight:650}.nav nav a:hover{text-decoration:underline;text-underline-offset:5px}.languages{display:flex;align-items:center;gap:4px}.lang{display:grid;place-items:center;padding:0;background:transparent;border:1px solid transparent;color:inherit;min-width:43px;min-height:43px;border-radius:50%;font-size:.73rem;font-weight:750}.lang[aria-pressed="true"]{border-color:#fff}.lang:hover{background:#ffffff20}.lang .flag{display:block;width:23px;height:15px;border-radius:2px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:47px;padding:10px 20px;background:var(--ink);color:#ffffff;border:1px solid transparent;border-radius:4px;font-size:.84rem;font-weight:720}.button:hover{background:#343b40}.accent{background:var(--accent);color:#0d0e10}.accent:hover{background:#91edf0}
.hero{color:#ffffff;background:#161819;position:relative;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,#0c0d0fe8 0%,#0c0d0fc7 26%,#0c0d0f68 57%,transparent 88%),linear-gradient(0deg,#0c0d0fb8,transparent 24%),url("banner-douro.png");background-size:cover;background-position:center 48%}.hero-inner{min-height:clamp(540px,74vh,735px);display:flex;flex-direction:column;justify-content:center;position:relative;padding-block:120px 91px}.hero-copy{max-width:720px}.eyebrow{font-size:.72rem;line-height:1.4;font-weight:770;letter-spacing:.19em;color:#5bdde4}.section-label{color:#176b73}.hero h1{font:400 clamp(4.25rem,8.3vw,8.15rem)/.93 var(--serif);letter-spacing:-.066em;margin:24px 0}.hero h1 em{font-weight:400;color:var(--accent)}.hero-text{max-width:395px;font-size:1.06rem;color:#f0f2f3;margin-bottom:26px}.hero-foot{position:absolute;bottom:0;left:0;right:0;min-height:60px;border-top:1px solid #ffffff46;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:.63rem;letter-spacing:.15em;font-weight:730}.hero-foot a{display:flex;align-items:center;gap:9px}.hero-foot a span:first-child{font-size:1rem}
.section{padding-block:clamp(65px,8vw,110px)}.section-top{display:grid;grid-template-columns:1.35fr .65fr;gap:38px;align-items:end;margin-bottom:35px}h2{font:400 clamp(2.65rem,5.25vw,5.15rem)/.98 var(--serif);letter-spacing:-.063em;margin-top:12px}main section:not(.hero) p:not(.eyebrow){color:var(--muted)}.section-top>p{max-width:360px;margin-bottom:3px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{position:relative;border:1px solid var(--line);background:#ffffff;padding:26px;display:flex;flex-direction:column;min-height:270px}.card-no{position:absolute;right:24px;top:22px;color:#505559;font-size:.7rem;font-weight:750;letter-spacing:.12em}.card svg{width:47px;height:47px;fill:none;stroke:#176b73;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:17px}.card h3{font:400 1.85rem/1.1 var(--serif);letter-spacing:-.04em;margin-bottom:9px}.card p{font-size:.93rem;margin-bottom:24px}.card a{display:flex;justify-content:space-between;gap:12px;padding-top:13px;border-top:1px solid var(--line);margin-top:auto;font-size:.8rem;font-weight:750}.card a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}
.region,.visit{background:#e7eaec}.region{padding-block:clamp(52px,7vw,100px)}.region-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(30px,7vw,110px);align-items:center}.region img{display:block;width:100%;height:auto}.region figcaption{color:#505559;font-size:.64rem;letter-spacing:.13em;font-weight:730;margin-top:9px}.region p:not(.eyebrow),.plan p:not(.eyebrow){max-width:440px;margin-top:20px}.text-link{display:inline-flex;gap:12px;font-weight:720;font-size:.88rem;margin-top:20px}
.about{border-bottom:1px solid var(--line)}.about .section-top{margin-bottom:0}
.plan{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,100px);align-items:start}.note{border-left:2px solid #176b73;padding-left:13px;font-size:.84rem}form{border:1px solid var(--line);padding:clamp(18px,4vw,37px);background:#ffffff}label{display:block;font-size:.83rem;font-weight:750;margin-bottom:6px}input,select{width:100%;min-width:0;min-height:47px;background:#ffffff;color:#17191b;border:1px solid #777f83;border-radius:3px;padding:8px 10px}.form-row{display:grid;grid-template-columns:1fr .65fr;gap:14px;margin:15px 0 20px}.request-contact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:15px}
#request-message{display:block;width:100%;min-height:90px;background:#fff;color:#17191b;border:1px solid #777f83;border-radius:3px;padding:8px 10px;font:inherit;resize:vertical;margin-bottom:18px}
form .button{width:100%}
form .button:disabled{cursor:wait;opacity:.7}
@media(max-width:470px){.request-contact{grid-template-columns:1fr}}output:not(:empty){display:block;margin-top:12px;font-size:.85rem}
.site-footer{background:#17191b;color:#f4f4f4}
.footer-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr;align-items:start;gap:clamp(22px,5vw,65px);padding-block:clamp(36px,6vw,65px)}
.footer-brand .brand img{width:156px}
.footer-brand p,.footer-social,.footer-contacts dd,.footer-bottom p{color:#cbd0d2;font-size:.84rem}
.footer-brand p{margin-top:10px}
.footer-group h2{font:750 .75rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}
.footer-contacts,.footer-social{display:grid;gap:7px;margin:0;font-size:.84rem}
.footer-social{display:flex;flex-wrap:wrap;list-style:none;padding:0}
.footer-social a{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff45;border-radius:50%}
.footer-social a:hover,.footer-social a:focus-visible{color:#fff;background:#ffffff18}
.footer-icon{display:block;width:20px;height:20px}
.footer-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.footer-contacts a{overflow-wrap:anywhere}
.footer-contacts div{display:flex;align-items:center;column-gap:9px}
.footer-contacts dd{margin:0}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid #ffffff32;padding-block:17px;font-size:.8rem}
.footer-bottom a:hover,.footer-group a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:860px){.wrap{width:calc(100% - 56px)}.nav nav,.actions{gap:16px}.hero:before{background-position:57% center}.card{padding:19px}.card h3{font-size:1.65rem}}
@media(max-width:670px){.wrap{width:calc(100% - 38px)}.nav{min-height:70px;gap:10px}.nav nav{display:none}.actions{gap:7px}.languages{gap:0}.brand{font-size:1.13rem;gap:7px}.brand img{width:clamp(110px,36vw,150px);height:auto}.nav-plan{padding-inline:10px;font-size:.71rem;min-height:42px}.lang{min-width:36px;min-height:36px}.bar{padding-bottom:24px}.bar .brand img{width:clamp(82px,28vw,98px)}.hero-inner{min-height:560px;padding-top:100px}.hero:before{background-image:linear-gradient(90deg,#0c0d0fdc,#0c0d0f9c 70%,#0c0d0f49),linear-gradient(0deg,#0c0d0fa8,transparent 24%),url("banner-douro.png");background-position:60% center}.hero h1{font-size:clamp(3.6rem,13.4vw,5.4rem)}.hero-text{max-width:280px;font-size:1rem}.hero-foot{font-size:.53rem}.section-top,.cards,.region-grid,.plan{grid-template-columns:1fr}.section-top{gap:16px;margin-bottom:25px}.card{min-height:220px}.region-grid figure{order:1}.footer-inner{grid-template-columns:1fr;gap:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
