:root { --ink:#14374e; --yellow:#f6d85d; --coral:#eb6e52; --aqua:#d9f0ed; --green:#4e9475; --cream:#fbf7ed; --line:rgba(20,55,78,.25); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--cream); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
a { color:inherit; text-decoration:none; }
.site-header { align-items:center; background:var(--yellow); border-bottom:1px solid var(--line); display:flex; height:76px; justify-content:space-between; padding:0 max(1.4rem,calc((100vw - 1280px)/2)); position:absolute; top:0; width:100%; z-index:4; }.brand { align-items:center; display:flex; font-size:.84rem; font-weight:900; gap:.7rem; line-height:.88; }.brand span { align-items:center; background:var(--ink); border-radius:50%; color:var(--yellow); display:inline-flex; font-size:.9rem; height:2.35rem; justify-content:center; width:2.35rem; }.site-header nav { display:flex; gap:2rem; }.site-header nav a { font-size:.8rem; font-weight:800; }.site-header nav a:hover { text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.35rem; }.round-link { align-items:center; background:var(--ink); border-radius:50%; color:white; display:flex; font-size:1.35rem; height:2.8rem; justify-content:center; width:2.8rem; }
.hero { background:var(--yellow); min-height:760px; overflow:hidden; padding:176px max(1.4rem,calc((100vw - 1280px)/2)) 5rem; position:relative; }.hero::after { background:var(--coral); content:""; height:76px; position:absolute; right:0; top:0; width:32%; }.hero-copy { max-width:760px; position:relative; z-index:2; }.eyebrow { color:#a54431; font-size:.76rem; font-weight:900; letter-spacing:.09em; margin:0 0 1rem; text-transform:uppercase; }.hero h1 { font-size:clamp(4rem,7vw,7.5rem); letter-spacing:-.055em; line-height:.8; margin:0; }.hero h1 em,.service h3 em { color:#147777; font-family:Georgia,serif; font-weight:500; }.hero-bottom { align-items:end; display:flex; gap:2.2rem; margin-top:2.2rem; }.hero-bottom p { font-size:1.05rem; line-height:1.45; margin:0; max-width:370px; }.button { align-items:center; border-radius:999px; display:inline-flex; font-size:.92rem; font-weight:900; gap:1rem; padding:.9rem 1.1rem; }.coral { background:var(--coral); box-shadow:5px 5px 0 var(--ink); color:white; }.button span { align-items:center; background:rgba(255,255,255,.18); border-radius:50%; display:flex; font-size:1.15rem; height:1.65rem; justify-content:center; width:1.65rem; }.hero-art { bottom:-6rem; clip-path:polygon(12% 0,100% 0,100% 86%,76% 100%,0 100%,0 16%); height:42rem; position:absolute; right:-1rem; transform:rotate(-4deg); width:min(48vw,720px); z-index:1; }.hero-art::before { border:2px solid var(--ink); content:""; inset:.8rem; position:absolute; transform:translate(-1.4rem,-1.4rem); z-index:1; }.hero-art img { height:100%; object-fit:cover; width:100%; }.hero-index { bottom:2.4rem; font-family:Georgia,serif; font-size:2.7rem; font-style:italic; line-height:.78; position:absolute; right:45%; z-index:2; }.hero-stamp { background:var(--aqua); border:2px solid var(--ink); bottom:2.8rem; font-size:.75rem; font-weight:900; line-height:1.1; padding:.75rem; position:absolute; right:3.2rem; transform:rotate(8deg); z-index:2; }.scroll-cue { align-items:center; bottom:2.7rem; display:flex; font-size:.72rem; font-weight:900; gap:.55rem; left:max(1.4rem,calc((100vw - 1280px)/2)); position:absolute; text-transform:uppercase; z-index:2; }.scroll-cue span { font-size:1.1rem; }
.services { background:var(--cream); padding:9rem max(1.4rem,calc((100vw - 1280px)/2)); }.services-intro { display:grid; grid-template-columns:1fr 1.2fr; margin-bottom:5rem; }.services-intro .eyebrow { grid-column:1; }.services-intro h2 { font-size:clamp(2.8rem,5.3vw,6rem); grid-column:1/3; letter-spacing:-.045em; line-height:.9; margin:1.5rem 0 2.3rem; }.services-intro > p:last-child { color:#4e6d7c; font-size:1.08rem; grid-column:2; line-height:1.55; max-width:470px; }.services-list { border-top:1px solid var(--line); }.service { align-items:center; border-bottom:1px solid var(--line); display:grid; gap:2rem; grid-template-columns:72px 1.15fr .8fr .7fr; min-height:225px; padding:2rem 0; position:relative; transition:padding .25s ease; }.service:hover { padding-left:1rem; }.service-number { font-family:Georgia,serif; font-size:1.3rem; font-style:italic; }.service-title p { color:#5a7480; font-size:.73rem; font-weight:800; margin:0 0 .55rem; text-transform:uppercase; }.service h3 { font-size:clamp(2rem,3.4vw,4rem); letter-spacing:-.045em; line-height:.83; margin:0; }.service-detail { color:#4e6d7c; line-height:1.5; margin:0; max-width:310px; }.service-tag { align-self:end; border:1px solid var(--ink); border-radius:999px; font-size:.7rem; font-weight:850; justify-self:end; padding:.55rem .7rem; text-align:center; text-transform:uppercase; }.service-web:hover { background:#f1e1b7; }.service-google:hover { background:#d9f0ed; }.service-ai:hover { background:#dceff5; }.service-qr:hover { background:#fee6db; }.next-section { align-items:center; background:var(--ink); color:var(--yellow); display:flex; height:190px; justify-content:space-between; padding:0 max(1.4rem,calc((100vw - 1280px)/2)); }.next-section + .next-section { background:var(--coral); color:var(--ink); }.next-section p { font-size:.75rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.next-section span { font-family:Georgia,serif; font-size:1.4rem; font-style:italic; }
@media (max-width:800px) { .site-header { padding-inline:1rem; }.site-header nav { display:none; }.hero { min-height:690px; padding:142px 1.25rem 5rem; }.hero::after { height:76px; width:44%; }.hero h1 { font-size:clamp(3.6rem,15.2vw,5.8rem); }.hero-bottom { align-items:start; flex-direction:column; gap:1.3rem; margin-top:1.7rem; max-width:260px; }.hero-art { bottom:-3rem; height:26rem; opacity:.83; right:-5rem; width:72%; }.hero-index { bottom:1.8rem; font-size:2.3rem; left:1.25rem; right:auto; }.hero-stamp { bottom:1.7rem; right:1.25rem; }.scroll-cue { display:none; }.services { padding:5.5rem 1.25rem; }.services-intro { display:block; }.services-intro h2 { font-size:clamp(2.7rem,12vw,4.3rem); margin:1.7rem 0; }.services-intro > p:last-child { font-size:1rem; }.service { align-items:start; gap:1rem; grid-template-columns:42px 1fr; min-height:0; padding:2rem 0; }.service-detail { grid-column:2; max-width:430px; }.service-tag { grid-column:2; justify-self:start; }.next-section { height:140px; padding-inline:1.25rem; } }

/* Bloc savoir-faire : affiches, pas curriculum vitae. */
.services-collage { display:grid; gap:0; grid-template-columns:1.12fr .88fr; margin-top:1rem; }
.service-poster { min-height:380px; overflow:hidden; padding:2.35rem; position:relative; }.service-poster h3 { font-size:clamp(2.35rem,4.2vw,5rem); letter-spacing:-.055em; line-height:.83; margin:2.4rem 0 1.3rem; max-width:540px; position:relative; z-index:1; }.service-poster h3 em { font-family:Georgia,serif; font-weight:500; }.poster-label { font-size:.72rem; font-weight:900; letter-spacing:.08em; margin:0; position:relative; text-transform:uppercase; z-index:1; }.poster-copy { font-size:.98rem; line-height:1.45; margin:0; max-width:320px; position:relative; z-index:1; }
.poster-web { background:var(--yellow); color:var(--ink); }.poster-web h3 em { color:#0f7575; }.poster-web::after { border:2px solid var(--ink); content:""; height:15rem; position:absolute; right:-3rem; top:-4.5rem; transform:rotate(23deg); width:15rem; }.poster-mark { bottom:1.6rem; font-family:Georgia,serif; font-size:2.1rem; font-style:italic; line-height:.8; position:absolute; right:2rem; }
.poster-google { background:var(--aqua); color:var(--ink); }.poster-google h3 em { color:#1b7887; }.poster-google::after { border:2px solid var(--ink); border-radius:50%; bottom:-8rem; content:""; height:22rem; position:absolute; right:-6rem; width:22rem; }.map-pin { align-items:center; background:var(--coral); border-radius:50% 50% 50% 0; color:white; display:flex; font-size:1.3rem; height:4.6rem; justify-content:center; position:absolute; right:3rem; top:4.5rem; transform:rotate(-45deg); width:4.6rem; }.map-pin::first-letter { transform:rotate(45deg); }
.poster-ai { background:var(--ink); color:#f9f4e9; }.poster-ai h3 em { color:#a7e0c6; }.poster-ai .poster-label,.poster-ai .poster-copy { color:#d3e5e4; }.poster-ai::after { border:1px solid #a7e0c6; content:""; height:17rem; position:absolute; right:4%; top:5%; transform:rotate(38deg); width:17rem; }.loop { bottom:-2.2rem; color:#a7e0c6; font-family:Georgia,serif; font-size:13rem; line-height:1; position:absolute; right:-.8rem; }
.poster-qr { background:var(--coral); color:var(--ink); }.poster-qr h3 em { color:#fff4db; }.poster-qr::after { background:#f8d85c; content:""; height:11rem; position:absolute; right:-2rem; top:-3rem; transform:rotate(25deg); width:11rem; }.qr-tile { align-items:center; background:#fff5df; bottom:2rem; display:flex; font-size:5rem; height:8rem; justify-content:center; position:absolute; right:2rem; transform:rotate(-6deg); width:8rem; }
@media (max-width:800px) { .services-collage { grid-template-columns:1fr; }.service-poster { min-height:340px; padding:1.7rem 1.4rem; }.service-poster h3 { font-size:clamp(2.5rem,12.5vw,4rem); margin-top:2rem; }.poster-web::after { height:11rem; right:-4rem; top:-4rem; width:11rem; }.poster-mark { bottom:1.5rem; right:1.5rem; }.map-pin { right:1.7rem; top:3.5rem; }.poster-google::after { bottom:-9rem; }.poster-ai::after { height:13rem; right:-4rem; width:13rem; }.qr-tile { bottom:1.5rem; height:6.4rem; right:1.5rem; width:6.4rem; } }

/* Mouvement : les affiches arrivent en vague, puis leurs repères respirent. */
.motion-ready .service-poster { opacity:0; transform:translateY(36px) rotate(-1deg); }
.motion-ready .service-poster.is-visible { animation:poster-arrival 760ms cubic-bezier(.16,1,.3,1) var(--poster-delay) both; }
.motion-ready .service-poster h3,.motion-ready .service-poster .poster-copy,.motion-ready .service-poster .poster-label { transform:translate(var(--shift-x,0),var(--shift-y,0)); transition:transform 280ms ease; }
.motion-ready .poster-web.is-visible::after { animation:frame-wobble 3.6s ease-in-out 900ms 3 both; }
.motion-ready .poster-web.is-visible .poster-mark { animation:mark-float 2.6s ease-in-out 860ms 4 both; }
.motion-ready .poster-google.is-visible .map-pin { animation:pin-hop 1.45s cubic-bezier(.16,1,.3,1) 920ms 4 both; }
.motion-ready .poster-ai.is-visible .loop { animation:loop-turn 4.8s cubic-bezier(.3,.8,.25,1) 840ms 3 both; }
.motion-ready .poster-qr.is-visible .qr-tile { animation:tile-rock 2.4s ease-in-out 850ms 4 both; }
.service-poster:hover .poster-copy { transform:translate(0,-4px); }.service-poster:hover .poster-label { letter-spacing:.12em; }.service-poster:hover .qr-tile { transform:rotate(2deg) scale(1.05); }.service-poster:hover .map-pin { transform:rotate(-45deg) translateY(-7px) scale(1.05); }
@keyframes poster-arrival { 0% { opacity:0; transform:translateY(36px) rotate(-1deg); } 65% { opacity:1; transform:translateY(-3px) rotate(.35deg); } 100% { opacity:1; transform:translateY(0) rotate(0); } }
@keyframes frame-wobble { 0%,100% { transform:rotate(23deg); } 50% { transform:rotate(28deg) translateY(6px); } }
@keyframes mark-float { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-8px) rotate(-4deg); } }
@keyframes pin-hop { 0%,100% { transform:rotate(-45deg) translateY(0); } 45% { transform:rotate(-45deg) translateY(-12px) scale(1.06); } 70% { transform:rotate(-45deg) translateY(2px) scale(.98); } }
@keyframes loop-turn { 0% { transform:rotate(0deg) scale(1); } 55% { transform:rotate(-270deg) scale(1.04); } 100% { transform:rotate(-360deg) scale(1); } }
@keyframes tile-rock { 0%,100% { transform:rotate(-6deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-9px); } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:1ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:1ms !important; } }

.services-extension { background:#d9f0ed; margin-top:0; min-height:350px; overflow:hidden; padding:3rem 3.2rem; position:relative; }.services-extension::before { border:2px solid var(--ink); content:""; height:29rem; position:absolute; right:-11rem; top:-15rem; transform:rotate(28deg); width:29rem; }.services-extension::after { background:var(--coral); content:""; height:8rem; position:absolute; right:20%; top:-3rem; transform:rotate(31deg); width:8rem; }.services-extension h3 { font-size:clamp(2.3rem,4.2vw,5rem); letter-spacing:-.055em; line-height:.85; margin:1.3rem 0 1.4rem; max-width:850px; position:relative; z-index:1; }.services-extension h3 em { color:#147777; font-family:Georgia,serif; font-weight:500; }.services-extension > p:not(.eyebrow) { color:#355d6c; font-size:1.02rem; line-height:1.48; margin:0; max-width:480px; position:relative; z-index:1; }.services-extension > div { bottom:2rem; display:flex; gap:.55rem; position:absolute; right:2.6rem; z-index:2; }.services-extension span { border:1px solid var(--ink); border-radius:999px; font-size:.68rem; font-weight:900; padding:.55rem .65rem; }.motion-ready .services-extension { opacity:0; transform:translateY(28px); }.motion-ready .services-extension.is-visible { animation:poster-arrival 760ms cubic-bezier(.16,1,.3,1) both; }
@media (max-width:800px) { .services-extension { min-height:390px; padding:2rem 1.4rem; }.services-extension h3 { font-size:clamp(2.5rem,12.3vw,4.1rem); margin-top:1.5rem; }.services-extension::before { right:-15rem; top:-12rem; }.services-extension::after { right:8%; }.services-extension > div { bottom:1.5rem; flex-wrap:wrap; left:1.4rem; right:auto; } }

.projects { background:var(--ink); color:#f8f4e8; padding:8.5rem max(1.4rem,calc((100vw - 1280px)/2)); }.projects-heading { margin-bottom:4.5rem; max-width:930px; }.projects .eyebrow { color:var(--yellow); }.projects-heading h2 { font-size:clamp(3rem,5.8vw,6.8rem); letter-spacing:-.055em; line-height:.86; margin:0 0 1.6rem; }.projects-heading h2 em { color:#a7e0c6; font-family:Georgia,serif; font-weight:500; }.projects-heading > p:last-child { color:#c6dcdc; font-size:1.05rem; line-height:1.5; max-width:480px; }.projects-grid { display:grid; gap:1rem; grid-template-columns:1.15fr .85fr; }.project { color:inherit; min-height:390px; overflow:hidden; padding:2.1rem; position:relative; transition:transform 300ms cubic-bezier(.16,1,.3,1); }.project:hover { transform:translateY(-8px); }.project-type { font-size:.7rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.project h3 { font-size:clamp(3.5rem,6.2vw,7.5rem); letter-spacing:-.075em; line-height:.72; margin:2rem 0 1.6rem; position:relative; z-index:1; }.project h3 em { font-family:Georgia,serif; font-weight:500; }.project > p { font-size:.96rem; line-height:1.5; margin:0; max-width:330px; position:relative; z-index:1; }.project-foot { align-items:center; bottom:1.8rem; display:flex; font-size:.76rem; font-weight:900; gap:.7rem; justify-content:space-between; left:2.1rem; position:absolute; right:2.1rem; text-transform:uppercase; z-index:2; }.project-foot b { align-items:center; border:1px solid currentColor; border-radius:50%; display:inline-flex; font-size:1rem; height:2rem; justify-content:center; width:2rem; }
.project-dayclic { background:#dff0e5; color:#163a4e; grid-row:span 2; min-height:795px; }.project-dayclic h3 span { color:#e96a51; }.project-dayclic::before { border:2px solid #163a4e; border-radius:50%; content:""; height:28rem; position:absolute; right:-11rem; top:-9rem; width:28rem; }.project-dayclic::after { background:#1e8885; border-radius:50%; content:""; height:8rem; position:absolute; right:17%; top:18%; width:8rem; }.dayclic-search { align-items:center; background:#fffdf6; bottom:7rem; display:flex; justify-content:space-between; left:2.1rem; padding:1rem 1.1rem; position:absolute; right:2.1rem; z-index:1; }.dayclic-search span { color:#527781; font-size:.85rem; }.dayclic-search b { align-items:center; background:#e96a51; border-radius:50%; color:white; display:flex; font-size:1.3rem; height:2.4rem; justify-content:center; width:2.4rem; }
.project-sweet { background:#e96a51; color:#153b50; }.project-sweet h3 em { color:#fff2c9; }.project-sweet::after { border:2px solid #153b50; content:""; height:11rem; position:absolute; right:-4rem; top:-4rem; transform:rotate(35deg); width:11rem; }.sound-bars { align-items:end; bottom:5.8rem; display:flex; gap:.45rem; height:7.5rem; position:absolute; right:2.1rem; z-index:1; }.sound-bars i { background:#fff2c9; display:block; width:1rem; }.sound-bars i:nth-child(1) { height:22%; }.sound-bars i:nth-child(2) { height:64%; }.sound-bars i:nth-child(3) { height:44%; }.sound-bars i:nth-child(4) { height:91%; }.sound-bars i:nth-child(5) { height:57%; }.sound-bars i:nth-child(6) { height:35%; }.sound-bars i:nth-child(7) { height:72%; }
.project-visa { background:#f6d85d; color:#153b50; }.project-visa h3 em { color:#1c7d75; }.project-visa::after { background:#d4ece7; clip-path:polygon(30% 0,100% 0,100% 100%,0 100%,0 28%); content:""; height:15rem; position:absolute; right:0; top:0; width:43%; }.visa-path { bottom:5.8rem; display:flex; gap:.65rem; left:2.1rem; position:absolute; z-index:1; }.visa-path span { background:#1c7d75; border-radius:50%; display:block; height:2.1rem; position:relative; width:2.1rem; }.visa-path span::after { background:#1c7d75; content:""; height:2px; left:100%; position:absolute; top:50%; width:.65rem; }.visa-path span:last-child::after { display:none; }
.motion-ready .project { opacity:0; transform:translateY(38px) rotate(-1deg); }.motion-ready .project.is-visible { animation:poster-arrival 800ms cubic-bezier(.16,1,.3,1) var(--poster-delay) both; }.motion-ready .project-dayclic.is-visible .dayclic-search { animation:search-slide 850ms cubic-bezier(.16,1,.3,1) 500ms both; }.motion-ready .project-sweet.is-visible .sound-bars i { animation:sound-pulse 900ms ease-in-out 550ms 4 both; }.motion-ready .project-sweet.is-visible .sound-bars i:nth-child(2) { animation-delay:640ms; }.motion-ready .project-sweet.is-visible .sound-bars i:nth-child(3) { animation-delay:730ms; }.motion-ready .project-sweet.is-visible .sound-bars i:nth-child(4) { animation-delay:820ms; }.motion-ready .project-visa.is-visible .visa-path { animation:path-walk 1.8s ease-in-out 600ms 3 both; }
@keyframes search-slide { from { opacity:0; transform:translateX(-40px); } to { opacity:1; transform:translateX(0); } }@keyframes sound-pulse { 0%,100% { transform:scaleY(1); transform-origin:bottom; } 50% { transform:scaleY(.45); transform-origin:bottom; } }@keyframes path-walk { 0%,100% { transform:translateX(0); } 50% { transform:translateX(12px); } }
@media (max-width:800px) { .projects { padding:5.5rem 1.25rem; }.projects-heading { margin-bottom:3rem; }.projects-heading h2 { font-size:clamp(2.8rem,12.5vw,4.5rem); }.projects-grid { grid-template-columns:1fr; }.project,.project-dayclic { min-height:420px; }.project-dayclic { grid-row:auto; }.project h3 { font-size:clamp(3.5rem,17vw,5.3rem); }.project-foot { left:1.5rem; right:1.5rem; }.dayclic-search { left:1.5rem; right:1.5rem; }.sound-bars { right:1.5rem; }.visa-path { left:1.5rem; } }

/* Galerie extensible : six projets forment deux rangées de trois sur grand écran. */
.projects-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.project { min-height:470px; }.project h3 { font-size:clamp(3.2rem,4.5vw,5.4rem); }.project-dayclic { grid-row:auto; min-height:470px; }.project-dayclic::before { height:22rem; right:-12rem; top:-8rem; width:22rem; }.project-dayclic::after { height:6rem; width:6rem; }.dayclic-search { bottom:6.5rem; }
@media (max-width:980px) { .projects-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) { .projects-grid { grid-template-columns:1fr; }.project,.project-dayclic { min-height:420px; }.project h3 { font-size:clamp(3.5rem,17vw,5.3rem); } }

.contact-section { background:var(--coral); color:var(--ink); display:grid; gap:5rem; grid-template-columns:.9fr 1.1fr; overflow:hidden; padding:8.5rem max(1.4rem,calc((100vw - 1280px)/2)); position:relative; }.contact-section::before { border:2px solid var(--ink); border-radius:50%; content:""; height:48rem; left:-27rem; position:absolute; top:-25rem; width:48rem; }.contact-section::after { background:var(--yellow); content:""; height:13rem; position:absolute; right:-4rem; top:-4rem; transform:rotate(25deg); width:13rem; }.contact-intro { position:relative; z-index:1; }.contact-intro .eyebrow { color:#803a32; }.contact-intro h2 { font-size:clamp(3rem,5vw,6.3rem); letter-spacing:-.065em; line-height:.84; margin:0 0 1.7rem; }.contact-intro h2 em { color:#fff4da; font-family:Georgia,serif; font-weight:500; }.contact-intro > p:not(.eyebrow) { font-size:1.05rem; line-height:1.5; max-width:410px; }.contact-stamp { border:2px solid var(--ink); bottom:-5.7rem; font-size:.75rem; font-weight:900; line-height:1.08; padding:.7rem; position:absolute; right:1.3rem; transform:rotate(-9deg); }
.contact-form { display:grid; gap:1.2rem; position:relative; z-index:1; }.contact-form > label,.contact-form fieldset { border:0; display:grid; font-size:.76rem; font-weight:900; gap:.45rem; margin:0; padding:0; text-transform:uppercase; }.contact-form input,.contact-form textarea { background:transparent; border:0; border-bottom:1px solid rgba(20,55,78,.65); border-radius:0; color:var(--ink); font-size:1rem; outline:0; padding:.75rem 0; resize:vertical; width:100%; }.contact-form input::placeholder,.contact-form textarea::placeholder { color:rgba(20,55,78,.58); }.contact-form input:focus,.contact-form textarea:focus { border-color:#fff4da; }.contact-form legend { font-size:.76rem; font-weight:900; margin-bottom:.65rem; padding:0; text-transform:uppercase; }.contact-options { display:flex; flex-wrap:wrap; gap:.55rem; }.contact-options label { cursor:pointer; }.contact-options input { position:absolute; opacity:0; }.contact-options span { border:1px solid rgba(20,55,78,.65); border-radius:999px; display:block; font-size:.74rem; font-weight:850; padding:.57rem .72rem; text-transform:none; transition:background 180ms ease,color 180ms ease,transform 180ms ease; }.contact-options input:checked + span { background:var(--ink); color:#fff4da; }.contact-options label:hover span { transform:translateY(-2px); }.message-label { margin-top:.5rem; }.contact-submit { align-items:center; background:var(--ink); border:0; border-radius:999px; color:#fff4da; cursor:pointer; display:flex; font-size:.92rem; font-weight:900; gap:.9rem; justify-content:center; margin-top:.4rem; min-height:3.4rem; padding:.7rem 1rem; width:max-content; }.contact-submit b { align-items:center; background:rgba(255,255,255,.16); border-radius:50%; display:flex; font-size:1.15rem; height:1.7rem; justify-content:center; width:1.7rem; }.contact-submit:hover { box-shadow:5px 5px 0 #fff4da; transform:translate(-2px,-2px); }.contact-note { font-size:.82rem; margin:0; }.site-footer { background:var(--ink); color:#d7e9e4; display:flex; font-size:.8rem; font-weight:800; justify-content:space-between; padding:1.35rem max(1.4rem,calc((100vw - 1280px)/2)); }.motion-ready .contact-intro,.motion-ready .contact-form { opacity:0; transform:translateY(35px); }.motion-ready .contact-intro.is-visible,.motion-ready .contact-form.is-visible { animation:poster-arrival 800ms cubic-bezier(.16,1,.3,1) var(--poster-delay,0ms) both; }
@media (max-width:800px) { .contact-section { gap:3.2rem; grid-template-columns:1fr; padding:5.5rem 1.25rem; }.contact-intro h2 { font-size:clamp(3rem,13.5vw,4.8rem); }.contact-stamp { bottom:-1rem; right:0; }.contact-section::before { height:28rem; left:-18rem; top:-16rem; width:28rem; }.contact-section::after { height:8rem; width:8rem; }.contact-submit { width:100%; }.site-footer { align-items:start; flex-direction:column; gap:.35rem; padding:1.25rem; } }

.contact-details { display:flex; font-size:.9rem; font-style:normal; font-weight:800; gap:1.4rem; line-height:1.45; margin-top:2.2rem; }.contact-details a { border-bottom:1px solid var(--ink); height:max-content; padding-bottom:.1rem; }
.contact-card { background:#fff4da; border:1px solid var(--ink); margin-top:2.4rem; max-width:510px; position:relative; }.contact-map { border-bottom:1px solid var(--ink); height:190px; overflow:hidden; width:100%; }.contact-map iframe { border:0; display:block; filter:saturate(.75) contrast(.98); height:100%; width:100%; }.map-details { display:grid; font-size:.86rem; font-style:normal; font-weight:800; gap:1.1rem 1.5rem; grid-template-columns:1fr 1fr; line-height:1.38; padding:1rem; }.map-details div:first-child { grid-row:span 2; }.map-details small { color:#803a32; display:block; font-size:.65rem; font-style:normal; font-weight:900; margin-bottom:.25rem; text-transform:uppercase; }.map-details span,.map-details a { display:block; }.map-details a { border-bottom:1px solid var(--ink); padding-bottom:.08rem; width:max-content; }
@media (max-width:800px) { .contact-details { flex-direction:column; gap:.6rem; } .contact-card { max-width:none; }.contact-map { height:210px; }.map-details { grid-template-columns:1fr; gap:.85rem; }.map-details div:first-child { grid-row:auto; } }
.hero-art::before { display:none; }
.hero-bottom { align-items:flex-start; flex-direction:column; gap:1rem; max-width:430px; }.hero-bottom p { color:#147777; font-family:Georgia,serif; font-size:1.28rem; font-style:italic; line-height:1.27; max-width:430px; }
