/*
Theme Name: Rachel AI Tools
Theme URI: https://rachelwithai.com/
Author: Rachel with AI
Description: 日本語で使えるAIツール、無料Webツール、AIノートのためのWordPressテーマ。
Version: 0.3.3
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rachel-ai-tools
*/

:root{
  --bg:#f7f8fa;
  --ink:#202228;
  --muted:#686e78;
  --quiet:#8b919b;
  --line:#dfe3e8;
  --pink:#e95789;
  --pink-deep:#c94473;
  --pink-soft:#fff0f5;
  --blue-soft:#edf3ff;
  --green-soft:#edf8f2;
  --yellow-soft:#fff7dd;
  --white:#fff;
  --shadow:0 14px 34px rgba(36,42,54,.09);
  --font-body:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-rounded:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN",var(--font-body);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.75}
body::selection{background:#ffd5e5;color:#2e2026}
h1,h2,h3{font-family:var(--font-rounded);font-optical-sizing:auto}
a{color:inherit;text-decoration:none;text-underline-offset:.2em}
button,input{font:inherit}
button{cursor:pointer}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid rgba(233,87,137,.32);outline-offset:3px}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#eef0f3}
::-webkit-scrollbar-thumb{border:3px solid #eef0f3;border-radius:999px;background:#b9bec7}
.skip-link,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{z-index:1000;top:12px;left:12px;width:auto;height:auto;margin:0;padding:10px 14px;clip:auto;border-radius:8px;background:#fff;color:var(--ink)}

.site-header{position:relative;z-index:20;height:78px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}
.header-inner{width:min(1180px,calc(100% - 40px));height:100%;margin:auto;display:flex;align-items:center;gap:42px}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0}
.brand-mark,.brand-logo{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:12px}
.brand-mark{background:linear-gradient(140deg,#f6abc7,#ed648f 52%,#94a4e9);color:#fff;font:700 1.05rem var(--font-rounded);box-shadow:0 6px 16px rgba(220,73,128,.2)}
.brand-logo{overflow:hidden}
.brand-logo .custom-logo-link,.brand-logo img{display:block;width:100%;height:100%}
.brand-logo img{object-fit:cover}
.brand strong{display:block;font:700 1.02rem var(--font-rounded);letter-spacing:-.01em;white-space:nowrap}
.brand small{display:block;color:#6d727c;font-size:.66rem;line-height:1.25;white-space:nowrap}
.main-nav{display:flex;align-items:center;gap:25px;font-size:.8rem;font-weight:600}
.main-nav a{position:relative;color:#5f6570}
.main-nav a:hover,.main-nav a.active{color:var(--pink-deep)}
.main-nav a.active::after{content:"";position:absolute;right:0;bottom:-12px;left:0;height:2px;border-radius:999px;background:var(--pink)}
.header-action{padding:10px 17px;border-radius:999px;background:var(--ink);color:#fff;font-size:.72rem;font-weight:700}
.header-action:hover{background:#363941}

.page-shell,.content-shell{width:min(1080px,calc(100% - 40px));margin:auto}
.directory-intro{padding:70px 0 52px;text-align:center}
.directory-intro h1{margin:0;font-size:clamp(2.35rem,5vw,4.25rem);font-weight:700;line-height:1.18;letter-spacing:-.03em}
.directory-intro h1 span{color:var(--pink)}
.intro-copy{max-width:620px;margin:17px auto 0;color:var(--muted);font-size:.93rem;line-height:1.85}
.search-form{display:flex;align-items:center;width:min(680px,100%);min-height:58px;margin:30px auto 17px;padding:5px 6px 5px 19px;border:1px solid #d3d8df;border-radius:14px;background:#fff;box-shadow:0 10px 28px rgba(37,42,52,.06)}
.search-mark{position:relative;width:17px;height:17px;margin-right:13px;border:2px solid #9ba2ad;border-radius:50%}
.search-mark::after{content:"";position:absolute;right:-6px;bottom:-3px;width:7px;height:2px;background:#9ba2ad;transform:rotate(45deg)}
.search-form input{min-width:0;flex:1;padding:8px;border:0;outline:0;background:transparent;color:var(--ink);font-size:1rem}
.search-form input::placeholder{color:#8d949e}
.search-form button{align-self:stretch;padding:0 22px;border:0;border-radius:10px;background:var(--ink);color:#fff;font-size:.78rem;font-weight:700}
.search-form button:hover{background:var(--pink-deep)}
.intent-list{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.intent-list button{padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#626873;font-size:.72rem;font-weight:600}
.intent-list button:hover{border-color:#efafc6;background:var(--pink-soft);color:var(--pink-deep)}

.directory-section{padding:42px 0}
.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.section-title-row h2{margin:0;font-size:clamp(1.45rem,2.5vw,2rem);font-weight:700;line-height:1.4;letter-spacing:-.02em}
.section-title-row p{margin:6px 0 0;color:var(--muted);font-size:.8rem}
.section-title-row>a{flex:none;color:var(--pink-deep);font-size:.76rem;font-weight:700}
.section-title-row>a:hover{text-decoration:underline}
.section-note{margin:13px 0 0;color:#787e88;font-size:.72rem;text-align:right}

.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.tool-card{display:flex;flex-direction:column;min-width:0;min-height:238px;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease,border-color .24s ease}
.tool-card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:var(--shadow)}
.tool-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tool-monogram{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--pink-soft);color:var(--pink-deep);font:700 .74rem var(--font-rounded)}
.popular-grid .tool-card:nth-child(3n+2) .tool-monogram{background:var(--blue-soft);color:#536fb6}
.popular-grid .tool-card:nth-child(3n) .tool-monogram{background:var(--green-soft);color:#427f62}
.external-label{color:#7a818c;font-size:.66rem;font-weight:600}
.tool-badge{align-self:flex-start;margin:18px 0 7px;padding:4px 8px;border-radius:6px;background:#f1f2f4;color:#656b75;font-size:.65rem;font-weight:700}
.tool-card h3{margin:0;font-size:1rem;line-height:1.4;letter-spacing:-.02em;overflow-wrap:anywhere}
.tool-card>p{margin:6px 0 17px;color:var(--muted);font-size:.77rem;line-height:1.7}
.tool-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.tool-facts span{padding:4px 7px;border-radius:6px;background:var(--green-soft);color:#3f765c;font-size:.62rem;font-weight:700}
.tool-facts span+span{background:var(--blue-soft);color:#4e67a8}

.category-block{padding-top:64px}
.category-total{color:#7c838d;font:600 .72rem var(--font-body)}
.category-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 13px;scrollbar-width:none}
.category-tabs::-webkit-scrollbar{display:none}
.category-tab{flex:none;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#626974;font-size:.75rem;font-weight:600;white-space:nowrap}
.category-tab:hover{border-color:#efafc6;color:var(--pink-deep)}
.category-tab.is-active{border-color:var(--pink);background:var(--pink);color:#fff;box-shadow:0 6px 17px rgba(233,87,137,.18)}
.category-context{display:flex;align-items:center;justify-content:space-between;margin:10px 0 13px}
.category-context strong{font-size:.82rem}
.category-context span{color:#858c96;font-size:.68rem}
.category-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}
.category-tool{display:flex;align-items:flex-start;gap:11px;min-width:0;min-height:136px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.category-tool:hover{transform:translateY(-3px);border-color:transparent;box-shadow:var(--shadow)}
.category-tool-mark{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:var(--pink-soft);color:var(--pink-deep);font:700 .7rem var(--font-rounded)}
.category-tool-copy{display:flex;min-width:0;flex:1;flex-direction:column}
.category-tool-copy small{color:var(--pink-deep);font-size:.62rem;font-weight:700}
.category-tool-copy strong{margin:2px 0 3px;font-family:var(--font-rounded);font-size:.92rem;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.category-tool-copy>span{color:var(--muted);font-size:.7rem;line-height:1.5}
.category-tool-copy em{margin-top:auto;padding-top:8px;color:#6e747e;font-size:.62rem;font-style:normal;font-weight:700}
.tool-search-empty{padding:35px;border-radius:14px;background:#fff;text-align:center}
.tool-search-empty strong{font-size:.95rem}
.tool-search-empty p{margin:7px 0 18px;color:var(--muted);font-size:.76rem}
.tool-search-empty button{padding:8px 12px;border:0;border-radius:8px;background:var(--ink);color:#fff;font-size:.7rem;font-weight:700}

.site-tools{display:grid;grid-template-columns:.78fr 1.22fr;gap:50px;margin-top:44px;padding:45px;border-radius:20px;background:#22242a;color:#fff}
.site-tools-copy{align-self:center}
.site-tools-copy h2{margin:0;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.25;letter-spacing:-.03em}
.site-tools-copy p{margin:16px 0;color:#d2d4da;font-size:.85rem;line-height:1.85}
.site-tools-copy>span{display:block;color:#aeb2bb;font-size:.68rem}
.site-tool-list{display:grid;gap:8px}
.site-tool-item{display:grid;grid-template-columns:48px 1fr auto;gap:13px;align-items:center;min-width:0;padding:13px;border-radius:13px;background:#fff;color:var(--ink)}
.site-tool-code{display:grid;place-items:center;width:48px;height:48px;border-radius:11px;background:var(--pink-soft);color:var(--pink-deep);font:700 .65rem var(--font-rounded)}
.site-tool-item h3{margin:0;font-size:.86rem}
.site-tool-item p{margin:3px 0 0;color:var(--muted);font-size:.66rem}
.site-tool-item>a{color:var(--pink-deep);font-size:.65rem;font-weight:700}
.coming-label{padding:6px 9px;border-radius:7px;background:#f1f2f4;color:#777d87;font-size:.61rem;font-weight:700}
.site-tool-item.is-coming{opacity:.82}

.notes-preview{padding-top:84px}
.notes-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.note-preview-card{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff}
.note-preview-media{display:block;height:178px;overflow:hidden;background:var(--pink-soft)}
.note-preview-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.note-preview-card:hover .note-preview-media img{transform:scale(1.035)}
.note-preview-media.no-image{display:grid;place-items:center;background:var(--pink-soft);color:#cc4a79;font:700 1.2rem/1.1 var(--font-rounded);letter-spacing:-.03em;text-align:center}
.note-preview-card>div{padding:17px}
.note-preview-card>div>span{color:var(--pink-deep);font-size:.61rem;font-weight:700}
.note-preview-card h3{margin:7px 0 8px;font-size:.93rem;line-height:1.55;letter-spacing:-.02em}
.note-preview-card p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:.7rem;line-height:1.65;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.note-preview-card small{display:block;margin-top:13px;color:#8a9099;font-size:.6rem}
.notes-empty{padding:34px;border-radius:15px;background:var(--pink-soft);text-align:center}
.notes-empty strong{font-size:.95rem}
.notes-empty p{margin:6px 0 0;color:#765f68;font-size:.75rem}
.site-introduction{display:grid;grid-template-columns:230px 1fr;gap:45px;margin:55px 0 90px;padding-top:32px;border-top:1px solid var(--line)}
.site-introduction h2{margin:0;font-size:1rem}
.site-introduction p{max-width:720px;margin:0;color:var(--muted);font-size:.76rem;line-height:1.9}

.site-footer{padding:38px 0;background:#fff;border-top:1px solid var(--line)}
.footer-inner{width:min(1080px,calc(100% - 40px));margin:auto;display:flex;align-items:center;gap:28px}
.footer-inner .brand{margin-right:auto}
.footer-inner nav{display:flex;gap:18px;color:#666c76;font-size:.7rem}
.footer-inner nav a:hover{color:var(--pink-deep)}
.footer-inner>small{color:#8f959e;font-size:.62rem;white-space:nowrap}

.listing-shell{min-height:60vh;padding:70px 0 100px}
.listing-header{max-width:670px;margin-bottom:35px}
.listing-header h1{margin:0;font-size:clamp(2rem,4vw,3.4rem);line-height:1.15;letter-spacing:-.04em}
.listing-header p{margin:12px 0 0;color:var(--muted)}

@media(max-width:900px){
  .tool-grid,.category-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-tools{grid-template-columns:1fr;gap:28px}
  .notes-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .note-preview-card:last-child{display:none}
}

@media(max-width:720px){
  .header-inner,.page-shell,.content-shell,.footer-inner{width:calc(100% - 28px)}
  .site-header{height:70px}
  .main-nav{display:none}
  .header-action{margin-left:auto;padding:9px 13px}
  .directory-intro{padding:46px 0 34px}
  .directory-intro h1{font-size:clamp(2.15rem,10vw,3.15rem)}
  .intro-copy{font-size:.82rem}
  .directory-section{padding:34px 0}
  .site-tools{margin-right:-14px;margin-left:-14px;padding:32px 20px;border-radius:0}
  .site-introduction{grid-template-columns:1fr;gap:10px}
  .footer-inner{align-items:flex-start;flex-wrap:wrap}
  .footer-inner .brand{width:100%}
  .footer-inner nav{order:3;width:100%;flex-wrap:wrap}
  .footer-inner>small{margin-left:auto}
}

@media(max-width:520px){
  body{font-size:16px}
  .brand small{display:none}
  .header-action{font-size:.68rem}
  .search-form{min-height:55px;padding-left:14px}
  .search-form input{font-size:16px}
  .search-form button{padding:0 17px}
  .section-title-row{align-items:flex-start}
  .section-title-row p{font-size:.72rem}
  .section-title-row>a{margin-top:6px}
  .tool-grid,.category-panel,.notes-preview-grid{grid-template-columns:1fr}
  .tool-card{min-height:218px}
  .category-tool{min-height:124px}
  .note-preview-card:last-child{display:block}
  .site-tool-item{grid-template-columns:42px 1fr auto;padding:11px}
  .site-tool-code{width:42px;height:42px}
  .site-tool-item p{display:none}
  .site-introduction{margin-bottom:65px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
