/* Alternating image composition; mobile keeps headings before their related photograph. */
.editorial-pair .visual-media{min-width:0;align-self:center}
.editorial-pair .visual-media>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.editorial-pair .visual-copy{min-width:0}
.photo-story .copy-stack{display:grid;gap:12px}
.photo-story .copy-stack .checklist{grid-template-columns:1fr}
.photo-story .section-heading{display:block;margin-bottom:28px}
.photo-story h2{font-size:clamp(28px,2.65vw,40px);line-height:1.2}
.photo-story .info-grid{grid-template-columns:1fr;gap:24px}
.photo-story .info-card{padding:0;border:0;background:transparent;display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:18px;align-items:start}
.photo-story .info-card>.icon{grid-column:1;grid-row:1/3;margin:0}
.photo-story .info-card>h3,.photo-story .info-card>p{grid-column:2;margin:0}
.photo-story .info-card>h3{margin-bottom:8px;font-size:21px}
.photo-story .info-card>p{font-size:16px;line-height:1.7}
.legal-photo-gallery{gap:24px}
.legal-photo-gallery img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
/* The arrow is a non-shrinking SVG in the same row as its label. */
.mega-feature .mega-feature-title{display:flex;flex-flow:row nowrap;align-items:center;gap:8px;width:100%;font-size:.875rem;line-height:1.45;font-weight:700}
.mega-feature .mega-feature-label{font-size:inherit;white-space:normal;min-width:0;letter-spacing:-.015em}
.mega-feature-title>.icon{width:18px;height:18px;min-width:18px;flex-shrink:0}
.mega-feature:hover .mega-feature-title>.icon{transform:translateX(4px)}
/* Photographic menu cards: an opaque caption keeps white text readable on every photo. */
.mega-feature.mega-feature-photo{position:relative;isolation:isolate;min-height:230px;padding:0;background:#102a51;color:#fff;border-radius:10px;justify-content:flex-end}
.mega-feature-photo>img{width:100%;height:170px;flex:1 1 170px;min-height:0;object-fit:cover;object-position:center;transition:transform .5s ease}
.mega-feature-photo .mega-feature-title{position:relative;margin-top:auto;padding:18px 20px;background:#102a51;color:#fff;min-height:66px;flex-shrink:0}
.mega-feature-photo .mega-feature-label,.mega-feature-photo .mega-feature-title>.icon{color:#fff}
.mega-feature-photo:hover,.mega-feature-photo:focus-visible{background:#102a51;color:#fff}
.mega-feature-photo:hover>img,.mega-feature-photo:focus-visible>img{transform:scale(1.045)}
.mega-feature-photo:focus-visible .mega-feature-title>.icon{transform:translateX(4px)}
/* A larger original transparent brand mark, scoped to the footer. */
.footer .brand{gap:12px;flex-wrap:wrap}
.footer .brand img{width:72px;height:76px;flex-shrink:0}
.footer .brand strong{font-size:26px}
.footer .brand small{font-size:11px}
@media(min-width:901px) and (max-width:1100px){.footer .brand{gap:9px}.footer .brand img{width:64px;height:67px}.footer .brand strong{font-size:23px}.footer .brand small{font-size:10px}}
@media(max-width:500px){.footer .brand img{width:68px;height:72px}.footer .brand strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){.mega-feature-photo>img{transition:none}.mega-feature-photo:hover>img,.mega-feature-photo:focus-visible>img{transform:none}}
.header-call{gap:10px;text-decoration:none}
.header-call strong{font-size:17px;letter-spacing:.015em}
/* Generous icon scale only for content features, never for utility arrows or FAQ controls. */
main .info-card>.icon{width:52px;height:52px;min-width:52px;margin-bottom:19px;stroke-width:1.6}
main .step .circle{width:82px;height:82px}
main .step .circle>.icon{width:44px;height:44px;min-width:44px}
main .card-content>.icon{width:40px;height:40px;min-width:40px;margin-bottom:15px}
main .mini-values .icon{width:34px;height:34px;min-width:34px}
.photo-story .info-card>.icon{margin-bottom:0}
@media(min-width:901px){.editorial-pair>.visual-copy,.editorial-pair>.visual-media{order:initial}}
@media(max-width:900px){.editorial-pair>.visual-copy{order:1}.editorial-pair>.visual-media{order:2}.photo-story .info-card{grid-template-columns:58px minmax(0,1fr);gap:8px 16px}.legal-photo-gallery{grid-template-columns:1fr}.mega-feature-title{white-space:normal}}
@media(max-width:500px){main .info-card>.icon{width:46px;height:46px;min-width:46px}main .step .circle{width:72px;height:72px}main .step .circle>.icon{width:38px;height:38px;min-width:38px}.photo-story .info-card>h3{font-size:19px}.photo-story h2{font-size:28px}.editorial-pair{gap:30px}}
/* Two automatic cycles last less than five seconds; only run when the card is visible. */
@media(prefers-reduced-motion:no-preference){
 .ambient-icon-card.ambient-visible>.icon,.ambient-icon-card.ambient-visible>.circle>.icon{animation:ambient-lift 2.35s ease-in-out 2!important}
 .ambient-icon-card.ambient-visible>.icon-gear,.ambient-icon-card.ambient-visible>.circle>.icon-gear{animation:ambient-turn 2.35s ease-in-out 2!important}
 .ambient-icon-card.ambient-visible>.icon-ruler,.ambient-icon-card.ambient-visible>.icon-design{animation:ambient-tilt 2.35s ease-in-out 2!important}
}
@keyframes ambient-lift{0%,100%{transform:translateY(0)}40%{transform:translateY(-5px)}70%{transform:translateY(1px)}}
@keyframes ambient-turn{0%,100%{transform:rotate(0)}50%{transform:rotate(35deg)}}
@keyframes ambient-tilt{0%,100%{transform:rotate(0) translateY(0)}45%{transform:rotate(-9deg) translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.ambient-icon-card .icon{animation:none!important;transition:none!important}}
/* Six services form two generous rows on desktop. */
@media(min-width:901px){
 .grid.six{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
 .six .card-image img{height:auto;aspect-ratio:3/2;object-fit:cover}
 .six .card-content{padding:26px}
 .six .card h3{font-size:22px;line-height:1.3;margin:12px 0}
 .six .card p{font-size:16px;line-height:1.7}
 main .six .card-content>.icon{width:46px;height:46px;min-width:46px;margin-bottom:16px}
}
/* Two readable service cards across the full mobile range, including wide phones. */
@media(max-width:900px){
 .grid.six{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .six .card-image img{height:auto;aspect-ratio:4/3;object-fit:cover}
 .six .card-content{padding:20px 18px}
 .six .card h3{font-size:18px;line-height:1.35}
 .six .card p{font-size:15px;line-height:1.65}
}
@media(max-width:600px){
 .grid.six{gap:16px}
 .six .card-content{padding:18px 14px}
 .six .card h3{font-size:16px;line-height:1.4}
 .six .card p{font-size:14px;line-height:1.65}
 .grid.three.info-grid{grid-template-columns:minmax(0,1fr)}
 .grid.three:has(>.text-card),.grid.two{grid-template-columns:minmax(0,1fr)}
 .mini-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 .section-heading .text-link{white-space:normal;max-width:100%}
}
/* Translucent hero panel with dark text, real destinations and keyboard feedback. */
.hero-proof{width:280px;flex:0 0 280px;padding:18px;background:rgba(255,255,255,.76);border:1px solid rgba(255,255,255,.5);border-radius:14px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 16px 40px #071b2b26;transition:transform .3s ease,box-shadow .3s ease}
.hero-proof .proof-item{display:flex;align-items:flex-start;gap:15px;margin:0;padding:15px 10px;min-height:80px;border-radius:10px;font-size:14px;line-height:1.5;cursor:pointer;text-decoration:none}
.hero-proof .proof-item strong{font-size:15px;line-height:1.45;margin-bottom:3px;color:#102a51}
.hero-proof .proof-item span{color:#344862}
.hero-proof .proof-item>.icon{width:32px;height:32px;min-width:32px;margin-top:2px;transition:transform .3s ease}
.hero-proof .proof-item:focus-visible{background:rgba(255,255,255,.28);outline:3px solid #1468dd;outline-offset:0}
@media(hover:hover){
 .hero-proof:hover{transform:translateY(-4px);box-shadow:0 22px 48px #071b2b33}
 .hero-proof .proof-item:hover{background:rgba(255,255,255,.28);transform:translateX(3px)}
 .hero-proof .proof-item:hover>.icon{transform:translateY(-3px) rotate(-5deg)}
}
@media(min-width:901px) and (max-width:1150px){.hero-proof{width:260px;flex-basis:260px;padding:14px}.hero-proof .proof-item{gap:12px;padding:14px 8px}}
@media(prefers-reduced-motion:reduce){.hero-proof,.hero-proof .proof-item,.hero-proof .proof-item>.icon{transition:none;transform:none!important}}
/* Keep the authentic town photographs fully framed, including their skyline. */
.editorial-pair .visual-media>img.local-photo{height:auto;aspect-ratio:auto;object-fit:contain}
.visual-media>.place-caption{font-size:14px;line-height:1.55;color:#52647a;margin:12px 0 0}
.place-caption a{text-decoration:underline;text-underline-offset:3px}
.photo-credits{padding-left:20px}.photo-credits li{margin:12px 0}
#fotografias-de-castro{scroll-margin-top:120px;margin-top:28px}
/* Four reasons to choose the workshop, with clear reading sizes and useful links. */
.reasons-heading{margin-bottom:34px}
.reasons-heading h2{font-size:clamp(30px,3.4vw,44px);line-height:1.2;max-width:760px;margin:0}
.reasons-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.reason-card{display:grid;grid-template-columns:80px minmax(0,1fr);gap:12px 24px;align-content:start;padding:30px;border:1px solid #dce5f0;border-radius:16px;background:#fff;box-shadow:0 4px 16px #102a5104;color:#102a51;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.reason-card>.reason-icon{grid-column:1;grid-row:1/4;width:80px;height:80px;background:#eaf2ff;transition:transform .3s ease,background .3s ease}
.reason-icon>.icon{width:44px;height:44px;min-width:44px;stroke-width:1.65}
.reason-card>h3{grid-column:2;font-size:22px;line-height:1.35;margin:0;letter-spacing:-.025em}
.reason-card>p{grid-column:2;font-size:16px;line-height:1.7;color:#52647a;margin:0}
.reason-link{grid-column:2;display:inline-flex;align-items:center;gap:10px;font-size:14px;line-height:1.5;font-weight:700;color:#0846ac;margin-top:6px}
.reason-link>.icon{width:18px;height:18px;min-width:18px;transition:transform .3s ease}
.reason-card:focus-visible{outline:3px solid #1468dd;outline-offset:4px;border-color:#1468dd;box-shadow:0 12px 28px #102a5112}
.reason-card:focus-visible>.reason-icon{background:#dceaff;transform:rotate(-4deg)}
@media(hover:hover){
 .reason-card:hover{border-color:#a4c2eb;box-shadow:0 14px 32px #102a5114;transform:translateY(-4px)}
 .reason-card:hover>.reason-icon{background:#dceaff;transform:rotate(-4deg) scale(1.04)}
 .reason-card:hover .reason-link>.icon{transform:translateX(4px)}
}
@media(max-width:1000px){.reason-card{grid-template-columns:68px minmax(0,1fr);gap:12px 18px;padding:24px}.reason-card>.reason-icon{width:68px;height:68px}.reason-icon>.icon{width:40px;height:40px;min-width:40px}.reason-card>h3{font-size:21px}}
@media(max-width:760px){.reasons-grid{grid-template-columns:minmax(0,1fr);gap:18px}.reasons-heading{margin-bottom:26px}}
@media(max-width:400px){.reason-card{grid-template-columns:56px minmax(0,1fr);gap:12px 16px;padding:22px 18px}.reason-card>.reason-icon{width:56px;height:56px}.reason-icon>.icon{width:34px;height:34px;min-width:34px}.reason-card>h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){.reason-card,.reason-card>.reason-icon,.reason-link>.icon{transition:none!important;transform:none!important}}
/* Clear secondary contact actions replace decorative labels in the closing CTA. */
.cta-contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.cta-contact-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border:1px solid #ffffff70;border-radius:10px;background:#ffffff08;color:#fff;font-size:14px;font-weight:700;line-height:1.5}
.cta-contact-link>.icon{width:22px;height:22px;min-width:22px;color:#fff}
.cta-contact-link:hover{background:#ffffff1f;border-color:#fff;transform:translateY(-2px)}
.cta-contact-link:focus-visible{outline:3px solid #fff;outline-offset:4px;background:#ffffff1f}
.home-guides-lead{margin-bottom:36px}
.home-guides-lead h2{max-width:620px}
.home-guides-lead .guides-intro{font-size:17px;line-height:1.7;color:#52647a;margin:0 0 24px}
@media(max-width:600px){.cta-contact-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.cta-contact-link{width:100%}.home-guides-lead .guides-intro{font-size:16px}.home-guides-lead{margin-bottom:28px}}
@media(prefers-reduced-motion:reduce){.cta-contact-link{transform:none!important;transition:none!important}}
