/*
Theme Name: Grafik & Fotograf Studio
Description: Dva návrhy úvodu G/F a šablony pro obsah WordPressu.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: gf-studio
*/
:root { --ink:#101418; --ink2:#192028; --paper:#f3f4f2; --cream:#f9f9f6; --blue:#0755f5; --line:rgba(13,19,29,.15); --muted:#7b828a; --white:#fff; --content:1440px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Inter,Arial,Helvetica,sans-serif; background:var(--paper); color:var(--ink); -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; } a { color:inherit; text-decoration:none; } button, input, textarea, select { font:inherit; } button { cursor:pointer; } ::selection { color:white; background:var(--blue); }
.skip { position:absolute; left:14px; top:-100px; z-index:10000; color:#000; background:white; padding:12px; } .skip:focus { top:10px; }
.container { width:min(calc(100% - 92px),var(--content)); margin:auto; }
.eyebrow { font:700 11px/1.3 Inter,Arial,sans-serif; letter-spacing:.22em; text-transform:uppercase; }
.section-pad { padding:122px 0; }
.blue { color:var(--blue); } .muted { color:var(--muted); }
.rule { height:1px; background:var(--line); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; border:1px solid transparent; padding:18px 22px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; transition:transform .25s,background .25s,color .25s,border-color .25s; white-space:nowrap; }
.button:hover { transform:translateY(-3px); } .button:focus-visible, a:focus-visible, button:focus-visible { outline:3px solid #8ab5ff; outline-offset:4px; }
.button.primary { color:white; background:var(--blue); } .button.primary:hover { background:#003ac4; }
.button.ghost { color:inherit; border-color:currentColor; background:transparent; } .button.ghost:hover { background:#ffffff12; } .button.light { background:#fff; color:var(--ink); } .button.light:hover { background:#e3ecff; }
.link-arrow { display:inline-flex; align-items:center; gap:18px; font-weight:800; font-size:11px; letter-spacing:.12em; text-transform:uppercase; } .link-arrow span:last-child { font-size:23px; transition:transform .2s; font-weight:400; } .link-arrow:hover span:last-child { transform:translate(3px,-3px); }
.tag { border:1px solid #ffffff5c; font-size:10px; line-height:1; padding:10px 12px; color:#fff; letter-spacing:.1em; text-transform:uppercase; }
.header { z-index:100; position:sticky; top:0; background:rgba(13,17,21,.96); backdrop-filter:blur(22px); color:white; border-bottom:1px solid #ffffff20; }
.nav { height:88px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.brand { display:flex; gap:8px; align-items:center; min-width:224px; } .brand img { width:64px; height:52px; object-fit:contain; margin:-8px -6px -8px -10px; } .brand-copy { display:flex; flex-direction:column; } .brand-copy strong { font-weight:900; font-size:14px; letter-spacing:.12em; white-space:nowrap; } .brand-copy small { font-size:7px; letter-spacing:.2em; margin-top:4px; opacity:.68; white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:clamp(16px,2.25vw,38px); } .nav-links a { text-transform:uppercase; font-size:10px; font-weight:800; letter-spacing:.12em; opacity:.76; transition:opacity .2s; } .nav-links a:hover { opacity:1; } .nav-right { display:flex; align-items:center; gap:14px; }
.nav-cta { padding:13px 17px; border:1px solid #526caa; color:#fff; display:flex; align-items:center; gap:24px; font-size:10px; font-weight:900; letter-spacing:.1em; white-space:nowrap; } .nav-cta b { color:#75a5ff; font-size:19px; font-weight:400; }
.menu-button { display:none; background:transparent; border:1px solid #ffffff80; color:white; height:44px; width:48px; font-size:23px; }
.mobile-menu { display:none; padding:0 0 24px; flex-direction:column; gap:8px; } .mobile-menu a { padding:15px 0; font-weight:800; text-transform:uppercase; border-bottom:1px solid #ffffff23; }
.site-footer { color:#c6cbd2; background:#0d1116; padding:50px 0 34px; } .footer-top { display:grid; grid-template-columns:2fr 1fr 1fr; gap:54px; padding-bottom:55px; border-bottom:1px solid #ffffff25; } .footer-title { font-size:clamp(24px,3.7vw,55px); font-weight:900; letter-spacing:-.075em; margin:15px 0 28px; color:white; line-height:1.06; } .footer-subtitle { color:#87909b; font-size:13px; line-height:1.9; max-width:430px; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:13px; } .footer-links a:hover { color:white; } .footer-links h4 { color:white; font-size:12px; letter-spacing:.15em; text-transform:uppercase; margin:6px 0 12px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:26px; gap:24px; color:#7e8995; font-size:11px; } .footer-bottom a { color:#abbacb; }
.cmyk { display:inline-flex; gap:4px; margin-left:10px; vertical-align:middle; } .cmyk i { display:block; width:7px; height:7px; border-radius:100%; } .cmyk i:nth-child(1){background:#00afff}.cmyk i:nth-child(2){background:#ef4ca9}.cmyk i:nth-child(3){background:#ffc72b}.cmyk i:nth-child(4){background:white}
/* HOME | dark creative editorial */
.home-hero { color:white; background:#0d1218; position:relative; overflow:hidden; isolation:isolate; }
.home-hero::before { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(120deg,transparent 0%,transparent 40%,rgba(7,85,245,.09) 100%),linear-gradient(90deg,rgba(255,255,255,.024) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.024) 1px,transparent 1px); background-size:cover,74px 74px,74px 74px; }
.home-hero::after { content:''; position:absolute; width:580px; height:580px; background:#0755f539; border-radius:50%; filter:blur(150px); left:53%; top:6%; z-index:-1; }
.hero-shell { position:relative; padding:66px 0 56px; min-height:715px; display:grid; grid-template-columns:1fr 1.03fr; gap:5%; align-items:center; }
.hero-topline { display:flex; align-items:center; gap:12px; color:#b4c4db; margin-bottom:36px; } .pulse { display:inline-block; height:9px; width:9px; border-radius:50%; background:#84adff; box-shadow:0 0 0 5px #0755f544; }
.hero-title { margin:0 0 31px; max-width:850px; font-size:clamp(50px,5.3vw,92px); line-height:.99; letter-spacing:-.08em; font-weight:900; } .hero-title .outline { -webkit-text-stroke:1.2px #d5e2fd; color:transparent; } .hero-title .mark { color:#548aff; }
.hero-lead { max-width:470px; font-size:16px; line-height:1.78; color:#adb9ca; margin-bottom:36px; }
.hero-acts { display:flex; flex-wrap:wrap; gap:16px; align-items:center; } .hero-slide-note { margin-top:65px; color:#697a8e; font-size:11px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; display:flex; align-items:center; gap:24px; }
.line-stem { width:74px; height:1px; background:#779afa; display:inline-block; }
.hero-grid { min-height:575px; display:grid; gap:12px; grid-template-columns:1.12fr .88fr; grid-template-rows:1fr .8fr; transform:rotate(-2deg); }
.hero-tile { position:relative; overflow:hidden; border:1px solid #ffffff28; background:#172231; isolation:isolate; min-height:226px; } .hero-tile:nth-child(1) { grid-row:1/3; } .hero-tile img { width:100%; height:100%; object-fit:cover; transition:transform .7s ease; filter:saturate(.73); } .hero-tile:hover img{transform:scale(1.075);filter:saturate(1)} .hero-tile::after {content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#03080de8);z-index:0}
.hero-tile figcaption {position:absolute;bottom:20px;left:21px;right:21px;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:14px;} .hero-tile figcaption b { font-size:clamp(14px,1.35vw,21px); letter-spacing:-.04em; text-transform:uppercase; line-height:1.18;} .hero-tile figcaption small { display:block; color:#b5c1d0; font-size:10px; letter-spacing:.18em; padding-bottom:7px; } .hero-tile figcaption .tile-arrow { display:grid;place-items:center; flex:0 0 33px;width:33px;height:33px;background:var(--blue);font-size:20px; }
.hero-tile.tile-lens {background:#09192e;} .hero-tile.tile-lens img{object-fit:cover}
.marquee { background:var(--blue); overflow:hidden; color:white; padding:14px 0; } .marquee-track { display:flex; width:max-content; gap:55px; font-size:11px; font-weight:900; letter-spacing:.17em; text-transform:uppercase; animation:slide 26s linear infinite; } .marquee b { color:#a6c5ff; } @keyframes slide {to{transform:translateX(-50%)}}
.section-heading { display:flex; justify-content:space-between; gap:30px; align-items:end; margin-bottom:55px; } .section-heading h2 {margin:13px 0 0;font-size:clamp(34px,4.8vw,68px); letter-spacing:-.068em;line-height:1.02;max-width:790px} .section-heading > p { font-size:15px;line-height:1.77;max-width:360px;color:#66717c;margin:0 0 7px; }
.offer { background:#f6f7f7; } .offer-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d8dde1; border:1px solid #d8dde1; } .offer-card { background:#fff;padding:39px 32px 34px;min-height:294px;transition:background .25s;display:flex;flex-direction:column; } .offer-card:hover{background:#ecf1ff} .offer-no { font-weight:900;font-size:11px;letter-spacing:.1em;color:var(--blue);margin-bottom:56px } .offer-card h3{font-size:clamp(19px,2vw,28px);margin:0 0 12px;letter-spacing:-.05em} .offer-card p{font-size:13px;line-height:1.76;color:#76808b;max-width:295px;margin:0 0 26px}.offer-card a{margin-top:auto;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;display:flex;justify-content:space-between;align-items:center}.offer-card a span{font-size:25px;font-weight:400;color:var(--blue)}
.manifesto {background:#131a23;color:white;overflow:hidden;position:relative}.manifesto::before{content:'GF';position:absolute;right:-40px;bottom:-170px;font-size:470px;line-height:1;font-weight:900;letter-spacing:-.14em;opacity:.05;pointer-events:none}.manifesto-inner { display:grid; grid-template-columns:.63fr 1fr;gap:80px;align-items:center}.manifesto h2 {margin:0;font-size:clamp(39px,5vw,72px);letter-spacing:-.075em;line-height:1.04}.manifesto h2 em{font-style:normal;color:#6fa3ff}.manifesto p{max-width:650px;line-height:1.85;color:#adb8c6;font-size:16px;margin:0 0 30px}.manifesto-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:28px}.manifesto-tiles span{border-top:1px solid #566277;padding-top:13px;font-size:12px;color:#d0daeb}
.showcase {background:#ecefeb}.showcase-grid{display:grid;grid-template-columns:1.18fr .82fr;grid-template-rows:repeat(2,275px);gap:14px}.showpiece{position:relative;overflow:hidden;background:#d4d9de}.showpiece:first-child{grid-row:1/3}.showpiece img{height:100%;width:100%;object-fit:cover;transition:transform .5s}.showpiece:hover img{transform:scale(1.035)}.showpiece figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#080b10c9);color:white;padding:50px 25px 22px}.showpiece figcaption small{display:block;letter-spacing:.15em;font-size:9px;text-transform:uppercase;color:#ccd5dc;margin-bottom:9px}.showpiece figcaption strong{display:block;font-size:21px;letter-spacing:-.04em}
.caution {border-left:2px solid var(--blue);padding-left:18px;font-size:12px;color:#626c75;line-height:1.6;max-width:740px;margin:20px 0 0}
.stats{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:40px 0}.stat{padding:12px 34px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat b{font-size:clamp(36px,4vw,61px);letter-spacing:-.08em;display:block}.stat span{display:block;margin-top:8px;color:#757d85;font-size:12px;line-height:1.45}
.cta-dark { background:var(--blue);color:white;position:relative;overflow:hidden; } .cta-dark::before{content:'';position:absolute;border:1px solid #ffffff32;width:490px;height:490px;border-radius:50%;right:-150px;top:-160px;box-shadow:0 0 0 90px #ffffff08,0 0 0 180px #ffffff05;} .cta-content{display:flex;align-items:end;justify-content:space-between;gap:28px;position:relative}.cta-content h2{font-size:clamp(46px,6.5vw,104px);line-height:.92;letter-spacing:-.085em;max-width:950px;margin:15px 0 0}.cta-dark .eyebrow{color:#c4d6ff}
/* SINGLE PAGE | light editorial, uses the same identity */
.gf-light {background:#f6f7f5}.gf-light .header{background:#f9faf9;color:#18202b;border-bottom:1px solid #d9dde3}.gf-light .nav-links a{color:#24313b;opacity:.87}.gf-light .nav-cta {color:#12336c;border-color:#bbc7dc}.gf-light .menu-button{color:#141c28;border-color:#9eafc7}.gf-light .mobile-menu a{border-bottom-color:#cfd4dc}
.single-hero{padding:72px 0 0;position:relative;overflow:hidden;min-height:690px;background:#f7f8f6}.single-hero::before{content:'';position:absolute;background:radial-gradient(circle,#0755f510 1px,transparent 2px);background-size:24px 24px;inset:0 0 0 54%;opacity:.48;pointer-events:none}.single-hero-inner{position:relative}.single-kicker{display:flex;gap:14px;align-items:center;color:#66707c;margin-bottom:34px}.single-hero h1{font-weight:900;font-size:clamp(66px,9.3vw,151px);line-height:.88;letter-spacing:-.096em;margin:0 0 20px;max-width:1200px;position:relative;z-index:2}.single-hero h1 em{font-style:normal;color:var(--blue)}.single-hero h1 .hollow{-webkit-text-stroke:2px #182635;color:transparent}.single-lede{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:50px;padding-bottom:60px;position:relative;z-index:2}.single-lede p{font-size:18px;line-height:1.65;max-width:430px;color:#54606b}.single-floating {position:absolute;right:-4%;top:25px;width:36%;max-width:490px;opacity:.91;transform:rotate(8deg);filter:drop-shadow(12px 18px 40px #132b3820);z-index:1;mix-blend-mode:multiply}.single-note{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;text-align:right;color:#6d798b}
.single-intro{background:#151e28;color:white;padding:80px 0}.single-intro-content{display:grid;grid-template-columns:.67fr 1fr;gap:70px;align-items:start}.single-intro h2{font-size:clamp(42px,5.2vw,76px);line-height:1.04;letter-spacing:-.07em;margin:13px 0 0}.single-intro p{font-size:18px;line-height:1.75;color:#adb9c9;margin:18px 0 27px;max-width:680px}
.single-section-title{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:end;margin-bottom:55px}.single-section-title h2{font-size:clamp(48px,6vw,90px);line-height:.97;letter-spacing:-.08em;margin:15px 0 0}.single-section-title p{margin:0 0 5px;color:#66717e;line-height:1.74;max-width:475px}
.service-rows{border-top:1px solid #c9d0d6}.service-row{display:grid;grid-template-columns:65px 1fr 1.1fr 35px;align-items:center;gap:28px;min-height:175px;border-bottom:1px solid #c9d0d6;padding:32px 0;transition:padding .2s,background .2s}.service-row:hover{padding-left:15px;background:#edf1f9}.service-row .num{font-weight:900;font-size:12px;color:var(--blue)}.service-row h3{font-size:clamp(24px,3vw,43px);font-weight:800;letter-spacing:-.065em;margin:0}.service-row p{font-size:13px;line-height:1.7;color:#69737f;max-width:410px}.service-row .arr{font-size:29px;font-weight:300;color:var(--blue)}
.mosaic-wide{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:260px 260px;gap:12px}.mosaic-wide .cell{position:relative;overflow:hidden;background:#dfe5e8}.mosaic-wide .cell:first-child{grid-row:span 2}.mosaic-wide img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.mosaic-wide .cell:hover img{transform:scale(1.04)}.mosaic-wide .cell span{position:absolute;left:20px;bottom:20px;font-size:11px;color:white;text-shadow:0 1px 9px black;background:#0c1529c0;padding:8px 10px;letter-spacing:.04em}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 23px}.filter{border:1px solid #b9c3cd;background:transparent;padding:12px 18px;font-size:11px;letter-spacing:.09em;font-weight:800;text-transform:uppercase}.filter[aria-pressed="true"]{color:white;background:var(--blue);border-color:var(--blue)}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.project-card{background:#fff;border:1px solid #e4e8eb;padding:9px 9px 20px}.project-card[hidden]{display:none}.project-img{aspect-ratio:1.17;background:#e9edf0;overflow:hidden}.project-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.project-card:hover img{transform:scale(1.045)}.project-card small{display:block;margin:18px 13px 8px;color:var(--blue);letter-spacing:.14em;font-size:10px;font-weight:900;text-transform:uppercase}.project-card h3{margin:0 13px;font-size:20px;letter-spacing:-.04em}
.single-approach{background:#e9edeb}.approach-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px}.approach-grid article{padding:35px;border-top:2px solid #171e2a;background:#f6f8f6}.approach-grid span{font-size:11px;font-weight:900;color:var(--blue)}.approach-grid h3{font-size:24px;letter-spacing:-.05em;margin:46px 0 18px}.approach-grid p{color:#6a7581;line-height:1.75;font-size:13px}
.quote{background:#0755f5;color:#fff;padding:70px 0}.quote-inner{display:flex;justify-content:space-between;align-items:end;gap:45px}.quote p{font-size:clamp(25px,3.4vw,48px);font-weight:800;letter-spacing:-.055em;line-height:1.2;max-width:940px;margin:0}.quote small{font-size:11px;line-height:1.5;min-width:180px;color:#d1e0ff}
.contact-section{background:#101821;color:#fff}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-layout h2{font-size:clamp(50px,6vw,89px);line-height:.99;letter-spacing:-.08em;margin:14px 0 36px}.contact-direct a{font-size:clamp(17px,2.2vw,27px);font-weight:700;display:block;margin:17px 0}.contact-direct a:hover{color:#8bb6ff}.contact-direct small{color:#8797a9;line-height:1.75}.contact-form {border:1px solid #ffffff35;padding:35px;background:#141e29}.field{margin-bottom:23px}.field label{display:block;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;margin-bottom:10px;color:#b5c8dd}.field input,.field textarea,.field select{color:white;background:transparent;border:0;border-bottom:1px solid #5b6e83;border-radius:0;padding:12px 0;outline:0;width:100%;font-size:14px}.field input:focus,.field textarea:focus,.field select:focus{border-bottom-color:#6195ff}.field select option{background:#15202c;color:white}.field textarea{resize:vertical;min-height:94px}.field input::placeholder,.field textarea::placeholder{color:#708299}.form-note{color:#92a0af;font-size:11px;line-height:1.6;margin:14px 0 0}
@media (max-width:1100px){.container{width:min(calc(100% - 64px),var(--content))}.nav-links{gap:16px}.brand{min-width:auto}.nav-cta{gap:8px}.hero-shell{gap:2%}.hero-title{font-size:clamp(44px,5.8vw,66px)}.hero-grid{min-height:495px}.single-floating{width:42%;right:-6%}}
@media (max-width:860px){.nav{height:75px}.menu-button{display:block}.nav-links,.nav-cta{display:none}.mobile-menu[aria-hidden="false"]{display:flex}.hero-shell{grid-template-columns:1fr;gap:40px;min-height:auto;padding:75px 0}.hero-grid{min-height:500px;max-width:720px;transform:none}.hero-title{font-size:clamp(50px,8vw,86px);max-width:820px}.hero-slide-note{margin-top:36px}.offer-grid{grid-template-columns:repeat(2,1fr)}.manifesto-inner{gap:35px;grid-template-columns:1fr 1fr}.single-hero h1{font-size:clamp(56px,9.5vw,100px)}.single-floating{opacity:.5;width:45%;top:70px}.footer-top{grid-template-columns:1.4fr 1fr}.footer-top>div:last-child{grid-column:1/-1}.contact-layout{gap:35px}.single-section-title{gap:25px}}
@media (max-width:650px){.container{width:calc(100% - 36px)}.nav{height:70px}.brand img{width:53px;height:43px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:6.5px}.section-pad{padding:80px 0}.hero-shell{padding:55px 0}.hero-title{font-size:clamp(48px,13vw,70px)}.hero-lead{font-size:14px}.hero-grid{min-height:400px;gap:7px}.hero-tile{min-height:170px}.hero-tile figcaption{left:12px;bottom:12px;right:9px}.hero-tile figcaption b{font-size:15px}.hero-tile figcaption small{font-size:8px}.hero-tile figcaption .tile-arrow{width:23px;height:23px;flex-basis:23px;font-size:15px}.hero-tile:nth-child(1) img{object-position:52%}.section-heading{display:block}.section-heading>p{margin-top:22px}.offer-grid{grid-template-columns:1fr}.offer-card{min-height:250px;padding:29px 24px}.offer-no{margin-bottom:35px}.manifesto-inner{grid-template-columns:1fr}.manifesto-inner>div:first-child{display:none}.showcase-grid{grid-template-columns:1fr 1fr;grid-template-rows:280px 180px}.showpiece:first-child{grid-column:1/-1;grid-row:1}.showpiece figcaption{padding:40px 13px 15px}.showpiece figcaption strong{font-size:16px}.stats-grid{grid-template-columns:1fr 1fr}.stat{padding:16px!important;border-bottom:1px solid var(--line)}.stat:nth-child(2){border-right:0}.cta-content{display:block}.cta-content .button{margin-top:38px}.footer-top{grid-template-columns:1fr;gap:30px}.footer-top>div:last-child{grid-column:auto}.footer-bottom{flex-direction:column;align-items:flex-start}.single-hero{padding:58px 0 0;min-height:initial}.single-hero h1{font-size:clamp(54px,12vw,82px)}.single-floating{width:72%;right:-15%;top:75px;opacity:.28}.single-lede{display:block;padding-top:20px}.single-lede p{font-size:15px}.single-note{display:none}.single-intro-content{grid-template-columns:1fr;gap:8px}.single-section-title{display:block}.single-section-title p{margin-top:25px}.service-row{grid-template-columns:30px 1fr 20px;gap:12px;padding:28px 0}.service-row p{grid-column:2/3;grid-row:2;margin:0}.service-row .arr{grid-row:1}.service-row h3{font-size:27px}.mosaic-wide{grid-template-columns:1fr 1fr;grid-template-rows:230px 155px}.mosaic-wide .cell:first-child{grid-column:1/-1;grid-row:1}.projects-grid{grid-template-columns:1fr 1fr}.approach-grid{grid-template-columns:1fr}.approach-grid article h3{margin:25px 0 12px}.quote-inner{display:block}.quote small{display:block;margin-top:30px}.contact-layout{grid-template-columns:1fr;gap:38px}.contact-form{padding:24px}.button{gap:15px}}
@media (max-width:440px){.hero-grid{grid-template-columns:1fr 1fr;grid-template-rows:250px 165px}.hero-tile:nth-child(1){grid-row:1;grid-column:1/-1}.hero-tile:nth-child(2){grid-column:1}.hero-tile:nth-child(3){grid-column:2}.projects-grid{grid-template-columns:1fr}.button{white-space:normal}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track{animation:none}*,*::before,*::after{transition-duration:0s!important}}
/* Ensure the four parts of a mobile service row stay on the intended grid tracks. */
@media(max-width:650px){
 .service-row .num{grid-column:1;grid-row:1;width:auto}
 .service-row h3{grid-column:2;grid-row:1;min-width:0}
 .service-row .arr{grid-column:3;grid-row:1}
 .service-row p{grid-column:2;grid-row:2;min-width:0}
}

/* Four-tile hero mosaic: Graphic, Photo/Video, 3D, Vinyl/Printing. */
.home .hero-grid{grid-template-columns:1.13fr .87fr;grid-template-rows:1.14fr .86fr}
.home .hero-tile:nth-child(1){grid-row:auto}
@media(max-width:440px){
 .home .hero-grid{grid-template-columns:1fr 1fr;grid-template-rows:245px 164px 164px}
 .home .hero-tile:nth-child(1){grid-row:1;grid-column:1/-1}
 .home .hero-tile:nth-child(2){grid-row:2;grid-column:1}
 .home .hero-tile:nth-child(3){grid-row:2;grid-column:2}
 .home .hero-tile:nth-child(4){grid-row:3;grid-column:1/-1}
}
.gf-menu {flex:1;min-width:0}
.gf-menu ul,.footer-links ul {list-style:none;margin:0;padding:0}
.gf-menu>ul,.gf-menu>.gf-pages>ul {display:flex;align-items:center;justify-content:center;gap:6px 16px;flex-wrap:wrap}
.gf-menu li {position:relative}
.gf-menu a {display:block;padding:8px 0;font-size:12px;font-weight:700}
.gf-menu a:hover,.gf-menu a[aria-current="page"] {text-decoration:underline;text-underline-offset:4px}
.gf-menu li ul {display:none;position:absolute;background:var(--ink2);color:white;padding:12px;width:210px;z-index:2}
.gf-menu li:hover>ul,.gf-menu li:focus-within>ul {display:block}
.gf-menu li ul ul {left:100%;top:0}
.gf-list,.gf-entry {padding-block:clamp(42px,6vw,90px)}
.gf-list h1,.gf-heading h1 {font-size:clamp(34px,5.4vw,78px);line-height:1.04;letter-spacing:-.045em;margin:.3em 0 .65em;overflow-wrap:anywhere}
.gf-featured img {width:100%;max-height:590px;object-fit:cover;margin-bottom:36px}
.gf-content {font-size:clamp(16px,1.2vw,19px);line-height:1.65;overflow-wrap:break-word;padding-inline:clamp(18px,4vw,60px)}
.gf-content>:where(:not(.alignfull):not(.alignwide):not(.alignleft):not(.alignright)),.gf-comments {max-width:800px;margin-inline:auto}
.gf-content>.alignwide {max-width:1280px;margin-inline:auto}
.gf-content>.alignfull {margin-inline:calc(-1 * clamp(18px,4vw,60px))}
.gf-content img {height:auto}
.gf-content a:where(:not(.wp-element-button):not(.wp-block-button__link)),.gf-list>p a {text-decoration:underline;text-underline-offset:.16em}
.gf-content .alignleft {float:left;margin-right:1em}.gf-content .alignright {float:right;margin-left:1em}
.gf-content::after {content:"";display:table;clear:both}
.gf-comments {padding:32px 18px}.gf-comments textarea {display:block;width:100%}
.gf-post-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:24px;margin:32px 0}
.gf-post-card {padding:26px;background:white}.gf-post-card img {width:100%;height:auto}
.gf-post-card h2 a:hover {color:var(--blue)}
.site-footer .footer-links h3 {font-size:14px}.header .gf-own-logo {width:auto;max-width:100px}
.admin-bar .header {top:32px}
@media(max-width:1200px){
.nav {height:auto;min-height:72px;flex-wrap:wrap;gap:8px;position:relative}
.gf-menu {order:3;flex:0 0 100%;max-height:65vh;overflow:auto}
.gf-menu>ul,.gf-menu>.gf-pages>ul {display:block}
.gf-menu li ul {display:block;position:static;width:auto;background:transparent;color:inherit;padding:0 0 0 16px}
.gf-menu a {padding:10px;border-top:1px solid #80808044}
.gf-js .gf-menu[aria-hidden="true"] {display:none}
.gf-js .menu-button {display:block}
.nav-right {margin-left:auto}
}
@media(min-width:1201px){.header .nav {gap:16px}.header .brand {min-width:auto}}
@media(max-width:782px){.admin-bar .header {top:46px}}
@media(max-width:600px){.admin-bar .header {top:0}}
