/*
Theme Name: DC Solutions — Kahvila & AI
Author: Daniel Cederberg
Description: Kevyt, kovakoodattu henkilökohtainen WordPress-teema.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: dcsolutions
*/
:root{--ink:#302219;--blue:#205ce5;--muted:#70645b;--line:#dacdbb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#f7f2e9;color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif}h1,h2,h3,p,figure{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,.brand{font-family:Georgia,'Times New Roman',serif;font-weight:400}h2{font-size:44px;line-height:1.15;letter-spacing:-1.1px}h3{font-size:25px;line-height:1.25}.container{width:min(1160px,calc(100% - 80px));margin:auto}.header{background:#faf6eef5;position:sticky;top:0;z-index:20;border-bottom:1px solid #e3d9c9;backdrop-filter:blur(12px)}.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between}.brand{font-size:26px;line-height:1.1}.brand span{display:block;font:12px Arial;letter-spacing:4px;margin-top:9px}.brand span:before{content:'';display:inline-block;width:28px;height:1px;background:#aa8d68;margin-right:10px;vertical-align:middle}nav{display:flex;align-items:center;gap:32px;font-size:15px}.nav-cta,.button{background:var(--blue);color:white;border-radius:30px;display:inline-flex;align-items:center;gap:24px;padding:13px 25px;transition:transform .2s,background .2s}.button{font-size:16px;padding:17px 28px}.button:hover,.nav-cta:hover{background:#1744ac;transform:translateY(-2px)}.menu-toggle{display:none}.skip{position:absolute;top:-70px;background:white;padding:15px;z-index:99}.skip:focus{top:0}:focus-visible{outline:3px solid #7399ff;outline-offset:5px}.hero-band{background:linear-gradient(90deg,#17120dc9 0%,#17120d69 46%,#17120d05 75%),url('assets/cafe-hero.webp') center 58%/cover;position:relative;color:#fff9ee}.hero{min-height:610px;display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:20px;padding-block:65px}.eyebrow,.card-tag{font:12px/1.7 Arial;letter-spacing:2.8px;text-transform:uppercase}.hero h1{font-size:clamp(48px,4.9vw,70px);line-height:1.04;letter-spacing:-2px;margin:20px 0}.lead{font-size:21px;line-height:1.55;color:#f2eade}.hero-actions{margin-top:30px}.micro{font-size:14px;margin-top:15px;color:#ded3c5}.workflow{height:310px;position:relative;align-self:start;margin-top:10px}.connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.connections path{fill:none;stroke:#69b3ff;stroke-width:1.2;stroke-dasharray:8 5;animation:flow 12s linear infinite;filter:drop-shadow(0 0 5px #42a1ff)}.node{position:absolute;width:108px;height:105px;border:1px solid #88bfff;background:#243f595c;backdrop-filter:blur(8px);border-radius:12px;box-shadow:0 0 20px #54a8ff33,inset 0 0 12px #90caff22;color:#e2f1ff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia;font-size:21px;animation:float 6s ease-in-out infinite}.node span{font:32px Arial;margin-bottom:6px}.node-idea{left:0;top:85px}.node-ai{left:37%;top:45px;animation-delay:-2s}.node-build{right:0;top:120px;animation-delay:-4s}.reassurance{display:flex;align-items:center;justify-content:center;gap:28px;padding-block:28px;font-size:16px;color:#6c5948}.reassurance>span{height:1px;flex:1;background:#cbb79e}.section{padding-block:45px 65px}.section-heading{text-align:center;max-width:740px;margin:0 auto 36px}.section-heading .eyebrow{color:#765335;margin-bottom:12px}.section-heading>p:last-child{font-size:16px;color:var(--muted);max-width:610px;margin:17px auto 0}.help-grid{display:grid;grid-template-columns:repeat(3,1fr)}.help-grid article{padding:15px 35px;position:relative;transition:background .2s}.help-grid article+article{border-left:1px solid var(--line)}.help-grid article:hover{background:#fff9ef}.service-icon{font:38px Georgia;display:block;margin-bottom:16px}.card-tag{color:#976d45;font-size:12px;letter-spacing:1.5px}.help-grid h3{margin:15px 0}.help-grid p{font-size:16px;color:#665748;line-height:1.7}.card-foot{display:block;margin-top:22px;font-size:14px;color:#805c39}.about-band{background:radial-gradient(ellipse at 15% 15%,#483122,#22170f 80%);color:#faf2e6;padding:48px 0}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;align-items:center}.founder-photo img{display:block;width:100%;height:470px;object-fit:cover;object-position:center 40%;border-radius:7px}.about-copy .eyebrow{color:#d5bda2;font-size:12px;margin-bottom:14px}.about-copy h2{font-size:52px;margin-bottom:16px}.large-copy{font-family:Georgia;font-size:26px;line-height:1.3;margin-bottom:20px}.about-copy>p:not(.eyebrow):not(.large-copy){color:#ddcfc0;font-size:16px;margin-top:15px}.plain-note{border-top:1px solid #6f5843;margin-top:22px;padding-top:18px;display:flex;gap:15px;font-size:15px;color:#e4d4c0}.process-section{padding-top:60px}.process{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}.process li{position:relative}.process li:not(:last-child):after{content:'→';position:absolute;right:0;top:0;color:#a98760;font-size:25px}.step{display:flex;width:40px;height:40px;border:1px solid #ac8a62;border-radius:50%;align-items:center;justify-content:center;font:20px Georgia;margin-bottom:15px}.process h3{font-size:23px}.process p{font-size:15px;color:var(--muted);margin-top:10px}.simple-statement{border-block:1px solid var(--line);display:flex;gap:25px;padding:25px 0;margin-top:40px;align-items:center}.simple-statement>span{font-size:35px;color:#8c6841}.simple-statement h3{font-size:24px}.simple-statement p{font-size:16px;color:var(--muted);margin-top:7px}.faq-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:55px;padding-bottom:65px}.faq-section .eyebrow{color:#765335;margin-bottom:13px}.faq-section h2{font-size:35px}.faq-items details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;padding:15px 28px 15px 0;position:relative;font-size:16px}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:0;color:#94704a}details[open] summary:after{content:'−'}details p{font-size:16px;color:var(--muted);padding:0 22px 20px 0}.closing{max-width:none;width:100%;padding:48px max(40px,calc((100vw - 1160px)/2));background:linear-gradient(90deg,#eedcc5f5,#eedcc5e6),url('assets/cafe-hero.webp') center 70%/cover;position:relative}.closing h2{font-size:43px;margin:10px 0 15px}.closing p{max-width:650px}.closing .button{margin-top:20px}.closing .micro{color:#665342}.closing-signature{display:none}.booking-note{font-size:14px;color:#6c5540;margin-top:20px}.booking-note:focus{outline:2px solid var(--blue)}footer.container{width:100%;max-width:none;padding:26px max(40px,calc((100vw - 1160px)/2));background:#261b13;color:#eee1d1;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:14px}footer>span{font:20px Georgia}footer small{display:block;font:12px Arial;letter-spacing:1px;margin-top:5px}.reveal{transition:opacity .7s,transform .7s}.reveal.is-pending{opacity:0;transform:translateY(16px)}@keyframes flow{to{stroke-dashoffset:-156}}@keyframes float{50%{transform:translateY(-7px)}}
@media(max-width:1000px){.container{width:calc(100% - 56px)}nav{gap:18px}.hero h1{font-size:55px}.node{width:85px;height:90px}.about-grid{gap:35px}.help-grid article{padding:15px 22px}.founder-photo img{height:490px}.about-copy h2{font-size:43px}}
@media(max-width:760px){.container{width:calc(100% - 40px)}.header-inner{height:74px}.brand{font-size:21px}.brand span{font-size:10px;letter-spacing:3px}.menu-toggle{display:block;background:transparent;border:1px solid #cbb9a2;border-radius:20px;padding:7px 12px;font-size:14px;color:var(--ink)}nav{display:none;position:absolute;top:74px;left:0;right:0;background:#faf6ee;padding:15px 20px;border-bottom:1px solid var(--line)}nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav a{padding:12px}.nav-cta{margin-top:8px;justify-content:center}.hero{grid-template-columns:1fr;gap:0;padding:45px 0 30px;min-height:720px;align-content:start}.hero-band{background-position:64% center;background-image:linear-gradient(180deg,#17120ddd 0%,#17120d99 48%,#17120d05 80%),url('assets/cafe-hero.webp')}.hero h1{font-size:49px;letter-spacing:-1.8px}.hero .eyebrow{font-size:11px;letter-spacing:2px}.lead{font-size:18px}.button{font-size:16px;padding:15px 22px}.hero-actions{margin-top:24px}.workflow{margin:25px 0 0;height:210px;max-width:420px;width:100%;justify-self:center}.node{width:85px;height:85px;font-size:18px}.node span{font-size:27px}.node-idea{top:55px}.node-ai{top:15px}.node-build{top:65px}.connections{height:180px}.reassurance{font-size:14px;text-align:center;gap:12px;padding-block:25px}.reassurance>span{min-width:15px}.section{padding-block:35px 45px}h2{font-size:34px}.section-heading{margin-bottom:25px}.section-heading>p:last-child{font-size:16px}.help-grid{grid-template-columns:1fr}.help-grid article{padding:25px 5px}.help-grid article+article{border-left:0;border-top:1px solid var(--line)}.service-icon{margin-bottom:8px}.help-grid h3 br{display:none}.help-grid p{font-size:16px}.about-grid{grid-template-columns:1fr;gap:30px}.about-band{padding:30px 0 40px}.founder-photo{max-width:440px;width:100%;margin:auto}.founder-photo img{height:400px;object-position:center 35%}.about-copy h2{font-size:43px}.large-copy{font-size:25px}.process{grid-template-columns:1fr 1fr;gap:28px}.process li:nth-child(2):after{display:none}.process h3{font-size:22px}.simple-statement{gap:15px;align-items:start}.simple-statement h3{font-size:24px}.faq-section{grid-template-columns:1fr;gap:25px;padding-bottom:45px}.faq-section h2{font-size:33px}.closing{padding:35px 20px}.closing h2{font-size:36px}.closing p br{display:none}footer.container{padding:25px 20px;flex-wrap:wrap}footer p{order:3;width:100%}.micro{font-size:12px}}
@media(max-width:360px){.hero h1{font-size:43px}.node{width:76px}.process{grid-template-columns:1fr}.process li:after{display:none}.founder-photo img{height:350px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal.is-pending{opacity:1;transform:none}}

.admin-bar .header{top:32px}.wp-fallback{padding-block:70px;min-height:60vh}.wp-fallback h1{font-size:48px;margin-bottom:25px}.wp-fallback img{max-width:100%;height:auto}@media(max-width:782px){.admin-bar .header{top:46px}}@media(max-width:600px){.admin-bar .header{top:0}}
/* Keep SVG coordinates in the same space as the workflow cards. */
.workflow .connections{height:100%;z-index:0}.workflow .node{z-index:1;animation:none}

/* Portfolio: real work, with lightweight local screenshots. */
.portfolio{border-top:1px solid var(--line)}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.work-card{background:#fffcf7;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.work-image{display:block;overflow:hidden;background:#e7dfd2;border-bottom:1px solid var(--line)}.work-image img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;transition:transform .35s}.work-image:hover img{transform:scale(1.025)}.work-copy{padding:26px;display:flex;flex-direction:column;flex:1}.work-copy .eyebrow{font-size:12px;letter-spacing:1.3px}.work-copy h3{font-size:29px;margin:10px 0 14px}.work-copy>p:not(.eyebrow){font-size:16px;line-height:1.65;margin-bottom:24px}.work-link{color:var(--blue);font-size:16px;font-weight:600;display:inline-flex;gap:16px;align-items:center;margin-top:auto;text-underline-offset:5px}.work-case{display:grid;grid-template-columns:.85fr 1.5fr;gap:60px;margin-top:32px;padding:40px;background:#eee6d9;border-radius:12px}.work-case h3{font-size:36px;margin:12px 0}.case-intro{font:24px/1.4 Georgia,serif;margin-bottom:28px}.case-details>p{font-size:17px;line-height:1.7;margin-bottom:24px}.case-details dl{margin:0}.case-details dl>div{border-top:1px solid #cfc2af;padding:16px 0}.case-details dt{font-weight:700;font-size:16px;margin-bottom:5px}.case-details dd{margin:0;font-size:16px;line-height:1.65}.contact-email{font-size:16px;overflow-wrap:anywhere}.contact-email a{color:var(--blue);text-underline-offset:4px}footer a{color:inherit;text-underline-offset:4px}
@media(max-width:1000px){.work-grid{gap:16px}.work-copy{padding:20px}.work-copy h3{font-size:26px}.work-case{gap:32px;padding:30px}}
@media(max-width:760px){.work-grid,.work-case{grid-template-columns:1fr}.work-image img{aspect-ratio:16/10}.work-case{padding:24px;gap:24px}.work-copy{padding:24px}.work-copy h3{font-size:29px}.work-case h3{font-size:34px}.micro{font-size:14px}}

/* Actual desktop and mobile views of the maintained client site. */
.work-case{grid-template-columns:1.1fr 1.2fr;gap:40px}.case-visual{display:block;position:relative;padding:12px 40px 35px 0;margin:20px 0 18px}.case-desktop{display:block;border:1px solid #c7bcab;border-radius:8px;overflow:hidden;background:#faf7f1;box-shadow:0 10px 24px #30221916}.browser-dots{display:block;padding:5px 10px;color:#9c9183;font-size:9px;letter-spacing:2px}.case-desktop img{display:block;width:100%;height:auto}.case-mobile{position:absolute;right:0;bottom:0;width:27%;border:4px solid #302b27;border-radius:15px;overflow:hidden;box-shadow:0 10px 20px #3022192b;background:#fff}.case-mobile img{display:block;width:100%;height:auto}.case-visual:focus-visible{outline:3px solid var(--blue);outline-offset:5px}.work-case>.case-details{align-self:center}@media(max-width:760px){.work-case{grid-template-columns:1fr;gap:24px}.case-visual{max-width:480px;margin-inline:auto}}

.contact-form{max-width:680px;margin:30px auto 20px;text-align:left;position:relative}.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-form label{display:block;font-weight:600;margin:16px 0 8px;font-size:16px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #9e8e77;border-radius:8px;background:#fffdf9;padding:13px 15px;font:16px/1.5 Arial;color:var(--ink)}.contact-form textarea{resize:vertical;min-height:140px}.contact-form input:focus,.contact-form textarea:focus{outline:3px solid #205ce54d;border-color:var(--blue)}.contact-form .contact-privacy{font-size:14px;line-height:1.6;color:#554638;margin:16px 0 20px}.contact-form .button{border:0;cursor:pointer}.contact-form .button:disabled{opacity:.6;cursor:wait}.contact-form .contact-status{font-size:16px;line-height:1.6;min-height:26px;margin-top:16px}.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media(max-width:600px){.contact-fields{grid-template-columns:1fr;gap:0}.contact-form .button{width:100%}}

/* A personal invitation beside a warm paper-like contact form. */
.closing{padding-block:76px;background:linear-gradient(110deg,#eee2d2f7,#e9dcc9f0),url('assets/cafe-hero.webp') center/cover}.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;align-items:center}.contact-intro{max-width:470px}.closing .contact-intro h2{font-size:clamp(36px,3.5vw,48px);line-height:1.12;letter-spacing:-1.2px;margin:18px 0 24px}.closing .contact-lead{font:24px/1.5 Georgia,serif;margin-bottom:18px}.contact-intro>p:not(.eyebrow):not(.contact-lead):not(.contact-invitation){font-size:17px;line-height:1.75;color:#5e4a38}.contact-person{display:flex;gap:16px;align-items:center;margin:32px 0 20px}.contact-person img{width:70px;height:70px;border-radius:50%;object-fit:cover;object-position:center 30%;border:3px solid #fffaf2}.contact-person strong{font-size:17px;display:block}.contact-person span{display:block;font-size:14px;color:#5e4a38;line-height:1.5;margin-top:5px}.contact-direct{display:inline-flex;gap:20px;color:#284ca4;font-size:18px;text-underline-offset:5px;overflow-wrap:anywhere}.closing .contact-invitation{font:italic 22px/1.55 Georgia,serif;color:#735338;margin-top:34px}.contact-paper{background:#fffcf6;border:1px solid #d8c7ae;border-radius:16px;padding:32px 36px 28px;box-shadow:0 18px 48px #4834200c;position:relative}.contact-paper:before{content:"";position:absolute;left:36px;top:0;width:54px;height:3px;background:#2860dc;border-radius:0 0 3px 3px}.contact-paper-label{font-size:12px;letter-spacing:2px;color:#72543d;margin:0 0 8px}.contact-paper h3{font:32px/1.2 Georgia,serif;margin:0 0 22px}.contact-paper .contact-form{margin:0;max-width:none}.contact-paper .contact-form label{font-size:15px;margin-top:12px}.contact-paper .contact-form input,.contact-paper .contact-form textarea{background:#f7f2e9;border-color:#c4b49e;border-radius:7px}.contact-paper .contact-form textarea{min-height:135px}.contact-paper .contact-privacy{font-size:13px;line-height:1.65;color:#665342;margin:14px 0 18px}.contact-paper .button{width:100%;justify-content:center;margin-top:0}.contact-paper .contact-status{margin:10px 0 0;min-height:0}.contact-paper .contact-status:empty{display:none}.contact-footnote{border-top:1px solid #e6dacc;padding-top:18px;margin:20px 0 0;font-size:14px;line-height:1.6;color:#665342}.contact-footnote br{display:none}@media(max-width:1000px){.contact-layout{gap:36px}.contact-paper{padding:28px}.contact-fields{grid-template-columns:1fr;gap:0}}@media(max-width:760px){.closing{padding-block:44px}.contact-layout{grid-template-columns:1fr;gap:30px}.contact-intro{max-width:none}.closing .contact-intro h2{font-size:38px}.contact-person{margin-top:24px}.closing .contact-invitation{margin-top:20px}.contact-paper{padding:26px 22px}.contact-paper:before{left:22px}.contact-paper .contact-privacy{font-size:14px}}

/* Company-first wordmark, with a readable personal signature. */
.header .brand{font-size:28px;white-space:nowrap}.header .brand span{font-size:13px;letter-spacing:1px;margin-top:7px}.header .brand span:before{width:20px;margin-right:8px}@media(max-width:700px){.header .brand{font-size:24px}.header .brand span{font-size:12px;letter-spacing:.6px}}
