/*
Theme Name: Open Ideas Portfolio
Theme URI: https://gautamrao.cc/
Author: Open Ideas
Description: Editorial portfolio theme for strategic design, sustainability communication and storytelling. Native block editor, projects, accessible responsive layouts.
Version: 1.2.2
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: openideas-portfolio
*/
:root{--ink:#173f38;--text:#23312e;--muted:#66736f;--paper:#f7f6f1;--white:#fff;--sage:#dfe8dc;--line:#d8ddd8;--accent:#315f54;--max:1180px;--reading:760px;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.75}img{max-width:100%;height:auto;display:block}a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent)}.container{width:min(calc(100% - 40px),var(--max));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(247,246,241,.94);backdrop-filter:blur(12px);border-bottom:1px solid transparent}.admin-bar .site-header{top:32px}.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:30px}.site-branding a{text-decoration:none;font-weight:750;letter-spacing:-.03em;font-size:1.25rem}.custom-logo{max-height:48px;width:auto}.site-nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}.site-nav a{text-decoration:none;font-size:.92rem;font-weight:650}.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:8px 12px;border-radius:3px}.hero{padding:110px 0 95px}.eyebrow,.project-type{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:750;color:var(--muted)}h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:400;line-height:1.08;letter-spacing:-.035em}h1{font-size:clamp(3.4rem,8vw,7.3rem);max-width:1000px;margin:.15em 0 .28em}h2{font-size:clamp(2.2rem,4vw,4.2rem);margin:0 0 .55em}h3{font-size:clamp(1.45rem,2vw,2rem)}.hero-copy{font-size:clamp(1.05rem,1.5vw,1.3rem);max-width:720px;color:var(--muted)}.button,.wp-block-button__link{display:inline-block;background:var(--ink);color:#fff!important;text-decoration:none;padding:13px 20px;border-radius:2px;font-weight:700;font-size:.9rem}.button.secondary{background:transparent;color:var(--ink)!important;border:1px solid var(--ink)}.actions{display:flex;gap:12px;margin-top:34px}.section{padding:95px 0}.section-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:46px}.section-head h2{margin:0}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:70px 32px}.project-card a{text-decoration:none}.project-thumb{aspect-ratio:4/3;background:#e7e8e2;overflow:hidden;margin-bottom:22px}.project-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project-card:hover img{transform:scale(1.025)}.project-card h3{margin:.25em 0}.project-card p{color:var(--muted);margin:.5em 0 0}.about-band{background:var(--sage)}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.about-grid p{font-size:1.2rem}.page-hero{padding:90px 0 65px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(3rem,7vw,6rem)}.content-wrap{width:min(calc(100% - 40px),var(--reading));margin:0 auto;padding:85px 0}.content-wrap h2{margin-top:1.6em}.content-wrap h3{margin-top:1.7em}.content-wrap p{margin:0 0 1.35em}.content-wrap ul{padding-left:1.2em}.project-hero{padding:70px 0 50px}.project-hero h1{font-size:clamp(3.2rem,7vw,6.7rem)}.project-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-top:50px}.meta-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:750}.featured-wide{width:min(calc(100% - 40px),1400px);margin:0 auto}.featured-wide img{width:100%;max-height:760px;object-fit:cover}.case-content{width:min(calc(100% - 40px),var(--reading));margin:0 auto;padding:90px 0}.case-content h2{margin-top:1.75em}.case-content>.wp-block-image{margin:60px -120px}.project-gallery{width:min(calc(100% - 40px),var(--max));margin:0 auto;padding:20px 0 100px}.project-gallery .wp-block-gallery{gap:20px}.related-links{background:var(--sage);padding:60px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-form label{display:block;font-weight:700;margin:0 0 18px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #bcc7c2;background:#fff;padding:13px;font:inherit;margin-top:6px}.contact-form button{border:0}.site-footer{border-top:1px solid var(--line);padding:50px 0}.footer-inner{display:flex;justify-content:space-between;gap:30px;color:var(--muted);font-size:.9rem}.pagination{margin-top:60px}.empty-state{padding:50px;border:1px solid var(--line)}@media(max-width:760px){.admin-bar .site-header{top:46px}.header-inner{min-height:70px}.menu-toggle{display:block}.site-nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--paper);padding:22px}.site-nav.open{display:block}.site-nav ul{display:grid;gap:15px}.hero{padding:70px 0}.project-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.project-meta{grid-template-columns:1fr 1fr}.section{padding:65px 0}.section-head{align-items:start;gap:20px}.case-content>.wp-block-image{margin:45px 0}.related-links{padding:35px 24px}.footer-inner{display:grid}.project-card:nth-child(even){margin-top:0}}

/* v1.1 — native block-editor homepage */
.home-editor-content > .wp-block-group.alignfull { margin-left: 0; margin-right: 0; }
.home-editor-content .hero { padding-top: clamp(5rem,10vw,9rem); padding-bottom: clamp(5rem,10vw,9rem); }
.home-editor-content .hero > .wp-block-group__inner-container,
.home-editor-content .hero { }
.home-editor-content .hero > * { max-width: var(--content-width, 1180px); }
.home-editor-content .wp-block-buttons { margin-top: 2rem; gap: .8rem; }
.home-editor-content .wp-block-button__link { border-radius: 0; padding: .85rem 1.2rem; }
.home-editor-content .about-band .wp-block-columns { gap: clamp(2rem,7vw,7rem); }
.selected-work { border-top: 1px solid rgba(20,35,29,.12); }


/* v1.1.2 — consistent homepage alignment and tighter hero spacing */
.home-editor-content > .wp-block-group.alignfull {
  padding-left: max(20px, calc((100vw - var(--max)) / 2));
  padding-right: max(20px, calc((100vw - var(--max)) / 2));
}
.home-editor-content > .wp-block-group.alignfull > * {
  width: 100%;
  max-width: var(--max) !important;
  margin-left: auto;
  margin-right: auto;
}
.home-editor-content .hero {
  padding-top: clamp(3.25rem, 5vw, 5rem);
  padding-bottom: clamp(4.5rem, 7vw, 7rem);
}
.home-editor-content .about-band .wp-block-columns {
  width: 100%;
  max-width: var(--max) !important;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 760px) {
  .home-editor-content > .wp-block-group.alignfull {
    padding-left: 20px;
    padding-right: 20px;
  }
  .home-editor-content .hero {
    padding-top: 2.5rem;
    padding-bottom: 4rem;
  }
}

/* v1.2 — refined editorial case studies */
.case-study .project-hero{padding-bottom:72px}.case-study .project-meta{margin-top:44px}.project-intro{max-width:900px;margin:64px 0 0;padding:8px 0 8px 30px;border-left:3px solid var(--accent)}.project-intro p{font-family:var(--serif);font-size:clamp(1.45rem,2.3vw,2.15rem);line-height:1.35;color:var(--ink);margin:0}.case-toc{margin-top:64px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-toc>span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:750;color:var(--muted);margin-bottom:12px}.case-toc div{display:flex;flex-wrap:wrap;gap:8px 24px}.case-toc a{font-size:.9rem;text-decoration:none;border-bottom:1px solid transparent}.case-toc a:hover{border-color:currentColor}.case-content{width:min(calc(100% - 40px),800px);padding:110px 0 120px;font-size:18px;line-height:1.78}.case-content p{margin:0 0 1.3em}.case-content h2{font-size:clamp(2.2rem,4vw,3.45rem);margin:2.35em 0 .65em;scroll-margin-top:120px}.case-content h2:first-child{margin-top:0}.case-content h3{font-size:clamp(1.45rem,2vw,1.85rem);margin:2em 0 .55em;letter-spacing:-.02em}.case-content ul,.case-content ol{margin:1.5em 0 1.8em;padding-left:1.4em}.case-content li{padding-left:.25em;margin:.45em 0}.case-content .wp-block-group.reflection,.case-content .reflection{background:var(--sage);padding:clamp(30px,5vw,58px);margin:100px -70px 0;border-left:3px solid var(--accent)}.case-content .reflection h2{margin-top:0}.case-content .wp-block-gallery{width:min(calc(100vw - 40px),var(--max));margin:40px 50% 30px;transform:translateX(-50%);gap:22px}.case-content .wp-block-gallery img{width:100%;height:auto}.case-content h2#gallery{margin-top:2.6em}.case-content h2#gallery,.case-content h2#related-links{width:min(calc(100vw - 40px),var(--max));margin-left:50%;transform:translateX(-50%)}.case-content h2#related-links+ul{width:min(calc(100vw - 40px),var(--max));margin-left:50%;transform:translateX(-50%);list-style:none;padding:0;border-top:1px solid var(--line)}.case-content h2#related-links+ul li{margin:0;padding:17px 0;border-bottom:1px solid var(--line)}.case-content h2#related-links+ul a{display:block;font-weight:650;text-decoration:none}.case-content h2#related-links+ul a:after{content:' ↗'}.project-navigation{display:flex;justify-content:space-between;gap:30px;padding:42px 0 80px;border-top:1px solid var(--line)}.project-navigation div{display:flex;gap:24px}.project-card p{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.project-grid:has(.project-card:only-child){grid-template-columns:minmax(0,560px)}
@media(max-width:760px){.case-study .project-hero{padding-bottom:48px}.project-intro{margin-top:44px;padding-left:20px}.case-toc{margin-top:44px}.case-toc div{gap:7px 18px}.case-content{font-size:17px;padding:72px 0 85px}.case-content h2{margin-top:2em}.case-content .reflection{margin:70px 0 0}.case-content .wp-block-gallery,.case-content h2#gallery,.case-content h2#related-links,.case-content h2#related-links+ul{width:100%;margin-left:0;transform:none}.project-navigation{display:grid;padding-bottom:55px}.project-navigation div{display:grid;gap:10px}.project-grid:has(.project-card:only-child){grid-template-columns:1fr}}

/* v1.2.1 — long-page usability and editorial page patterns */
.selected-work{border-top:0}
.case-toc{position:sticky;top:86px;z-index:15;background:rgba(247,246,241,.96);backdrop-filter:blur(12px)}
.admin-bar .case-toc{top:118px}
.case-toc a.is-active{color:var(--ink);border-color:var(--ink);font-weight:750}
.case-content .reflection-callout{background:var(--sage);padding:clamp(30px,5vw,58px);margin:100px -70px 0;border-left:3px solid var(--accent)}
.case-content .reflection-callout h2{margin-top:0}
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:30;width:44px;height:44px;border-radius:50%;border:1px solid var(--ink);background:var(--ink);color:#fff;font:700 20px/1 var(--sans);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s;box-shadow:0 5px 20px rgba(0,0,0,.12)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.page-pattern-intro{margin-bottom:80px}.page-pattern-intro h1{font-size:clamp(3.4rem,7vw,6.5rem)}.page-pattern-intro .lead{font-size:clamp(1.15rem,2vw,1.5rem);color:var(--muted);max-width:760px}.contact-details{margin:70px 0}.contact-closing{background:var(--sage);padding:clamp(32px,6vw,70px);margin-top:80px}
@media(max-width:760px){.case-toc{top:70px;margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}.admin-bar .case-toc{top:116px}.case-toc div{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.case-toc a{white-space:nowrap}.case-content .reflection-callout{margin:70px 0 0}.back-to-top{right:16px;bottom:16px;width:40px;height:40px}.page-pattern-intro{margin-bottom:55px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.back-to-top{transition:none}}


/* v1.2.2 — stable page refinements and personal identity */
.page-content{padding-top:clamp(64px,8vw,105px)}
.page-content .page-pattern-intro{margin-top:0}
.page-content h2{margin-top:2.15em}
.page-content .wp-block-columns{column-gap:clamp(28px,5vw,64px)}
.page-content hr,.page-content .wp-block-separator{border:0;border-top:1px solid var(--line);opacity:1}
.page-content .wp-block-column>h3:first-child{margin-top:0}
.page-content .contact-details{margin-top:58px}
.page-content .contact-closing{margin-top:72px}
.site-footer{border-color:var(--line)}
.site-branding{display:flex;align-items:center;min-width:0}.site-branding a{display:flex;align-items:center;line-height:1}.custom-logo-link{display:flex;align-items:center}.custom-logo{max-height:52px;max-width:min(280px,42vw);object-fit:contain}
a{transition:color .18s ease,text-decoration-color .18s ease}.content-wrap a:hover,.site-footer a:hover{text-decoration-thickness:2px}
@media(min-width:900px){.page-content{width:min(calc(100% - 40px),820px)}.page-content .page-pattern-intro{margin-bottom:88px}.page-content .wp-block-columns{align-items:start}}
@media(max-width:760px){.page-content{padding-top:55px}.custom-logo{max-height:42px;max-width:190px}.page-content .contact-details{margin-top:44px}.page-content .contact-closing{margin-top:56px}}
